25
LDAP LDAP Bezpečnosť informačných systémov Bezpečnosť informačných systémov Pavol Gurbaľ Pavol Gurbaľ 4. 4. r r očník očník Šk. rok: 2003 Šk. rok: 2003 / / 2004 2004

LDAP Bezpečnosť informačných systémov

  • Upload
    sahkyo

  • View
    54

  • Download
    5

Embed Size (px)

DESCRIPTION

LDAP Bezpečnosť informačných systémov. Pavol Gurbaľ 4. r očník Šk. rok: 2003 / 2004. Úvod. Hist ória Adresárové služby LDAP Bezpečnosť LDAP. V posledných pár rokoch nastal spolu s rozmachom distribuova-ných systémov masívny nárast sieťového programovania - PowerPoint PPT Presentation

Citation preview

Page 1: LDAP Bezpečnosť informačných systémov

LDAPLDAPBezpečnosť informačných systémovBezpečnosť informačných systémov

Pavol GurbaľPavol Gurbaľ

4. 4. rročníkočník

Šk. rok: 2003Šk. rok: 2003//20042004

Page 2: LDAP Bezpečnosť informačných systémov

ÚvodÚvod

HistHistóriaória Adresárové službyAdresárové služby LDAPLDAP Bezpečnosť LDAPBezpečnosť LDAP

Page 3: LDAP Bezpečnosť informačných systémov

V posledných pár rokoch nastal spolu s rozmachom V posledných pár rokoch nastal spolu s rozmachom distribuova-ných systémov masívny nárast sieťového distribuova-ných systémov masívny nárast sieťového programovaniaprogramovania

Výsledkom tohto nárastu je prudký nárast klientov aj serverov Výsledkom tohto nárastu je prudký nárast klientov aj serverov pripojených do sietepripojených do siete

So zvyšovaním počtu ľudí a prostriedkov prístupných zo siete So zvyšovaním počtu ľudí a prostriedkov prístupných zo siete sa objavilo niekoľko nových problémov:sa objavilo niekoľko nových problémov:

Pre konečných používateľov je často obtiažne lokalizovať služby a Pre konečných používateľov je často obtiažne lokalizovať služby a prostriedky a takisto získať informácie o nových službách a zdrojoch prostriedky a takisto získať informácie o nových službách a zdrojoch nainštalovaných na sietinainštalovaných na sieti

Aplikácie majú problémy so zdieľaním informácií o službách, Aplikácie majú problémy so zdieľaním informácií o službách, prostriedkoch a používateľoch, pretože tieto zdroje sú často uložené v prostriedkoch a používateľoch, pretože tieto zdroje sú často uložené v aplikačne špecifických adresároch, lokáciáchaplikačne špecifických adresároch, lokáciách

Toto prostredie je ťažké udržiavať, pretože používatelia pristupujú k Toto prostredie je ťažké udržiavať, pretože používatelia pristupujú k prostriedkom z viacerých platforiem. Takisto bezpečnosť musí byť prostriedkom z viacerých platforiem. Takisto bezpečnosť musí byť spravovaná na viacerých miestach používaním rozdielnych nástrojov a spravovaná na viacerých miestach používaním rozdielnych nástrojov a aplikáciíaplikácií

Page 4: LDAP Bezpečnosť informačných systémov

Z týchto dôvodov sa stávajú adresárové služby dôležitým Z týchto dôvodov sa stávajú adresárové služby dôležitým aspektom programového prostrediaaspektom programového prostredia

Adresárové službyAdresárové služby sústreďujú informácie popisujúce sústreďujú informácie popisujúce používateľov, aplikácie, súborové prostriedky a prostriedky používateľov, aplikácie, súborové prostriedky a prostriedky pre tlač, riadenie prístupu, a ďalšie zdroje do spoločného pre tlač, riadenie prístupu, a ďalšie zdroje do spoločného adresáraadresára, ktorý je prístupný pre všetkých používateľov a , ktorý je prístupný pre všetkých používateľov a aplikácie na sietiaplikácie na sieti

