Skip Ribbon Commands
Skip to main content

Ondrej Sevecek's Blog

:

Engineering and troubleshooting by Directory Master!
Ondrej Sevecek's Blog > Posts > SHA-2 ve Windows
březen 12
SHA-2 ve Windows

V poslední době se množí instalace nových certifikačních autorit (Active Directory Certificate Services zkratka AD CS) na Windows 2008 a Windows 2008 R2.​ Tyhle nové programy umí vydávat certifikáty podepsané pomocí SHA-2. Naštěstí to není výchozí volba při instalaci (výchozí je stále SHA-1), ale stejně to mnoho lidí táhne k tomu tuto výchozí volbu změnit a nechat si certifikáty podepisovat pomocí SHA-2. Taková změna ale bude mít ve většině stávajících prostředí zásadní dopady, na které je dobré se předem připravit. Takže pojďme na to.

Rodina algoritmů

V jednom z minulých textíků jsem psal o tom, že SHA-1 je stále ještě o hodně bezpečnější, než většina podnikových sítí. Vůbec bych se tedy nebál zůstat při starém (a kompatibilním) algoritmu, pokud vás nic přímo netlačí přecházet na algoritmus nový.

Říkám algoritmus, ale myslím samozřejmě celou rodinu SHA-2 (někdy jen SHA2). Názvem SHA-2 se totiž označuje víc algoritmů ve Windows podporovaných. Jsou jimi SHA-256, SHA-384 a SHA-512 (SHA-224 není ve Windows k dispozici). Číslo v názvu znamená bitovou délku výsledné heše.

Podpora ve Windows

Windows XP SP3, Windows Vista a novější a Windows Server 2008 a novější mají podporu SHA-2 zabudovanou. Pro Windows Server 2003 si musíte vyžádat a nechat poslat záplatu KB 938397. Dobrá, ale stejně to není až tak jednoduché.

Podpora těchto algoritmů ve Windows XP a Windows Server 2003 je totiž poněkud omezenější, než by se na první pohled mohlo zdát. Tyto systémy umí ověřit platnost certifikátů podepsaných za pomoci SHA-2. To znamená, že pokud se díváte na webový server, který takový certifikát sám používá, nebo pokud ho vydala nějaká autorita, která má svůj certifikát podepsán SHA-2, tak to pojede.

Ve Windows XP bude i většina aplikací schopna používat uživatelovy SHA-2 certifikáty. To znamená, že pokud takovým certifikátem budete chtít podepsat nebo zašifrovat mail, nebo se jím přihlásit na webovou stránku nebo do Windows, tak by to mělo fungovat.

Ve Windows Server 2003 to ale není podporované. Sice to funguje, ale nemůžete si být jisti.

Co rozhodně nefunguje ani v jednom z nich je autoenrollment. Pokud vaše podniková certifikační autorita vydává certifikáty podepsané za pomoci SHA-2, ani Windows XP ani Windows Server 2003 je nedostane. Co hůř, oni si vesele požádají, autorita certifikát vydá, ale klient si ho nedokáže stáhnout. Projevuje se to následující chybou:

Event Type: Error
Event ID: 13
Source: Autoenrollment
Description: Automatic certificate enrollment for local system failed to enroll ... (0x80092009)

 
 

 

 

 

 

Vypadá to taky srandovně v autoritě, protože se tam každých 12 hodin objevuje nový vydaný certifikát pro tyto starší klienty.

Závěr

Pokud potřebujete vydávat SHA-2 certifikáty a máte přitom Windows XP nebo Windows Server 2003, nezapínejte autoenrollment. Pokud budete certifikáty vydávat ručně, většina aplikací pojede v pořádku.

Říkám většina, protože SHA-2 je prostě potřeba otestovat. Stejně jako všechno ostatní co souvisí s PKI ve Windows. Bez otestování se nemůžete ani domnívat, že to pojede. Všechno má svá specifika.

 

Comments

Autoenrollment Windows XP a Server 2003 - KB968730

Neveřejný hotfix KB968730 řeší výše uvedený problém se systémy Windows Server 2003 a Windows XP, které nemohou získat certifikáty od certifikačního úřadu systému Windows Server 2008 (CA), pokud certifikační úřad je nakonfigurován pro použití SHA2 256 nebo vyšší šifrování.
Vadlejch on 7.9.2011 13:06

Diky!

Díky!!! Rovnou link: http://support.microsoft.com/kb/968730/en (v angličtině, hell eat the machine translation :-)
Onďas on 7.9.2011 14:30

