すでに述べたように、州からの3番目の豚は、電子署名を作成する手段を提供してくれましたが、裁量でこれらの資金を使用する機会を提供しなかったことです。
もう一度、法的側面に少し注意をそらす。 実際、ロシア連邦の規制法には、2つの注目すべき点があります。まず、情報保護の認証手段を使用する必要があります(1995年4月3日大統領令第334号「開発、生産、販売、運用の分野の法律を順守する措置について」暗号化ツール、および情報暗号化の分野でのサービスの提供))、2番目に、FSB(資金の認証に関する規則 )が推奨するアルゴリズムを使用する国内のツールのみがこの証明書を受け取ることができます 1995年6月26日のロシア連邦政府令第608号により承認された情報保護。
そして、したがって、私の鍵は国内生産のものでなければならず、その製造業者を見つけることができます、あなたはただ必要です。 キー自体のマーキングは最小限ですが、私はまだ開発者を見つけることができました。これはZAO Aladdin R.Dです。 ページを確認した後、キーのSDKがテクニカルサポートサービスに連絡することによってのみ取得できることを後悔しました。 他のサイトでは、開発者キットはさらに優れていたため、購入することをお勧めしました。
私は別の方法で行くことにしました。公共サービスのWebサイトからフォルダーにプラグインがインストールされているのを見つけました。
%APPDATA%\NVisionGroup\CSuser\
プラグインは3つのファイルで構成されていました。
eTPKCS11g.dll, eTPKCS11gx.dll, npCSuser.dll
これらのファイルを調べて、eTPKCS11gとeTPKCS11gxはPKCS#11標準キー、つまりハードウェアキーとやり取りするための標準のインターフェイスであると結論付けました。 署名を作成するために必要なすべてのアルゴリズムはデバイスに縫い付けられています。つまり、インターフェイスをねじ込むことしかできず、もちろん、FSBでプログラムを認証する必要はありません。 だから私はツールを手に入れた、目標を選択することは残っている。
検証
公的機関が私の署名を認識するためには、彼らはこの署名の検証ツールを持っている必要があります。つまり、この検証ツールを使用して発見を検証する必要があります。 このようなツールは、公共サービスのWebサイトで直接見つけました 。
- ES証明書認証
- 電子文書の電子認証
- 文書の一部としての電子文書の電子署名の認証
- ハッシュ値を使用した電子文書認証
コーディングするには
古いひげを生やしたwin-adminである私は、.NET全般と特にPowerShellの支持者のリストに載っていますが、電子署名を作成するプログラムを作成するためのツールとしてPSを使用するように注意しました。 いいえ、これは可能ですし、おそらく面白いかもしれませんが、まずはC#を選びました。
むかしむかし、大学の先生は、他の生徒を鼻でつついて言った。 再び泡? そして、誰のためにSTLが書かれているのでしょうか?」 有料ライブラリーをスキップしたので、マサチューセッツ工科大学のライセンスで公開されている無料のライブラリーを採用しました。これにより、問題なくライブラリーをプロジェクトで使用できます。 私自身は、プロジェクトをGPLの下で公開しています。私の理解では、州との電子的なやり取りの手段は自由で開かれている必要があります。
最初のステップは、デバイス上のコンテナーから証明書を抽出して検証することです。 私のアプリケーションのインターフェースは非常に禁欲的です:
DERエンコードで証明書をプルし、フィールドを調べます。 署名アルゴリズムの値は1.2.643.2.2.3であり、FSBが推奨する同じハッシュおよび署名アルゴリズムであるGOST R 34.11 / 34.10-2001とはまったく異なります。 興味深い主題:
SERIALNUMBER = 11028310690
CN =
C = RU
E = thunderquack@mail.ru
これは私です。 ここに彼らは私のメールアドレスと年金保険番号を入れます。 法律によれば、彼らは私の要求に応じて番号と名前、および電子メールを示さなければなりませんでしたが、彼らは何かが一緒に成長しなかったことを確認します。 また、ブタ4を発見しました。
豚4。証明書は1年間のみ有効です。
誰が責任を負うべきかわかりません。法律は有効期間を定義せず、これらの条件を示す義務のみが規定されています。 1年後に同じメディアに他のデータを無料で書き込んだ場合、72キロバイトのメモリがあれば十分です、しかし、私たちの不器用さで、彼らは再び660ルーブルを支払うことを要求するでしょう。
証明書を公共サービスWebサイトにアップロードしましたが、これが得られたものです。
とても良い。 次に、2番目のボタンを試し、ファイルに署名して、サイトにアップロードします。
チャーミング。 さて、ツールは準備ができています。
GITHubのプロジェクト、すべてがそこにあります:ソース、バイナリ、例-私の証明書と署名されたドキュメント。