Analógia zlatých stránok – umožňuje pridávať, odoberať Analógia zlatých stránok – umožňuje pridávať, odoberať informácie, vyhľadávať na základe vzorov, takisto informácie, vyhľadávať na základe vzorov, takisto definovať prístupové módy k informáciámdefinovať prístupové módy k informáciám

Adresárové služby zlepšujú funkčnosť, pretože adresár nie Adresárové služby zlepšujú funkčnosť, pretože adresár nie je závislý na žiadnej konkrétnej aplikácii. Môžu ho je závislý na žiadnej konkrétnej aplikácii. Môžu ho využívať všetky directory-enabled aplikácie. Toto využívať všetky directory-enabled aplikácie. Toto eliminuje izolovanie informácií spôsobené aplikáciami, eliminuje izolovanie informácií spôsobené aplikáciami, ktoré implementujú svoje vlastné miesta pre uloženie ktoré implementujú svoje vlastné miesta pre uloženie spravovaných informáciíspravovaných informácií

Page 5: LDAP Bezpečnosť informačných systémov

Adresárové služby takisto veľmi uľahčujú administráciu, Adresárové služby takisto veľmi uľahčujú administráciu, pretože informácie sú spravované centrálne. Akékoľvek pretože informácie sú spravované centrálne. Akékoľvek pridanie alebo zmeny informácií vykonané v adresari sú pridanie alebo zmeny informácií vykonané v adresari sú okamžite prístupné všetkým používateľom a aplikáciám. okamžite prístupné všetkým používateľom a aplikáciám.

Napr. miesto toho, aby sme menili access control list pre Napr. miesto toho, aby sme menili access control list pre daný zdroj v každom systéme, ktorý k nemu pristupuje, táto daný zdroj v každom systéme, ktorý k nemu pristupuje, táto informácia sa zmení iba raz a každá aplikácia použije túto informácia sa zmení iba raz a každá aplikácia použije túto informáciu na riadenie prístupu k tomuto zdrojuinformáciu na riadenie prístupu k tomuto zdroju

Page 6: LDAP Bezpečnosť informačných systémov

HistóriaHistória V roku 1987 bolo uznané odporúčanie pre adresárové služby V roku 1987 bolo uznané odporúčanie pre adresárové služby

X.500 vypracované Medzinárodnou Telekomunikačnou X.500 vypracované Medzinárodnou Telekomunikačnou Úniou (ITU).Úniou (ITU).

Toto odporúčanie obsahovalo špecifikáciu pre Directory Toto odporúčanie obsahovalo špecifikáciu pre Directory Access Protocol (DAP), ktorý definoval protokol na Access Protocol (DAP), ktorý definoval protokol na komunikáciu medzi adresárom a používateľom. DAP bol komunikáciu medzi adresárom a používateľom. DAP bol založený na OSI sieťovom modeli.založený na OSI sieťovom modeli.

DAP sa ukázal ako príliš zložitý, aj kvôli použitiu OSI DAP sa ukázal ako príliš zložitý, aj kvôli použitiu OSI modelu.modelu.

University of Michigan spolu s Internet Engineering Task University of Michigan spolu s Internet Engineering Task Force (IETF) vyvinuli Leightweight DAPForce (IETF) vyvinuli Leightweight DAP

Page 7: LDAP Bezpečnosť informačných systémov

Tento je založený na TCPTento je založený na TCP//IP modeli a je preto aplikovateľný v IP modeli a je preto aplikovateľný v LAN i WAN sieťach, rovnako i cez Internet LAN i WAN sieťach, rovnako i cez Internet

Originál LDAP je definovaný v RFC 1777 z roku 1995Originál LDAP je definovaný v RFC 1777 z roku 1995 RFC 2251 z roku 1997 definuje LDAPv3RFC 2251 z roku 1997 definuje LDAPv3 LDAP získal podporu rôznych platforiem, rovnako ako LDAP získal podporu rôznych platforiem, rovnako ako

