+ All Categories
Home > Documents > TLS ve Windows

TLS ve Windows

Date post: 24-Feb-2016
Category:
Upload: haines
View: 113 times
Download: 0 times
Share this document with a friend
Description:
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 - PowerPoint PPT Presentation
38
Praha 2013 11 . ročník největší odborné IT konference v ČR! Ondřej Ševeček MCM:Directory | MVP:Security | CEH [email protected] | sevecek.com TLS ve Windows
Transcript

Praha 2013

11. ročník největší odbornéIT konference v ČR!

Ondřej ŠevečekMCM:Directory | MVP:Security | [email protected] | sevecek.com

TLS ve Windows

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, 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

Co je TLSC

lient

Ser

ver

TLS tunnel Server Certificate

Application trafficHTTP, LDAP, SMTP, RDP

Použití klientských certifikátůC

lient

Ser

ver

TLS tunnel Server Certificate

Application trafficHTTP, LDAP, SMTP, RDP

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ž IE8

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)

Schannel COM knihovna pro vytváření TLS spojení SCHANNEL Security Provider

– HKLM\System\CCS\Control\SecurityProviders\SCHANNEL

Group Policy– Policies / Administrative Templates / Network /

SSL

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

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

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

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

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_P

256 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P2

56 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA384_P

384 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA384_P3

84 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

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 SP1– RDP klient 5.2+

Nemůže používat RC4 Nemůže používat MD5

15

Ú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ší KB2643584 a KB2638806

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)

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 = 0na 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• 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

– UseScsvForTls = DWORD = 1– místo Renegotiation Indication Extension to posílá suitu 00FF, která neRFC5746 serverům nevadí

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\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

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

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

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

Omezení a prioritizace algoritmů (Vista+)

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

SecurityProviders\SCHANNEL\Ciphers

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 (SP800-57)

Strength 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

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

Alternate signature algorithm (PKCS#1 v2.1)– vůbec použitelné až od Vista

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}

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 hostC

lient

Ser

ver

TLS tunnel

Server Certificatewww.gopas.cz

HTTP GET /uri.htmUser-Agent: Internet Explorer

Accept-Language: cs-czHost: www.gopas.cz

IP: 10.10.0.37

Více web serverů a hlavička hostC

lient S

erve

r

TLS tunnel

HTTP GET /uri.htmHost: www.gopas.cz

HTTP GET /uri.htmHost: www.sevecek.com

Ser

ver

Server Certificatewww.gopas.cz

IP: 10.10.0.37

Více web serverů a hlavička hostC

lient S

erve

r

TLS tunnel

HTTP GET /uri.htmHost: www.gopas.cz

HTTP GET /uri.htmHost: kurzy.gopas.cz

Ser

ver

Server Certificate*.gopas.cz

IP: 10.10.0.37

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/en-us/library/windows/desktop/ff468651(v=vs.85).aspx

Cipher suites in Schannel in Windows 7 and newer– http://msdn.microsoft.com/en-us/library/windows/

desktop/aa374757(v=vs.85).aspx Cipher suites 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

Děkuji za pozornost!

Příbuzné kurzy GOC173 - PKI deployment


Recommended