Ohjainten allekirjoittaminen Windowsissa askel askeleelta

Viimeisin päivitys: 17/12/2025
Kirjoittaja: Isaac
  • Windows Se vaatii useimpien 64-bittisten ajurien, erityisesti ydintilan ajurien, kelvolliset digitaaliset allekirjoitukset eheyden ja turvallisuuden varmistamiseksi.
  • Allekirjoitusta voidaan käyttää sekä binääritiedostoihin että luetteloihin käyttämällä työkaluja, kuten SignTool tai Visual Studio, ja luotettavien tahojen myöntämiä varmenteita.
  • Itse allekirjoitetut varmenteet helpottavat kehitystä ja testausta kuljettajat allekirjoittamaton Windows 78.1 ja 10 x64, mutta ne eivät korvaa kaupallista allekirjoitusta julkisessa jakelussa.
  • Windows-versioiden yhteensopivuus riippuu asianmukaisten hajautusalgoritmien (kuten SHA2) käytöstä ja Microsoftin ja WHQL:n ohjeiden noudattamisesta.

ajurin allekirjoittaminen Windowsissa

Ohjaimen allekirjoittaminen Windowsissa saattaa ensi silmäyksellä vaikuttaa siltä, ​​että vain erittäin edistyneet kehittäjät voivat tehdä sen, mutta jos työskentelet laitteita, mukautettuja ajureita tai testiympäristöjäEnnemmin tai myöhemmin törmäät tähän vaatimukseen. Nykyaikaisissa järjestelmissä, erityisesti 64-bittisissä, Windows ei enää luota mihin tahansa binääritiedostoon, joka yrittää hiipiä ytimeen: se haluaa voimassa olevat digitaaliset allekirjoitukset, modernit algoritmit, kuten SHA2:n, ja monissa tapauksissa Microsoftin sertifioinnin.

Seuraavissa riveissä tarkastelemme rauhallisesti, mitä tarkalleen ottaen tarkoittaa ohjaimen allekirjoittaminen, mitä eroja niiden välillä on ydintila ja käyttäjätilaMiten se vaikuttaa 64-bittisiin Windows 7-, 8-, 8.1- ja 10-käyttöjärjestelmiin, mikä rooli työkaluilla, kuten SignToolilla tai Visual Studiolla, on ja mitä vaihtoehtoja on sekä kehitysympäristöissä (testi- tai itse allekirjoitetut varmenteet) että julkisissa julkaisuissa, joissa varmenteet on myöntänyt luotettava taho.

Mitä on ajurin allekirjoitus Windowsissa ja miksi se on pakollinen?

Ajurin allekirjoittaminen Windowsissa edellyttää ajurin liittämistä digitaalinen allekirjoitus ajuripakettiin (binaaritiedostot, INF-tiedostot, luettelo jne.) kahden asian takaamiseksi: että kukaan ei ole manipuloinut tiedostoja niiden luomisen jälkeen ja että ne todella ovat peräisin ilmoitetulta julkaisijalta (ohjelmistotoimittajalta tai valmistajalta). laitteisto).

Käytännössä Windows-laitteen asennuksen aikana näitä digitaalisia allekirjoituksia käytetään tarkista paketin eheys ja julkaisijan henkilöllisyys. Jos jokin ei täsmää (vioittunut allekirjoitus, epäluotettava varmenne, virheellinen tiiviste jne.), järjestelmä näyttää varoituksia, estää asennuksen tai yksinkertaisesti kieltäytyy lataamasta ajuria.

Windows Vistan 64-bittisestä versiosta eteenpäin, ja erityisesti Windows 7-, 8-, 8.1- ja 10 x64 -käyttöjärjestelmissä, ydintilan suojauskäytäntö on selvä: kaikki ytimessä suoritettavat ajurit Se on allekirjoitettava asianmukaisesti.Muuten ajuri ei lataudu, laite voi lakata toimimasta ja sinisiä ruutuja voi esiintyä jopa jos virheelliset binäärit pakotetaan latautumaan.

Kun päätät sertifioida ohjaimesi Microsoftin kanssa, voit lähettää sen Windows Hardware Quality Labsin (WHQL) validointiprosessiin. Jos ohjainpaketti läpäisee sertifiointitestit, Microsoft myöntää sertifioinnin. virallinen WHQL-allekirjoitusTämä ei ainoastaan ​​paranna luottamusta ja yhteensopivuutta, vaan myös mahdollistaa ajurin jakamisen Windows Update ja muut Microsoftin tukemat jakelukanavat.

