1 / 38

TLS ve Windows

TLS ve Windows. Ondřej Ševeček MCM:Directory | MVP:Security | CEH ondrej @sevecek.com | sevecek.com. 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

haines
Download Presentation

TLS ve Windows

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TLS ve Windows Ondřej Ševeček MCM:Directory| MVP:Security| CEH ondrej@sevecek.com | sevecek.com

  2. 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

  3. Co je TLS • Transport Layer Security • kryptografický protokol pro bezpečné přenášení dat v aplikační vrstvě TCP/IP • RSA, RC4, DES, AES, ECDH, MD5, … • standardní forma staršího NetScape SSL • Šifrování a ověření identity serveru • HTTPS (SSTP, IPHTTPS), LDAPS, RDP, SMTPS, Hyper-V Replication, 802.1x EAP • Ověření uživatele (klienta) • TLS clientcertificateauthenticationand logon • Vyžaduje certifikát serveru • RSA, DSA, ECDSA

  4. Co je TLS Server Certificate TLS tunnel Client Server ApplicationtrafficHTTP, LDAP, SMTP, RDP

  5. Použití klientských certifikátů Server Certificate ClientCertificate TLS tunnel Client Server ApplicationtrafficHTTP, LDAP, SMTP, RDP

  6. Certifikát serveru • Přenos klíče • RSA keyexchange • (EC)DH keyexchange • Ověření identity serveru • Subject a SAN rozšíření certifikátů • časová platnost • důvěryhodný řetěz autorit • CRL/OCSP • by default až IE8

  7. 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 R2 • vypnuto ve výchozím stavu • TLS 1.2 (2008)

  8. Schannel • COM knihovna pro vytváření TLS spojení • SCHANNELSecurity Provider • HKLM\System\CCS\Control\SecurityProviders\SCHANNEL • Group Policy • Policies / Administrative Templates / Network / SSL

  9. SSL ciphersuites • SSL_RC4_128_WITH_MD5 • SSL_DES_192_EDE3_CBC_WITH_MD5 • SSL_RC2_CBC_128_CBC_WITH_MD5 • SSL_DES_64_CBC_WITH_MD5 • SSL_RC4_128_EXPORT40_WITH_MD5

  10. Windows XP/2003- TLS 1.0/SSL cipher suites (no AES) • TLS_RSA_WITH_RC4_128_MD5 • TLS_RSA_WITH_RC4_128_SHA • TLS_RSA_WITH_3DES_EDE_CBC_SHA • TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA • TLS_RSA_WITH_DES_CBC_SHA • TLS_DHE_DSS_WITH_DES_CBC_SHA • TLS_RSA_EXPORT1024_WITH_RC4_56_SHA • TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA • TLS_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA • TLS_RSA_EXPORT_WITH_RC4_40_MD5 • TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 • TLS_RSA_WITH_NULL_MD5 • TLS_RSA_WITH_NULL_SHA • SSL_RSA_WITH_RC4_128_SHA • SSL_RSA_WITH_3DES_EDE_CBC_SHA • SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA • SSL_RSA_WITH_RC4_128_MD5

  11. Windows Vista/2008+ TLS v1.0 cipher suites (AES/EC/SHA1, no SHA2) • TLS_RSA_WITH_AES_128_CBC_SHA • TLS_RSA_WITH_AES_256_CBC_SHA • TLS_RSA_WITH_RC4_128_SHA • TLS_RSA_WITH_3DES_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_3DES_EDE_CBC_SHA • TLS_RSA_WITH_RC4_128_MD5 • SSL_RSA_WITH_RC4_128_SHA • SSL_RSA_WITH_3DES_EDE_CBC_SHA • SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA • SSL_RSA_WITH_RC4_128_MD5

  12. Podpora AES na Windows 2003 • http://support.microsoft.com/kb/948963 • TLS_RSA_WITH_AES_128_CBC_SHA AES128-SHA • TLS_RSA_WITH_AES_256_CBC_SHA AES256-SHA

  13. Windows 7/2008 R2+ TLS v1.1 ciphersuites (AES/EC/SHA2) • TLS_RSA_WITH_AES_128_CBC_SHA256 • TLS_RSA_WITH_AES_128_CBC_SHA • TLS_RSA_WITH_AES_256_CBC_SHA256 • TLS_RSA_WITH_AES_256_CBC_SHA • TLS_RSA_WITH_RC4_128_SHA • TLS_RSA_WITH_3DES_EDE_CBC_SHA • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256 • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P384 • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256 • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P384 • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256 • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384 • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256 • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P256 • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA384_P384 • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA384_P384 • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P256 • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P384 • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P256 • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P384 • TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 • TLS_DHE_DSS_WITH_AES_128_CBC_SHA • TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 • TLS_DHE_DSS_WITH_AES_256_CBC_SHA • TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA • TLS_RSA_WITH_RC4_128_MD5 • SSL_CK_RC4_128_WITH_MD5 • SSL_CK_DES_192_EDE3_CBC_WITH_MD5 • TLS_RSA_WITH_NULL_SHA256 • TLS_RSA_WITH_NULL_SHA • SSL_RSA_WITH_RC4_128_SHA • SSL_RSA_WITH_3DES_EDE_CBC_SHA • SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA • SSL_RSA_WITH_RC4_128_MD5

  14. FIPS kompatibilita

  15. FIPS kompatibilita • ZakazujeSSL 2.0 a SSL 3.0 • Umožňuje jenTLS 1.0 a novější • RDP toto podporuje až od Windows 2003 SP1 • RDP klient5.2+ • Nemůže používat RC4 • Nemůže používatMD5

  16. Útoky • SSL 2.0 kompletně diskreditováno • TLS 1.0 a SSL 3.0 insecurerenegotiationattack • vypnuto dočasně úplně pomocí KB977377 • securerenegotiation zpátky zapnuto KB980436, který implementuje RFC 5746 • TLS 1.0 BEAST attack • útok pouze na klienta, na serverech to neovlivníte • řeší KB2643584 a KB2638806 • DoSvulnerability • server vcelku hodně pracuje oproti klientovi • renegotiation je ještě o hodně náročnější na prostředky • RC4 je příliš slabé (2013)

  17. Ochrana proti renegoútoku (KB980436) • Nainstalujte KB980436 • jak na servery tak klienty • tím pádem klienti i servery automaticky dělají securerenegotiation • servery i klienti přidávají do komunikace RenegoIndicationExtension, aby to druhá strana věděla • by default všichni dělají securerenego, ale přijímají i insecurerenego • Pokud chcete vynutit securerenego, zapněte v registrech • HKLM\System\CCS\Control\SecurityProviders\SCHANNELna serveru: AllowInsecureRenegoClients = DWORD = 0na klientovi: AllowInsecureRenegoServers = DWORD = 0 • Klienti se nepřipojí na server, který neumí securerenego (RFC 5746) • bez ohledu na to, jestli je nebo není potřeba renego • Servery odmítnou klienty, kteří neumí securerenego • bez ohledu na to, jestli je nebo není potřeba renego • Pokud mátebez 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 • UseScsvForTls = DWORD = 1 • místo RenegotiationIndicationExtension to posílá suitu 00FF, která neRFC5746 serverům nevadí

  18. Ochrana proti BEAST útoku (KB2643584) • Nainstalujte KB2643584 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 (SendExtraRecord= 0) • IE k tomu potřebuje další záplatu • Můžete vynutit rozdělování na více paketů pro všechny aplikace • HKLM\System\CCS\Control\SecurityProviders\SCHANNELSendExtraRecord = DWORD = 1 • ale možná se na některé servery nedostanete • RDP s NLA, SQL Server, SSTP • Můžete to úplně vypnout • SendExtraRecord = DWORD = 2

  19. Jak poznám že mám záplatu • PowerShell • gwmiwin32_quickfixengineering | ? { $_.HotfixId -eq 'KB980436' }

  20. Jak vypnout SSL 2.0 • HKLM\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols • \PCT 1.0 • \SSL 2.0 • \Client • Enabled = DWORD = 0 • \Server • Enabled = DWORD = 0

  21. Jak zapnout TLS 1.1 a 1.2 • HKLM\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols • \TLS 1.1 • \TLS 1.2 • \Client • Enabled = DWORD = 1 • DisabledByDefault = DWORD = 0 • \Server • Enabled = DWORD = 1 • DisabledByDefault = DWORD = 0

  22. Omezení a prioritizace algoritmů (Vista+)

  23. Omezení a prioritizace algoritmů (2003-) • http://support.microsoft.com/kb/245030 • HKLM\System\CCS\Control\SecurityProviders\SCHANNEL\Ciphers

  24. Testování TLS • www.ssllabs.com

  25. Certifikáty • BuďRSA Exchange na serveru • funguje i se SSL 3.0 • někdy vyžaduje i signature(LDAPS, Exchange) • neboRSA/ECDH Signature na serveru • neboDSA/DH Signature na serveru • funguje i se SSL 3.0 • neboECDSA/ECDH Signature na serveru

  26. Comparable Algorithm Strengths (SP800-57)

  27. RSA certifikáty • 2048 široce podporováno na klientech • 1024 je slabé • menší než 1024 (například 1023) je blokováno KB2661254 • SHA-1 stále lepší než 12 znaková komplexní hesla • http://www.sevecek.com/Lists/Posts/Post.aspx?ID=145 • SHA-2 • serveru je to jedno (XP/2003 potřebují KB968730 kvůli autoenrollmentu) • klient to ověří od Windows XP SP3 • klient to ověří od KB938397 pro Windows 2003 • Alternatesignaturealgorithm (PKCS#1 v2.1) • vůbec použitelné až od Vista

  28. HTTP.SYS a TLS • IIS interface? • NETSH HTTP SHOW SSLCERT • DELETE SSLCERT • ADD SSLCERT • AppId • http://www.sevecek.com/Lists/Posts/Post.aspx?ID=9 • IIS: {4dc3e181-e14b-4a21-b022-59fc669b0914} • SSTP: {ba195980-cd49-458b-9e23-c84ee0abcd75}​ • SQL RS: {1d40ebc7-1983-4ac5-82aa-1e17a7ae9a0e}​ • WinRM: {afebb9ad-9b97-4a91-9ab5-daf4d59122f6}​ • Hyper-V: ​{fed10a98-8cb9-41e2-8608-264b923c2623}

  29. CSP vs. CNG • IE a HTTP.SYS podporujeoboje CSP i CNG • Windows 2003 Schannel a starší potřebuje pouze • RSA SchannelCryptographicService Provider při použití RSA certifikátu serveru • DH SchannelCryptographicService Provider při použití DSA certifikátu serveru

  30. Více web serverů a hlavička host Server Certificatewww.gopas.cz TLS tunnel IP: 10.10.0.37 HTTP GET /uri.htm User-Agent: Internet ExplorerAccept-Language: cs-cz Host: www.gopas.cz Client Server

  31. Více web serverů a hlavička host Server Certificatewww.gopas.cz TLS tunnel IP: 10.10.0.37 Server HTTP GET /uri.htm Host: www.gopas.cz Client HTTP GET /uri.htm Host: www.sevecek.com Server

  32. Více web serverů a hlavička host Server Certificate*.gopas.cz TLS tunnel IP: 10.10.0.37 Server HTTP GET /uri.htm Host: www.gopas.cz Client HTTP GET /uri.htm Host: kurzy.gopas.cz Server

  33. Server Name Indication (SNI) • Podporováno odserveru 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

  34. 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

  35. 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

  36. 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 IntermediateCAs • Applywith NETSH HTTP ADD SSLCERT • SSLCTLIDENTIFIER = ctlname • SSLCTLSTORENAME = CA

  37. Reference • Schannelciphersuites in Windows Vista • http://msdn.microsoft.com/en-us/library/windows/desktop/ff468651(v=vs.85).aspx • Ciphersuites in Schannel in Windows 7 and newer • http://msdn.microsoft.com/en-us/library/windows/desktop/aa374757(v=vs.85).aspx • Ciphersuites in Schannel in Windows XP and 2003 • http://msdn.microsoft.com/en-us/library/windows/desktop/aa380512(v=vs.85).aspx • AES support in Schannel in Windows 2003 • http://support.microsoft.com/kb/948963

  38. Děkuji za pozornost! • Příbuzné kurzy • GOC173 - PKI deployment

More Related