viacerých jazykov. viacerých jazykov. CC//C++ má podporu LDAP, rovnako aj PERL, podpora v Jave C++ má podporu LDAP, rovnako aj PERL, podpora v Jave

je zabezpečená cez sunovské Java Naming and Directory je zabezpečená cez sunovské Java Naming and Directory Interface (JNDI).Interface (JNDI).

Windows má podporu LDAP cez Active Directory Services Windows má podporu LDAP cez Active Directory Services Interface a ďalšie third-party ActiveX komponentyInterface a ďalšie third-party ActiveX komponenty

Page 8: LDAP Bezpečnosť informačných systémov

Adresárová štruktúraAdresárová štruktúra Adresár je špecializovaná databáza navrhnutá na rýchly a Adresár je špecializovaná databáza navrhnutá na rýchly a

bezpečný prístup k informáciámbezpečný prístup k informáciám Je optimalizovaná pre rýchle čítanieJe optimalizovaná pre rýchle čítanie Informácie sú organizované ako súbor jednotlivých Informácie sú organizované ako súbor jednotlivých

záznamov, ktoré obsahujú informácie o danom zdrojizáznamov, ktoré obsahujú informácie o danom zdroji Na zabezpečenie maximálne efektívneho prístupu k týmto Na zabezpečenie maximálne efektívneho prístupu k týmto

záznamom, sú tieto usporiadané v hierarchii označovanej záznamom, sú tieto usporiadané v hierarchii označovanej ako Directory Information Tree (DIT)ako Directory Information Tree (DIT)

Page 9: LDAP Bezpečnosť informačných systémov

Na obrázku je príklad na DIT:Na obrázku je príklad na DIT:c = USc = US

o = Alpine Airwayso = Alpine Airways

ou = Maintenance ou = Reservations ou = Financeou = Maintenance ou = Reservations ou = Finance

ou = Planes ou = Terminals ou = Central Repairou = Planes ou = Terminals ou = Central Repair

Koreň stromu je krajina (C), nasleduje organizácia (O).Koreň stromu je krajina (C), nasleduje organizácia (O).Pod koreňom nasledujú zvyčajne organization units (OU)Pod koreňom nasledujú zvyčajne organization units (OU)Tieto objekty sú označované ako Tieto objekty sú označované ako container objectscontainer objects

Adresárové záznamy, ktoré obsahujú samotné informácie sa Adresárové záznamy, ktoré obsahujú samotné informácie sa nazývajú nazývajú listylisty

Cesta do každého záznamu v strome je označovaná ako Cesta do každého záznamu v strome je označovaná ako distinguished namedistinguished name (DN). Každé DN musí byť v strome (DN). Každé DN musí byť v strome unikátneunikátne

Page 10: LDAP Bezpečnosť informačných systémov

Položky adresáraPoložky adresára Položky adresára obsahujú dvojice menoPoložky adresára obsahujú dvojice meno//hodnota, hodnota,

nazývané nazývané atribútyatribúty.. Každá položka musí mať Každá položka musí mať objectclassobjectclass atribút – určuje, ktoré atribút – určuje, ktoré

atribúty sú dovolené pre danú položku a ktoré atribúty mať atribúty sú dovolené pre danú položku a ktoré atribúty mať môžemôže

cn=John Smith,o=Alpine Airlines,c=US cn=John Smith,o=Alpine Airlines,c=US

cn=John Smith cn=John Smith cn=John_Smith cn=John_Smith sn=Smith sn=Smith objectclass=top objectclass=top objectclass=person objectclass=person objectclass=salesPerson objectclass=salesPerson l=Chicago l=Chicago title=Senior Sales Manager title=Senior Sales Manager ou=Finance ou=Finance ou=Marketing ou=Marketing [email protected] [email protected] telephonenumber=312-258-8655 telephonenumber=312-258-8655 roomnumber=117 roomnumber=117 uid=jsmithuid=jsmith

