NTLM
NTLM (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 NTLM 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).
Popis protokolu
Protokol používá sekvenci typu challenge-response (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ž klient dokáže vybrat vhodné autentizační parametry) a - nejdůležitější část - náhodnou výzvu (8 bytů, tzv kryptografická sůl).
- Klient pak 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 šifrování DES a výsledkem je zpráva typu 3.
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 (kryptografická sůl) (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ší NTLM ověřování neprovádí.
Odkazy
- Cntlm - NTLM, NTLMSR, NTLMv2 Autentizační Proxy a Akcelerátor Osobní HTTP(S) a SOCKS5 proxy pro aplikace nepodporující NTLM (Windows/Linux/UNIX)
- The NTLM Authentication Protocol