IIS v6 a SHA2

Ahoj
Rad bych se zeptal, zda IIS v6 podporuje SHA256RSA?
Pri nabindovani na WEB na Win2003 s veskerymi patchi web prestane jet ikdyz s SHA1 jede vpoho.
Privatni klic SHA256 certu je ulozen v "Microsoft Enhanced RSA and AES Cryptographic Provider" coz myslim IIS v6 nepodporuje nebo je zakopany pes jinde?
Diky moc za radu
Temp0 on 19.10.2012 18:57

Re: SHA-2 ve Windows

podle mě byste s SHA2 certifikátem v IIS neměl mít žádný problém. IIS, tedy strana serveru, ten certifikát vůbec neřeší. Je jí jedno, jestli je platný, neplatný, explicitně nedůvěryhodný. Prostě používá jeho privátní a veřejný klíč z certifikátu, který tam člověk nacpe.

SHA2 signatura se ověřuje až na straně klienta. Ten by navíc jenom zobrazil varování, že certifikát je neplatný, pokud by nerozuměl SHA2. Takže by to zase fungovalo, jen by byl červený panel adresy.

Takže IIS by s tím mělo normálně fungovat.

A jak se právě dívám, tak máte přesně problém s tím CSP. Ano, to CSP je špatně. Musíte to dát do RSA Schannel CSP.

Mám k tomu dvě zmínky v dřívějších článcích: http://www.sevecek.com/Lists/Posts/Post.aspx?ID=52
http://www.sevecek.com/Lists/Posts/Post.aspx?ID=86
ondass on 20.10.2012 9:10

SHA2 v RSA SChannel CSP

Diky za potvrzeni me domnenky.
Bohuzel SHA2 nelze vygenerovat pro tento provider, ostatne jak se pise i zde:
http://msdn.microsoft.com/en-us/library/windows/desktop/bb931357(v=vs.85).aspx
Bohuzel pokud mam SHA2 certifikat, tak se jinam nez do "Microsoft Enhanced RSA and AES Cryptographic Provider" neulozi.
Takze to vypada, ze SHA2 tedy s IIS6/Win2003 nerozchodim:-(
Diky
Temp0 on 20.10.2012 13:03

Re: SHA-2 ve Windows

no ja bych myslel, že rozchodíte. musel byste si ten certifikát SHA2 vytvořit jako exportovatelný na některých Windows 7, nebo Windows 2008 v tom správném poskytovateli (viz. můj článek o generování).

Pokud ho potom vyexportujete do .PFX i s privátním klíčem, tak v tom .PFX souboru zůstane informace o CSP. Takže když ho znovu naimportujete do Windows 2003, tak by to snad mohlo fungovat.
ondass on 20.10.2012 13:09

Re: SHA-2 ve Windows

Takze napr. kdyz pouziju nasi ceskou I. CA, tak ta uz vydava pouze SHA256 a vyse, dle zakona xyz SHA1 jiz nedodava.
Bohuzel pri vytvareni SHA2 certu to nabidne jen a pouze "Microsoft Base Smart Card Crypto Provider" a "Microsoft Enhanced RSA and AES Crypto Provider".
To same je i v pripade interni 2003 PKI.
A dle toho linku v predchozim postu to ani nelze.
Nebo se pletu?
Diky moc za tipy
Temp0 on 20.10.2012 14:17

Re: SHA-2 ve Windows

Nejprve několik poznámek k autoritám - SHA256 musí být pouze "kvalifikované certifikáty", tedy certifikáty které slouží jako důkaz identity v jednání se státní správou. I naše veřejné certifikační autority vydávají stále SHA-1 cetifikáty pro obyčejné webové servery - musíte se prostě ujistit, jestli to, co vám prodají bude opravdu SHA256, to bych byl opatrný.

Pokud máte vlastní CA na Windows 2003, tak ta vám SHA256 certifikát nevydá určitě, protože to ona neumí.

Takže jak získat SHA256 certifikát pro server? Buď si ho koupit, pakliže ho někde vůbec seženete (jak říkám, nejsem si moc jistý, jestli naše veřejné CAčky vůbec něco takového dávají. Osobně bych si to já za normálních okolností na svůj webshop nekoupil, protože mám rád zákazníky :-) a chci jich mít co nejvíc :-) a 80% jich bude mít stále ještě Windows XP, které tomu nebudou věřit).
Nebo byste si musel nainstalovat svoji vlastní CA na Windows Server 2008 a novější a při instalaci si vybrat SHA256 podpis.