Page 11: LDAP Bezpečnosť informačných systémov

Bezpečnosť LDAPBezpečnosť LDAP

Keďže adresár je určený na zdieľanie informácií pre Keďže adresár je určený na zdieľanie informácií pre viacero aplikácií, musí byť zabezpečený pred viacero aplikácií, musí byť zabezpečený pred neautorizovaným prístupom k citlivým dátamneautorizovaným prístupom k citlivým dátam

Bezpečnosť je v LDAP zabezpečovaná pomocou Bezpečnosť je v LDAP zabezpečovaná pomocou autentifikácie a riadenia prístupu – autorizácie autentifikácie a riadenia prístupu – autorizácie

Page 12: LDAP Bezpečnosť informačných systémov

AutorizáciaAutorizácia Autorizácia sa deje na základe Access Control List-u Autorizácia sa deje na základe Access Control List-u

(ACL)(ACL) V ACL sú nastavené prístupové práva používateľov k V ACL sú nastavené prístupové práva používateľov k

adresáru alebo jeho častiam a jednotlivým záznamom na adresáru alebo jeho častiam a jednotlivým záznamom na základe používateľovej DN alebo príslušnosti ku skupinezáklade používateľovej DN alebo príslušnosti ku skupine

ACL kontrolujú prístup až po úroveň atribútovACL kontrolujú prístup až po úroveň atribútov Je možné povoliť prístup užívateľovi do jeho vlastného DN Je možné povoliť prístup užívateľovi do jeho vlastného DN

a meniť jeho atribúty – aj také, ku ktorým ostatní a meniť jeho atribúty – aj také, ku ktorým ostatní používatelia nemajú prístup (používatelia nemajú prístup (usserpasswordusserpassword))

Zvyčajne je umožnený defaultný prístup do adresára, a Zvyčajne je umožnený defaultný prístup do adresára, a ACL sú používané na anulovanie tohto prístupu.ACL sú používané na anulovanie tohto prístupu.

Napr. servery Netscape nemajú defaultný prístup, teda ak Napr. servery Netscape nemajú defaultný prístup, teda ak nie je definovaný žiaden ACL, do adresára má prístup len nie je definovaný žiaden ACL, do adresára má prístup len správcasprávca

Page 13: LDAP Bezpečnosť informačných systémov

AutentifikáciaAutentifikácia

Používateľ nadviaže spojenie s adresárovým serverom Používateľ nadviaže spojenie s adresárovým serverom pomocou operácie pomocou operácie bindbind

Časť informácie potrebnej na vykonanie tejto operácie je Časť informácie potrebnej na vykonanie tejto operácie je používateľova identita a heslopoužívateľova identita a heslo

Pri LDAPPri LDAP v2 je bind povinnv2 je bind povinný, pri LDAP v3 je voliteľný – ý, pri LDAP v3 je voliteľný – ak sa nevykoná bind, zaobchádza sa s klientom ako s ak sa nevykoná bind, zaobchádza sa s klientom ako s anonymous anonymous

Sú tri základné mechanizmy pre spojenie:Sú tri základné mechanizmy pre spojenie:

anonymousanonymous simplesimple securesecure

Page 14: LDAP Bezpečnosť informačných systémov

Anonymous bindAnonymous bind – najjednoduchší. Používateľovi je dovolený – najjednoduchší. Používateľovi je dovolený prístup do adresára bez zadania identity. Ak je povolený prístup do adresára bez zadania identity. Ak je povolený anonymný prístup k niektorým záznamom, ostatné musia byť anonymný prístup k niektorým záznamom, ostatné musia byť chránené pred prístupom neznámeho používateľa.chránené pred prístupom neznámeho používateľa.

