Už od prvních verzí (z roku 1989) byla vysoká úroveň bezpečnosti jedním z pilířů Lotus Notes; nebyla začleněna později, aby se sys-
tém vyrovnal se stále nebezpečnějším prostředím internetu.
IBM Lotus Notes/Domino je klasický systém klient/server: Lotus Domino je serverová část, poskytující služby klientům. Tím může být "tlustý" klient Lotus Notes, nebo také "lehký" klient - internetový prohlížeč. Možnosti, které tento systém nabízí uživatelům, lze shrnout pod pojem "groupware" - komunikace a spolupráce lidí, sdílení dokumentů, work-flow apod. Je pochopitelné, že pro tohle vše požadují společnosti dobré zabezpečení. Způsob, jak tyto požadavky řeší Lotus Notes/Domino, je právě předmětem tohoto článku.
Autentizace
První, s čím přijde uživatel do styku, je autentizace, tedy jednoznačná identifikace uživatele, který k severu přistupuje. Lotus Notes představily přístup, který byl ve své době poměrně revoluční: identifikace uživatele nejen podle toho, co zná (tedy klasický přístup jméno a heslo), ale i na základě toho, co má. Zrodilo se "Notes ID", tedy něco jako elektronický průkaz, fyzicky reprezentovaný malým souborem na pevném disku, disketě nebo třeba USB flash disku. Tento soubor použije klient Lotus Notes vždy, když chce pracovat se systémem. Je v něm uložena identifikace uživatele, doba platnosti přístupu (tzv. certifikát), uživatelův soukromý klíč používaný pro šifrování a další.
Všechny tyto údaje jsou zabaleny do souboru o velikosti několika kB, jenž je zašifrován a odemknout jej lze až po zadání hesla, které si zvolil uživatel. Teprve potom může člověk přistoupit k databázím a pracovat s dokumenty. Dá se to přirovnat k platební kartě a PIN, které tuto kartu odemyká a umožní vybrat peníze z bankomatu.
Autorizace
Po prvním kroku už server Domino ví, s kým komunikuje, zná jeho přesnou identitu. V dalších krocích musí ještě rozhodnout, jaké operace může tento uživatel provádět, s jakými dokumenty pracovat, k čemu je autorizován. Server Lotus Domino toto řeší na několika vrstvách.
Za prvé, můžeme určit, kteří uživatelé či které skupiny uživatelů mohou vůbec na server přistupovat. Pokud je uživatel uveden mezi zakázanými lidmi, nebo naopak není uveden mezi povolenými, server Domino ho dál ke svým databázím nepustí.
Za druhé, u každé databáze na serveru nastavíme, kdo s ní může pracovat a s jakou úrovní oprávnění. To se určuje v seznamu přístupových práv (Access Control List - ACL), který umožňuje škálovat rozdělení oprávnění s velkou volností, přesto však přehledně a intuitivně. Zmíním zde pouze základní rozdělení práv na sedm úrovní: bez přístupu, zapisovatel (nemá právo číst), čtenář (nemůže zapisovat), autor (může číst vše a upravovat pouze své dokumenty), editor (může upravovat i cizí dokumenty), návrhář (vývojář, který upravuje vzhled a funkcionalitu aplikace) a manažer (může vše, včetně nastavování přístupových práv a smazání celé databáze).
A za třetí, lze nastavit čtecí či editační práva i k jednotlivým dokumentům, uloženým v databázi, nebo dokonce k částem jednotlivých dokumentu - sekcím.
Jako příklad si vezměme personální databázi. Běžným firemním uživatelům dáme k této aplikaci právo autora, mohou tedy číst záznamy ostatních uživatelů a každý může svůj záznam měnit a aktualizovat. Protože jsou ale některé osobní údaje citlivé, nastavíme u každého dokumentu část veřejnou (jméno, pozice, číslo telefonu apod.) a část neveřejnou (vzdělání, zdravotní stav, platová kategorie apod.), ke které má přístup pouze několik vyhrazených osob. Přestože tedy máme všechny údaje pohromadě vedle sebe, můžeme chytře nastavit přístupová práva tak, aby každý viděl právě to, co má.
ACL, tedy seznam oprávnění k databázi, doplňuje ECL (Execution Control List), neboli seznam obecných oprávnění spouštět operace v klientu Lotus Notes. Každý kousek kódu, který je v Lotus Notes vytvořen, je digitálně podepsán tím, kdo jej naposledy upravoval. Do ECL je tedy rozumné zanést pouze ta jména vývojářů, kterým věříme - jsou to interní firemní vývojáři nebo například tvůrci z IBM/Lotus. Pokud na pracovní stanici spustí uživatel kód, jehož autor nemá oprávnění v ECL, objeví se nejdříve varovný dialog, ve kterém podezřelou operaci povolíme nebo zakážeme. Tato funkcionalita úspěšně zamezuje šíření škodlivých samospouštěcích skriptů, které známe z jiných systémů - díky ECL se tento kód nemůže automaticky spustit a šířit dále.
Komunikace
Klient Lotus Notes a server Domino spolu komunikují pomocí vnitřního uzavřeného protokolu, který se stará o bezpečné spojení. Server k tomu využívá pouze port číslo 1 352, takže správci firemního firewallu stačí povolit pouze tento port, pokud se klienti Lotus Notes chtějí připojovat k serveru zvenčí.
Navíc lze tuto komunikaci mezi klientem a serverem, která by se neodehrávala pouze v rámci firemní sítě, šifrovat. Případný útočník, zachytávající komunikaci, nezíská data v otevřeném formátu, ale šifrovaná.
Lotus Notes rovněž umožňují uživatelům pracovat off-line. Pomocí systému replikace, což je vysoce sofistikovaná synchronizace, lze uložit dokumenty v databázi i lokálně, na pevný disk notebooku. S takovou aplikací lze pracovat stejně jako by byla na serveru, protože změny, které jsme v režimu off-line provedli, se po připojení do sítě korektně přenesou na server, a naopak.
To však může s sebou nést určitá rizika - notebook s off-line databázemi můžeme ztratit nebo ho může někdo odcizit. I proti tomu mají Lotus Notes obranu. Lokální off-line databáze lze šifrovat pomocí zmíněného ID souboru uživatele. Bez tohoto souboru, a hlavně bez hesla k němu jsou lokální databáze pro útočníka bezcenné.
Podpora standardů
Server Lotus Domino podporuje celou řadu standardů. Z těch bezpečnostních zmiňme možnost odesílat a přijímat elektronicky podepsanou či šifrovanou poštu (S/MIME). Dále zde existuje podpora X.509 certifikátů a PKI - dvojici soukromý/veřejný klíč lze nechat certifikovat u externí certifikační autority (v Česku například I.CA vydává kvalifikované certifikáty pro komunikaci se státní správou) a poté použít i v Lotus Notes.
Chceme-li zabezpečit internetovou komunikaci se serverem Domino, lze to udělat i bez prostředníka - Lotus Domino může sloužit jako registrační i certifikační autorita pro vydávání certifikátů X.509, pomocí nichž se šifruje například protokol HTTP (HTTPS).
Další požadavky na bezpečnost
Lotus Notes umí vyhovět i specifickým požadavkům na přísná bezpečnostní pravidla. Již zmíněný Notes ID soubor, uchovávající identitu uživatele, lze šifrovat tak, že jej odemkne ne pouze jedno heslo, jak je obvyklé, ale například dvě z pěti hesel, které zná pět různých lidí. Tyto identity se použijí zpravidla pro super administrátorské účty, jež mohou mít přístup do všech (i citlivých) databází, nebo pro certifikační autoritu.
V počítačových systémech bývá administrátor většinou pánem všeho, s možností maximálního přístupu k datům. Pokud je toto nežádoucí, lze Lotus Domino nastavit tak, že administrátoři mají právo kompletně řídit a spravovat běh serveru, ale k vybraným citlivým databázím nebudou mít ani čtenářská práva.
Všechny přístupy uživatelů k serveru se samozřejmě ukládají do logů, jež lze dále prohledávat, zpracovávat a analyzovat. Součástí serveru Lotus Domino jsou i nástroje, jimiž se dají nastavit virtuální senzory, hlídající výskyt určitých událostí v systému. V případě objevení takové události na ni zareagují - například odešlou správci systému informativní e-mail. Hlídanou událostí může být docházející místo na pevném disku, ale i neúspěšný pokus o přístup do citlivé databáze.
Shrnutí
Systém Lotus Notes/Domino je po dvě desítky let stabilním systémem pro sdílení a práci s dokumenty, pro podporu spolupráce uživatelů, je rovněž platformou pro rychlý vývoj aplikací na míru. To vše lze provozovat i při náročných požadavcích na bezpečnost a při zachování přesných pravidel pro přístup k informacím.
Petr Kunc pracuje ve společnosti IBM Ćeská republika. Zaměřuje se na produkty z rodiny Lotus.
Přihlašování uživatele Lotus Notes.
Pohled do kalendáře Lotus Notes 8.
Lotus Notes podporují zabezpečený přenos pošty.
Notes ID - to je bezpečný elekronický příkaz umožňující přístup do systému.
Execution Control List (ECL) hlídá spouštění kódu.
Dialog pro nastavení seznamu přístupových práv k databázi (ACL).