On tärkeää muistaa, että Windows 10 -versiosta 1507 alkaen kaikki Microsoft Hardware Development Centerin kautta allekirjoitetut ohjaimet on allekirjoitettu käyttämällä SHA2 hajautusalgoritminaSHA1 on vanhentunut näissä tilanteissa, ja vanhojen varmenteiden sekoittaminen voi aiheuttaa ongelmia, erityisesti uudemmissa järjestelmissä.

Ohjaimen allekirjoituksen selitys Windowsissa

Erot ajurin allekirjoittamisen välillä ydintilassa ja käyttäjätilassa

Windowsissa toimivat ohjaimet ydintila ja käyttäjätilaAllekirjoituskäytäntö ei ole täsmälleen sama molemmissa ympäristöissä, vaikka se yleensä tiukeneekin jokaisen uuden käyttöjärjestelmäversion myötä.

  Miksi Windows-tietokoneesi hidastuu ajan myötä? Kaikki syyt selitetty

Ydintilan ohjaimet ovat herkimpiä, koska ne toimivat järjestelmän ytimessä ja niillä on etuoikeutettu pääsy muistiin ja laitteistoon. Windows Vistan 64-bittisissä versioissa ja uudemmissa nämä ohjaimet Ne on allekirjoitettava jotta se voidaan ladata. Tämä rajoitus liittyy suoraan järjestelmän vakauteen ja suojaukseen haittaohjelmat että se yrittää injektoida matalalla tasolla.

Toisaalta käyttäjätilassa toimivia ohjaimia (esimerkiksi monia tulostinajureita ja lisäosia) ei alun perin koskenut näin tiukka velvoite. Itse asiassa vanhemmissa Windows-versioissa Se ei ollut ehdoton vaatimus että nämä ohjaimet allekirjoitetaan. Microsoft on kuitenkin aina suositellut niiden allekirjoittamista turvallisuussyistä, ja Windows 8:sta lähtien on ollut tilanteita, joissa tietyntyyppisten käyttäjäohjainten allekirjoittaminen on pakollista.

Tyypillinen esimerkki: x64-tietokoneeseen asennettu tulostinohjain näyttää yleensä asennusprosessin aikana valintaikkunan, jossa pyydetään käyttäjän vahvistusta. Käytännössä kyseinen paketti Se on allekirjoitettava asianmukaisesti jotta asennus voi jatkua ilman esteitä tai kriittisiä tietoturvahälytyksiä.

Yleinen ajatus on, että vaikka vaatimus ei olekaan universaali käyttäjätilassa, Microsoft pyrkii yhä enemmän siihen. kaikki ajuriin liittyvät ohjelmistot on allekirjoitettavaNiiden allekirjoittaminen mahdollistaa luojan luotettavan varmentamisen, peukaloinnin havaitsemisen ja vähentää haitallisten komponenttien pääsyn sisään naamioitumalla laillisiksi valvojiksi.

Allekirjoitusvaatimukset ja SHA-algoritmit eri Windows-versioissa

Yksi ongelmallisimmista näkökohdista on Windows-versioiden ja hajautusalgoritmien, kuten SHA1 ja SHA2Monet kehittäjät kohtaavat ajureita, jotka toimivat yhdessä järjestelmässä, mutta eivät toisessa, ja suuri osa syystä on allekirjoituskäytäntöjen muutoksissa.

Vanhemmissa järjestelmissä, kuten 64-bittisessä Windows 7:ssä tai 8:ssa, oli yleistä työskennellä SHA1-pohjaisten varmenteiden ja allekirjoitusten kanssa, vaikka Microsoft oli jo varoittanut, että SHA1 ei ollut tietoturvassaan riittäväWindows 8.1:n ja 10:n kehityksen myötä SHA2:sta on tullut koodin ja ajurien allekirjoitusten standardi.

Käytännössä jotkut valmistajat päättivät allekirjoittaa ydintilan binäärit upottamalla niihin kaksoisvarmenteita (SHA1 ja SHA2), jotka ovat muiden kuin Microsoftin myöntämiä. Nämä kaksoisallekirjoitetut binäärit tietyissä tapauksissa Ne eivät lataudu Windows 10:tä vanhemmissa versioissaja joissakin Windows 10 -järjestelmissä ne voivat jopa aiheuttaa vakavia kaatumisia tai sinisiä näyttöjä.