Simple bindSimple bind – používateľ zadá DN pre záznam v adresári a – používateľ zadá DN pre záznam v adresári a takisto heslo pre tento záznam. Daný záznam musí obsahovať takisto heslo pre tento záznam. Daný záznam musí obsahovať atribút atribút usserpasswordusserpassword, ktorý sa porovnáva pri zadaní hesla., ktorý sa porovnáva pri zadaní hesla.

Ak je spojenie úspešné, užívateľ dostane identitu na danom DN Ak je spojenie úspešné, užívateľ dostane identitu na danom DN platnú po dobu trvania spojenia a prístup k záznamom na platnú po dobu trvania spojenia a prístup k záznamom na základe tejto identity.základe tejto identity.

Heslo sa pri tomto spojení posiela cez sieť ako plain text.Heslo sa pri tomto spojení posiela cez sieť ako plain text.

Pokiaľ nie je autentifikácia a šifrovanie zabezpečované na Pokiaľ nie je autentifikácia a šifrovanie zabezpečované na nižších vrstvách, použitie tohto typu spojenia sa neodporúča. nižších vrstvách, použitie tohto typu spojenia sa neodporúča.

Simple bind sa používa aj pri anonymnom spojení – je to Simple bind sa používa aj pri anonymnom spojení – je to simple bind so zero-length heslom a DNsimple bind so zero-length heslom a DN

Page 15: LDAP Bezpečnosť informačných systémov

Secure bindSecure bind – niektoré adresárové servery implementujú – niektoré adresárové servery implementujú autentifikačné metódy (Kerberos), alebo autentifikáciu na autentifikačné metódy (Kerberos), alebo autentifikáciu na základe certifikátov (SSL)základe certifikátov (SSL)..

LDAPS (HTTP =LDAPS (HTTP =>> HTTPS) HTTPS) neoficiálny protokol, na autentifikáciu používa SSLneoficiálny protokol, na autentifikáciu používa SSL

Page 16: LDAP Bezpečnosť informačných systémov

IETF vychytaním chýb z SSL vytvorila Transport Layer IETF vychytaním chýb z SSL vytvorila Transport Layer Security (TLS) =Security (TLS) =>> RFC 2246 RFC 2246

TLS podporuje kryptovanie a autentifikáciu na základe TLS podporuje kryptovanie a autentifikáciu na základe certifikátovcertifikátov

V najjednoduchšej forme, TLS umožňuje overenie identity V najjednoduchšej forme, TLS umožňuje overenie identity servera a ochranu dát počas prenosu =servera a ochranu dát počas prenosu =>> umožňuje prenos aj umožňuje prenos aj plaintext hesiel cez sieťplaintext hesiel cez sieť

Ten istý mechanizmus môže byť použitý na overenie identity Ten istý mechanizmus môže byť použitý na overenie identity klienta voči serveruklienta voči serveru

Page 17: LDAP Bezpečnosť informačných systémov

Simple Authentification and Security Layer (SASL) a jeho Simple Authentification and Security Layer (SASL) a jeho autentifikačné mechanizmy (DIGEST-MD5, CRAM-MD5, a autentifikačné mechanizmy (DIGEST-MD5, CRAM-MD5, a pod.)pod.)

Pomocou SASL je možné nadviazať spojenie na Pomocou SASL je možné nadviazať spojenie na bezpečnostnej vrstve (security layer)bezpečnostnej vrstve (security layer)

Po nadviazaní spojenia na bezpečnostnej vrstve, je použité na Po nadviazaní spojenia na bezpečnostnej vrstve, je použité na všetky prenášané dáta cez toto spojenievšetky prenášané dáta cez toto spojenie

Page 18: LDAP Bezpečnosť informačných systémov

PríkladyPríklady Príklady na spojenie s LDAP serverom pomocou JNDI:Príklady na spojenie s LDAP serverom pomocou JNDI: Nastavujú sa tri premenné, ktoré určujú, o aký typ spojenia pôjde:Nastavujú sa tri premenné, ktoré určujú, o aký typ spojenia pôjde:

