Kuidas draivereid Windowsis samm-sammult allkirjastada

Viimane uuendus: 17/12/2025
Autor: Isaac
  • Windows See nõuab enamiku 64-bitiste draiverite, eriti kernel-režiimi draiverite puhul kehtivaid digitaalallkirju, et tagada terviklikkus ja turvalisus.
  • Allkirja saab rakendada nii binaarfailidele kui ka kataloogidele, kasutades selliseid tööriistu nagu SignTool või Visual Studio ja usaldusväärsete üksuste väljastatud sertifikaate.
  • Iseallkirjastatud sertifikaadid hõlbustavad arendamist ja testimist draiverid allkirjastamata Windows 78.1 ja 10 x64, kuid need ei asenda avalikuks levitamiseks kommertsallkirja.
  • Windowsi versioonide ühilduvus sõltub sobivate räsialgoritmide (nt SHA2) kasutamisest ning Microsofti ja WHQL-i juhiste järgimisest.

draiveri allkirjastamine Windowsis

Draiveri allkirjastamine Windowsis võib esmapilgul tunduda millegi sellisena, mida saavad teha ainult kõrgelt arenenud arendajad, aga kui te töötate koos seadmed, kohandatud draiverid või testimiskeskkonnadVarem või hiljem puutute selle nõudega kokku. Tänapäevastes süsteemides, eriti 64-bitistes süsteemides, ei usalda Windows enam suvalist binaarfaili, mis üritab kerneli sisse hiilida: see vajab kehtivaid digitaalallkirju, kaasaegseid algoritme nagu SHA2 ja paljudel juhtudel Microsofti sertifikaati.

Järgmistes ridades uurime rahulikult, mida täpselt tähendab kontrolleri allkirjastamine, millised erinevused nende vahel on kerneli režiim ja kasutajarežiimKuidas see mõjutab 64-bitiseid Windows 7, 8, 8.1 ja 10 versioone, millist rolli mängivad tööriistad nagu SignTool või Visual Studio ning millised valikud on nii arenduskeskkondade (test- või iseallkirjastatud sertifikaadid) kui ka usaldusväärse asutuse väljastatud sertifikaatidega avalike versioonide jaoks.

Mis on draiveri allkirjastamine Windowsis ja miks see on kohustuslik?

Draiveri allkirjastamine Windowsis hõlmab a-ga seostamist digitaalallkiri draiveripaketile (binaarfailid, INF-failid, kataloog jne), et tagada kaks asja: et keegi pole faile pärast nende loomist manipuleerinud ja et need pärinevad tõepoolest märgitud avaldajalt (tarkvarapakkujalt või tootjalt). riistvara).

Praktikas kasutatakse neid digitaalallkirju Windowsi seadme installimise ajal selleks, et kontrollige pakendi terviklikkust ja avaldaja identiteet. Kui midagi ei sobi (rikutud allkiri, ebausaldusväärne sertifikaat, vale räsi jne), kuvab süsteem hoiatusi, blokeerib installimise või keeldub lihtsalt draiveri laadimisest.

Alates Windows Vista 64-bitisest versioonist ja eriti Windows 7, 8, 8.1 ja 10 x64 puhul on kerneli režiimi turvapoliitika selge: iga draiver, mis kernelis töötab See peab olema korralikult allkirjastatud.Vastasel juhul draiver ei laadi, seade võib muutuda mittetöötavaks ja sinised ekraanid võivad tekkida isegi siis, kui vigased binaarfailid sunnitakse laadima.

Kui otsustate oma draiveri Microsoftiga sertifitseerida, saate selle esitada Windows Hardware Quality Labsi (WHQL) valideerimisprotsessile. Kui draiveripakett läbib sertifitseerimistestid, annab Microsoft sellele sertifikaadi. ametlik WHQL allkiriSee mitte ainult ei paranda usaldust ja ühilduvust, vaid võimaldab teil draiverit ka levitada Windows Update ja muud Microsofti toetatud turustuskanalid.

