- Windows Ia memerlukan tandatangan digital yang sah untuk kebanyakan pemacu 64-bit, terutamanya pemacu mod kernel, bagi memastikan integriti dan keselamatan.
- Tandatangan boleh digunakan pada kedua-dua binari dan katalog, menggunakan alatan seperti SignTool atau Visual Studio dan sijil yang dikeluarkan oleh entiti yang dipercayai.
- Sijil yang ditandatangani sendiri memudahkan pembangunan dan pengujian pemandu tidak ditandatangani Windows 78.1 dan 10 x64, tetapi ia tidak menggantikan tandatangan komersial untuk pengedaran awam.
- Keserasian antara versi Windows bergantung pada penggunaan algoritma hash yang sesuai (seperti SHA2) dan pematuhan garis panduan Microsoft dan WHQL.
Menandatangani pemacu dalam Windows mungkin kelihatan, pada pandangan pertama, seperti sesuatu yang hanya boleh dilakukan oleh pembangun yang sangat maju, tetapi jika anda bekerja dengan peranti, pemacu tersuai atau persekitaran ujianCepat atau lambat, anda pasti akan menemui keperluan ini. Dalam sistem moden, terutamanya sistem 64-bit, Windows tidak lagi mempercayai sebarang binari yang cuba menyelinap masuk ke dalam kernel: ia mahukan tandatangan digital yang sah, algoritma moden seperti SHA2, dan, dalam banyak kes, pensijilan melalui Microsoft.
Dalam baris berikut, kita akan dengan tenang mengkaji apa sebenarnya maksud menandatangani pengawal, apakah perbezaan yang terdapat antara mod kernel dan mod penggunaBagaimana ia mempengaruhi Windows 7, 8, 8.1 dan 10 64-bit, peranan alat seperti SignTool atau Visual Studio, dan pilihan yang anda ada untuk kedua-dua persekitaran pembangunan (sijil ujian atau ditandatangani sendiri) dan keluaran awam dengan sijil yang dikeluarkan oleh pihak berkuasa yang dipercayai.
Apakah tandatangan pemacu dalam Windows dan mengapa ia wajib?
Tandatangan pemacu dalam Windows melibatkan pengaitan tandatangan digital kepada pakej pemacu (fail binari, fail INF, katalog, dll.) untuk menjamin dua perkara: bahawa tiada siapa yang telah memanipulasi fail sejak ia dicipta dan bahawa ia benar-benar datang daripada penerbit yang ditunjukkan (penyedia perisian atau pengilang perkakasan).
Dalam praktiknya, semasa pemasangan peranti Windows, tandatangan digital ini digunakan untuk sahkan integriti pakej dan identiti penerbit. Jika sesuatu tidak sepadan (tandatangan rosak, sijil tidak dipercayai, hash salah, dsb.), sistem akan memaparkan amaran, menyekat pemasangan atau hanya enggan memuatkan pemacu.
Dari Windows Vista 64-bit dan seterusnya, terutamanya dalam Windows 7, 8, 8.1 dan 10 x64, dasar keselamatan mod kernel adalah jelas: sebarang pemacu yang akan berjalan dalam kernel Ia mesti ditandatangani dengan betul.Jika tidak, pemacu tidak akan dimuatkan, peranti mungkin tidak berfungsi, dan skrin biru mungkin berlaku jika binari tidak sah terpaksa dimuatkan.
Apabila anda memutuskan untuk mengesahkan pemacu anda dengan Microsoft, anda boleh menyerahkannya ke proses pengesahan Makmal Kualiti Perkakasan Windows (WHQL). Jika pakej pemacu lulus ujian pensijilan, Microsoft akan memberikan pensijilannya. tandatangan rasmi WHQLIni bukan sahaja meningkatkan kepercayaan dan keserasian, tetapi juga membolehkan anda mengagihkan pemacu melalui Windows Update dan saluran pengedaran lain yang disokong oleh Microsoft.
Penting untuk diingat bahawa bermula dengan Windows 10 versi 1507, semua pemacu yang ditandatangani melalui Pusat Pembangunan Perkakasan Microsoft ditandatangani menggunakan SHA2 sebagai algoritma hashSHA1 telah menjadi usang untuk senario ini, dan mencampurkan sijil lama boleh menyebabkan masalah, terutamanya pada sistem yang lebih baharu.

