Illesztőprogram aláírása a Windows x64 10 / 8.1 / 7 rendszeren egy önaláírt tanúsítvánnyal

A Windows összes 64 bites verziója, kezdve a Windows 7-rel, alapértelmezés szerint tiltja az illesztőprogramok telepítését, amelyeket nem a megfelelő digitális aláírással írtak alá. Az alá nem írt illesztőprogramokat az operációs rendszer blokkolja. A digitális aláírás megléte (bizonyos mértékig) garantálja, hogy az illesztőprogramot egy adott fejlesztő vagy gyártó engedi fel, és az aláírása után a kódját nem módosították.

A Windows 10/7 x64 operációs rendszerben a telepített illesztőprogram digitális aláírás-ellenőrzésének letiltására többféle mód van: a Csoportházirend vagy a tesztrendszer indító módja segítségével (további részletekért lásd: A digitális aláírás-ellenőrzés letiltása az alá nem írt illesztőprogramok telepítéséről a Windows rendszeren)..

Ma megmutatjuk, hogyan tudsz minden aláírással nem rendelkező illesztőprogram saját aláírása a 64 bites verzióhoz A windows 10 vagy Windows 7.

Tegyük fel, hogy van egy illesztőprogramja az x64 Windows 10 vagy a Windows 7 eszközhöz, amely nem rendelkezik digitális aláírással (példánkban ez egy meglehetősen régi videokártya illesztőprogramja). A Windows verziónk illesztőprogram-archívumát (sikerült megtalálni a Windows Vista x64 illesztőprogramját) letöltötték a gyártó webhelyéről, és tartalmát a c: \ tools \ drv1 \ könyvtárba csomagolták. Próbáljuk meg telepíteni az illesztőprogramot úgy, hogy a szokásos segédprogrammal hozzáadja azt a Windows illesztőprogram-tárházához pnputil.

Pnputil - "C: \ tools \ drv1 \ xg20gr.inf"

megjegyzés. Ezt és az azt követő parancsokat egy rendszergazda jogosultságokkal futtatott parancssorban hajtják végre..

A telepítés során a Windows 7 figyelmeztetést jelenít meg arról, hogy a rendszer nem tudja ellenőrizni az illesztőprogram digitális aláírását.

A Windows 10 rendszerben egy ilyen figyelmeztetés sem jelenik meg, és a konzolban figyelmeztetés jelenik meg, hogy a harmadik fél INF fájljában nincs digitális aláírással kapcsolatos információ..

Amikor az illesztőprogramot a Windows Intézőből telepíti, ha rákattint az RMB elemre az illesztőprogram inf fájljában, és kiválasztja a lehetőséget felszerel / megállapítása hiba jelenik meg:

A harmadik fél INF nem tartalmaz digitális aláírással kapcsolatos információkat.

A harmadik fél INF nem tartalmaz aláírási információkat.

Próbáljuk meg aláírni ezt az illesztőprogramot egy önaláírt tanúsítvánnyal.

Tartalom:

  • A járművezető aláírásához szükséges segédprogramok
  • Hozzon létre egy önaláírt tanúsítványt és egy privát kulcsot
  • Készítsen CAT illesztőprogram fájlt
  • A járművezetőt önaláírt tanúsítvánnyal írjuk alá
  • Tanúsítvány telepítése
  • Saját aláírású tanúsítvánnyal hitelesített illesztőprogram telepítése

A járművezető aláírásához szükséges segédprogramok

A működéshez le kell töltenünk és telepítenünk kell (az alapértelmezett beállításokkal) a következő alkalmazásfejlesztő eszközöket a Windows rendszerhez.

  • Windows SDK (vagy Microsoft Visual Studio 2005 vagy újabb) a Windows verziójára - ezek a csomagok tartalmazzák a Windows SDK aláíró eszközöket az Asztalhoz, amely magában foglalja a szükséges segédprogramot - signtool.exe;
  • Windows Driver Kit 7.1.0 - ISO kép  GRMWDK_EN_7600_1.ISO a méret 649 Mb
tanács. A Windows 10 rendszerben használhatja a Windows SDK és a Windows Driver Kit újabb verzióit. Ezen eszközök telepítése előtt ellenőrizze, hogy a .NET Framework 4 telepítve van-e a rendszerén..

Hozzon létre egy önaláírt tanúsítványt és egy privát kulcsot

Hozza létre a C: \ DriverCert könyvtárat a lemez gyökerében.

Nyissa meg a parancssort, és lépjen a következő könyvtárba:

cd C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.1 \ bin

Hozzon létre egy önaláírt tanúsítványt és egy magánkulcsot, például a Winitpro számára:

makecert -r -sv C: \ DriverCert \ myDrivers.pvk -n CN = "Winitpro" C: \ DriverCert \ MyDrivers.cer

A létrehozás során a segédprogram megkérdezi, hogy adja meg a kulcshoz tartozó jelszót, legyen az legyen P@ss0wrd.

A létrehozott tanúsítvány alapján hozzon létre egy nyilvános kulcsot a szoftver-kiadó tanúsítványához (PKCS).