Context.SECURITY_AUTHENTICATION ("java.naming.security.authentication")Context.SECURITY_AUTHENTICATION ("java.naming.security.authentication")

Určuje autentifikačný mechanizmus. Pre Sun LDAP je to Určuje autentifikačný mechanizmus. Pre Sun LDAP je to “none““none“, , “simple““simple“ a a sasl_mech, sasl_mech, kde kde sasl_mechsasl_mech je medzerami oddelený zoznam SASL mechanizmov je medzerami oddelený zoznam SASL mechanizmov

Context.SECURITY_Context.SECURITY_PRINCIPALPRINCIPAL("java.naming.security.("java.naming.security.principalprincipal")")

Špecifikuje meno užívateľaŠpecifikuje meno užívateľa//programu, ktorý sa snaží o autentifikáciu. Jeho hodnota závisí na programu, ktorý sa snaží o autentifikáciu. Jeho hodnota závisí na Context.SECURITY_AUTHENTICATIONContext.SECURITY_AUTHENTICATION

Context.SECURITY_Context.SECURITY_CREDENTIALSCREDENTIALS("java.naming.security.("java.naming.security.credentialscredentials")")

Špecifikuje poverenia (credentials) daného užívateľaŠpecifikuje poverenia (credentials) daného užívateľa//programu závisiace od hodnoty parametra programu závisiace od hodnoty parametra Context.SECURITY_AUTHENTICATIONContext.SECURITY_AUTHENTICATION

Page 19: LDAP Bezpečnosť informačných systémov

Anonymous bindAnonymous bind//Set up the environment for creating the initial context //Set up the environment for creating the initial context

Hashtable env = new Hashtable(); Hashtable env = new Hashtable();

env.put(Context.INITIAL_CONTEXT_FACTORY,env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");"com.sun.jndi.ldap.LdapCtxFactory");

env.put(Context.PROVIDER_URL, "ldap://localhost:389/o=JNDITutorial"); env.put(Context.PROVIDER_URL, "ldap://localhost:389/o=JNDITutorial");

// Use anonymous authentication // Use anonymous authentication

env.put(Context.SECURITY_AUTHENTICATION, "none"); env.put(Context.SECURITY_AUTHENTICATION, "none");

// Create the initial context // Create the initial context

DirContext ctx = new InitialDirContext(env); DirContext ctx = new InitialDirContext(env);

// ... do something useful with ctx// ... do something useful with ctx

Page 20: LDAP Bezpečnosť informačných systémov

Simple bindSimple bind// Set up the environment for creating the initial context // Set up the environment for creating the initial context Hashtable env = new Hashtable(); Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY, env.put(Context.INITIAL_CONTEXT_FACTORY,

"com.sun.jndi.ldap.LdapCtxFactory"); "com.sun.jndi.ldap.LdapCtxFactory"); env.put(Context.PROVIDER_URL, env.put(Context.PROVIDER_URL,

"ldap://localhost:389/o=JNDITutorial"); "ldap://localhost:389/o=JNDITutorial");

// Authenticate as S. User and password// Authenticate as S. User and password "mysecret„"mysecret„ env.put(Context.SECURITY_AUTHENTICATION, "simple"); env.put(Context.SECURITY_AUTHENTICATION, "simple"); env.put(Context.SECURITY_PRINCIPAL, "cn=S. User, env.put(Context.SECURITY_PRINCIPAL, "cn=S. User,

ou=NewHires, o=JNDITutorial"); ou=NewHires, o=JNDITutorial"); env.put(Context.SECURITY_CREDENTIALS, "mysecret"); env.put(Context.SECURITY_CREDENTIALS, "mysecret");

// Create the initial context // Create the initial context DirContext ctx = new InitialDirContext(env); DirContext ctx = new InitialDirContext(env);

// ... do something useful with ctx // ... do something useful with ctx

Page 21: LDAP Bezpečnosť informačných systémov

