Bořič mýtů a korekce předchozího článku. OutlookAnywhere JEDE s čipovými kartami (smart card), nebo vlastně ve skutečnosti NEJEDE :-) To je obvyklá špatná interpretace. A i já to tak zjednodušuju a zřetelně jsem tím několik lidí zmátl. A to by taky mělo být pro pana Hlinku potvrzení, že to, co jsme u nich před rokem zprovoznili není nějaké kouzlo :-) Nebo vlastně je :-) Je to kouzlo Kerberosu.
V minulém článku jsem říkal, že OutlookAnywhere neumí používat certifikáty, nebo čipovou kartu k tomu, aby se připojil do Exchange. To je pravda. Jestliže klientův počítač není v doméně, a prostě spustíte Outlook z internetu, bez znalosti hesla se dovnitř nedostanete. Stejně tak nemůžete mít na Web Listeneru zapnutu SSL Client Authentication. Prostě Outlook sám umí použít buď Basic ověřování, nebo NTLM.
Tohle je samozřejmě špatně a proto si stojím za tím, že soudruzi z Redmondu někde trošku zaspali. Ale nemusí to být až taková tragédie.
A v NTLM je právě to kouzlo Kerberosu :-)
Smart card logon na stanici
Náš scénář, kdy to fungovat bude s čipovou kartou (smart card) a přitom pojede i NTLM z Outlooku, je tento.
Pokud se přihlašujete čipovou kartou na stanici (smart card logon) - myslím tím interaktivní (interactive logon, terminal services logon) přihlášení pomocí CTRL-ALT-DEL. V takovém případě se používá protokol Kerberos a jeho rozšíření PKINIT. Takže pokud jste online vůči nějakému svému DC (Domain Controller), fungujete pomocí Kerberosu. S tou čipovkou se můžete ale přihlásit i z keše (cached logon), pokud jste offline, nebo někde v internetu. To je jasné.
NTLM je potřeba
Když se přihlašujete čipovkou a ono to generuje jen Kerberos tikety, znamená to tedy, že už pak nejede NTLM? Neznamená!
PKINIT vám při přihlášení stáhne z DC ve skutečnosti hash vašeho hesla. Uživatel to heslo samozřejmě třeba ani nezná. Ale na DC nějaké heslo vždycky je. Ideálně se to dělá tak, že se ta hesla prostě resetují na nějakou náhodnou břečku. Ono to dokonce funguje samo, když zakliknete volbu Smart card is required for interactive logon, tak ta DSA.MSC konzole (Active Directory Users and Computers) to heslo změní sama.
Takže NTLM funguje i s čipovými kartami. Prostě aniž by to uživatel věděl a tu hash (nebo heslo) znal, má ji k dispozici. Ta NTLM hash se kešuje v profilu. Takže uživatel má svoji NTLM hash i když je offline příhlášen z keše (cached logon).
No a to je celé to kouzlo.
OutlookAnywhere a čipové karty
Postup je tedy tento.
- Stanice v doméně
- Uživatel se přihlašuje čipovou kartou (interactive smart card logon)
- Uživatel takto dostává NTLM hash svého (byť neznámého hesla)
- Když je člověk v internetu, přihlásí se pomocí své čipovky z keše (cached logon)
- I tak má svoji NTLM hash
- OutlookAnywhere pracuje v pohodě i bez znalosti hesla, pokud je nastaven podle mého předchozího článku a používá NTLM ověřování
A jedééééééém z kopcéééééééé.