cert2spc C: \ DriverCert \ myDrivers.cer C: \ DriverCert \ myDrivers.spc

Kombinálja a nyilvános kulcsot (.spc) és a privát kulcsot (.pvk) egy személyes információcsere (.pfx) tanúsítványfájlba.

pvk2pfx -pvk C: \ DriverCert \ myDrivers.pvk -pi P @ ss0wrd -spc C: \ DriverCert \ myDrivers.spc -pfx C: \ DriverCert \ myDrivers.pfx -po P @ ss0wrd

tanács. A PowerShell 5.0 cmdlet segítségével létrehozhat önaláírt típusú aláírási tanúsítványt, amely aláírja a Kód aláírását - New-SelfSifgnedCertificate.

$ cert = Új-SelfSignaCertificate -Tárgy "Winitpro" -Type CodeSigningCert -CertStoreLocation cert: \ LocalMachine \ My

Ezután exportálnia kell ezt a tanúsítványt egy pfx fájlba jelszóval:

$ CertPassword = ConvertTo-SecureString -Szíj “P @ ss0wrd” -Force -AsPlainText
Export-PfxCertificate -Cert $ cert -FilePath C: \ DriverCert \ myDrivers.pfx -Password $ CertPassword

tanács. Noha a tanúsítvány korlátozott érvényességi idővel rendelkezik, a CodeSigning tanúsítvány lejárta azt jelenti, hogy nem hozhat létre új aláírásokat. Az ezzel a tanúsítvánnyal már aláírt illesztőprogram érvényessége korlátlan (vagy a régi aláírások érvényesek a megadott időbélyegre).

Készítsen CAT illesztőprogram fájlt

Hozzon létre egy könyvtárat C: \DriverCert\xg és másolja bele az összes fájlt a könyvtárba, amelybe az archívumot az illesztőprogrammal eredetileg kicsomagolták (c: \ tools \ drv1 \). Győződjön meg arról, hogy a fájlok között vannak fájlok kiterjesztéssel .sys és .inf (a mi esetünkben xg20grp.sys és xg20gr).

Menjünk a könyvtárba:

cd C: \ WinDDK \ 7600.16385.1 \ bin \ selfsign

Az inf fájl alapján az inf2cat.exe segédprogrammal (a Windows illesztőprogram-készlet -WDK tartozékaival) létrehozunk egy macska fájlt platformunk számára (információkat tartalmaz az illesztőprogram-csomag összes fájljáról).

inf2cat.exe / driver: "C: \ DriverCert \ xg" / os: 7_X64 / részletes

Annak ellenőrzése érdekében, hogy az eljárás helyes-e, ellenőrizze, hogy az üzenetek vannak-e a naplóban:

Az aláírhatósági teszt teljes.
és
A katalógus generáció kész.

tanács. Az én esetemben az Inf2Cat.exe parancs hibát adott vissza:

Az aláírási teszt sikertelen.

hibák:

22.9.7: A DriverVer hibás dátumra van állítva (a legújabb operációs rendszerhez 2009.4.21-ig kell frissíteni) a \ hdx861a.inf fájlban

A hiba kijavításához keresse meg a [Verzió] szakaszban a DriverVer = sort, és cserélje ki a következőre:

DriverVer = 05/01 / 2009,9.9.9.9.9

A parancs végrehajtása után a g20gr.cat fájlt frissíteni kell az illesztőprogram könyvtárában

A járművezetőt önaláírt tanúsítvánnyal írjuk alá

Ugrás a könyvtárba:

cd "C: \ Program Files (x86) \ Windows Kits \ 10 \ bin \ 10.0.17134.0 \ x64"

Az általunk létrehozott tanúsítvánnyal aláírjuk az illesztőprogram-fájlok halmazát, mint időbélyegző szolgáltatás (időbélyeg) a Globalsign erőforrást fogjuk használni. A következő parancs digitálisan aláírja a CAT fájlt egy jelszóval védett PFX fájlban tárolt tanúsítvánnyal.

signtool sign / f C: \ DriverCert \ myDrivers.pfx / p P @ ss0wrd / t http://timestamp.globalsign.com/scripts/timstamp.dll / v "C: \ DriverCert \ xg \ xg20gr.cat"

Ha a fájl sikeresen aláírásra kerül, a következőnek kell megjelennie:

Sikeresen aláírva: C: \ DriverCert \ xg \ xg20gr.cat
Sikeresen aláírt fájlok száma: 1

megjegyzés. Az illesztőprogramot digitálisan aláírják az .inf fájlban hivatkozott .cat fájl. A következő parancs segítségével ellenőrizheti az illesztőprogram digitális aláírását a macska fájlban:

SignTool ellenőrizze / v / pa c: \ DriverCert \ xg \ xg20gr.cat

Lido fájltulajdonságokban a Digitális aláírások lapon.

