Windows juhend: Kuidas digiallkirjastada allkirjastamata draivereid

From ICO wiki
Revision as of 08:48, 18 October 2012 by Toerm (talk | contribs)
Jump to navigationJump to search

Mina teen. 07.10.2012, Tõnu Erm

Driverite allkirjastamine Windows 7 x64 näitel.

Sissejuhatus

Kuna kõik uuemad Windowsid nõuavad signeeritud draivereid, siis on vaja leida lahendus ka Ettevõtte piires kasutatavata, mitte signeeritud draiverite allkirjastamiseks. Selleks on õnneks Microsoftil kõik vahendid olemas.

Vajalikud vahendid

Alustuseks tõmbame alljärgnevad paketid ja installeerime need: 1. Windows Driver Frameworks (WDF) Ms lehelt. Ca 30MB http://msdn.microsoft.com/en-US/windows/hardware/br259104 2. Windows Driver Kit (WDK), ca 1GB. http://www.microsoft.com/en-us/download/details.aspx?id=11800 3. Microsoft Windows SDK for Windows 7 and .NET Framework 4 http://www.microsoft.com/en-us/download/details.aspx?id=8279 Vajalikud Failid asuvad: C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin Vajalikud programmid/failid: (leiab eelnevalt installeeritud pakettidest):

Inf2Cat.exe (signeerimata Catalog faili genereerimiseks sinu INF) Samast kataloogist kus asub Inf2Cat.exe läheb vaja veel: WindowsProtectedFiles.xml Microsoft.Whos.Shared.IO.Cabinets.dll Microsoft.Whos.Shared.IO.Catalogs.dll Microsoft.Whos.Shared.Xml.InfReader.dll Microsoft.Whos.Winqual.Submissions.SubmissionBuilder.dll Microsoft.Whos.Xml.NonXmlDataReader.dll


Makecert.exe (Sertifikaadi genereerimiseks)

Cert2spc.exe (Tarkvara publitseerija cerdi tegemiseks, Software Publisher's Certificate (SPC)) pvk2pfx.exe (PFX faili loomiseks) Signtool.Exe (Catalog faili digitaalseks signeerimiseks)

Certmgr.exe (Sertifikaateide kustutamiseks lisamiseks)


Siin näites koondasin kõik vajalikud failid kataloogi nimega „C:\driveri_allkirjastamine“. Kui kõik tööriistad koos, võtsin suvalise win98 driveri millega katsetada. Driveri failid tõstisn kataloogi: „C:\driveri_allkirjastamine\driver“. Driveri kataloogis peab olema vähemalt sellised driveri failid mida hakkame signeerima: driver.inf driver.sys driver.dll

Loome .cat (catalog) faili draiverist.

Avame .inf faili tekst editoris ja vaatame, et seal oleks määratud sektsiooni [version] all .cat fail. Kui seda pole, siis lisame rea:

[version]

Signature=xxxxxx

Provider=xxxxxx

CatalogFile.NTx86=testdriver.cat Kus „testdriver.cat“ on faili nimi mille tahame genereerida. Kui seda rida ei lisa, tuleb järgmise käsu juures error: "error 22.9.4 - Missing 32-bit catalog file entry".

Command line:Inf2Cat.exe /driver:"<Path to folder containing driver files>" /os:XP_X86

Käivitasime käsu: C:\driveri_allkirjastamine>Inf2Cat.exe /driver:"C:\driveri_allkirjastamine\driver" /os:7_X86 Saime testdriver.cat faili turbekataloogi.  

Turbekataloog testdriver.cat sisu:


Nagu näha pole see turbekataloog signeeritud.  

Loome sertifikaadi ja privaat võtme.

Loome nö testfirma 'c:\PlaneteersLtd_certificate'. See on koht kuhu loome customer-specific sertifikaadi. Seda serti saame korduvalt kasutada oma testfirmas draiverite allkirjastamiseks. Command line:MakeCert.Exe -r -pe <path to .cer file you want to generate> -n CN=<certificate name> -sv <path to .pvk file you want to generate> -len 2048

Näidis: makecert.exe -r -pe "c:\PlaneteersLtd_certificate\PlaneteersLtd.cer" -n CN="Planeteers Ltd" -sv "c:\PlaneteersLtd_certificate\PlaneteersLtd.pvk" -len 2048


See käsk loob privaat võtme, mille peab sisestama. Soovitav on see ülesse märkida! Sisestame parooli (näites on selleks: test):



Sellega luuakse: c:\PlaneteersLtd_certificate\PlaneteersLtd.cer ja c:\PlaneteersLtd_certificate\PlaneteersLtd.pvk

Loome tarkvara Publisher'i sertifikaadi (SPC) meie loodud sertifikaadist

Command Line:Cert2Spc.Exe <path to .cer file> <path to .spc file> Näidis: cert2spc.exe "c:\PlaneteersLtd_certificate\PlaneteersLtd.cer" "c:\PlaneteersLtd_certificate\PlaneteersLtd.spc"

Sellega saime faili:“c:\PlaneteersLtd_certificate\PlaneteersLtd.spc" Loome PFX faili programmiga pvk2pfx.exe


pvk2pfx.exe Kasutamine:

   pvk2pfx -pvk <pvk-file> [-pi <pvk-pswd>] -spc <spc-file> [-pfx <pfx-file> [-po <pfx-pswd>] [-f]]
       -pvk <pvk-file>  - input PVK file name.
       -spc <spc-file>  - input SPC file name.
       -pfx <pfx-file>  - output PFX file name.
       -pi <pvk-pswd>  - PVK password.
       -po <pfx-pswd>  - PFX password; same as -pi if not given.
       -f              - force overwrite existing PFX file.


Kui -pfx võtit ei lisa, siis viskab export viisardi ette ja sellisel juhul, options -po ja -f ei arvestata.


Näidis: pvk2pfx.exe -pvk "c:\PlaneteersLtd_certificate\PlaneteersLtd.pvk" -spc "c:\PlaneteersLtd_certificate\PlaneteersLtd.spc" -pi <private key password>


Nüüd saame programmiga signtool.exe signeerida catalog faili.

Signeerime/allkirjastame catalog faili

Näidis: signtool.exe sign /f "c:\PlaneteersLtd_certificate\PlaneteersLtd.pfx" /p <password> /t http://timestamp.verisign.com/scripts.timstamp.dll "C:\ driveri_allkirjastamine\driver\testdriver.cat"


Lisame loodud serdi usaldusväärsete sertide alla

Lisame Loodud serdi „c:\PlaneteersLtd_certificate\ PlaneteersLtd.cer“ CertMgr.exe –ga usaldusväärsete juur sertide alla.

Nüüd on meil signeeritud ja turvaline draiver. Et ka teistes arvutites saaks seda turvaliselt kasutada, peab olema installeerimise ajal lisatud turvaliste sertide alla PlaneteersLtd.cer -sertifikaat.

Signeeritud driveri info:


Kokkuvõtte:

Sellised serditud driverid on mõeldud firma siseseks kasutamiseks ja testimiseks. Muul otstarbel tuleb sert ikka osta näiteks sertifitseerimis asutustest (Verisign/Comodo).