Oluline on meeles pidada, et alates Windows 10 versioonist 1507 on kõik Microsoft Hardware Development Centeri kaudu allkirjastatud draiverid allkirjastatud, kasutades SHA2 räsialgoritminaSHA1 on nende stsenaariumide jaoks vananenud ja vanade sertifikaatide segamine võib probleeme tekitada, eriti uuemates süsteemides.

Draiveri allkirja selgitus Windowsis

Draiveri allkirjastamise erinevused kerneli režiimis ja kasutajarežiimis

Windowsis töötavad draiverid kerneli režiim ja kasutajarežiimAllkirjastamispoliitika ei ole mõlemas keskkonnas täpselt sama, kuigi see kipub iga uue operatsioonisüsteemi versiooniga rangemaks muutuma.

  Miks teie Windowsi arvuti aja jooksul aeglasemaks muutub? Kõik põhjused selgitatud

Kernelrežiimi draiverid on kõige tundlikumad, kuna need töötavad süsteemi kernelis ja neil on privilegeeritud juurdepääs mälule ja riistvarale. Windows Vista 64-bitistes versioonides ja uuemates versioonides on need draiverid... Need on nõutavad allkirjastamiseks laadimiseks. See piirang on otseselt seotud süsteemi stabiilsuse ja kaitsega malware et see üritab süstida madalal tasemel.

Teisest küljest ei olnud kasutajarežiimis töötavad draiverid (näiteks paljud printeridraiverid ja lisandmoodulid) algselt sellise range kohustuse all. Tegelikult olid Windowsi vanemates versioonides See ei olnud absoluutne nõue et need draiverid oleksid allkirjastatud. Microsoft on aga alati soovitanud neid turvakaalutlustel allkirjastada ning alates Windows 8-st on olnud olukordi, kus teatud tüüpi kasutajadraiverite puhul on allkirjastamine nõutav.

Tüüpiline näide: x64-arvutisse installitud printeridraiver kuvab installiprotsessi ajal tavaliselt dialoogiboksi, mis küsib kasutaja kinnitust. Praktikas see pakett See peab olema korralikult allkirjastatud et installimine saaks jätkuda ilma takistuste või kriitiliste turvahoiatusteta.

Üldine idee on see, et kuigi nõue ei ole kasutajarežiimis universaalne, surub Microsoft selle poole üha enam. kogu draiveritega seotud tarkvara peab olema allkirjastatudNende allkirjastamine võimaldab usaldusväärselt kontrollida, kes need lõi, tuvastada võltsimist ja vähendada pahatahtlike komponentide sissetungimise ohtu, teeseldes end õiguspärasteks kontrolleriteks.

Allkirjanõuded ja SHA algoritmid Windowsi erinevates versioonides

Üks problemaatilisemaid aspekte on Windowsi versioonide ja räsialgoritmide, näiteks ... ühilduvus. SHA1 ja SHA2Paljud arendajad puutuvad kokku draiveritega, mis töötavad ühes süsteemis, aga mitte teises, ja suur osa süüst lasub allkirjastamispoliitikate muudatustes.

Vanemates süsteemides, näiteks 64-bitistes Windows 7 või 8, oli tavaline töötada SHA1-põhiste sertifikaatide ja allkirjadega, kuigi Microsoft oli juba hoiatanud, et SHA1 jäi turvalisuse osas puudulikuksWindows 8.1 ja 10 suunas tehtavate edusammudega on SHA2-st saanud koodi ja draiverite allkirjade standard.

Praktikas otsustasid mõned tootjad kernel-režiimi binaarfailide allkirjastamiseks manustada topeltsertifikaate (SHA1 ja SHA2), mille olid väljastanud muud üksused peale Microsofti. Need topeltallkirjaga binaarfailid teatud juhtudel Need ei laadi Windows 10-st varasemates versioonides.ja mõnes Windows 10 süsteemis võivad need põhjustada isegi tõsiseid krahhe või siniseid ekraane.