A CAT fájl tartalmazza az illesztőprogram könyvtárában lévő összes fájl (az INF fájlban felsorolt ​​szakaszban szereplő fájlok) digitális aláírásait (hüvelykujját). CopyFiles). Ha ezen fájlok valamelyikét módosították, akkor a fájlok ellenőrző összege nem esik egybe a CAT fájlban szereplő adatokkal, ennek eredményeként az ilyen illesztőprogram telepítése meghiúsul..

Tanúsítvány telepítése

mert az általunk létrehozott tanúsítvány saját aláírással rendelkezik, a rendszer alapértelmezés szerint nem bíz meg benne. Adja hozzá a tanúsítványunkat a helyi igazolástárolóhoz. Ezt a következő parancsokkal lehet megtenni:

certmgr.exe -add C: \ DriverCert \ myDrivers.cer -s -r localMachine ROOT
certmgr.exe -add C: \ DriverCert \ myDrivers.cer -s -r localMachine TRUSTEDPUBLISHER

Vagy a tanúsítványok hozzáadására szolgáló grafikus varázslóból (a tanúsítványt el kell helyezni a tárolóba Megbízható Kiadók és Megbízható gyökér tanúsítvány hatóság helyi gép). Egy tartományban központilag eloszthatja ezt a tanúsítványt munkaállomásokra a csoportházirend segítségével.

megjegyzés. A létrehozott tanúsítvány rendelkezésre állását megbízható tanúsítványokban ellenőrizheti az igazoláskezelő beépülő modul megnyitásával (certmgr.msc), és ellenőrizheti az általunk létrehozott (a Winitpro számára kiadott) tanúsítvány jelenlétét a megfelelő tárolókban..

megjegyzés. A tanúsítványtárolónak a Sigcheck segédprogrammal történő ellenőrzésekor ez a tanúsítvány megbízhatatlanként jelenik meg, mert nem szerepel a Microsoft gyökér tanúsítványok listáján (ezt a listát rendszeresen frissíteni kell).

Saját aláírású tanúsítvánnyal hitelesített illesztőprogram telepítése

Próbáljuk meg a következő parancs futtatásával telepíteni az aláírt illesztőprogramot:

Pnputil -i -a C: \ DriverCert \ xg20 \ xg20gr.inf

Most, az illesztőprogram telepítése során, nem jelenik meg figyelmeztető ablak az illesztőprogram hiányzó digitális aláírásáról.

Az illesztőprogram sikeresen telepítve lett a rendszer valamelyik eszközére.
Az illesztőprogram-csomag sikeresen hozzáadva.

Windows 7 esetén ez a figyelmeztetés jelenik meg. arról, hogy biztosan telepíti-e ezt az illesztőprogramot (Windows 10 x64 1803 esetén nem jelenik meg ilyen előugró ablak). A "felszerel", telepíti az illesztőprogramot a rendszerbe.

Ha valamilyen okból nem telepíti az illesztőprogramot, akkor a fájl tartalmazza az illesztőprogram részletes telepítési naplóját C: \ Windows\ inf\ setupapi.dev.log. Ez a napló lehetővé teszi, hogy részletesebb információkat szerezzen a telepítési hibáról. A legtöbb esetben az "Illesztőprogram-csomag sikertelen aláírás-érvényesítés" hiba fordul elő - valószínűleg ez azt jelenti, hogy az illesztőprogram-igazolást nem adják hozzá a megbízható tanúsítványokhoz.

Ha az illesztőprogram telepítése sikeres volt, a következő sorok jelennek meg a setupapi.dev.log fájlban:

>>> [Eszköztelepítés (DiInstallDriver) - C: \ WINDOWS \ System32 \ DriverStore \ FileRepository \ xg20gr.inf_amd64_c5955181485ee80a \ xg20gr.inf] >>> A szakasz kezdete 2018/07/22 23: 32: 57.015 cmd: Pnputil -i - ac: \ DriverCert \ xg \ xg20gr.inf ndv: Zászlók: 0x00000000 ndv: INF elérési út: C: \ WINDOWS \ System32 \ DriverStore \ FileRepository \ xg20gr.inf_amd64_c5955181485ee80a \ xg20gr.inf inf: SetupCopyOEMInf DriverStore \ FileRepository \ xg20gr.inf_amd64_c5955181485ee80a \ xg20gr.inf 23: 32: 57.046 inf: Másolási stílus: 0x00000000 inf: Illesztőprogram tároló elérési útja: C: \ WINDOWS \ System32 \ DriverStore \ FileRepository \ xg20gr.inf_amd64 Inf út: C: \ WINDOWS \ INF \ oem23.inf inf: SetupCopyOEMInf exit (0x00000000) 23: 32: 57.077 <<<  Section end 2018/07/22 23:32:57.155 <<<  [Exit status: SUCCESS]

Mint láthatja, egy önaláírott illesztőprogram telepítéséhez nem is kellett kikapcsolnunk az illesztőprogramok digitális aláírás-ellenőrzését a bcdedit.exe segítségével, az itt leírtak szerint (parancsok bcdedit.exe / set loadoptions DISABLE_INTEGRITY_CHECKS és bcdedit.exe / set testsigning BE).