Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

TLS ve Windows Ondřej Ševeček MCM:Directory | MVP:Security | CEH

Podobné prezentace


Prezentace na téma: "TLS ve Windows Ondřej Ševeček MCM:Directory | MVP:Security | CEH"— Transkript prezentace:

1 TLS ve Windows Ondřej Ševeček MCM:Directory | MVP:Security | CEH
| 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 client certificate authentication and logon Vyžaduje certifikát serveru RSA, DSA, ECDSA

4 Application traffic HTTP, LDAP, SMTP, RDP
Co je TLS Server Certificate TLS tunnel Client Server Application traffic HTTP, LDAP, SMTP, RDP

5 Použití klientských certifikátů
Client Certificate Server Certificate TLS tunnel Client Server Application traffic HTTP, LDAP, SMTP, RDP

6 Certifikát serveru Přenos klíče Ověření identity serveru
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ž IE8

7 Historie TLS SSL 2.0 (1995) a SSL 3.0 (1996) TLS 1.0 (1999)
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í
SCHANNEL Security Provider HKLM\System\CCS\Control\SecurityProviders\S CHANNEL Group Policy Policies / Administrative Templates / Network / SSL

9 SSL cipher suites 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 cipher suites (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 Zakazuje SSL 2.0 a SSL 3.0
Umožňuje jen TLS 1.0 a novější RDP toto podporuje až od Windows 2003 SP1 RDP klient 5.2+ Nemůže používat RC4 Nemůže používat MD5

16 Útoky SSL 2.0 kompletně diskreditováno
TLS 1.0 a SSL 3.0 insecure renegotiation attack vypnuto dočasně úplně pomocí KB977377 secure renegotiation zpátky zapnuto KB980436, který implementuje RFC 5746 TLS 1.0 BEAST attack útok pouze na klienta, na serverech to neovlivníte řeší KB a KB DoS vulnerability 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í 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 HKLM\System\CCS\Control\SecurityProviders\SCHANNEL na serveru: AllowInsecureRenegoClients = DWORD = 0 na klientovi: AllowInsecureRenegoServers = 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 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 UseScsvForTls = DWORD = 1 místo Renegotiation Indication Extension to posílá suitu 00FF, která neRFC5746 serverům nevadí

18 Ochrana proti BEAST útoku (KB2643584)
Nainstalujte KB nebo (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\SCHANNEL SendExtraRecord = 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 gwmi win32_quickfixengineering | ? { $_.HotfixId -eq 'KB980436' }

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

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

22 Omezení a prioritizace algoritmů (Vista+)

23 Omezení a prioritizace algoritmů (2003-)
HKLM\System\CCS\Control\SecurityProvider s\SCHANNEL\Ciphers

24 Testování TLS

25 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 nebo ECDSA/ECDH Signature na serveru

26 Comparable Algorithm Strengths (SP800-57)
Symetric RSA ECDSA SHA 80 bit 2TDEA RSA 1024 ECDSA 160 SHA-1 112 bit 3TDEA 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

27 RSA certifikáty 2048 široce podporováno na klientech
1024 je slabé menší než 1024 (například 1023) je blokováno KB SHA-1 stále lepší než 12 znaková komplexní hesla SHA-2 serveru je to jedno (XP/2003 potřebují KB kvůli autoenrollmentu) klient to ověří od Windows XP SP3 klient to ověří od KB pro Windows 2003 Alternate signature algorithm (PKCS#1 v2.1) vůbec použitelné až od Vista

28 HTTP.SYS a TLS IIS interface? NETSH HTTP SHOW SSLCERT AppId
DELETE SSLCERT ADD SSLCERT AppId IIS: {4dc3e181-e14b-4a21-b022-59fc669b0914} SSTP: {ba cd49-458b-9e23-c84ee0abcd75}​ SQL RS: {1d40ebc ac5-82aa-1e17a7ae9a0e}​ WinRM: {afebb9ad-9b97-4a91-9ab5-daf4d59122f6}​ Hyper-V: ​{fed10a98-8cb9-41e b923c2623}

29 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

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

31 Více web serverů a hlavička host
Server Certificate TLS tunnel IP: Server HTTP GET /uri.htm Host: Client HTTP GET /uri.htm Host: Server

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

33 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

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: Store in Intermediate CAs Apply with NETSH HTTP ADD SSLCERT SSLCTLIDENTIFIER = ctl name SSLCTLSTORENAME = CA

37 Reference Schannel cipher suites in Windows Vista
us/library/windows/desktop/ff468651(v=vs.85).aspx Cipher suites in Schannel in Windows 7 and newer us/library/windows/desktop/aa374757(v=vs.85).aspx Cipher suites in Schannel in Windows XP and 2003 us/library/windows/desktop/aa380512(v=vs.85).aspx AES support in Schannel in Windows 2003

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


Stáhnout ppt "TLS ve Windows Ondřej Ševeček MCM:Directory | MVP:Security | CEH"

Podobné prezentace


Reklamy Google