Nende probleemide leevendamiseks avaldas Microsoft spetsiaalsed parandused, näiteks värskenduse KB 3081436. Selle värskenduse installimine mõjutatud süsteemidesse parandab ühildumatuse teatud SHA2-allkirjastatud draiveritega ja annab loendi järgmistest: viite SHA räsiväärtused selle tugiartikli jaotises „Lisateave – faili räsi teave”.

Kui kavatsete levitada draivereid, mis peavad töötama Windowsi mitme versiooniga, on oluline üle vaadata allkirjanõuded versiooni kohta Microsofti poolt üksikasjalikult kirjeldatud. Seal on täpsustatud, millised algoritmid on kehtivad, kuidas käsitletakse tagasiühilduvust ja millised allkirjade kombinatsioonid (kataloog, manustatud binaarfail, ristsertifikaadid jne) on ametlikult aktsepteeritud.

  ASCII-märkide sisestamine Windowsi klaviatuurilt samm-sammult

Kasutajarežiimi draiveri allkirjastamine: soovitused ja ressursid

Kuigi kernel saab sageli kõige rohkem tähelepanu, väärib tähelepanu ka kasutajarežiimi draiveri allkirjastamine. Microsoft ei rakendanud seda algusest peale nii rangelt, aga... soovitab tungivalt ohutust säilitada süsteemi ja pakkuda lõppkasutajale kindlustunnet.

Kasutajarežiimi draiveri signatuur täidab põhimõtteliselt samu funktsioone kui kerneli režiimis: tuvastab vastutava töötleja teenusepakkuja (tootja, sõltumatu tarkvaratootja jne) ja kinnitab, et paketti pole pärast allkirjastamist muudetud. Kui kasutaja installib näiteks x64-arvutisse kasutajarežiimi draiveritega printeri, võib installiviisard kuvada dialoogiboksi, mis küsib, kas avaldajat usaldatakse. Kui allkiri on kehtiv ja sertifikaat kuulub tunnustatud üksusele, on installimine sujuvam ja palju vähemate hoiatustega.

Microsoft pakub rida dokumente ja õpetusi, mis süvenevad allkirjastamisprotsessi, paljud neist on algselt mõeldud kerneli režiimi jaoks, kuid kehtivad ka kasutajarežiimis. Peamine artikkel käsitleb juhi allkiri Ja kerneli režiimi koodiallkirjastamise õpetuse alateema "Kuidas kerneli moodulit versiooniallkirjastada" on head alguspunktid Windowsi koodiallkirjastamise üldise loogika mõistmiseks.

Lisaks sisaldab Windowsi draiverikomplekti (WDK) installimine abifaili nimega iseallkirjasta_loeme.htm, mis asub kataloogis eneseallkiriSee dokument selgitab, kuidas genereerida testsertifikaate ja kuidas neid arenduse ajal kasutada, mis on eriti kasulik, kui teil pole veel usaldusväärse juurasutuse väljastatud sertifikaati.

Kokkuvõttes, kuigi kasutajarežiimi draiver saab mõnes olukorras tehniliselt ilma allkirjata toimida, tuleks seda käsitleda nii, nagu oleks see kohustuslik. See on tingitud turvalisusest, brändi kuvandist ja ühilduvusest Windowsi installiviisarditega. Juhile allkirja andmine on kõige mõistlikum tegu..

Kerneli režiimi draiverite allkirjastamine Windows 7 ja 8-s SignTooli abil

64-bitise Windows 7 ja 8-ga töötades on üks levinumaid viise kernel-režiimi draiverite allkirjastamiseks käsurea tööriista kasutamine. käsud SignToolSee Windows SDK-sse kuuluv utiliit võimaldab teil nii faile allkirjastada kui ka olemasolevaid allkirju kontrollida ning pakub laia valikut valikuid erinevate stsenaariumide jaoks.

