Lightweight Directory Access protocol LDAP Projektovn distribuovanch systm
Lightweight Directory Access protocol (LDAP) Projektování distribuovaných systémů Lekce 16 Ing. Jiří ledvina, CSc. 14. 4. 2008 Projektování distribuovaných systémů (72 stran)
Agenda l l l Motivace Pochopení LDAP l Informační struktura l Jména l Funkce a operace l Bezpečnost Model protokolu Mapování na transportní služby Protokol kódování Diskuse 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 2
Adresáře l l l Off-line adresáře – telefonní seznamy, … On-line adresáře – udržované v elektronické podobě a také přístupné v elektronické podobě Vlastnosti on-line adresářů l l 14. 4. 2008 Dynamické l Vkládání, mazání, aktualizace záznamů Flexibilní l Ukládání různých typů informací l Text, video, audio, certifikáty, … l Informace o nastavení aplikace Zabezpečené l ACL – Access Control List – práva přístupu uživatelů Personalizovatelné l Možnost uchovat specifické informace pro jednoho uživatele Projektování distribuovaných systémů (72 stran) 3
Typy adresářů podle použití l Aplikační adresáře (IBM Lotus Notes, …) l l Adresáře síťových OS l l Microsoft Active Directory (LDAP, Kerberos, CIFS – Common Interface File Systém) Novell Directory Services NIS – Network Information Services (SUN) Účelové adresáře l l Vlastní systém ukládání záznamů, orientované na aplikaci DNS Univerzální standardizované adresáře l 14. 4. 2008 X. 500, LDAP Projektování distribuovaných systémů (72 stran) 4
Adresářové služby a databáze l Databáze jsou složitější l l l Složité dotazy Propojení mnoha tabulek Možnost realizace transakcí Srovnatelný poměr mezi čtením a ukládáním dat Velká režie Adresářové služby l l l 14. 4. 2008 Jednoduché dotazy Převládá čtení nad zápisy Nepožadují transakční zpracování Decentralizované uložení informace Možnost replikací Projektování distribuovaných systémů (72 stran) 5
Motivace a vývoj l l Zvyšování spolehlivosti síťových zařízení Potřeby v informacích l l l 14. 4. 2008 Funkčnost Jednoduchost použití Administrace Konzistentní organizace Integrita Důvěrnost Projektování distribuovaných systémů (72 stran) 6
X. 500 l X. 500 standard. CCITT 1988 l 14. 4. 2008 Refer ISO 9594 – X. 500 -X. 521 of 1990 Projektování distribuovaných systémů (72 stran) 7
Základní prvky X. 500 l DIT – Directory Information Tree l l l Adresářový strom Hierarchická struktura Listy obsahují informaci (data) Uzly uvnitř stromu informační vazby DN – Distinguished Name l l 14. 4. 2008 Jméno použité pro rozlišení informace (od kořene stromu) Sestává z relativních DN (RDN) – rozlišení v podstromu (větvi stromu) Projektování distribuovaných systémů (72 stran) 8
DN a RDN 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 9
X. 500 l l l l Organizace položek adresáře do hierarchického stromu Výkonné prostředky pro vyhledávání Často používán propojení nekompatibilních systémů Používá DAP pro komunikaci klientů a serverů DAP (App. Layer) požaduje celý OSI zásobník Příliš obtížné pro malé aplikace Mnoho informací uloženo na mnoha serverech včetně replik 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 10
X. 500 l Síťová aplikace typu server/klient l l l Předpokládá připojení klienta k libovolnému serveru, který má vazby na X. 500 servery l l l DUA – Directory User Agent DSA – Directory Server Agent Klientovi se databáze jeví jako kompaktní (obdoba DNS) Princip modifikace informace tam, kde vzniká Dotazování mezi X. 500 servery (různé způsoby dotazování) Protokol pro komunikaci klient/server – DAP (Directory Access Protocol Protokol pro komunikaci mezi servery (? SAP – Server Access protocol) 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 11
Přechod DUA X. 500 na LDAP l l X. 500 – (DAP + OSI) - standardizace ITU 1980 LDAP – (TCP/IP) – 1993 l l l Tim Howes (University of Michigen) Steve Kille (Isode Limited) Wengyik Yeong (Performance Systems LDBP Lightweight Directory Browsing Protocol ASN. 1 + LBER l l 14. 4. 2008 Lightweight BER (zjednodušení zpracování při zachování transparentnosti reprezentace dat BER, ale textuální reprezentace Projektování distribuovaných systémů (72 stran) 12
Přechod DUA X. 500 na LDAP l l Původně představa vytvoření brány mezi jednoduchým klientem a protokolem DAP (komunikace DUA/DSA) Později náhrada této brány vlastním serverem + úložištěm dat Komunikace DAP nahrazena LDAP Nyní protokol LDAP verze 2 nebo 3 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 13
LDAP Server 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 14
Adresářový strom a adresářová struktura 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 15
Co je to LDAP? l l Lightweight Directory Access Protocol Používá se pro přístup k informaci a pro její úpravu v adresářích budovaných na X. 500 model Specifikace definuje obsah zpráv přenášených mezi klientem a serverem. Zahrnuje operace pro vytváření a ukončování spojení se serverem 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 16
Pochopení LDAP l l Zjednodušená varianta k DAP Používá TCP/IP zásobník místo zásobníku ISO/OSI Některé funkce zjednodušuje a jiné vynechává … K reprezentaci dat používá řetězce místo DAP notace ASN. 1 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 17
Komponenty LDAP l l l Standardizovaný přístup k adresářovým službám Zahrnuje 4 modely Komponenty l l LDIF – LDAP Data Interchange Format l Standardizovaný formát pro výměnu dat (BER, LBER) LDAP server LDAP klient LDAP API – rozhraní pro vývoj vlastních aplikací l 14. 4. 2008 C, PERL, Java, CGI, … Projektování distribuovaných systémů (72 stran) 18
LDAP schéma l l Množina definic pravidel nad adresářovým stromem Definuje třídy objektů (objectclass) Definuje množinu povinných a nepovinných atributů Definuje jednotlivé atributy 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 19
Příklad - OID organizace objectclass ( 1. 3. 6. 1. 4. 1. 98546. 1. 2. 1 NAME 'example. Object' DESC 'example. org objects' SUP top AUXILIARY MUST display. Name MAY unique. Identifier ) 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 20
Příklad - OID organizace objectclass ( 1. 3. 6. 1. 4. 1. 98546. 1. 2. 1 NAME 'example. Object' DESC 'example. org objects' SUP top AUXILIARY MUST display. Name MAY unique. Identifier ) objectclass ( 1. 3. 6. 1. 4. 1. 98546. 1. 2. 2 NAME 'example. Person' DESC 'example. org people' SUP example. Object AUXILIARY MAY ( personal. Title $ ou )) objectclass ( 1. 3. 6. 1. 4. 1. 98546. 1. 2. 3 NAME 'example. Group' DESC 'example. org group' SUP top STRUCTURAL MUST display. Name MAY ( member $ description $ owner )) 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 21
Příklad adresářové položky (LDIF) dn: cn=John Doe, dc=example, dc=com cn – uzel RDN dc – rodičovské DN dn – Domain Name, dc – Domain Component, cn – Canonical Name cn: John Doe given. Name: John atribut sn: Doe atribut telephone. Number: +1 888 555 6789 telephone. Number: +1 888 555 1232 mail: john@example. com manager: cn=Barbara Doe, dc=example, dc=com object. Class: inet. Org. Person object. Class: organizational. Person object. Class: person object. Class: top 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 22
LDAP l Informační struktura l l Jmenná struktura l l Jak je informace uložena a pojmenována. Funkční struktura a operace l l Struktura informace uložená v LDAP adresáři Popisuje jak mohou být operace prováděny nad informacemi uloženými v LDAP adresáři Bezpečnost l 14. 4. 2008 Popisuje jak může být informace chráněna před neautorizovaným přístupem Projektování distribuovaných systémů (72 stran) 23
LDAP uložení informace 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 24
LDAP uložení informace l l l Každý atribut je popsán typem/syntaxí a hodnotou Může definovat jak se budou hodnoty chovat během operací prohledávání adresářů Syntax může být: bin, ces, cis, tel, dn, atd. l l l 14. 4. 2008 bin – binární informace ces – case exact string (directory string), při porovnávání rozlišuje malá/velká písmena tel – telefonní číslo, reprezentace jako řetězec, mezery jsou ignorovány dn – rozlišující jméno (distinguished name) Generalized time – rok, měsíc, den a čas reprezentovány jako tisknutelný řetězec Postal address – poštovní adresa s řádky oddělenými znakem ‘$’ Projektování distribuovaných systémů (72 stran) 25
Rozumné strukurální třídy dle RFC l Není třeba vymýšlet vlastní třídy Lépe je využít to, co je hotové a kombinovat Případně rozšiřovat existující třídy o vlastní atributy 14. 4. 2008 Projektování distribuovaných systémů (72 stran) l l 26
Obecné atributy LDAP Atribut, alias syntax popis common. Name, cn cis Obecné jméno položky John Smith Surname, sn cis Příjmení osoby Smith telephone. Number tel Telefonní číslo 123 -456 -789 organizational. Unit. N ame, ou cis Jméno organizace UWB owner dn DN osoby vlastnící položku organization, o cis Jméno organizace jpeg. Photo bin Foto v JPEG formátu cn=John Smith, o=UWB, c=cz UWB Smithova fotografie 14. 4. 2008 Projektování distribuovaných systémů (72 stran) příklad 27
LDAP uložení informace l Každá položka popisuje objekt (Class) l l Příklad položky: l l Osobu, server, zařízení, atd. Inet. Org. Person(cn, sn, Object. Class) Příklad atributů: l 14. 4. 2008 cn (cis), sn (cis), telephone. Number (tel), ou (cis), owner (dn), jpeg. Photo (bin) Projektování distribuovaných systémů (72 stran) 28
Identifikátory objektů l Globální OID l l 14. 4. 2008 Unikátní v celém světě ID globálních objektů přidělovány centrální autoritou (IANA) OID vychází ze záznamu tečkovou notací (čísla, jména) OID = 1. 3. 6. 1. 4. 1. x l x je přípona, kterou přiděluje IANA l ZČU má přiděleno číslo 11433 l Další podskupiny si organizace určuje sama Projektování distribuovaných systémů (72 stran) 29
Soubor informací o objektech l Záznamy – informace o objektech l l l 14. 4. 2008 Objektová třída – množina atributů Atributy jsou popsány vlastnostmi Mohou nabývat jednu nebo více hodnot Forma reprezentace dat (syntaxe) – RFC 2252 Definují sadu pravidel Atributy mají jedinečný prefix (tečková notace) Projektování distribuovaných systémů (72 stran) 30
Syntaxe některých typů Název OID Popis binary 1. 3. 6. 1. 4. 1. 1466. 115. 121. 1. 5 BER/DER boolean 1. 3. 6. 1. 4. 1. 1466. 115. 121. 1. 7 boolean hodnota distinguished. Name 1. 3. 6. 1. 4. 1. 1466. 115. 121. 1. 12 DN directory. String 1. 3. 6. 1. 4. 1. 1466. 115. 121. 1. 15 UTF-8 řetězec IAString 1. 3. 6. 1. 4. 1. 1466. 115. 121. 1. 26 ASCII řetězec Integer 1. 3. 6. 1. 4. 1. 1466. 115. 121. 1. 27 celé číslo Name and Optional 1. 3. 6. 1. 4. 1. 1466. 115. 121. 1. 34 DN plus UID Numeric String 1. 3. 6. 1. 4. 1. 1466. 115. 121. 1. 36 číselný řetězec OID 1. 3. 6. 1. 4. 1. 1466. 115. 121. 1. 38 object identifier 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 31
Pravidla shody Název OID Typ Popis object. Identifier. Match distinguished. Name. Match 2. 5. 13. 0 2. 5. 13. 1 shoda OID DN case. Ignore. Match 2. 5. 13. 2 shoda velikost a mezery nerozlišuje case. Ignore. Ordering. Match 2. 5. 13. 3 uspořádání velikost a mezery nerozlišuje case. Ignore. Substrings. Matc h 2. 5. 13. 4 uspořádání velikost a mezery nerozlišuje case. Exact. Match 2. 5. 13. 5 shoda velikost rozlišuje, mezery ne case. Exact. Ordering. Match 2. 5. 13. 6 uspořádání velikost rozlišuje, mezery ne case. Exact. Substrings. Match 2. 5. 13. 7 podřetězec velikost rozlišuje, mezery ne boolean. Match 14. 4. 2008 2. 5. 13 shoda boolean Projektování distribuovaných systémů (72 stran) 32
Aliasy 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 33
Atributy l Mají definován l l Typ hodnoty Povolené operace Definované také pomocí OID Mohou být l l 14. 4. 2008 Uživatelské – definované uživatelem Operační – obsahují systémové informace Projektování distribuovaných systémů (72 stran) 34
Definice atributu dle RFC 2252 Attribute. Type. Description = "(" whsp numericoid whsp ; Identifikátor Typu atributu [ "NAME" qdescrs ] ; Název používaný typem atributu [ "DESC" qdstring ] ; Popis [ "OBSOLETE" whsp ] [ "SUP" woid ] ; Odvození od jiného typu atributu [ "EQUALITY" woid ; Název pravidla shody pro shodu [ "ORDERING" woid ; Název pravidla shody pro porovnání [ "SUBSTR" woid ] ; Název pravidla shody pro podřetězec [ "SYNTAX" whsp noidlen whsp ] ; OID syntaxe [ "SINGLE-VALUE" whsp ] ; Standardně vícehodnotové [ "COLLECTIVE" whsp ] ; Standardně not collective [ "NO-USER-MODIFICATION" whsp ]; Standardně modifikovatelné uživatelem [ "USAGE" whsp Attribute. Usage ]; Standardně user. Applications whsp ")" 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 35
LDAP jména l DN skládá se ze sekvence relativních DN l l l cn=John Smith, ou=Austin, o=IBM, c=US Directory Information Tree (DIT) Vytváří se podle geografických nebo organizačních schémat Aliases: podobné stromům Aliases mohou odkazovat na uzly stromu, které nejsou listy 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 36
LDAP jména l Schema l l l Definuje povolené třídy objektů Definuje kde jsou uloženy Definuje jaké mají atributy (object. Class) Definuje které atributy jsou volitelné (object. Class) Definuje typ/syntaxi každého atributu (object. Class) LDAP schema musí být čitelné klientem 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 37
LDAP příklady jmen atribut alias Common. Name CN Locality. Name L Stateor. Province. Name ST Organization. Name O Organizational. Unit. Name OU Country. Name C Street. Address STREET domain. Component DC Userid UID 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 38
LDAP funkce a operace l Ověřování l l l Dotazování l l l Search - vyhledání Compare entry - porovnání Opravy l l l 14. 4. 2008 BIND/UNBIND – připojení/odpojení ABANDON – opuštění – zrušení operace Add an entry – přidání položky Delete an entry (pouze listy stromu, ne aliasy) – zrušení položky Modify an entry, Modify DN/RDN (jméno, relativní jméno) – modifikace položky nebo jména položky Projektování distribuovaných systémů (72 stran) 39
Komunikace klient/server l Klient vytváří relaci se serverem (BIND) l l l Klient provádí operace l l Podle DNS jména/IP adresy a portu Bezpečnost l Ověřování založené na ID uživatele a heslu l Anonymní připojení – implicitní práva přístupu l Podpora Kerbera a šifrování Read/Update/Search SELECT X, Y, Z FROM PART_OF_DIRECTORY Klient ukončuje relaci (UNBIND) Klient může relaci přerušit (ABANDON) 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 40
Operace BIND/UNBIND/ABANDON l Požadavek obsahuje verzi LDAP, jméno pod kterým se chce klient připojit, typ ověřování l l l Server odpovídá indikací stavu UNBIND: ukončuje relaci l l Jednoduché – anonymní, jednoduché nešifrované heslo Kerberos v 4 k LDAP serveru (krbv 42 LDAP) Kerberos v 4 k DSA serveru (krbv 42 DSA) Unbind. Request : : = [APPLICATION 2] NULL ABANDON: l 14. 4. 2008 Message. ID to abandon Projektování distribuovaných systémů (72 stran) 41
Operace vyhledávání a porovnávání l Požadavek zahrnuje l l l l l base. Object: an LDAPDN Scope: kolik úrovní stromu má být prohledáváno deref. Aliases: zpracování aliasů size. Limit: max počet vrácených položek time. Limit: max čas prohledávání attrs. Only: vrací typy atributů nebo také jejich hodnoty Filter: podmínky které mají být splněny při prohledávání Attributes: seznam atributů, ke kterým se hledá odpověď Čtení i výpis seznamu je realizován jako vyhledávání Porovnání: podobné vyhledávání, ale vrací true/false 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 42
Parametry vyhledávání l l Base – prohledávání podle DN (strom, podstrom) Size – maximální počet položek Attributes – seznam atributů, které se mají vrátit Attrsonly – l l l true – hodnoty/atributy False – pouze seznam atributů Scope – hloubka prohledávání Time – maximální doba prohledávání Search_filter – omezení prohledávání na specifické atributy nebo jejich hodnoty l 14. 4. 2008 “objectclass = *” “cn=novak*” Projektování distribuovaných systémů (72 stran) 43
Rozsah prohledávání l Base l l l One level l Omezeno pouze na základní objekt Informace o uživatelích Omezeno pouze na následující úroveň (potomky) Informace o členech organizace Subtree l 14. 4. 2008 Prohledání celého podstromu Projektování distribuovaných systémů (72 stran) 44
Filtrování, operátory filtrování l l l Vyhledají se objekty podle DN a rozsahu vyhledávání V dalším kroku je možné vytvořit podmnožinu podle zadaných kritérií filtrování Jednoduché operace l l 14. 4. 2008 Logické &, |, ! Relační l ~= - přibližně stejné l >= - větší nebo rovno l <= - menší nebo rovno l * - libovolné Projektování distribuovaných systémů (72 stran) 45
Filtrování, operátory filtrování l Příklady l l 14. 4. 2008 (object. Class=název objektu) (cn=Josef P*) (|(uid=novak)(uid=patek)) (&(|(uid=Petr)(uid=Pavel))(objectclass=person)) Projektování distribuovaných systémů (72 stran) 46
LDAP URL l l l l RFC 4516 ldap: //host: port/DN? atributy? scope? filter? extensions Host – jméno nebo adresa LDAP serveru Port – síťový port DN – jméno použité jako základ prohlrdávání Atributy – seznam atributů oddělených čárkou Scope – rozsah prohledávání (base, one, sub) Filter – filtr prohledávání (RFC 4515) – object. Class=* 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 47
LDAP URL l l ldap: //foo. bar. com/dc=bar, dc=com ldap: //argle. bargle. com/dc=bar, dc=com? ? sub? uid=barney ldap: //ldap. bedrock. com/dc=bar, dc=com? cn? sub? uid=barney ldap: //ldap. zcu. cz: 389/uid=ledvina, ou=Users, ou=rfc 2307, o=zcu, c=cz? ? base? (object. Class=*) Scope l l l 14. 4. 2008 Base One Sub Projektování distribuovaných systémů (72 stran) 48
Příklad výpisu Softerra LDAP Browser 2. 5 #---------------------------------------# This file has been generated on 04. 15. 2008 at 11: 33 from ldap. zcu. cz: 389 # by Softerra LDAP Browser 2. 5 (http: //www. ldapbrowser. com) #---------------------------------------version: 1 dn: uid=ledvina, ou=Users, ou=rfc 2307, o=zcu, c=cz object. Class: person object. Class: organizational. Person object. Class: inet. Org. Person object. Class: posix. Account object. Class: pleiades. Person 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 49
Příklad výpisu Softerra LDAP Browser 2. 5 uid: ledvina uid. Number: 1330 gid. Number: 100 given. Name: Jiri login. Shell: /bin/tcsh home. Directory: /users/l/ledvina/home mail: ledvina@kiv. zcu. cz cn: Jiri LEDVINA sn: LEDVINA 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 50
Příklad výpisu Softerra LDAP Browser 2. 5 memberof: cn=acl$linux_kiv, ou=Groups, ou=rfc 2307, o=zcu, c=cz memberof: cn=acl$linux_public, ou=Groups, ou=rfc 2307, o=zcu, c=cz memberof: cn=acl$tacacs, ou=Groups, ou=rfc 2307, o=zcu, c=cz memberof: cn=dbadmin, ou=Groups, ou=rfc 2307, o=zcu, c=cz memberof: cn=staff, ou=Groups, ou=rfc 2307, o=zcu, c=cz memberof: cn=users, ou=Groups, ou=rfc 2307, o=zcu, c=cz memberof: cn=fav, ou=Groups, ou=rfc 2307, o=zcu, c=cz memberof: cn=kiv, ou=Groups, ou=rfc 2307, o=zcu, c=cz memberof: cn=teachers, ou=Groups, ou=rfc 2307, o=zcu, c=cz user. Password: {crypt}* 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 51
Operace ADD/MODIFY/DELETE l Operace ADD l l l Operace MODIFY l l l Používá se k přidání, rušení a modifikaci atributů Požadavek obsahuje l Object: LDAPDN l Seznam modifikací (atomické provedení) § Add, Delete, Replace Operace DELETE l l Entry: LDAPDN Seznam artributů a jejich hodnot (nebo množina hodnot) Object: LDAPDN Operace MODIFY RDN: LDAPDN, new. RDN, DEL_FLAG 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 52
LDAP zprávy l LDAPMessage (Message. ID unique) 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 53
LDAP zprávy l l LDAPString : : = OCTET STRING LDAPDN : : = LDAPString Relative. LDAPDN : : = LDAPString Attribute. Value. Assertion : : = Sequence { attribute. Type attribute. Value } l l 14. 4. 2008 attribute. Value, attribute. Value attribute. Type : : = LDAPString attribute. Value : : = OCTET STRING Projektování distribuovaných systémů (72 stran) 54
LDAP zprávy l l LDAP Result Chyby l 14. 4. 2008 Truncated DIT RDN sequence is sent l no. Such. Object l alias. Problem l invalid. DNSyntax l is. Leaf etc. Projektování distribuovaných systémů (72 stran) 55
Bezpečnost LDAP l Současná verze LDAP podporuje l l l 14. 4. 2008 Heslo v textové podobě Ověřování KERBEROS v 4 SASL – Simple Authentication and Security Layer (RFC 4422) l Prostředek pro ověřování a zajištění bezpečných dat v Internetu l Odstranění ověřovacích mechanizmů z aplikací l Využití libovolného ověřovacího mechanizmu podporovaného SASL v libovolné aplikaci l Nabízí též data security layer (integrita a důvěrnost dat) Projektování distribuovaných systémů (72 stran) 56
Mechanizmus SASL l l Protokol pracující s výzvami a odpověďmi Definuje následující mechanizmy: l l l l l 14. 4. 2008 EXTERNAL - ověřování zahrnuto implicitně (IPsec, TLS) ANONYMOUS – neautorizovaný přístup PLAIN – jednoduché ověřování prostým textem – heslem OTP – jednorázové heslo – nahrazen SKEY – mechanizmus SKEY – rekurzivní generování hesla CRAM-MD 5 – jednoduchá výměna výzva-odpověď založená na HMACMD 5 DIGEST-MD 5 - jednoduchá výměna výzva-odpověď pomocí HTTP založená na MD 5, podpora bezpečného přenosu dat NTLM – ověřovací mechanizmus NT LAN Manager GSSAPI – ověřování Kerberos V prostřednictvím GSSAPI, podpora bezpečného přenosu dat. Projektování distribuovaných systémů (72 stran) 57
Mechanizmus GSSAPI l l l Generic Security Services Application Program Interface API pro přístup k bezpečnostním službám IETF standard Poskytuje 45 knihovních volání Podpora C, Java, C# Předpokládá architekturu klient/server 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 58
Bezpečnost LDAP l l l Bezpečnost založená na modelu připojování (BIND) LDAPv 1 - heslo LDAPv 1, 2, 3 – Kerberos LDAPv 3 - SASL Navrhováno TLS (Transport Layer Security) l 14. 4. 2008 Založeno na SSL v 3 (Netscape) Projektování distribuovaných systémů (72 stran) 59
Bezpečnost LDAP l l Bez ověřování Základní ověřování l l l DN a heslo Otevřený text nebo kódování BASE 64 SASL (RFC 4422) l l l 14. 4. 2008 Parametry: DN, mechanism, credentials Zajišťuje vzájemné ověřování Případné dohadování o šifrování dat ldap_sasl_bind() (ver 3 call) Ldap: //<ldap_server>/? supportedsaslmechanisms Projektování distribuovaných systémů (72 stran) 60
Bezpečnost LDAP l LDAP a SASL s SSL/TLS 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 61
Bezpečnost LDAP l Ověřování SSL/TLS 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 62
LDAP protokol (klient/server) l Klient aktivuje komunikaci se serverem l l Klient posílá serveru požadavek Server požadavek zpracuje Server vrací odpověď nebo chybu Server zpracovává požadavky asynchronně 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 63
Spolupráce klient/server 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 64
Mapování na transportní služby l l LDAP používá spolehlivý přenos dat (TCP) TCP l l l LDAPMessage PDU mapována na TCP stream LDAP naslouchá na portu 389 Connection Oriented Transport Service (COTS) l 14. 4. 2008 LDAP PDU mapováno přímo na T-Data Projektování distribuovaných systémů (72 stran) 65
Kódování protokolových prvků l l l Pro kódování zpráv se používá BER (Basic Encoding Rules) BER definováno v Abstract Syntax Notation One (ASN. 1) BER má velkou režii l 14. 4. 2008 Omezení na zvýšení efektivity l Pevná délka kódovaných položek l Bitové řetězce i řetězce oktetů jsou kódovány pouze v základní podobě. Projektování distribuovaných systémů (72 stran) 66
Implementace LDAP l C Library API l l l LDAPv 2 - RFC 1823 ‘The LDAP API’ LDAPv 3 – RFC Java JNDI LDAP v 3 používá UTF-8 kódování Existuje brána LDAP HTTP Existuje brána LDAP X. 500 (ldapd) 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 67
LDAP v 2 l l l RFC 1777: LDAP v 1 RFC 1778: The String Representation of Standard Attribute Syntaxes RFC 1779: A String Representation of Distinguished Names RFC 1959: An LDAP URL Format RFC 1960: A String Representation of LDAP Search Filters 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 68
Verze 2 versus Verze 3 l Referrals l l Bezpečnost l l Rozšířené ověřování s využitím Simple Authentication and Security Layer (SASL) Internacionalizace l l Server který nemá k dispozici požadovaná data může odkázat klienta na jiný server. Podpora národních abeced – kódování UTF-8. Rozšiřitelnost l 14. 4. 2008 Nové typy objektů a operací mohou být definovány dynamicky a schémata publikována standardním způsobem Projektování distribuovaných systémů (72 stran) 69
Implementace l l l l PHP (podpora Apache) Java JNDI (Java Naming Directory Interface) Open. LDAP – server, klient, API Tiny. LDAP Softerra LDAP browser Luma LDAP browser LDAP Explorer Tool GAWOR LDAP browser/editor 14. 4. 2008 Projektování distribuovaných systémů (72 stran) 70
- Slides: 70