山本ワールド
Windowsプログラミング
アルゴリズム Vitual C++ 2008/2013によるWin32/Win64 APIレベルのプログラム 基礎 Vitual C++ 2008/2013によるAPIレベルのプログラム(32/64bit) Wix3でインストーラーを作る Visual C++ 2008 Standard Editonによるフォームアプリケーションのプログラム(32/64bit) Vitual C++ 2008 Standard EditonによるAPIレベルのプログラム(32/64bit) Windows 7対応 Visual C++ 2008 ExpressによるAPIレベルのプログラム Visual C++ 2005 ExpressによるAPIレベルのプログラム Visual C++ Versiosn 5 BORLAND C++ Windowsプログラム全般 Excel VBA その他署名がないドライバをインストールする方法
概要
Windowsの64bit版を普通に起動すると署名がないデバイスドライバをインストールすることはできません。
これはセキュリティ上の措置です。
ここでは、署名がないドライバをインストールするための準備の方法を記述します。
これはセキュリティ上の措置です。
ここでは、署名がないドライバをインストールするための準備の方法を記述します。
テスト環境
コンパイラ
ドライバの開発 WDK7ドライバを制御するソフトの開発 Visual C++ 2013
実行環境
Windows 7 Enterprise 64bitWindows 8.1 Enterprise 64bit
ドライバ開発環境の構築とビルドの方法
デバイスドライバのインストール
Windowsの64ビット版では普通に起動すると署名されていないデバイスドライバをインストールすることができません。インストールするには以下の3つの方法があります。
①マイクロソフトのお墨付き証明機関の証明書で署名しインストール
②自分自身で証明書を作成署名しテストモードで起動してインストール
③起動時にF8を押してブートメニューを表示させ、ドライバー署名の強制を無効にするを選択して署名なしのドライバをインストール
証明機関の証明書で署名
金銭的な負担を別にすればマイクロソフトのお墨付き証明機関の証明書を発行してもらい組み込む方法がベストですが、個人で取得するとデバイスドライバのプロパティに個人の本名が表示され、配布すると本名が公開せれてしまうことになります。(もともと配布先を証明するためのものです。)COMODO( https://comodo.jp/ )
費用は、年間21,000円(税込)です。(H27.6.27現在)
自己証明書で証明
ドライバファイルに自己証明することによりテストモードによりインストールすることができます。ドライバー署名の強制を無効すると全部のドライバが署名なしでインストールできるのでセキュリティが下がりますが、テストモードの場合、署名されたドライバのみが対象となりセキュリティが上がります。
ただし、ディスクトップのタスクバーの右上に以下のようなウォーターマークが表示されます。
証明書を作成するためにVisual C++ 2013 Expressを使用します。
今後、以下の条件にしたがって署名する方法について記述する
証明書のファイル名 my_root
証明書名 MY_CA
パスワード freepass
署名するファイル beeptest64.sys
署名するファイルがある場所 d:\beeptest64\beeptest64\objfre_win7_amd64\amd64
証明書の作成と署名
スタートメニューよりVisual C++ 2013・Visual Studio ツール ・VS2013 x64 Cross Tools コマンド プロンプトを選択します。他のバージョンでVisual C++のコマンドプロンプトを起動して以下のコマンドが見つからない場合は、C:\Program Files (x86)\Windows Kits等のフォルダーの中を探してください。見つからない場合は、Windows SDKをインストールします。
起動したコマンドプロンプトに以下のように入力してコマンドを実行します。
makecert実行後にパスワードを聞いてきますが、入力せずにokをクリックしてください。再度パスワードが不要であるか聞いてきますが、Yesを選択してください。
ローカルマシーンに証明書がストアされたかどうかの確認は、 以下のコマンド実行後、mmcコマンドを実行しファイルメニューよりスナップインの追加と削除より証明書を追加すると確認できます。
d: cd d:\beeptest64\beeptest64\objfre_win7_amd64\amd64 makecert -sv my_root.pvk -a sha1 -eku 1.3.6.1.5.5.7.3.3 -r -ss Root -len 2048 -sr localMachine -n "CN=MY_CA" -r my_root.cer cert2spc my_root.cer my_root.spc pvk2pfx -pvk my_root.pvk -pi freepass -spc my_root.spc -pfx my_root.pfx signtool sign /f my_root.pfx /p freepass /d my_root /v beeptest64.sys
テストモードのon/off
テストモードをonにするためには、管理者権限でログインしコマンドプロンプトで以下のコマンドを入力し実行すると、次回起動時からテストモードになる。bcdedit -set TESTSIGNING ONテストモードをoffにするためには、管理者権限でログインしコマンドプロンプトで以下のコマンドを入力し実行すると、次回起動時から通常モードになる。
bcdedit -set TESTSIGNING OFF
ドライバー署名の強制を無効にしてインストール
起動時にF8を押してブートメニューよりドライバー署名の強制を無効を選択して起動すると署名のないドライバをインストールすることができます。起動のたびに毎回選択する必要があります。ドライバー署名の強制を無効すると全部のドライバが署名なしでインストールできるのでセキュリティが下がります。
Copyright (C) 2012 山本ワールド All Rights Reserved.