Näiden ongelmien lieventämiseksi Microsoft julkaisi tiettyjä korjauspäivityksiä, kuten päivityksen KB 3081436. Tämän päivityksen asentaminen ongelmallisiin järjestelmiin korjaa yhteensopimattomuudet tiettyjen SHA2-allekirjoitettujen ohjainten kanssa ja tarjoaa luettelon seuraavista: viitataan SHA-hajautusarvoihin kyseisen tukiartikkelin osiossa ”Lisätietoja – Tiedoston tiivistetiedot”.

Jos aiot jakaa ajureita, joiden on toimittava useissa Windows-versioissa, on tärkeää tarkistaa allekirjoitusvaatimukset versiokohtaisesti Microsoftin yksityiskohtaisesti määrittelemä. Siellä määritetään, mitkä algoritmit ovat kelvollisia, miten taaksepäin yhteensopivuutta käsitellään ja mitkä allekirjoitusyhdistelmät (luettelo, upotettu binääri, ristisertifikaatit jne.) hyväksytään virallisesti.

  ASCII-merkkien syöttäminen näppäimistöltä Windowsissa vaihe vaiheelta

Käyttäjätilan ajurin allekirjoittaminen: suosituksia ja resursseja

Vaikka ydin saa usein eniten huomiota, myös käyttäjätilan ajurien allekirjoittaminen ansaitsee huomiota. Microsoft ei valvonut sitä niin tiukasti alusta alkaen, mutta se kuitenkin... suosittelee vahvasti turvallisuuden säilyttämistä järjestelmän ja tarjoavat loppukäyttäjälle luottamusta.

Käyttäjätilan ajurin allekirjoitus suorittaa periaatteessa samat toiminnot kuin ydintilassa: tunnistaa rekisterinpitäjän (valmistaja, ISV jne.) ja vahvistaa, että pakettia ei ole muokattu sen allekirjoittamisen jälkeen. Kun käyttäjä asentaa esimerkiksi tulostimen käyttäjätilaohjaimilla x64-tietokoneeseen, asennustoiminto saattaa näyttää valintaikkunan, jossa kysytään, onko julkaisija luotettu. Jos allekirjoitus on kelvollinen ja varmenne kuuluu tunnistetulle taholle, asennus on sujuvampaa ja varoituksia tulee paljon vähemmän.

Microsoft tarjoaa sarjan dokumentteja ja opetusohjelmia, jotka syventyvät allekirjoitusprosessiin. Monet niistä on alun perin suunniteltu ydintilaa varten, mutta ne soveltuvat myös käyttäjätilaan. Pääartikkeli käsittelee kuljettajan allekirjoitus Ja ydintilan koodin allekirjoitusoppaan alakohta "Kuinka versioida ydinmoduuli" on hyvä lähtökohta koodin allekirjoittamisen yleisen logiikan ymmärtämiseen Windowsissa.

Lisäksi Windows Driver Kit (WDK) -asennus sisältää ohjetiedoston nimeltä itseallekirjoita_luemin.htm, joka sijaitsee hakemistossa oma allekirjoitusTässä dokumentissa selitetään, miten testisertifikaatteja luodaan ja miten niitä käytetään kehitysvaiheessa. Tämä on erityisen hyödyllistä, jos sinulla ei vielä ole luotettavan päävarmentajan myöntämää sertifikaattia.

Yhteenvetona voidaan todeta, että vaikka käyttäjätilaohjain voi teknisesti toimia ilman allekirjoitusta joissakin tilanteissa, sitä tulisi käsitellä ikään kuin se olisi pakollinen. Tämä johtuu tietoturvasta, brändikuvasta ja yhteensopivuudesta Windowsin asennustoimintojen kanssa. Kuljettajan allekirjoittaminen on järkevintä..

Ydintilan ohjainten allekirjoittaminen Windows 7:ssä ja 8:ssa SignToolilla

Kun työskentelet 64-bittisen Windows 7:n ja 8:n kanssa, yksi yleisimmistä tavoista allekirjoittaa ydintilan ajureita on käyttää komentorivityökalua. komennot SignToolTämä Windows SDK:hon sisältyvä apuohjelma mahdollistaa sekä tiedostojen allekirjoittamisen että olemassa olevien allekirjoitusten tarkistamisen, ja se tarjoaa laajan valikoiman vaihtoehtoja erilaisiin tilanteisiin.

