Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a dokumentum bemutatja a Legújabb útmutatást a Transport Layer Security (TLS) protokoll 1.0-s verziójának függőségeinek a Microsoft operációs rendszerekre épülő szoftvereiben való gyors azonosításához és eltávolításához, a Microsoft által a saját ügyfelek és online szolgáltatások védelme érdekében biztosított termékmódosításokkal és új funkciókkal kapcsolatos részleteket követve. Kiindulási pontként szolgál egy TLS 1.2+-os hálózati környezetbe történő migrálási terv létrehozásához. Bár az itt tárgyalt megoldások átvihetik és segíthetnek a TLS 1.0 használatának eltávolításában nem Microsoft operációs rendszerekben vagy kriptográfiai kódtárakban, ezek nem a dokumentum középpontjában állnak.
A TLS 1.0 egy 1999-ben definiált biztonsági protokoll, amely a számítógépes hálózatokon keresztüli titkosítási csatornák létrehozására használható. A Microsoft a Windows XP/Server 2003 óta támogatja ezt a protokollt. Bár a modern operációs rendszerek már nem használják az alapértelmezett biztonsági protokollt, a TLS 1.0 továbbra is támogatott a visszamenőleges kompatibilitás érdekében. A változó szabályozási követelmények és a TLS 1.0 új biztonsági rései arra ösztönzik a vállalatokat, hogy teljes mértékben letiltják a TLS 1.0-t.
A Microsoft azt javasolja az ügyfeleknek, hogy ha lehetséges, távolítsák el a TLS 1.0-függőségeket a környezetükben, és tiltsák le a TLS 1.0-t az operációs rendszer szintjén. Tekintettel arra, hogy a szoftveripar mennyi ideig támogatja a TLS 1.0-t, minden TLS 1.0-s elavulással kapcsolatos tervnek a következőket kell tartalmaznia:
Kódelemzés a TLS 1.0 vagy régebbi biztonsági protokollok merevlemezes példányainak megkereséséhez/javításához.
Hálózati végpontok vizsgálata és forgalomelemzés az operációs rendszerek TLS 1.0-s vagy régebbi protokollok használatával történő azonosításához.
Teljes regressziós tesztelés a teljes alkalmazásveremen a TLS 1.0 letiltásával.
Régi operációs rendszerek és fejlesztői kódtárak/keretrendszerek áttelepítése alapértelmezés szerint a TLS 1.2 egyeztetésére képes verziókra.
A vállalat által a TLS 1.2 támogatási problémáinak azonosítására használt operációs rendszerek kompatibilitási tesztelése.
Saját üzleti partnereivel és ügyfeleivel való egyeztetés, hogy értesítsék őket a TLS 1.0 elavultra váltásáról.
Annak megértése, hogy mely ügyfelek nem tudnak többé csatlakozni a kiszolgálókhoz, ha a TLS 1.0 le van tiltva.
A dokumentum célja, hogy olyan javaslatokat nyújtson, amelyek segítenek eltávolítani a TLS 1.0 letiltásához szükséges technikai blokkolókat, ugyanakkor növelik a változás hatásainak láthatóságát a saját ügyfelei számára. Az ilyen vizsgálatok elvégzése segíthet csökkenteni a TLS 1.0 következő biztonsági résének üzleti hatását. E dokumentum alkalmazásában a TLS 1.0 elavulására vonatkozó hivatkozások a TLS 1.1-et is tartalmazzák.
A nagyvállalati szoftverfejlesztőknek stratégiai igényük van arra, hogy biztonságosabb és agilisabb megoldásokat (más néven Crypto Agility) alkalmazzanak a jövőbeli biztonsági protokollok feltöréséhez. Bár ez a dokumentum a TLS keménykódolásának megszüntetésére irányuló agilis megoldásokat javasol, a szélesebb körű Crypto Agility-megoldások nem tartoznak a jelen dokumentum hatókörébe.
A Microsoft TLS 1.0-s implementációjának jelenlegi állapota
A Microsoft TLS 1.0-s implementációja nem tartalmaz ismert biztonsági réseket. A jövőbeni protokollleminősítési támadások és a Microsoft implementációjára nem jellemző egyéb TLS 1.0-s biztonsági rések miatt javasolt a TLS 1.2-nél régebbi biztonsági protokollok függőségeinek eltávolítása (TLS 1.1/1.0/ SSLv3/SSLv2).
A TLS 1.2+-ra való migrálás tervezésekor a fejlesztőknek és a rendszergazdáknak tisztában kell lenniük azzal, hogy az alkalmazottak és partnereik által kifejlesztett alkalmazásokban milyen lehetséges a protokollverziók keménykódolása. A hardcoding itt azt jelenti, hogy a TLS-verzió elavult és kevésbé biztonságos, mint az újabb verziók. A merevlemezes verziónál újabb TLS-verziók nem használhatók a szóban forgó program módosítása nélkül. Ez a problémaosztály a forráskód módosítása és a szoftverfrissítés üzembe helyezése nélkül nem oldható meg. A protokollverzió keménykódolása a múltban gyakori volt tesztelési és támogatási célokra, mivel számos különböző böngésző és operációs rendszer különböző TLS-támogatással rendelkezett.
A TLS támogatott verziói a Windowsban
Számos operációs rendszer elavult TLS-verzió alapértelmezett vagy támogatási plafonokkal rendelkezik, amelyekről el kell számolni.
1. ábra: Biztonsági protokoll támogatása operációsrendszer-verzió szerint
| Windows operációs rendszer | SSLv2 | SSLv3 | TLS 1.0 | TLS 1.1 | TLS 1.2 | TLS 1.3 |
|---|---|---|---|---|---|---|
| Windows Vista | Engedélyezett | Engedélyezett | Engedélyezett | Nem támogatott | Nem támogatott | Nem támogatott |
| Windows Server 2008 | Engedélyezett | Engedélyezett | Engedélyezett | Tiltva* | Tiltva* | Nem támogatott |
| Windows 7 (WS2008 R2) | Engedélyezett | Engedélyezett | Engedélyezett | Tiltva* | Tiltva* | Nem támogatott |
| Windows 8 (WS2012) | Disabled | Engedélyezett | Engedélyezett | Engedélyezett | Engedélyezett | Nem támogatott |
| Windows 8.1 (WS2012 R2) | Disabled | Engedélyezett | Engedélyezett | Engedélyezett | Engedélyezett | Nem támogatott |
| Windows 10 | Disabled | Engedélyezett | Engedélyezett | Engedélyezett | Engedélyezett | Nem támogatott |
| Windows 11 | Disabled | Engedélyezett | Engedélyezett | Engedélyezett | Engedélyezett | Engedélyezett |
| Windows Server 2016 | Nem támogatott | Disabled | Engedélyezett | Engedélyezett | Engedélyezett | Nem támogatott |
| Windows Server 2016 | Nem támogatott | Disabled | Engedélyezett | Engedélyezett | Engedélyezett | Nem támogatott |
| Windows Server 2019 | Nem támogatott | Disabled | Engedélyezett | Engedélyezett | Engedélyezett | Nem támogatott |
| Windows Server 2019 GS kiadás | Nem támogatott | Disabled | Disabled | Disabled | Engedélyezett | Nem támogatott |
| Windows Server 2022 | Nem támogatott | Disabled | Disabled | Disabled | Engedélyezett | Engedélyezett |
A Windows Server 2019 GS kiadás Microsoft SDL-kompatibilis, a TLS 1.2 csak korlátozott titkosítási csomagokkal rendelkezik.
A Windows Server 2022 kiadás a Microsoft SDL-kompatibilis, a TLS 1.2 és a TLS 1.3 csak korlátozott titkosítási csomagokkal rendelkezik.
A TLS 1.1/1.2 engedélyezhető a Windows Server 2008-on ezen az opcionális Windows Update-csomagon keresztül.
A TLS 1.0/1.1 IE/Edge-alapú elavulásáról további információt a Microsoft Edge és az Internet Explorer 11 TLS-kapcsolatainak modernizálása, a Microsoft Edge webhelykompatibilitást befolyásoló változásai, valamint a TLS/1.0 és a TLS/1.1 letiltása az új Edge Böngészőben című témakörben talál.
A Qualys SSL Labs kézfogási szimulációjára hivatkozva gyorsan megállapíthatja, hogy a különböző ügyfelek milyen TLS-verziót kérnek az online szolgáltatásokhoz való csatlakozáskor. Ez a szimuláció az ügyfél operációs rendszerének/böngészőkombinációinak gyártóira terjed ki. A dokumentum végén található A függelékben talál egy részletes példát, amely a különböző szimulált ügyfél operációs rendszer/böngésző kombinációk által tárgyalt TLS protokollverziókat mutatja be awww.microsoft.comvaló csatlakozáskor.
Ha még nem történt meg, erősen ajánlott, hogy készítsen leltárt a vállalat, az ügyfelek és a partnerek által használt operációs rendszerekről (az utóbbi kettő esetében a tájékoztatáson és kommunikáción keresztül, vagy legalább a HTTP User-Agent sztringek gyűjtésével). Ezt a leltárt tovább kiegészítheti a vállalati hálózat peremhálózatán található forgalomelemzéssel. Ilyen esetben a forgalomelemzés a szolgáltatásokhoz csatlakozó ügyfelek/partnerek által sikeresen tárgyalt TLS-verziókat eredményezi, de maga a forgalom titkosítva marad.
A Microsoft mérnöki fejlesztései a TLS 1.0-függőségek megszüntetéséhez
A dokumentum 1. verziójának megjelenése óta a Microsoft számos szoftverfrissítést és új funkciót szállított a TLS 1.0 elavulásához. Ezek közé tartoznak:
Egyéni IIS-naplózás az ügyfél IP-/felhasználói ügynök sztringjének, a szolgáltatás URI-jének, a TLS protokoll verziójának és a titkosítási csomagnak a korrelációjához.
- Ezzel a naplózással a rendszergazdák végre számszerűsíthetik ügyfeleik gyenge TLS-nek való kitettségét.
SecureScore – Annak érdekében, hogy az Office 365-bérlő rendszergazdái azonosíthassák saját gyenge TLS-használatukat, a SecureScore portál azért lett létrehozva, hogy megossza ezeket az információkat, mivel 2018 októberében a TLS 1.0 kilépett az Office 365 támogatásból.
Ez a portál az Office 365-ös bérlői rendszergazdák számára biztosítja azokat az értékes információkat, amelyekre szükségük van ahhoz, hogy kapcsolatba léphessenek saját ügyfeleikkel, akik esetleg nem tudnak a saját TLS 1.0-függőségeikről.
További információért látogasson el https://securescore.microsoft.com/.
A .Net-keretrendszer frissítései az alkalmazásszintű keménykódolás megszüntetéséhez és a keretrendszer által örökölt TLS 1.0-függőségek megelőzéséhez.
Fejlesztői útmutató és szoftverfrissítések jelentek meg annak érdekében, hogy segítsenek az ügyfeleknek azonosítani és megszüntetni a gyenge TLS-re vonatkozó .Net függőségeket: Transport Layer Security (TLS) ajánlott gyakorlatai a .NET-keretrendszerrel
- FYI: A .NET 4.5 vagy újabb verziót célzó összes alkalmazást valószínűleg módosítani kell a TLS 1.2 támogatásához.
A TLS 1.2 vissza lett adva a Windows Server 2008 SP2-be és az XP POSReady 2009-be , hogy segítse az örökölt kötelezettségekkel rendelkező ügyfeleket.
További bejelentések 2019 elején lesznek közzé téve, és a dokumentum későbbi frissítései is megjelennek.
TLS 1.0-függőségek keresése és javítása a kódban
A Windows operációs rendszer által biztosított titkosítási kódtárakat és biztonsági protokollokat használó termékek esetében az alábbi lépések segítenek azonosítani az alkalmazásokban a merevlemezes TLS 1.0-s használatát:
A AcquireCredentialsHandle() összes példányának azonosítása. Ez segít a véleményezőknek közelebb kerülni az olyan kódblokkokhoz, amelyekben a TLS kódolt lehet.
Tekintse át a SecPkgContext_SupportedProtocols és SecPkgContext_ConnectionInfo struktúrák minden példányát a merevlemezes TLS-hez.
Natív kódban állítsa nullára a grbitEnabledProtocols bármely nem nulla értékű hozzárendelését. Ez lehetővé teszi, hogy az operációs rendszer az alapértelmezett TLS-verziót használja.
Tiltsa le a FIPS módot , ha az engedélyezve van, mert ütközés lehetséges a jelen dokumentumban a TLS 1.0/1.1 explicit letiltásához szükséges beállításokkal. További információt a B függelékben talál.
Frissítse és újrafordítja a WinHTTP-t használó alkalmazásokat, amelyeket a Server 2012-n vagy régebbi kiszolgálón üzemeltetnek.
Felügyelt alkalmazások – újraépítés és célzás a .NET-keretrendszer legújabb verziójára
Az alkalmazásoknak kóddal kell támogatniuk a TLS 1.2-t a WinHttpSetOption használatával
Az összes alap lefedéséhez vizsgálja meg a forráskódot és az online szolgáltatás konfigurációs fájljait az alábbi mintákhoz, amelyek megfelelnek a TLS-keménykódolásban gyakran használt számba vett típusértékeknek:
BiztonságiProtokollTípus
SSLv2, SSLv23, SSLv3, TLS1, TLS 10, TLS11
WINHTTP_FLAG_SECURE_PROTOCOL_
SP_PROT_
NSStreamSocketSecurityLevel
PROTOCOL_SSL vagy PROTOCOL_TLS
Az ajánlott megoldás minden fenti esetben az, hogy távolítsa el a rögzített protokoll verzióválasztását, és halasztsa az operációs rendszer alapértelmezett beállítására. Ha DevSkim-et használ, kattintson ide a fenti ellenőrzésekre vonatkozó szabályok megtekintéséhez, amelyeket saját kódjával használhat.
Windows PowerShell-szkriptek vagy kapcsolódó beállításjegyzék-beállítások frissítése
A Windows PowerShell a .NET Framework 4.5-öt használja, amely nem tartalmazza a TLS 1.2-t elérhető protokollként. Ennek megoldásához két megoldás érhető el:
Módosítsa a szóban forgó szkriptet úgy, hogy az tartalmazza a következőket:
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12;Adjon hozzá egy rendszerszintű beállításkulcsot (például csoportházirenden keresztül) minden olyan géphez, amelynek TLS 1.2-kapcsolatokat kell létrehoznia egy .NET-alkalmazásból. Ez azt eredményezi, hogy a .NET a "System Default" TLS-verziót használja, amely a TLS 1.2-t adja hozzá elérhető protokollként, és lehetővé teszi, hogy a szkriptek a jövőbeli TLS-verziókat használják, amikor az operációs rendszer támogatja őket. (pl. TLS 1.3)
reg add HKLM\SOFTWARE\Microsoft.NETFramework\v4.0.30319 /v SystemDefaultTlsVersions /t REG_DWORD /d 1 /f /reg:64
reg add HKLM\SOFTWARE\Microsoft.NETFramework\v4.0.30319 /v SystemDefaultTlsVersions /t REG_DWORD /d 1 /f /reg:32
Az (1) és (2) megoldások kölcsönösen kizárják egymást, ami azt jelenti, hogy nem kell őket együtt megvalósítani.
Felügyelt alkalmazások újraépítése/újratelepítése a .Net-keretrendszer legújabb verziójával
A .NET-keretrendszer 4.7 előtti verzióit használó alkalmazások esetében a támogatás hatékonyan a TLS 1.0 verzióra korlátozódhat, függetlenül a mögöttes operációs rendszer alapértelmezett beállításaitól. További információért tekintse meg az alábbi diagramot és a Transport Layer Security (TLS) ajánlott eljárásait a .NET-keretrendszerben .
A SystemDefaultTLSVersion elsőbbséget élvez a TLS-verziók alkalmazásszintű célzásával szemben. Az ajánlott eljárás az, ha mindig az operációs rendszer alapértelmezett TLS-verziójára halaszt. Emellett ez az egyetlen kripto-agilis megoldás, amellyel az alkalmazások kihasználhatják a jövőbeli TLS 1.3-támogatás előnyeit.
Ha a .NET-keretrendszer régebbi verzióit, például a 4.5.2-t vagy a 3.5-öt célozza meg, akkor az alkalmazás alapértelmezés szerint a régebbi és nem ajánlott protokollokat fogja használni, például az SSL 3.0-t vagy a TLS 1.0-t. Javasoljuk, hogy frissítsen a .NET-keretrendszer újabb verzióira, például a .NET Framework 4.6-ra, vagy állítsa be a "UseStrongCrypto" beállításkulcsait.
Tesztelés a TLS 1.2+ használatával
A fenti szakaszban javasolt javításokat követve a termékeket regressziós tesztekkel kell tesztelni a protokollal való egyeztetési hibák és a vállalat más operációs rendszereivel való kompatibilitás szempontjából.
A regressziós tesztelés leggyakoribb problémája egy TLS-egyeztetési hiba lesz, amely egy olyan operációs rendszerből vagy böngészőből érkező ügyfélkapcsolati kísérlet miatt történik, amely nem támogatja a TLS 1.2-t.
- Egy Vista-ügyfél például nem tud tárgyalni a TLS-ről egy TLS 1.2+-ra konfigurált kiszolgálóval, mivel a Vista maximális támogatott TLS-verziója 1.0. Ezt az ügyfelet TLS 1.2+ környezetben kell frissíteni vagy leszerelni.
A tanúsítványalapú kölcsönös TLS-hitelesítést használó termékek további regressziós tesztelést igényelhetnek, mivel a TLS 1.0-hoz társított tanúsítványkiválasztási kód kevésbé volt kifejező, mint a TLS 1.2 esetében.
- Ha egy termék az MTLS-t nem szabványos helyről származó tanúsítvánnyal egyezteti (a Windowsban a standard névvel ellátott tanúsítványtárolókon kívül), akkor előfordulhat, hogy a kódnak frissítenie kell a tanúsítvány megfelelő beszerzésének biztosításához.
A szolgáltatásközi eltéréseket felül kell vizsgálni a problémás pontok miatt.
Minden olyan szolgáltatásnak, amely harmadik féltől származó szolgáltatással működik együtt, további interoperabilitás tesztelést kell végeznie a harmadik féllel.
A használatban lévő nem Windows-alkalmazásokhoz vagy kiszolgálói operációs rendszerekhez vizsgálatra/ megerősítésre van szükség, hogy támogatják-e a TLS 1.2-t. Ennek meghatározásához a vizsgálat a legegyszerűbb módszer.
A módosítások online szolgáltatásban való tesztelésére szolgáló egyszerű terv a következőkből áll:
Vizsgálja meg az éles környezet rendszereit, hogy azonosítsa azokat az operációs rendszereket, amelyek nem támogatják a TLS 1.2-t.
A "TLS 1.0-függőségek keresése és javítása a kódban" című cikkben leírtak szerint vizsgálja meg a forráskód- és online szolgáltatáskonfigurációs fájlokat a merevlemezes TLS-hez
Frissítse/fordítsa újra az alkalmazásokat szükség szerint.
Felügyelt alkalmazások
Újraépítés a .NET-keretrendszer legújabb verziójával.
Ellenőrizze, hogy az SSLProtocols enumerálás használata SSLProtocols.None értékre van-e állítva az operációs rendszer alapértelmezett beállításainak használatához.
WinHTTP-alkalmazások – újraépítés a WinHttpSetOption használatával a TLS 1.2 támogatásához
A tesztelést éles üzem előtti vagy előkészítési környezetben kezdheti el, a TLS 1.2-nél régebbi biztonsági protokollok beállításjegyzéken keresztüli letiltásával.
Javítson ki minden fennmaradó TLS kézi kódolást a tesztelés során. Telepítse újra a szoftvert, és végezzen el egy új regressziós tesztfuttatást.
Partnerek értesítése a TLS 1.0-s elavulási terveiről
A TLS hardcoding kezelése és az operációs rendszer/fejlesztési keretrendszer frissítéseinek befejezése után, ha a TLS 1.0 elavultatása mellett dönt, az ügyfelekkel és partnerekkel való egyeztetés szükséges:
A partnerek és ügyfelek korai megkeresése elengedhetetlen a TLS 1.0 kivezetésének sikeres bevezetéséhez. Ennek legalább blogbejegyzésekből, whitepapersekből vagy más webes tartalmakból kell állnia.
A partnereknek a fenti szakaszokban ismertetett operációs rendszer-/kódvizsgálati/regressziós tesztelési kezdeményezéseken keresztül ki kell értékelniük a saját TLS 1.2-felkészültségüket.
Conclusion
A TLS 1.0-függőségek eltávolítása bonyolult folyamat az elejétől a végéig történő irányítás szempontjából. A Microsoft és az iparági partnerek ezen a napon műveletet hajtanak végre annak érdekében, hogy a teljes termékkészlet alapértelmezés szerint biztonságosabb legyen az operációs rendszer összetevőitől és fejlesztési keretrendszereitől kezdve az ezekre épülő alkalmazásokig/szolgáltatásokig. A dokumentumban foglalt ajánlások követése segíti vállalkozását a helyes irány kijelölésében és abban, hogy tisztában legyen a várható kihívásokkal. Emellett segít a saját ügyfeleinek is felkészülni az átállásra.
Függelék A: Kézfogásszimuláció különböző ügyfelek csatlakozása a www.microsoft.com webhelyhez, az SSLLabs.com jóvoltából
B függelék: A TLS 1.0/1.1 elavulása a FIPS mód megőrzése mellett
Kövesse az alábbi lépéseket, ha a hálózat fips üzemmódot igényel, de a TLS 1.0/1.1-et is el szeretné elavultni:
Konfigurálja a TLS-verziókat a beállításjegyzéken keresztül úgy, hogy az "Engedélyezve" beállítást nullára állítja a nem kívánt TLS-verziók esetében.
Tiltsa le a Curve 25519-et (csak server 2016) csoportházirenddel.
Tiltsa le a titkosítási csomagokat olyan algoritmusokkal, amelyeket a megfelelő FIPS-kiadvány nem engedélyez. A Server 2016 esetében (feltételezve, hogy az alapértelmezett beállítások érvényben vannak) ez az RC4, a PSK és a NULL titkosítás letiltását jelenti.
Közreműködők/Köszönet a
Mark Cartwright
Bryan Sullivan
Patrick Jungles
Michael Scovetta
Tony Rice
David LeBlanc
Mortimer Cook
Daniel Sommerfeld
Andrei Popov
Michiko Short
Justin Burke
Gov Maharaj
Brad Turner
Sean Stevenson