NTLM
Z Wikipedie, otevřené encyklopedie
NTLM (pravděpodobně zkratka z NT LAN Manager) je autentizační protokol, používaný zejména protokolem SMB a některými implementacemi síťových protokolů Microsoft Windows za účelem ověření uživatele nebo spojení. Je důležitou součástí konceptu Integrated Windows Authentication.
Protokol není oficiálně dokumentován, byl však popsán v rámci práce na projektu Samba. Stejně jako Microsoft Windows, prošel i NTLM značným vývojem, zejména s ohledem na bezpečnost. Jako NTLMv2 je označována novější verze, která se liší zacházením s privátními daty. Starší verze je od té doby označována jako NTLMv1. Kryptografické mechanismy NTML jsou shodné s mechanismy použitými v protokolu MS-CHAP, jež jsou popsány v RFC 2433 (verze v1) a RFC 2759 (verze v2).
Obsah |
[editovat] Popis protokolu
Protokol používá sekvenci typu výzva-odpověď, která vyžaduje, aby mezi klientem (který si přeje být autentizován) a serverem (vyžadujícím autentizaci) byly vyměněny celkem tři zprávy:
- Klient odešle serveru zprávu typu 1 obsahující informace o klientem podporovaných nebo požadovaných funkcích (velikosti kryptovacích klíčů, požadavek na vzájemnou autentizaci atd.).
- Server odpoví zprávou typu 2 obsahující podobné informace o serverem podporovaných nebo požadovaných funkcích (čímž dochází mezi klientem a serverem k dohodě o autentizačních parametrech) a nejdůležitější část, náhodnou výzvu (8 bytů).
- Klient nakonec použije výzvu ze zprávy typu 2, uživatelské jméno a heslo k vypočtení odpovědi. Volba výpočetní metody je závislá na autentizačních parametrech dohodnutých zprávou typu 2, nicméně obecně lze říci, že aplikuje hašovací funkce MD4 nebo MD5 a kryptování DES a výsledkem je zpráva typu 3.
[editovat] Autentizace v HTTP
Pro uživatele pracuje transparentně jako obálka nad HTTP, případně při komunikaci s proxy.
Komunikace je ještě před GET nebo jiným požadavkem a zhruba vypadá takto:
- Klient: odešle požadavek.
- Server/proxy: odpoví chybou a pošle NTLM informace (salt) (WWW-Authenticate: NTLM …).
- Klient: požadavek zopakuje a připojí v NTLM informace o sobě a spojí to s odpovědí od serveru a zahašuje.
Nadále se v tomto otevřeném TCP socketu další NTML ověřování neprovádí.
[editovat] Viz také
- LM hash
- Kerberos