Joitakin tärkeimmistä vaihtoehdoista SignToolin ominaisuudet ovat seuraavat:

  • /ac: määrittää lisäsertifikaatin, esimerkiksi ristisertifikaatin, joka linkittää sertifikaattisi luotettavaan päävarmenteeseen.
  • /f: osoittaa tiedoston, joka sisältää allekirjoitussertifikaatin (yleensä .pfx-tiedosto).
  • /p: antaa .pfx-tiedostoon tallennettuun allekirjoitusvarmenteeseen liittyvän salasanan.
  • /fd: määrittää tiedoston allekirjoituksen luonnissa käytetyn tiivistealgoritmin, esimerkiksi /fd sha256 luodaksesi allekirjoituksen SHA256:n perusteella (jos mitään ei ole määritetty, SHA1 on yleensä oletusarvo vanhemmissa versioissa).
  • /n «Varmenteen yleinen nimi»: voit valita tietyn varmenteen Windowsin varmennesäilöstä sen yleisen nimen (CN) perusteella.
  • /t: määrittää Microsoft Authenticode -järjestelmän kanssa yhteensopivan aikaleimauspalvelimen.
  • / tr: osoittaa RFC 3161:n kanssa yhteensopivan aikaleimapalvelimen, joka on nykyaikaisempi ja jota suositellaan uusiin toteutuksiin.
  Lisenssin aktivointi ja validointi Windows Serverissä vaihe vaiheelta

Kun työskentelet ohjainprojektisi parissa, on tärkeää tietää, mitkä tiedostot on allekirjoitettava. Jotta ohjain asentuisi oikein Windows 7:ään tai 8:aan, se on allekirjoitettava. kaikki projektin asiaankuuluvat binäärit (esimerkiksi .sys-tiedostot) ja myös luettelotiedosto (.cat), joka ryhmittelee paketin tiedostojoukon.

Sinulla on kaksi päävaihtoehtoa: voit kopioida tiedostot työhakemistoon, jossa SignTool on käytettävissä, tai suoraan siirrä ne Windows SDK:n roskakorikansioon ja suorita työkalu sieltä. Tärkeintä on, että sinulla on sekä binaarit että varmenteet, joita aiot käyttää allekirjoittamiseen, käsillä.

Tyypillinen skenaario sisältää asianmukaisen koodin allekirjoitussertifikaatin hankkimisen, esimerkiksi ”Microsoftin ristisertifikaatti” -sertifikaatti GlobalSignin tai muun luotettavan tahon myöntämä. Sijoitat kyseisen ristisertifikaatin (CrossCert.crt) työhakemistoosi pääasiallisen koodin allekirjoitussertifikaatin (esimerkiksi CodeSign.pfx) kanssa ja suoritat seuraavanlaisen komennon:

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

Tämä komento luo allekirjoituksen, joka sisältää ristisertifioinnin ja hakee aikaleiman GlobalSignin RFC 3161 -palvelimelta. Aikaleima on avainasemassa, koska se todistaa, että tiedosto allekirjoitettiin päivänä, jolloin varmenne oli voimassa, vaikka se myöhemmin vanhenisi.

Tiedoston allekirjoittamisen jälkeen on aika varmistaa, että kaikki on oikein. Tämä tehdään yleensä vahvistuskomennolla, kuten:

signtool verify -v -kp tiedostonimi.sys

Vaihtoehto -v Se pakottaa yksityiskohtaisen tulosteen, joka näyttää yksityiskohtaiset tiedot varmenneketjusta ja vaihtoehdosta -kp Se tarkistaa allekirjoituksen ydintilan ajurin erityisten koodin allekirjoituskriteerien mukaisesti. Jos kaikki menee hyvin, näet tuloksen, joka osoittaa, että allekirjoitus ja varmenneketju ovat oikein.

Lopuksi on suositeltavaa Toista sama allekirjoitus- ja vahvistusprosessi .cat-tiedostolle. paketin. Kun sekä binäärit että luettelo on allekirjoitettu oikein, ajuri voidaan asentaa Windows 7- ja 8 x64 -käyttöjärjestelmiin ilman tietoturvaongelmia, ja ohjatun asennustoiminnon aikana pitäisi tulla näkyviin luotettavan julkaisijan tiedot ja vakiojärjestelmäikkunat.

Syventääkseen syventymistään työkalun kaikkiin muunnelmiin Microsoft ylläpitää kattavaa SignTool-komentoviitteellistä versiota sekä Erityinen opastus koodin allekirjoittamiseen ydintilassa ja Windowsin ydinmoduulien digitaalisiin allekirjoituksiin liittyvää dokumentaatiota. Nämä resurssit selittävät erikoistapaukset, edistyneet parametrit ja kunkin järjestelmäversion erityispiirteet.