Rutoken EDSをOpenSSLに接続します

更新 ブラウザの電子署名用の既製のソリューション-Rutoken Plugin



ご存じのように、OpenSSLバージョン1.0.0以前ではロシアのGOST暗号化アルゴリズムがサポートされており、これらのアルゴリズムのサポートは完全に機能しています。 ロシアの暗号化などをサポートするTLSプロトコル



したがって、OpenSSLはロシアのメーカーの独自の暗号化保護ツールと完全に互換性があります。



GOSTをサポートするために、特別な「プラグイン」が追加されます-エンジンゴスト。 同時に、ロシアの暗号化アルゴリズムのハードウェア実装を搭載した暗号化USBトークンがあります。 そのようなトークンの例は、偶然にもクラスKC2の暗号通貨保護証明書として認定されているRutoken EDSです。 Rootoken EDSは、暗号化操作がトークンの「ボード」で実行されるようにOpenSSLに接続できます。



Rutoken EDSには、OpenSSL用の特別なクロスプラットフォームプラグイン、エンジンpkcs11_gostがあります。これにより、標準OpenSSLインターフェイスを介してGOSTのハードウェアリリースを使用できます。



ここでは、これがwin32でどのように行われるかを説明します。



1. OpenSSLは、ここwww.slproweb.com/products/Win32OpenSSL.htmlから取得できます。 「追加タスクの選択」ダイアログでインストールする場合、「OpenSSLバイナリ(/ bin)ディレクトリ」を選択します。



2.プラグインと必要なライブラリは、 www.rutoken.ru / download / software / forum / pkcs11-gost-win32-4.2.0.zipからダウンロードできます。



3.アーカイブの内容をOpenSSL / binインストールフォルダーにコピーする必要があります。 この場合、openssl config。 アーカイブにはエンジンpkcs11_gostの構成が含まれているため、cfgを置き換える必要があります。



4.次に、cmd.exe(または任意の)を実行し、環境変数SET OPENSSL_CONF = openssl.cfg構成ファイルへのフルパスで構成を指定します。



5.次に、Rutokenドライバーをインストールし、EDSをRutokenコンピューターに接続し、コントロールパネル-> Rutokenコントロールパネルでフォーマットする必要があります。



openssl.exeユーティリティを使用して、ファイルに署名できるパスを調べます。 同時に、暗号化操作(およびここではキー生成と電子署名が使用されます)がRutoken EDSの「オンボード」で実行されます。



1.署名キーGOST R 34.10-2001を生成します。



openssl genpkey -engine pkcs11_gost -algorithm GOST2001 -pkeyopt slot_key_id:50 -pkeyopt paramset:A -pkeyopt pin:12345678







2.生成されたキーに対して、PKCS#10形式の証明書のアプリケーションを作成します。



openssl req -engine pkcs11_gost -new -key 50 -keyform engine -out req.csr







3.アプリケーションのユーザー証明書を発行するために、自己署名ルート証明書を作成します。 まず、トークン内にCAキーを生成します。



openssl genpkey -engine pkcs11_gost -algorithm GOST2001 -pkeyopt slot_key_id:100 -pkeyopt paramset:A -pkeyopt pin:12345678







次に、このキーのルート証明書を発行します。



openssl req -engine pkcs11_gost -x509 -new -key 100 -keyform engine -out ca.crt







4.手順2で受け取ったアプリケーションの証明書を発行します。これには、OpenSSL / binインストールフォルダーにdemoCAフォルダーを作成します。このフォルダーにnewcertsフォルダーを作成します。 demoCAフォルダーで、空のindex.txtファイルと、01を書き込むシリアルファイルを作成します。これにより、発行された証明書を追跡できます。 証明書発行チーム:



openssl ca -engine pkcs11_gost -keyfile 100 -keyform engine -cert ca.crt -in req.csr -out tester.crt







5. S / MIME形式の「添付」署名で任意のファイルに署名します。



openssl smime -engine pkcs11_gost -sign -in [ ] -out [ ] -nodetach -binary -signer tester.crt -inkey 50 -keyform engine







PKCS#7形式:



openssl smime -engine pkcs11_gost -sign -in [ ] -out [ ] -nodetach -binary -signer tester.crt -inkey 50 -keyform engine -outform PEM







CMS形式で:



openssl cms -engine pkcs11_gost -sign -in [ ] -out [ ] -nodetach -binary -signer tester.crt -inkey 50 -keyform engine -outform PEM







Rutoken EDSでのOpenSSLの使用に関する詳細な説明は、 forum.rutoken.ru / topic / 1639にあります。



All Articles