Mõned kõige olulisemad valikud SignTooli funktsioonid on järgmised:

  • /ac: määrab lisasertifikaadi, näiteks ristsertifikaadi, mis seob teie sertifikaadi usaldusväärse juurasutusega.
  • /f: tähistab faili, mis sisaldab allkirjastamissertifikaati (tavaliselt .pfx).
  • /p: annab .pfx-failis talletatud allkirjastamissertifikaadiga seotud parooli.
  • /fd: määratleb faili allkirja loomisel kasutatava räsialgoritmi, näiteks /fd sha256 allkirja genereerimiseks SHA256 põhjal (kui midagi pole määratud, on vanemates versioonides tavaliselt vaikeväärtus SHA1).
  • /n «Sertifikaadi üldnimetus»: võimaldab teil valida Windowsi sertifikaadisalvest konkreetse sertifikaadi selle üldnime (CN) põhjal.
  • /t: määrab Microsoft Authenticode'i skeemiga ühilduva ajatempliserveri.
  • / tr: tähistab RFC 3161-ga ühilduvat ajatempliserverit, mis on moodsam ja soovitatav uute rakenduste jaoks.
  Kuidas litsentsi Windows Serveris samm-sammult aktiveerida ja valideerida

Draiveriprojekti kallal töötades on oluline teada, millised failid tuleb allkirjastada. Draiveri korrektseks installimiseks Windows 7 või 8-s peab see olema allkirjastatud. kõik projekti asjakohased binaarfailid (näiteks .sys-failid) ja ka kataloogifail (.cat), mis rühmitab paketis olevad failid.

Teil on kaks peamist võimalust: saate need failid kopeerida töökausta, kus teil on SignTool saadaval, või otse teisaldage need Windows SDK prügikasti kausta ja käivitage tööriist sealt. Oluline on, et teil oleksid käepärast nii binaarfailid kui ka sertifikaadid, mida allkirjastamiseks kasutate.

Tüüpiline stsenaarium hõlmab sobiva koodiallkirjastamise sertifikaadi hankimist, näiteks „Microsofti ristsertifikaadi” sertifikaat väljastatud GlobalSigni või mõne muu usaldusväärse asutuse poolt. Asetage see ristsertifikaat (CrossCert.crt) oma töökataloogi koos oma peamise koodiallkirjastamise sertifikaadiga (näiteks CodeSign.pfx) ja käivitage sarnane käsk:

signtool sign /ac CrossCert.crt /f CodeSign.pfx /p password1234 /tr http://timestamp.globalsign.com/tsa/r6advanced1 filter.sys

See käsk genereerib allkirja, mis hõlmab ristsertifitseerimist ja hangib GlobalSigni RFC 3161 serverist ajatempli. Ajatempel on võtmetähtsusega, sest see tõestab, et fail allkirjastati kuupäeval, mil sertifikaat oli kehtiv, isegi kui see hiljem aegub.

Pärast faili allkirjastamist on aeg kontrollida, kas kõik on õige. Tavaliselt tehakse seda kinnituskäsu abil, näiteks:

signtool verify -v -kp failinimi.sys

Valik -v See sunnib kuvama üksikasjaliku väljundi, mis näitab üksikasjalikku teavet sertifikaatide ahela ja valiku kohta. -kp See kontrollib allkirja vastavalt kernel-režiimi draiveri spetsiifilistele koodiallkirjastamise kriteeriumidele. Kui kõik läheb hästi, näete tulemust, mis näitab, et allkiri ja sertifikaadiahel on õiged.

Lõpuks on soovitatav Korda sama allkirjastamis- ja kinnitamisprotsessi .cat-failiga. paketi. Kui nii binaarfailid kui ka kataloog on õigesti allkirjastatud, saab draiveri Windows 7 ja 8 x64-le turvaprobleemideta installida ning installiviisardi ajal peaksid ilmuma usaldusväärse avaldaja teave ja standardsed süsteemiaknad.

Tööriista kõigi variantide põhjalikumaks tundmaõppimiseks haldab Microsoft põhjalikku SignTooli käskude teatmikku ja ka Spetsiifiline õpetus koodi allkirjastamiseks kerneli režiimis ja dokumentatsioon, mis on pühendatud Windowsi kerneli moodulite digitaalallkirjadele. Need ressursid selgitavad erijuhtumeid, täpsemaid parameetreid ja iga süsteemiversiooni iseärasusi.