電子署名形式

この記事は、署名付きメッセージのCMS(暗号化メッセージ構文)標準のレビューに専念します。



CMSとは何ですか?



CMS標準は、保護されたデータとその正しいオープンまたは使用に必要な情報を含む暗号化メッセージの構造を記述しています。 たとえば、メッセージには保護されたデータ、ハッシュと署名アルゴリズムに関する情報、署名時間、公開鍵証明書、証明書チェーンなどが含まれます。 これらの属性の一部はオプションですが、アプリケーション自体が可用性の必要性を判断できます。 各アルゴリズムには、両側で一貫している必要があるパラメーターのセットがあります。GOST34.10-2001の場合、公開鍵に加えて、モジュールp 、楕円曲線aおよびbの係数、楕円曲線qの点の循環サブグループの順序です。 そして、これらすべてを何らかの形でメッセージ受信者に伝える必要があります。



RSA Laboratoriesは、一連の公開キー暗号化標準(PKCS)で、次の標準で安全なメッセージの構文を定義することにより、この問題の解決策を提案しています。



これらの標準の開発は、CMS標準になりました。 記事の見出しで定義された署名に加えて、 CMSはロシア語のアルゴリズム( RFC 4490 )の使用を含む挿入の暗号化、ハッシュ化、計算、および複数のカプセル化をサポートしています。 後者は、CMS形式のメッセージが別のCMSメッセージ内にある可能性があることを意味します。



合計で、CMSは6つのデータタイプをサポートします。



この記事の枠組みでは、電子署名付きデータ(署名付きデータ)のみを詳細に検討します。



用語で混乱しないように、さらに安全な方法で送信したい初期データはdataと呼ばれ、結果の安全なCMSメッセージは単にmessageと呼ばれます



CMS標準(PKCS#7およびRFC 5652):理論



ちょっとした歴史



暗号メッセージ構文(CMS)は最初にPKCS#7で定義され、後にRFC 2315「PKCS#7:Cryptographic Message Syntax Version 1.5」として公開されました 。 さらにいくつかのRFCバージョンの後、2009年9月に、 RFC 5652「Cryptographic Message Syntax(CMS)」が採用されました。これは現在の標準です。

ネタバレは規格の厳しい運命を示しています。

見る






PKCS#7 / CMSの進化




CMS形式の署名(署名付きデータ型)



CMS標準で記述されている署名は、次の機能によって特徴付けられます。

  1. データは複数の関係者によって署名できます(複数の署名)。 この場合、メッセージには、署名者に関する情報(署名の値とその真正性を検証するために必要な情報)を含むいくつかのSignerInfo構造が含まれます。
  2. データ型はいかなる形でも規制されていません。データがCMS形式のメッセージになり得ること、つまり、アリスによって署名されたメッセージはボブによって完全に署名できることのみを明確にします。
  3. データだけでなく、一部のメッセージ属性(メッセージハッシュ(ダイジェストメッセージ)、署名時間(署名時間)、別の署名の値(副署名))にも署名できます。
  4. 署名者の公開鍵は認証されていない場合があります。
  5. まったく署名がない場合があります。


電子署名データはコンテンツの署名に使用されるだけでなく、多くの場合、証明書と証明書失効リスト(CRL)の配布に使用されます。 この場合、署名されたデータは利用できず、逆に証明書とCRLフィールドが存在します。



アリスがCMS形式で署名したメッセージは次のようになります(オプションの属性はグレー表示されます)。











ボブがアリスから受信したメッセージに完全に署名することを決定した場合、カプセル化メカニズムが使用され、メッセージは次のようになります。









CMSは、従来の署名の機能を拡張する2つの興味深い属性を提供します。署名時間と副署名です。 最初の属性は署名の推定時間を決定し、2番目の属性は別の署名に署名するために使用されます(署名値のハッシュが署名されます)。 Countersignature属性は、署名済み属性にコンテンツタイプ属性を持たない署名者情報構造であり、必要なメッセージダイジェスト属性です。 Countersignature属性は、独自のCountersignature属性を持つことができます。



BobがAliceによって送信されたデータのみに署名すると同時に、Aliceの署名に署名することを決定した場合、メッセージは次のようになります。









ヨーロッパの残りのタイプのギャロップ



CMSは、この記事のトピックでは扱っていない他の興味深いタイプのメッセージを提供します。 したがって、全体像の残りのタイプに関する文字通りの単語。

パックデータ(エンベロープデータ)は、暗号化されたデータと、このデータが暗号化された1人以上の受信者に対して暗号化されたキーです。 暗号化されたメッセージと1人の受信者の1つの暗号化された暗号化キーの組み合わせは、デジタルエンベロープと呼ばれます。 このタイプは、1人以上の受信者の(署名された)データを含むエンベロープとして使用されます。

ハッシュされたデータ(ハッシュ付きのデータ)は、メッセージの整合性を検証するために使用され、多くの場合、パックされたデータのコンテンツです。

暗号化されたデータは、多くの場合、ローカルストレージのデータを暗号化するために使用され、パスワードで生成された暗号化キーを使用することもあります。

認証されたソースからのデータ(認証されたデータ)には、1つまたは複数の受信者のMACコードおよび暗号化された認証キーと共にデ​​ータが含まれます。 無制限の数の受信者のメッセージ整合性を保護するために使用されます。



次の記事では、ロシアの暗号化アルゴリズムを使用したエンベロープデータなどのメッセージについて詳しく説明します。



現実のCMS



CMS標準には、現代のITの世界に多くの化身があります-それは以下に基づいています:



電子署名付きメッセージのCMSアイデアの自然な発展は、CMS署名付きメッセージの拡張標準であるCAdES(CMS Advanced Electronic Signature)になりました。



実践する方法は?



ロシアの暗号化アルゴリズムをサポートするCMS / PKCS#7標準は、パートナーのCIPFによる認定で実装されています。



さらに、ロシアの暗号化を使用したCMS標準は、オープンソースOpenSSLアプリケーションに実装されています。



当社は、 Rutoken Plug- in製品でロシアの暗号化を使用してCMSをサポートしました。 Rutokenプラグインはブラウザでの使用を目的としており、すべての暗号化操作はハードウェア、つまりUSBトークンの「オンボード」で実行されます。



All Articles