TLS ve Windows 11 ronk nejvt odborn IT
TLS ve Windows 11. ročník největší odborné IT konference v ČR! Ondřej Ševeček MCM: Directory | MVP: Security | CEH ondrej@sevecek. com | sevecek. com Praha 2013
O čem bude řeč? § Co je TLS a SSL § Jaké používá algoritmy a jaké potřebuje certifikáty § Jakou má TLS podporu v operačních systémech § Útoky, záplaty a kompatibilita § Implementace a příklady § Ověřování klientským certifikátem
Co je TLS § Transport Layer Security – kryptografický protokol pro bezpečné přenášení dat v aplikační vrstvě TCP/IP • RSA, RC 4, DES, AES, ECDH, MD 5, … – standardní forma staršího Net. Scape SSL § Šifrování a ověření identity serveru – HTTPS (SSTP, IPHTTPS), LDAPS, RDP, SMTPS, Hyper-V Replication, 802. 1 x EAP § Ověření uživatele (klienta) – TLS client certificate authentication and logon § Vyžaduje certifikát serveru – RSA, DSA, ECDSA
Co je TLS Application traffic HTTP, LDAP, SMTP, RDP Server Certificate Server Client TLS tunnel
Použití klientských certifikátů TLS tunnel Application traffic HTTP, LDAP, SMTP, RDP Server Certificate Server Client Certificate
Certifikát serveru § Přenos klíče – RSA key exchange – (EC)DH key exchange § Ověření identity serveru – Subject a SAN rozšíření certifikátů – časová platnost – důvěryhodný řetěz autorit – CRL/OCSP • by default až IE 8
Historie TLS § SSL 2. 0 (1995) a SSL 3. 0 (1996) – not FIPS compliant § TLS 1. 0 (1999) – IETF RFC 2246 – vyžadováno na kompatibilitu s FIPS § TLS 1. 1 (2006) – až od Windows 7 a Windows 2008 R 2 – vypnuto ve výchozím stavu § TLS 1. 2 (2008)
Schannel § COM knihovna pro vytváření TLS spojení § SCHANNEL Security Provider – HKLMSystemCCSControlSecurity. ProvidersS CHANNEL § Group Policy – Policies / Administrative Templates / Network / SSL
SSL cipher suites § § § SSL_RC 4_128_WITH_MD 5 SSL_DES_192_EDE 3_CBC_WITH_MD 5 SSL_RC 2_CBC_128_CBC_WITH_MD 5 SSL_DES_64_CBC_WITH_MD 5 SSL_RC 4_128_EXPORT 40_WITH_MD 5
Windows XP/2003 - TLS 1. 0/SSL cipher suites (no AES) § § § § TLS_RSA_WITH_RC 4_128_MD 5 TLS_RSA_WITH_RC 4_128_SHA TLS_RSA_WITH_3 DES_EDE_CBC_SHA TLS_DHE_DSS_WITH_3 DES_EDE_CBC_SHA TLS_RSA_WITH_DES_CBC_SHA TLS_DHE_DSS_WITH_DES_CBC_SHA TLS_RSA_EXPORT 1024_WITH_RC 4_56_SHA TLS_RSA_EXPORT 1024_WITH_DES_CBC_SHA TLS_DHE_DSS_EXPORT 1024_WITH_DES_CBC_SHA TLS_RSA_EXPORT_WITH_RC 4_40_MD 5 TLS_RSA_EXPORT_WITH_RC 2_CBC_40_MD 5 TLS_RSA_WITH_NULL_SHA § § SSL_RSA_WITH_RC 4_128_SHA SSL_RSA_WITH_3 DES_EDE_CBC_SHA SSL_DHE_DSS_WITH_3 DES_EDE_CBC_SHA SSL_RSA_WITH_RC 4_128_MD 5
Windows Vista/2008+ TLS v 1. 0 cipher suites (AES/EC/SHA 1, no SHA 2) § § § TLS_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_256_CBC_SHA TLS_RSA_WITH_RC 4_128_SHA TLS_RSA_WITH_3 DES_EDE_CBC_SHA TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA TLS_DHE_DSS_WITH_AES_128_CBC_SHA TLS_DHE_DSS_WITH_AES_256_CBC_SHA TLS_DHE_DSS_WITH_3 DES_EDE_CBC_SHA TLS_RSA_WITH_RC 4_128_MD 5 § § SSL_RSA_WITH_RC 4_128_SHA SSL_RSA_WITH_3 DES_EDE_CBC_SHA SSL_DHE_DSS_WITH_3 DES_EDE_CBC_SHA SSL_RSA_WITH_RC 4_128_MD 5
Podpora AES na Windows 2003 § http: //support. microsoft. com/kb/948963 § TLS_RSA_WITH_AES_128_CBC_SHA AES 128 -SHA § TLS_RSA_WITH_AES_256_CBC_SHA AES 256 -SHA
Windows 7/2008 R 2+ TLS v 1. 1 cipher suites (AES/EC/SHA 2) § § § § § TLS_RSA_WITH_AES_128_CBC_SHA 256 TLS_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_256_CBC_SHA 256 TLS_RSA_WITH_AES_256_CBC_SHA TLS_RSA_WITH_RC 4_128_SHA TLS_RSA_WITH_3 DES_EDE_CBC_SHA TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 256_P 256 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 256_P 384 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P 256 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P 384 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P 256 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P 384 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA 256_P 2 56 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA 256_P 2 56 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA 384_P 3 84 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P 256 § § § § TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P 384 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P 256 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P 384 TLS_DHE_DSS_WITH_AES_128_CBC_SHA 256 TLS_DHE_DSS_WITH_AES_128_CBC_SHA TLS_DHE_DSS_WITH_AES_256_CBC_SHA 256 TLS_DHE_DSS_WITH_AES_256_CBC_SHA TLS_DHE_DSS_WITH_3 DES_EDE_CBC_SHA TLS_RSA_WITH_RC 4_128_MD 5 SSL_CK_RC 4_128_WITH_MD 5 SSL_CK_DES_192_EDE 3_CBC_WITH_MD 5 TLS_RSA_WITH_NULL_SHA 256 TLS_RSA_WITH_NULL_SHA § § SSL_RSA_WITH_RC 4_128_SHA SSL_RSA_WITH_3 DES_EDE_CBC_SHA SSL_DHE_DSS_WITH_3 DES_EDE_CBC_SHA SSL_RSA_WITH_RC 4_128_MD 5
FIPS kompatibilita
FIPS kompatibilita § Zakazuje SSL 2. 0 a SSL 3. 0 § Umožňuje jen TLS 1. 0 a novější – RDP toto podporuje až od Windows 2003 SP 1 – RDP klient 5. 2+ § Nemůže používat RC 4 § Nemůže používat MD 5 15
Útoky § SSL 2. 0 kompletně diskreditováno § TLS 1. 0 a SSL 3. 0 insecure renegotiation attack – vypnuto dočasně úplně pomocí KB 977377 – secure renegotiation zpátky zapnuto KB 980436, který implementuje RFC 5746 § TLS 1. 0 BEAST attack – útok pouze na klienta, na serverech to neovlivníte – řeší KB 2643584 a KB 2638806 § Do. S vulnerability – server vcelku hodně pracuje oproti klientovi – renegotiation je ještě o hodně náročnější na prostředky § RC 4 je příliš slabé (2013)
Ochrana proti renego útoku (KB 980436) § Nainstalujte KB 980436 – – § jak na servery tak klienty tím pádem klienti i servery automaticky dělají secure renegotiation servery i klienti přidávají do komunikace Renego Indication Extension, aby to druhá strana věděla by default všichni dělají secure renego, ale přijímají i insecure renego Pokud chcete vynutit secure renego, zapněte v registrech – HKLMSystemCCSControlSecurity. ProvidersSCHANNEL na serveru: Allow. Insecure. Renego. Clients = DWORD = 0 na klientovi: Allow. Insecure. Renego. Servers = DWORD = 0 – Klienti se nepřipojí na server, který neumí secure renego (RFC 5746) – § • bez ohledu na to, jestli je nebo není potřeba renego Servery odmítnou klienty, kteří neumí secure renego • bez ohledu na to, jestli je nebo není potřeba renego Pokud máte bez ohledu na registry problém, že se klienti nemohou někam připojit, i když není zrovna renego vůbec potřeba, zapněte na klientech – Use. Scsv. For. Tls = DWORD = 1 – místo Renegotiation Indication Extension to posílá suitu 00 FF, která ne. RFC 5746 serverům nevadí
Ochrana proti BEAST útoku (KB 2643584) § Nainstalujte KB 2643584 nebo 2638806 (XP/2003) – všechna klientova data chodí na více, než jeden paket – ve výchozím stavu si to musí klientova aplikace vyžádat (Send. Extra. Record = 0) – IE k tomu potřebuje další záplatu § Můžete vynutit rozdělování na více paketů pro všechny aplikace – HKLMSystemCCSControlSecurity. ProvidersSCHANNEL Send. Extra. Record = DWORD = 1 – ale možná se na některé servery nedostanete – RDP s NLA, SQL Server, SSTP § Můžete to úplně vypnout – Send. Extra. Record = DWORD = 2
Jak poznám že mám záplatu § Power. Shell § gwmi win 32_quickfixengineering | ? { $_. Hotfix. Id -eq 'KB 980436' }
Jak vypnout SSL 2. 0 § HKLMSystemCurrent. Control. SetControlSe curity. Providers SCHANNELProtocols – PCT 1. 0 – SSL 2. 0 • Client – Enabled = DWORD = 0 • Server – Enabled = DWORD = 0
Jak zapnout TLS 1. 1 a 1. 2 § HKLMSystemCurrent. Control. SetControlSe curity. Providers SCHANNELProtocols – TLS 1. 1 – TLS 1. 2 • Client – Enabled = DWORD = 1 – Disabled. By. Default = DWORD = 0 • Server – Enabled = DWORD = 1 – Disabled. By. Default = DWORD = 0
Omezení a prioritizace algoritmů (Vista+)
Omezení a prioritizace algoritmů (2003 -) § http: //support. microsoft. com/kb/245030 § HKLMSystemCCSControlSecurity. Provider sSCHANNELCiphers
Testování TLS § www. ssllabs. com
Certifikáty § Buď RSA Exchange na serveru – funguje i se SSL 3. 0 – někdy vyžaduje i signature (LDAPS, Exchange) § nebo RSA/ECDH Signature na serveru § nebo DSA/DH Signature na serveru – funguje i se SSL 3. 0 § nebo ECDSA/ECDH Signature na serveru
Comparable Algorithm Strengths (SP 800 -57) Strength Symetric RSA ECDSA SHA 80 bit 2 TDEA RSA 1024 ECDSA 160 SHA-1 112 bit 3 TDEA RSA 2048 ECDSA 224 SHA-224 128 bit AES-128 RSA 3072 ECDSA 256 SHA-256 192 bit AES-192 RSA 7680 ECDSA 384 SHA-384 256 bit AES-256 RSA 15360 ECDSA 512 SHA-512
RSA certifikáty § 2048 široce podporováno na klientech – 1024 je slabé – menší než 1024 (například 1023) je blokováno KB 2661254 § SHA-1 stále lepší než 12 znaková komplexní hesla – http: //www. sevecek. com/Lists/Post. aspx? ID=145 § SHA-2 – serveru je to jedno (XP/2003 potřebují KB 968730 kvůli autoenrollmentu) – klient to ověří od Windows XP SP 3 – klient to ověří od KB 938397 pro Windows 2003 § Alternate signature algorithm (PKCS#1 v 2. 1) – vůbec použitelné až od Vista
HTTP. SYS a TLS § IIS interface? § NETSH HTTP SHOW SSLCERT – DELETE SSLCERT – ADD SSLCERT § App. Id – – – http: //www. sevecek. com/Lists/Post. aspx? ID=9 IIS: {4 dc 3 e 181 -e 14 b-4 a 21 -b 022 -59 fc 669 b 0914} SSTP: {ba 195980 -cd 49 -458 b-9 e 23 -c 84 ee 0 abcd 75} SQL RS: {1 d 40 ebc 7 -1983 -4 ac 5 -82 aa-1 e 17 a 7 ae 9 a 0 e} Win. RM: {afebb 9 ad-9 b 97 -4 a 91 -9 ab 5 -daf 4 d 59122 f 6} Hyper-V: {fed 10 a 98 -8 cb 9 -41 e 2 -8608 -264 b 923 c 2623}
CSP vs. CNG § IE a HTTP. SYS podporuje oboje CSP i CNG § Windows 2003 Schannel a starší potřebuje pouze – RSA Schannel Cryptographic Service Provider při použití RSA certifikátu serveru – DH Schannel Cryptographic Service Provider při použití DSA certifikátu serveru
Více web serverů a hlavička host HTTP GET /uri. htm User-Agent: Internet Explorer Accept-Language: cs-cz Host: www. gopas. cz IP: 10. 0. 37 Server Client TLS tunnel Server Certificate www. gopas. cz
Více web serverů a hlavička host HTTP GET /uri. htm Host: www. sevecek. com Server HTTP GET /uri. htm Host: www. gopas. cz IP: 10. 0. 37 Server Client TLS tunnel Server Certificate www. gopas. cz
Více web serverů a hlavička host HTTP GET /uri. htm Host: kurzy. gopas. cz Server HTTP GET /uri. htm Host: www. gopas. cz IP: 10. 0. 37 Server Client TLS tunnel Server Certificate *. gopas. cz
Server Name Indication (SNI) § Podporováno od serveru Windows 2012 – Schannel a HTTP. SYS § Klienti alespoň Windows Vista/2008 – musí to ale chtít aplikace – IE 7 – Firefox 2. 0 – Opera 8. 0 – Opera Mobile 10. 1 – Chrome 6 – Safari 2. 1 – Windows Phone 7
Ověření klientským certifikátem § Nutno k ustavení TLS tunelu – ještě dříve, než mohou vůbec projít aplikační data, byť i jen jednoduché HTTP hlavičky např. § Omezení anonymních pokusů o zkoušení hesla – možno použít přímo k ověřování uživatelů § Komplikace použití z cizích strojů – export certifikátu, čipová karta
Požadavky na klientský certifikát § Digital signature – je slušné nemít uvnitř nonrepudiation § Přihlašování vůči AD – SAN musí obsahovat UPN – nebo musí být certifikát mapován na účet v AD "ručně" – issuing CA musí být NTAuth § Není nutné, aby ho vydala stejná CA jako certifikát serveru ($$$) – veřejný certifikát serveru – vlastní vnitřní certifikát uživatele
Certificate Trust List (CTL) § Server zasílá klientům seznam svých důvěryhodných root CA § Pokud je jich moc, je to zbytečná zátěž kabelu § Možno definovat omezení (OID) na klientský certifikát – CTL vlastní OID: 1. 3. 6. 1. 4. 1. 311. 10. 1 § Store in Intermediate CAs § Apply with NETSH HTTP ADD SSLCERT – SSLCTLIDENTIFIER = ctl name – SSLCTLSTORENAME = CA
Reference § Schannel cipher suites in Windows Vista – http: //msdn. microsoft. com/enus/library/windows/desktop/ff 468651(v=vs. 85). aspx § Cipher suites in Schannel in Windows 7 and newer – http: //msdn. microsoft. com/enus/library/windows/desktop/aa 374757(v=vs. 85). aspx § Cipher suites in Schannel in Windows XP and 2003 – http: //msdn. microsoft. com/enus/library/windows/desktop/aa 380512(v=vs. 85). aspx § AES support in Schannel in Windows 2003 – http: //support. microsoft. com/kb/948963
Děkuji za pozornost! § Příbuzné kurzy § GOC 173 - PKI deployment
- Slides: 38