Windows juhend: Kuidas digiallkirjastada allkirjastamata draivereid: Difference between revisions
No edit summary |
|||
(27 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
= | =Draiverite allkirjastamine Windows 7 x64 näitel.= | ||
==Sissejuhatus== | ==Sissejuhatus== | ||
Line 16: | Line 15: | ||
: http://www.microsoft.com/en-us/download/details.aspx?id=8279 | : http://www.microsoft.com/en-us/download/details.aspx?id=8279 | ||
:Vajalikud Failid asuvad: C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin | :Vajalikud Failid asuvad: C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin | ||
<b>Vajalikud programmid/failid: (leiab eelnevalt installeeritud pakettidest):</b> | <b>Vajalikud programmid/failid: (leiab eelnevalt installeeritud pakettidest):</b> | ||
Inf2Cat.exe (signeerimata Catalog faili genereerimiseks sinu INF) | <b>Inf2Cat.exe</b> (signeerimata Catalog faili genereerimiseks sinu INF)<br/> | ||
Samast kataloogist kus asub Inf2Cat.exe läheb vaja veel: | Samast kataloogist kus asub Inf2Cat.exe läheb vaja veel:<br/> | ||
WindowsProtectedFiles.xml | <b>WindowsProtectedFiles.xml</b><br/> | ||
Microsoft.Whos.Shared.IO.Cabinets.dll | <b>Microsoft.Whos.Shared.IO.Cabinets.dll</b><br/> | ||
Microsoft.Whos.Shared.IO.Catalogs.dll | <b>Microsoft.Whos.Shared.IO.Catalogs.dll</b><br/> | ||
Microsoft.Whos.Shared.Xml.InfReader.dll | <b>Microsoft.Whos.Shared.Xml.InfReader.dll</b><br/> | ||
Microsoft.Whos.Winqual.Submissions.SubmissionBuilder.dll | <b>Microsoft.Whos.Winqual.Submissions.SubmissionBuilder.dll</b><br/> | ||
Microsoft.Whos.Xml.NonXmlDataReader.dll | <b>Microsoft.Whos.Xml.NonXmlDataReader.dll</b><br/> | ||
<b>Makecert.exe</b> (Sertifikaadi genereerimiseks)<br/> | |||
Makecert.exe (Sertifikaadi genereerimiseks) | <b>Cert2spc.exe</b> (Tarkvara publitseerija cerdi tegemiseks, Software Publisher's Certificate (SPC))<br/> | ||
<b>pvk2pfx.exe</b> (PFX faili loomiseks)<br/> | |||
Cert2spc.exe (Tarkvara publitseerija cerdi tegemiseks, Software Publisher's Certificate (SPC)) | <b>Signtool.Exe</b> (Catalog faili digitaalseks signeerimiseks)<br/> | ||
pvk2pfx.exe (PFX faili loomiseks) | <b>Certmgr.exe</b> (Sertifikaateide kustutamiseks lisamiseks)<br/> | ||
Signtool.Exe (Catalog faili digitaalseks signeerimiseks) | |||
Certmgr.exe (Sertifikaateide kustutamiseks lisamiseks) | |||
Siin näites koondasin kõik vajalikud failid kataloogi nimega „C:\driveri_allkirjastamine“. | 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. | Kui kõik tööriistad koos, võtsin suvalise win98 driveri millega katsetada. | ||
Draiveri failid tõstisn kataloogi: „C:\driveri_allkirjastamine\driver“. | |||
driver.inf | Draiveri kataloogis peab olema vähemalt sellised draiveri failid mida hakkame signeerima:<br/> | ||
<pre>driver.inf | |||
driver.sys | driver.sys | ||
driver.dll | driver.dll | ||
</pre> | |||
==Loome .cat (catalog) faili draiverist.== | ==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: | Avame .inf faili tekst editoris ja vaatame, et seal oleks määratud sektsiooni [version] all .cat fail. Kui seda pole, siis lisame rea: | ||
<pre> | |||
[version] | [version] | ||
Line 57: | Line 56: | ||
CatalogFile.NTx86=testdriver.cat | CatalogFile.NTx86=testdriver.cat | ||
</pre> | |||
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". | 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 | Command line:<pre>Inf2Cat.exe /driver:"<Path to folder containing driver files>" /os:XP_X86 </pre> | ||
Käivitasime käsu: | Käivitasime käsu: | ||
C:\driveri_allkirjastamine>Inf2Cat.exe /driver:"C:\driveri_allkirjastamine\driver" /os:7_X86 | <pre>C:\driveri_allkirjastamine>Inf2Cat.exe /driver:"C:\driveri_allkirjastamine\driver" /os:7_X86</pre> | ||
Saime testdriver.cat faili turbekataloogi. | Saime testdriver.cat faili turbekataloogi: <br/> | ||
[[File:wiki_kuidas_allkirjastada_allkirjastamata_driveritimage001.jpg]]<br/> | |||
[[File:wiki_kuidas_allkirjastada_allkirjastamata_driveritimage002.jpg]] | |||
Turbekataloog testdriver.cat sisu:<br/> | |||
[[File:wiki_kuidas_allkirjastada_allkirjastamata_driveritimage003.jpg]] | |||
<br/> | |||
Nagu näha pole see turbekataloog signeeritud. | Nagu näha pole see turbekataloog signeeritud. | ||
==Loome sertifikaadi ja privaat võtme.== | ==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. | 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 | <pre>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 </pre> | ||
Näidis: makecert.exe -r -pe "c:\PlaneteersLtd_certificate\PlaneteersLtd.cer" -n CN="Planeteers Ltd" -sv "c:\PlaneteersLtd_certificate\PlaneteersLtd.pvk" -len 2048 | <pre>Näidis: makecert.exe -r -pe "c:\PlaneteersLtd_certificate\PlaneteersLtd.cer" -n CN="Planeteers Ltd" -sv "c:\PlaneteersLtd_certificate\PlaneteersLtd.pvk" -len 2048</pre> | ||
[[File:Wiki_kuidas_allkirjastada_allkirjastamata_driverit.jpg]] | |||
See käsk loob privaat võtme, mille peab sisestama. Soovitav on see ülesse märkida! | See käsk loob privaat võtme, mille peab sisestama. Soovitav on see ülesse märkida! | ||
Sisestame parooli (näites on selleks: test): | Sisestame parooli (näites on selleks: test):<br/> | ||
[[File:wiki_kuidas_allkirjastada_allkirjastamata_driveritimage005.jpg]]<br/> | |||
[[File:image00wiki_kuidas_allkirjastada_allkirjastamata_driverit6.jpg]]<br/> | |||
[[File:wiki_kuidas_allkirjastada_allkirjastamata_driveritimage007.jpg]] | |||
Line 113: | Line 117: | ||
Näidis: | Näidis:<pre> | ||
pvk2pfx.exe -pvk "c:\PlaneteersLtd_certificate\PlaneteersLtd.pvk" -spc "c:\PlaneteersLtd_certificate\PlaneteersLtd.spc" -pi <private key password> | pvk2pfx.exe -pvk "c:\PlaneteersLtd_certificate\PlaneteersLtd.pvk" -spc "c:\PlaneteersLtd_certificate\PlaneteersLtd.spc" -pi <private key password></pre> | ||
[[File:wiki_kuidas_allkirjastada_allkirjastamata_driveritimage008.jpg]] | |||
Nüüd saame programmiga signtool.exe signeerida catalog faili. | Nüüd saame programmiga signtool.exe signeerida catalog faili. | ||
==Signeerime/allkirjastame catalog faili== | ==Signeerime/allkirjastame catalog faili== | ||
Näidis: | Näidis:<pre> | ||
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" | 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"</pre><br/> | ||
[[File:wiki_kuidas_allkirjastada_allkirjastamata_driveritimage009.jpg]] | |||
==Lisame loodud serdi usaldusväärsete sertide alla== | ==Lisame loodud serdi usaldusväärsete sertide alla== | ||
Lisame Loodud serdi „c:\PlaneteersLtd_certificate\ PlaneteersLtd.cer“ | Lisame Loodud serdi „c:\PlaneteersLtd_certificate\ PlaneteersLtd.cer“<br/> | ||
CertMgr.exe –ga usaldusväärsete juur sertide alla. | 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. | 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 | Signeeritud draiveri info:<br/> | ||
[[File:wiki_kuidas_allkirjastada_allkirjastamata_driveritimage010.jpg]]<br/> | |||
[[File:wiki_kuidas_allkirjastada_allkirjastamata_driveritimage011.jpg]] | |||
==Kokkuvõtte:== | ==Kokkuvõtte:== | ||
Sellised serditud | Sellised serditud draiverid on mõeldud firma siseseks kasutamiseks ja testimiseks. Muul otstarbel tuleb sert ikka osta näiteks sertifitseerimis asutustest (Verisign/Comodo). | ||
==Viited== | ==Viited== | ||
* http://msdn.microsoft.com/en-us/library/windows/hardware/ff547660%28v=vs.85%29.aspx | |||
* http://msdn.microsoft.com/en-us/library/windows/hardware/ff548693%28v=vs.85%29.aspx | |||
* http://msdn.microsoft.com/en-us/library/bfsktky3.aspx | |||
* http://msdn.microsoft.com/en-us/library/ff547089%28VS.85%29.aspx | |||
==Autor== | ==Autor== | ||
Tõnu Erm | Tõnu Erm | ||
18.10.2012 | 18.10.2012 |
Latest revision as of 21:39, 21 October 2012
Draiverite 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.
Draiveri failid tõstisn kataloogi: „C:\driveri_allkirjastamine\driver“.
Draiveri kataloogis peab olema vähemalt sellised draiveri 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.
Kokkuvõtte:
Sellised serditud draiverid on mõeldud firma siseseks kasutamiseks ja testimiseks. Muul otstarbel tuleb sert ikka osta näiteks sertifitseerimis asutustest (Verisign/Comodo).
Viited
- http://msdn.microsoft.com/en-us/library/windows/hardware/ff547660%28v=vs.85%29.aspx
- http://msdn.microsoft.com/en-us/library/windows/hardware/ff548693%28v=vs.85%29.aspx
- http://msdn.microsoft.com/en-us/library/bfsktky3.aspx
- http://msdn.microsoft.com/en-us/library/ff547089%28VS.85%29.aspx
Autor
Tõnu Erm 18.10.2012