Windows juhend: Kuidas digiallkirjastada allkirjastamata draivereid: Difference between revisions

From ICO wiki
Jump to navigationJump to search
No edit summary
 
(27 intermediate revisions by the same user not shown)
Line 1: Line 1:
Mina teen. 07.10.2012, Tõnu Erm


=Driverite allkirjastamine Windows 7 x64 näitel.=
=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.
Driveri failid tõstisn kataloogi: „C:\driveri_allkirjastamine\driver“.
Draiveri failid tõstisn kataloogi: „C:\driveri_allkirjastamine\driver“.
Driveri kataloogis peab olema vähemalt sellised driveri failid mida hakkame signeerima:
 
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:


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 driveri info:  
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 driverid on mõeldud firma siseseks kasutamiseks ja testimiseks. Muul otstarbel tuleb sert ikka osta näiteks sertifitseerimis asutustest (Verisign/Comodo).
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 22: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.

Signeeritud draiveri info:

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

Autor

Tõnu Erm 18.10.2012