Až budete mít vybranou tu autoritu, nebo budete mít vlastní, tak potom postup podle toho linku.

Je tam návod, jak si z Windows 7, nebo Windows 2008 požádat o certifikát. Žádost založíte na Windows 7 stanici, nebo na jiném Windows 2008 serveru podle toho návodu. Ti umí udělat žádost do správného poskytovatele. Tím vznikne privátní klíč uložený na daném počítači v úložišti Certificate Enrollment Request a k tomu ten požadavek ve formě .REQ souboru.

Soubor .REQ "odnesete" do autority.

Až vám certifikát vydají z té veřejné (nebo vaší) CA, tak ho naimportujete zpět tam, kde jste tu žádost založil. Tím si zpárujete ten vydaný certifikát s původním privátním klíčem.

Až to vidíte hotové, tak tohle vyexportujete do .PFX souboru a přenesete na ten váš 2003 IIS server. Tam to znovu naimportujete a nastavíte do IIS. a hotovo :-)

ondass on 20.10.2012 14:35

Re: SHA-2 ve Windows

Diky moc za tipy.
Rucni zadost vygenerovanou z 2008/Win7 jsem samozrejme zkousel s tim, ze napr. I.CA zahlasi, ze nelze prijmout takovy pozadavek s nejakou chybou, ale kdyz se vygeneruje to same s providerem pro SMART CARD ci Enhanced RSA/AES, tak CSR pres web interface projde.
Diky ale za tipy, to me utvrzuje v tom, ze to musi jit a problem je jen na strane CA ci jejich WEB interfaceu.
Jeste jednou diky.
P.S.
Vygenerovani Renewal/prodlouzeni Certu primo z IIS vyrobi zadost s SHA1, ale CA stejne vyda SHA256RSA. Pamatuji si, ze v minulosti tvrdili, ze uploadovane CSR pres web vygeneruji cert automaticky presne podle toho jaka je zadost, takze kdyz je zadost SHA1, vygeneruje tento, ale pro SHA2 je nutne vygenerovat SHA2 zadost.
Zde jde videt, ze az tak to neplati, kdyz i z SHA1 uz generuji SHA256RSA hashed cert:-)
Temp0 on 20.10.2012 16:56

Re: SHA-2 ve Windows

no podpis žádosti je věc výrobce žádosti. Podpis výsledného certifikátu je věc vystavitele certifikátu. Taky jsem slyšel, že prý to ICA dělala tak, že podepisovala sama podle toho, jaká přišla žádost. Ale moc se mi tomu ani tehdy nechtělo věřit - já bych řekl, že to je z jejího vlastního pohledu ne příliš vhodné - jestliže by někdo kreknul nějaký její SHA-1 certifikát, tak by to poškodilo reputaci celé autority. Takže pokud už podepisují, tak bych typoval, že jen jedním algoritmem. Spíš bych věřil, že měli dvě různé autority a prostě podle typu požadavku potom podepisovali jednou z těch dvou autorit.

Na Windows autoritě se ten podpis dá taky měnit, ale má také vždy jen jeden podepisovací algoritmus. Sice si ho můžete změnit, ale nikoliv podle požadavku, ale ručně v registrech pro celou CA.

K tomu, že odmítá váš požadavek. Požadavek který se vygeneruje na 2008/7 je standardní Base-64 požadavek, který nemá nic společného s providerem. Stačí ten .REQ soubor otevřít a přes schránku překopírovat jeho textový obsah do jejich webového rozhraní. Je v něm jenom veřejný klíč a jméno. Pokud tohle autorita nebere, tak je to problém jejich webového rozhraní a nikoliv váš.
ondass on 21.10.2012 9:27

Add Comment

Title


Pole Title nemusíte vyplňovat, doplní se to samo na stejnou hodnotu jako je nadpis článku.

Author *


Pole Author nesmí být stejné jako pole Title! Mám to tu jako ochranu proti spamu. Roboti to nevyplní dobře :-)

Body *


Type number two as digit *


Semhle vyplňte číslici dvě. Předchozí antispemové pole nefunguje úplně dokonale, zdá se, že jsou i spamery, které pochopily, že je občas potřeba vyplnit autora :-)

Email


Emailová adresa, pokud na ni chcete ode mě dostat odpověď. Nikdo jiný než já vaši emailovou adresu neuvidí.

Attachments