Secure bindSecure bind LDAP v3 používa SASL na podporu LDAP v3 používa SASL na podporu pluggablepluggable autentifikácie autentifikácie Klient a server môžu vyjednávať o spôsobe autentifikácieKlient a server môžu vyjednávať o spôsobe autentifikácie Ako zistiť, ktoré mechanizmy sú podporované?Ako zistiť, ktoré mechanizmy sú podporované?

// Create initial context // Create initial context

DirContext ctx = new InitialDirContext(); DirContext ctx = new InitialDirContext();

// Read supportedSASLMechanisms from root DSE // Read supportedSASLMechanisms from root DSE

Attributes attrs = ctx.getAttributes( "ldap://localhost:389", Attributes attrs = ctx.getAttributes( "ldap://localhost:389",

new String[]new String[]{"supportedSASLMechanisms"}); {"supportedSASLMechanisms"});

System.out.println(attrs); System.out.println(attrs);

// Close the context when we're done // Close the context when we're done

ctx.close(); ctx.close();

Page 22: LDAP Bezpečnosť informačných systémov

Secure bind IISecure bind IIHashtable env = new Hashtable();Hashtable env = new Hashtable();env.put(Context.INITIAL_CONTEXT_FACTORY, env.put(Context.INITIAL_CONTEXT_FACTORY,

"com.sun.jndi.ldap.LdapCtxFactory"); "com.sun.jndi.ldap.LdapCtxFactory"); env.put(Context.PROVIDER_URL, env.put(Context.PROVIDER_URL,

"ldap://localhost:389/o=JNDITutorial"); "ldap://localhost:389/o=JNDITutorial");

// Authenticate as C. User and password "mysecret" // Authenticate as C. User and password "mysecret" env.put(Context.SECURITY_AUTHENTICATION, "DIGEST-MD5"); env.put(Context.SECURITY_AUTHENTICATION, "DIGEST-MD5"); env.put(Context.SECURITY_PRINCIPAL, "dn:cn=C. User, env.put(Context.SECURITY_PRINCIPAL, "dn:cn=C. User,

ou=NewHires, ou=NewHires, o=JNDITutorial"); o=JNDITutorial");

env.put(Context.SECURITY_CREDENTIALS, "mysecret"); env.put(Context.SECURITY_CREDENTIALS, "mysecret");

// Create the initial context // Create the initial context DirContext ctx = new InitialDirContext(env); DirContext ctx = new InitialDirContext(env);

// ... do something useful with ctx // ... do something useful with ctx

Page 23: LDAP Bezpečnosť informačných systémov

Bezpečnostné hrozby pre LDAPBezpečnostné hrozby pre LDAP1.1. Neautorizovaný prístup k dátam cez operácie na Neautorizovaný prístup k dátam cez operácie na

spracovanie dátspracovanie dát2.2. Neautorizovaný prístup k znovu použiteľnej Neautorizovaný prístup k znovu použiteľnej

autentifikačnej informácii klienta monitorovaním prístupuautentifikačnej informácii klienta monitorovaním prístupu3.3. Neautorizovaný prístup k dátam monitorovaním prístupuNeautorizovaný prístup k dátam monitorovaním prístupu4.4. Neautorizované modifikovanie dátNeautorizované modifikovanie dát5.5. Neautorizované modifikovanie konfigurácieNeautorizované modifikovanie konfigurácie6.6. Neautorizované alebo nadmerné používanie zdrojov (DoS Neautorizované alebo nadmerné používanie zdrojov (DoS

attack)attack)7.7. Spoofing adresára: oklamanie klienta, aby veril, že Spoofing adresára: oklamanie klienta, aby veril, že

informácie prichádzajú z adresára – modifikovanie dát informácie prichádzajú z adresára – modifikovanie dát počas prenosu, prípadne presmerovanie spojenia klientapočas prenosu, prípadne presmerovanie spojenia klienta