Perbezaan antara tandatangan pemacu dalam mod kernel dan mod pengguna
Windows menyokong pemacu yang berjalan dalam mod kernel dan mod penggunaDasar penandatanganan tidak sama persis dalam kedua-dua persekitaran, walaupun ia cenderung menjadi lebih ketat dengan setiap versi baharu sistem pengendalian.
Pemacu mod kernel adalah yang paling sensitif kerana ia berjalan dalam kernel sistem dan mempunyai akses istimewa kepada memori dan perkakasan. Dalam versi 64-bit Windows Vista dan yang lebih baharu, pemacu ini Mereka dikehendaki menandatangani untuk dicas. Sekatan ini berkaitan secara langsung dengan kestabilan sistem dan perlindungan terhadap malware bahawa ia cuba menyuntik pada tahap yang rendah.
Sebaliknya, pemacu yang beroperasi dalam mod pengguna (contohnya, banyak pemacu pencetak dan komponen tambahan) pada asalnya tidak tertakluk kepada kewajipan yang ketat sedemikian. Malah, dalam versi Windows yang lebih lama Ia bukanlah satu keperluan mutlak bahawa pemacu ini ditandatangani. Walau bagaimanapun, Microsoft sentiasa mengesyorkan menandatanganinya atas sebab keselamatan, dan sejak Windows 8 terdapat senario di mana penandatanganan diperlukan untuk jenis pemacu pengguna tertentu.
Contoh tipikal: pemacu pencetak yang dipasang pada komputer x64 biasanya memaparkan kotak dialog semasa proses pemasangan yang meminta pengesahan pengguna. Dalam praktiknya, pakej itu Ia mesti ditandatangani dengan betul supaya pemasangan dapat diteruskan tanpa sekatan atau amaran keselamatan kritikal.
Idea umum ialah, walaupun keperluan itu tidak universal dalam mod pengguna, Microsoft semakin mendesaknya untuk semua perisian berkaitan pemandu mesti ditandatanganiMenandatanganinya membolehkan pengesahan yang boleh dipercayai tentang siapa yang menciptanya, pengesanan gangguan dan pengurangan risiko komponen berniat jahat yang menyelinap masuk sambil menyamar sebagai pengawal yang sah.
Keperluan tandatangan dan algoritma SHA dalam versi Windows yang berbeza
Salah satu aspek yang paling menyusahkan ialah keserasian antara versi Windows dan algoritma hash seperti SHA1 dan SHA2Ramai pembangun menghadapi pemacu yang berfungsi pada satu sistem tetapi tidak pada sistem yang lain, dan sebahagian besar kesalahannya terletak pada perubahan dalam dasar penandatanganan.
Dalam sistem lama, seperti Windows 7 atau 8 64-bit, adalah perkara biasa untuk bekerja dengan sijil dan tandatangan berdasarkan SHA1, walaupun Microsoft telah memberi amaran bahawa SHA1 gagal dalam keselamatanSeiring kemajuan yang telah dicapai ke arah Windows 8.1 dan 10, SHA2 telah menjadi standard untuk tandatangan kod dan pemacu.
Dalam praktiknya, sesetengah pengeluar memilih untuk menandatangani binari mod kernel dengan membenamkan sijil berganda (SHA1 dan SHA2) yang dikeluarkan oleh entiti selain Microsoft. Binari berganda ini, dalam kes tertentu, Mereka gagal memuatkan versi sebelum Windows 10dan pada sesetengah sistem Windows 10, ia juga boleh menyebabkan ranap sistem yang serius atau skrin biru.
Untuk mengurangkan masalah ini, Microsoft mengeluarkan tampalan khusus, seperti kemas kini KB 3081436. Memasang kemas kini ini pada sistem yang terjejas akan membetulkan ketidakserasian dengan pemacu bertandatangan SHA2 tertentu dan menyediakan senarai nilai hash SHA rujukan dalam bahagian “Maklumat lanjut – Maklumat hash fail” pada artikel sokongan tersebut.
Jika anda akan mengedarkan pemacu yang perlu berfungsi pada berbilang versi Windows, adalah penting untuk menyemak semula keperluan tandatangan setiap versi diperincikan oleh Microsoft. Di sana dinyatakan algoritma yang sah, bagaimana keserasian ke belakang dikendalikan dan kombinasi tandatangan yang mana (katalog, binari terbenam, sijil silang, dll.) yang diterima secara rasmi.
Penandatanganan pemacu mod pengguna: cadangan dan sumber
Walaupun kernel sering mendapat perhatian paling banyak, penandatanganan pemacu mod pengguna juga patut diberi perhatian. Microsoft tidak menguatkuasakannya dengan begitu ketat sejak awal, tetapi ia... sangat mengesyorkan untuk menjaga keselamatan sistem dan memberikan keyakinan kepada pengguna akhir.
Tandatangan pemacu mod pengguna pada asasnya melaksanakan fungsi yang sama seperti dalam mod kernel: mengenal pasti pembekal pengawal (pengilang, ISV, dll.) dan mengesahkan bahawa pakej tersebut tidak diubah suai sejak ia ditandatangani. Apabila pengguna memasang, sebagai contoh, pencetak dengan pemacu mod pengguna pada komputer x64, wizard pemasangan mungkin memaparkan kotak dialog yang bertanya sama ada penerbit dipercayai. Jika tandatangan sah dan sijil tersebut dimiliki oleh entiti yang diiktiraf, pemasangan akan lebih lancar dan dengan amaran yang jauh lebih sedikit.
Microsoft menyediakan satu siri dokumen dan tutorial yang mendalami proses penandatanganan, kebanyakannya pada asalnya direka untuk mod kernel tetapi juga boleh digunakan untuk mod pengguna. Artikel utama mengenai tandatangan pemandu dan subtopik “Cara menandatangani versi modul kernel” dalam tutorial penandatanganan kod mod kernel merupakan titik permulaan yang baik untuk memahami logik umum penandatanganan kod dalam Windows.
Selain itu, pemasangan Windows Driver Kit (WDK) merangkumi fail bantuan yang dipanggil selfsign_readme.htm, terletak di direktori tandatangan sendiriDokumen ini menerangkan cara menjana sijil ujian dan cara menggunakannya semasa pembangunan, yang amat berguna apabila anda belum mempunyai sijil yang dikeluarkan oleh pihak berkuasa root yang dipercayai.
Secara ringkasnya, walaupun pemacu mod pengguna secara teknikalnya boleh berfungsi tanpa tandatangan dalam beberapa senario, ia harus dianggap sebagai mandatori. Ini disebabkan oleh keselamatan, imej jenama dan keserasian dengan wizard pemasangan Windows. Menandatangani pemandu adalah perkara yang paling bijak untuk dilakukan..
Menandatangani pemacu mod kernel dalam Windows 7 dan 8 menggunakan SignTool
Apabila bekerja dengan Windows 7 dan 8 64-bit, salah satu pendekatan paling biasa untuk menandatangani pemacu mod kernel adalah dengan menggunakan alat baris arahan. arahan SignToolTermasuk dalam Windows SDK, utiliti ini membolehkan anda menandatangani fail dan mengesahkan tandatangan sedia ada, dan ia menawarkan pelbagai pilihan untuk disesuaikan dengan senario yang berbeza.
Beberapa pilihan yang paling penting Ciri-ciri SignTool adalah seperti berikut:
- /ac: menentukan sijil tambahan, contohnya, sijil silang yang menghubungkan sijil anda kepada autoriti root yang dipercayai.
- /f: menunjukkan fail yang mengandungi sijil tandatangan (biasanya .pfx).
- /p: memberikan kata laluan yang berkaitan dengan sijil tandatangan yang disimpan dalam fail .pfx.
- /fd: mentakrifkan algoritma hash yang digunakan semasa mencipta tandatangan fail, contohnya, /fd sha256 untuk menjana tandatangan berdasarkan SHA256 (jika tiada apa yang dinyatakan, SHA1 biasanya merupakan nilai lalai dalam versi lama).
- /n «Nama biasa sijil»: membolehkan anda memilih sijil tertentu daripada gedung sijil Windows berdasarkan nama lazimnya (CN).
- /t: menentukan pelayan pengecapan masa yang serasi dengan skema Microsoft Authenticode.
- /tr: menunjukkan pelayan cap waktu yang mematuhi RFC 3161, lebih moden dan disyorkan untuk pelaksanaan baharu.
Semasa mengendalikan projek pemacu anda, adalah penting untuk mengetahui fail mana yang perlu ditandatangani. Agar pemacu dapat dipasang dengan betul pada Windows 7 atau 8, ia mesti ditandatangani. semua binari projek yang berkaitan (contohnya, fail .sys) dan juga fail katalog (.cat) yang mengumpulkan set fail dalam pakej.
Anda mempunyai dua pilihan utama: anda boleh menyalin fail tersebut ke direktori kerja di mana anda mempunyai SignTool yang tersedia, atau secara langsung pindahkannya ke folder tong sampah Windows SDK dan jalankan alat dari situ. Perkara penting ialah anda mempunyai kedua-dua binari dan sijil yang akan anda gunakan untuk menandatangani.
Senario biasa melibatkan pemerolehan sijil penandatanganan kod yang sesuai, contohnya, a Sijil “Sijil Microsoft Cross” dikeluarkan oleh GlobalSign atau pihak berkuasa lain yang dipercayai. Anda meletakkan sijil silang tersebut (CrossCert.crt) dalam direktori kerja anda bersama-sama dengan sijil penandatanganan kod utama anda (contohnya, CodeSign.pfx) dan jalankan arahan yang serupa dengan ini:
tanda alat tanda /ac CrossCert.crt /f CodeSign.pfx /p password1234 /tr http://timestamp.globalsign.com/tsa/r6advanced1 filter.sys
Perintah ini menghasilkan tandatangan yang merangkumi pensijilan silang dan mendapatkan cap waktu daripada pelayan RFC 3161 GlobalSign. Cap waktu adalah penting kerana ia membuktikan bahawa fail tersebut telah ditandatangani pada tarikh sijil tersebut sah, walaupun ia kemudiannya tamat tempoh.
Selepas menandatangani fail, tiba masanya untuk mengesahkan bahawa semuanya betul. Ini biasanya dilakukan menggunakan arahan pengesahan seperti:
alat tanda pengesahan -v -kp nama fail.sys
Pilihan -v Ia memaksa output terperinci, menunjukkan maklumat terperinci tentang rantaian sijil dan pilihannya -kp Ia mengesahkan tandatangan mengikut kriteria penandatanganan kod khusus pemacu mod kernel. Jika semuanya berjalan lancar, anda akan melihat hasil yang menunjukkan bahawa tandatangan dan rantaian sijil adalah betul.
Akhirnya, disyorkan Ulangi proses tandatangan dan pengesahan yang sama dengan fail .cat pakej tersebut. Sebaik sahaja kedua-dua binari dan katalog ditandatangani dengan betul, pemacu boleh dipasang pada Windows 7 dan 8 x64 tanpa masalah keselamatan, dan semasa wizard pemasangan, maklumat penerbit yang dipercayai dan tetingkap sistem standard akan muncul.
Untuk menyelidiki lebih mendalam semua varian alat ini, Microsoft mengekalkan rujukan arahan SignTool yang komprehensif, serta Tutorial khusus untuk penandatanganan kod dalam mod kernel dan dokumentasi yang dikhaskan untuk tandatangan digital modul kernel dalam Windows. Sumber-sumber ini menerangkan kes khas, parameter lanjutan dan kekhususan setiap versi sistem.
Penulis yang bersemangat tentang dunia bait dan teknologi secara umum. Saya suka berkongsi pengetahuan saya melalui penulisan, dan itulah yang akan saya lakukan dalam blog ini, menunjukkan kepada anda semua perkara yang paling menarik tentang alat, perisian, perkakasan, trend teknologi dan banyak lagi. Matlamat saya adalah untuk membantu anda mengemudi dunia digital dengan cara yang mudah dan menghiburkan.