1,4,5,6 – “záškodnícky“ klient1,4,5,6 – “záškodnícky“ klient2,3,7 – záškodník na ceste medzi klientom a serverom, alebo 2,3,7 – záškodník na ceste medzi klientom a serverom, alebo

vystupujúci ako servervystupujúci ako server

Page 24: LDAP Bezpečnosť informačných systémov

Ochrana LDAPOchrana LDAPLDAP protokol sa chráni nasledujúcimi technikami:LDAP protokol sa chráni nasledujúcimi technikami:

1.1. Autentifikácia klienta pomocou SASL mechanizmov, Autentifikácia klienta pomocou SASL mechanizmov, podporená TLS výmenou certifikátovpodporená TLS výmenou certifikátov

2.2. Autorizácia klienta pomocou riadenia prístupu na základe Autorizácia klienta pomocou riadenia prístupu na základe jeho autentifikovanej identityjeho autentifikovanej identity

3.3. Ochrana integrity dát pomocou TLS protokolu alebo SASL Ochrana integrity dát pomocou TLS protokolu alebo SASL data-integrity mechanizmovdata-integrity mechanizmov

4.4. Ochrana pred monitorovaním pomocou TLS protokolu Ochrana pred monitorovaním pomocou TLS protokolu alebo SASL data-encrypting mechanizmovalebo SASL data-encrypting mechanizmov

5.5. Obmedzenie prostriedkov pomocou obmedzení Obmedzenie prostriedkov pomocou obmedzení administrátora administrátora

6.6. Autentifikácia servera pomocou TLS protokolu alebo SASL Autentifikácia servera pomocou TLS protokolu alebo SASL mechanizmovmechanizmov

Page 25: LDAP Bezpečnosť informačných systémov

LiteratúraLiteratúra[1] [1] Directory Sevices Overview Directory Sevices Overview

http://support.sas.com/rnd/itech/ldap/index.htmlhttp://support.sas.com/rnd/itech/ldap/index.html[2] [2] LDAP securityLDAP security

http://http://www.skills 1st.co.uk/papers/afindlay.htmlwww.skills 1st.co.uk/papers/afindlay.html[[33] ] JNDI tutorialJNDI tutorial

http://http://java.sun.comjava.sun.com/products/jndi/tutorial/ldap/index.html/products/jndi/tutorial/ldap/index.html[[44] ] Security issues with LDAP connectionsSecurity issues with LDAP connections

http://search.cpan.org/~gbarr/perl-ldaphttp://search.cpan.org/~gbarr/perl-ldap[[55] Wahl, M., Howes, T. and S. Kille, ] Wahl, M., Howes, T. and S. Kille, "Lightweight Directory Access Protocol (v3)""Lightweight Directory Access Protocol (v3)", RFC , RFC

2251, December 1997.2251, December 1997.http://www.ietf.org/rfc/rfc2251.txthttp://www.ietf.org/rfc/rfc2251.txt

[[66] Yeong, W., Howes, T., and S. Kille, ] Yeong, W., Howes, T., and S. Kille, "Lightweight Directory Access Protocol""Lightweight Directory Access Protocol", RFC , RFC 1777, March 1995. 1777, March 1995. http://www.ietf.org/rfc/rfc1777.txthttp://www.ietf.org/rfc/rfc1777.txt

[[77] ] Myers, J., Myers, J., "Simple Authentication and Security Layer (SASL)""Simple Authentication and Security Layer (SASL)", RFC, RFC 2222, October 2222, October 1997.1997. http://www.ietf.org/rfc/rfc1777.txthttp://www.ietf.org/rfc/rfc1777.txt

[[88] Wahl, M., Alvestrand, H., Hodges, J. and R. Morgan, ] Wahl, M., Alvestrand, H., Hodges, J. and R. Morgan, “Authentifications Methods for “Authentifications Methods for LDAP"LDAP", RFC 2829, May 2000. , RFC 2829, May 2000. http://www.ietf.org/rfc/rfc2829.txthttp://www.ietf.org/rfc/rfc2829.txt