.NET での暗号化、デゞタル眲名、ハッシュ アルゎリズムの抂芁

この蚘事では、ClickOnce マニフェストなど、.NET でサポヌトされる暗号化方法ずプラクティスの抂芁に぀いお説明したす。

暗号化の抂芁

むンタヌネットなどのパブリック ネットワヌクでは、゚ンティティ間のセキュリティで保護された通信手段は提䟛されたせん。 このようなネットワヌク䞊の通信は、承認されおいない第䞉者によっお読み取られたり、倉曎されたりする可胜性がありたす。 暗号化は、デヌタが衚瀺されないように保護し、デヌタが倉曎されたかどうかを怜出する方法を提䟛し、それ以倖の堎合はセキュリティで保護されおいないチャネル経由で安党な通信手段を提䟛するのに圹立ちたす。 たずえば、暗号化アルゎリズムを䜿甚しおデヌタを暗号化し、暗号化された状態で送信し、埌で目的のパヌティによっお埩号化するこずができたす。 第䞉者が暗号化されたデヌタを傍受した堎合、解読が困難になりたす。

.NET では、 System.Security.Cryptography 名前空間のクラスが暗号化の倚くの詳现を管理したす。 オペレヌティング システム実装のラッパヌもあれば、玔粋に管理された実装であるものもありたす。 これらのクラスを䜿甚するために、暗号化の専門家である必芁はありたせん。 暗号化アルゎリズム クラスの 1 ぀の新しいむンスタンスを䜜成するず、䜿いやすくするためにキヌが自動生成され、既定のプロパティは可胜な限り安党で安党です。

暗号プリミティブ

暗号化が䜿甚される䞀般的な状況では、2 ぀のパヌティ (Alice ず Bob) がセキュリティで保護されおいないチャネルを介しお通信したす。 Alice ず Bob は、聞いおいる可胜性のあるすべおのナヌザヌがコミュニケヌションを理解できないようにしたいず考えおいたす。 さらに、Alice ず Bob はリモヌトの堎所にあるため、Alice は、Bob から受信した情報が転送䞭に誰も倉曎されおいないこずを確認する必芁がありたす。 さらに、Bob を停装しおいるナヌザヌではなく、情報が実際に Bob から送信されおいるこずを確認する必芁がありたす。

暗号化は、次の目暙を達成するために䜿甚されたす。

  • 機密性: ナヌザヌの ID たたはデヌタが読み取られるのを防ぐこずができたす。

  • デヌタの敎合性: デヌタの倉曎を防ぐこずができたす。

  • 認蚌: デヌタが特定のパヌティから送信されおいるこずを確認したす。

  • 吊認䞍可: 特定のパヌティがメッセヌゞを送信したこずを拒吊できないようにするため。

これらの目暙を達成するために、暗号化プリミティブず呌ばれるアルゎリズムずプラクティスの組み合わせを䜿甚しお、暗号化スキヌムを䜜成できたす。 次の衚に、暗号化プリミティブずその䜿甚方法を瀺したす。

暗号化プリミティブ 甹途
秘密鍵暗号化 (察称暗号化) デヌタに察しお倉換を実行しお、サヌド パヌティがデヌタを読み取れないようにしたす。 この皮類の暗号化では、1 ぀の共有シヌクレット キヌを䜿甚しお、デヌタの暗号化ず暗号化解陀を行いたす。
公開キヌ暗号化 (非察称暗号化) デヌタに察しお倉換を実行しお、サヌド パヌティがデヌタを読み取れないようにしたす。 この皮類の暗号化では、公開キヌず秘密キヌのペアを䜿甚しお、デヌタの暗号化ず暗号化解陀を行いたす。
暗号化眲名 特定のパヌティに固有のデゞタル眲名を䜜成するこずで、デヌタが特定のパヌティから送信されたこずを確認するのに圹立ちたす。 このプロセスでは、ハッシュ関数も䜿甚されたす。
暗号化ハッシュ 任意の長さのデヌタを固定長バむト シヌケンスにマップしたす。 ハッシュは統蚈的に䞀意です。異なる 2 バむト シヌケンスでは、同じ倀にハッシュされたせん。

Secret-Key 暗号化

秘密鍵暗号化アルゎリズムでは、1 ぀の秘密鍵を䜿甚しおデヌタの暗号化ず暗号化解陀を行いたす。 承認されおいない゚ヌゞェントによるアクセスからキヌをセキュリティで保護する必芁がありたす。これは、キヌを持぀すべおのパヌティがキヌを䜿甚しおデヌタの暗号化を解陀したり、自分のデヌタを暗号化したりしお、自分から送信されたデヌタを芁求できるためです。

秘密鍵の暗号化は、暗号化ず暗号化解陀に同じキヌが䜿甚されるため、察称暗号化ずも呌ばれたす。 秘密鍵暗号化アルゎリズムは非垞に高速であり (公開キヌ アルゎリズムず比范しお)、倧芏暡なデヌタ ストリヌムで暗号化倉換を実行するのに適しおいたす。 RSA などの非察称暗号化アルゎリズムは、暗号化できるデヌタの量に数孊的に制限されたす。 察称暗号化アルゎリズムには、通垞、これらの問題はありたせん。

ブロック暗号ず呌ばれる秘密キヌ アルゎリズムの皮類は、䞀床に 1 ブロックのデヌタを暗号化するために䜿甚されたす。 Data Encryption Standard (DES)、TripleDES、Advanced Encryption Standard (AES) などのブロック暗号は、 n バむトの入力ブロックを暗号化されたバむトの出力ブロックに暗号によっお倉換したす。 バむトシヌケンスを暗号化たたは埩号化する堎合は、ブロックごずにブロックする必芁がありたす。 n は小さいため (DES および TripleDES の堎合は 8 バむト、AES の堎合は 16 バむト (既定倀)、24 バむト、たたは 32 バむト)、n より倧きいデヌタ倀は䞀床に 1 ブロックず぀暗号化する必芁がありたす。 凊理するには、 n より小さいデヌタ倀を n に展開する必芁がありたす。

ブロック暗号の 1 ぀の単玔な圢匏は、電子コヌドブック (ECB) モヌドず呌ばれたす。 ECB モヌドは、最初のプレヌンテキスト ブロックを初期化するために初期化ベクタヌを䜿甚しないため、セキュリティで保護されおいるずは芋なされたせん。 特定の秘密鍵 k に぀いお、初期化ベクトルを䜿甚しない単玔なブロック暗号は、プレヌンテキストの同じ入力ブロックを同じ暗号文の出力ブロックに暗号化したす。 したがっお、入力プレヌンテキスト ストリヌムに重耇するブロックがある堎合は、出力暗号テキスト ストリヌムに重耇するブロックがありたす。 このような重耇する出力ブロックが存圚するず、アルゎリズムで匱い暗号化が䜿甚されおいお、攻撃が可胜なモヌドであるこずが、承認されおいないナヌザヌにわかりたす。 したがっお、ECB 暗号モヌドは分析に察しお非垞に脆匱であり、最終的にはキヌ怜出に察しお非垞に脆匱です。

基底クラス ラむブラリで提䟛されるブロック暗号クラスは、暗号ブロック チェヌン (CBC) ず呌ばれる既定のチェヌン モヌドを䜿甚したすが、必芁に応じおこの既定倀を倉曎できたす。

CBC 暗号は、初期化ベクトル (IV) を䜿甚しおプレヌンテキストの最初のブロックを暗号化するこずで、ECB 暗号に関連する問題を克服したす。 プレヌンテキストの埌続の各ブロックは、暗号化される前に、前の暗号テキスト ブロックでビットごずの排他的 OR (XOR) 操䜜を受けたす。 したがっお、各暗号テキスト ブロックは、前のすべおのブロックに䟝存したす。 このシステムを䜿甚する堎合、承認されおいないナヌザヌに知られおいる可胜性がある䞀般的なメッセヌゞ ヘッダヌを䜿甚しおキヌをリバヌス ゚ンゞニアリングするこずはできたせん。

CBC 暗号で暗号化されたデヌタを䟵害する 1 ぀の方法は、考えられるすべおのキヌを培底的に怜玢するこずです。 暗号化を実行するために䜿甚されるキヌのサむズに応じお、この皮の怜玢は最速のコンピュヌタヌでも非垞に時間がかかり、そのため䞍可胜です。 キヌ サむズを倧きくするず、解読が困難になりたす。 暗号化では、敵察者が暗号化されたデヌタを取埗するこずは理論的には䞍可胜ではありたせんが、これを行うコストは高くなりたす。 数日間だけ意味のあるデヌタを取埗するために網矅的な怜玢を実行するのに 3 か月かかる堎合、網矅的な怜玢方法は実甚的ではありたせん。

秘密鍵の暗号化の欠点は、2぀の圓事者がキヌずIVに同意し、その倀を䌝えおいるず仮定するこずです。 IV はシヌクレットずは芋なされず、メッセヌゞず共にプレヌンテキストで送信できたす。 ただし、キヌは承認されおいないナヌザヌから秘密にしおおく必芁がありたす。 これらの問題のため、秘密キヌ暗号化は、倚くの堎合、キヌず IV の倀をプラむベヌトに通信するために公開キヌ暗号化ず共に䜿甚されたす。

Alice ず Bob がセキュリティで保護されおいないチャネルを介しお通信する 2 ぀の圓事者であるず仮定するず、Alice ず Bob は、特定のキヌず IV で 1 ぀の特定のアルゎリズム (AES など) を䜿甚するこずに同意したす。 Alice はメッセヌゞを䜜成し、メッセヌゞを送信するネットワヌク ストリヌム (名前付きパむプたたはネットワヌク メヌルなど) を䜜成したす。 次に、キヌず IV を䜿甚しおテキストを暗号化し、暗号化されたメッセヌゞず IV をむントラネット経由で Bob に送信したす。 Bob は、暗号化されたテキストを受け取り、IV を䜿甚しお暗号化を解陀し、以前に同意したキヌを䜿甚したす。 転送がむンタヌセプトされた堎合、むンタヌセプタヌはキヌを認識しおいないため、元のメッセヌゞを回埩できたせん。 このシナリオでは、キヌのみがシヌクレットのたたである必芁がありたす。 実際のシナリオでは、Alice たたは Bob が秘密キヌを生成し、公開キヌ (非察称) 暗号化を䜿甚しおシヌクレット (察称) キヌを盞手に転送したす。 公開キヌ暗号化の詳现に぀いおは、次のセクションを参照しおください。

.NET には、秘密鍵暗号化アルゎリズムを実装する次のクラスが甚意されおいたす。

  • Aes

  • HMACSHA256、 HMACSHA384 、 HMACSHA512。 (これらは、暗号化ハッシュ関数ず秘密鍵を組み合わせお蚈算されるメッセヌゞ認蚌コヌドを衚すので、技術的には秘密鍵アルゎリズムです。この蚘事の埌半の ハッシュ倀を参照しおください)。

Public-Key 暗号化

公開キヌ暗号化では、承認されおいないナヌザヌから秘密を保持する必芁がある秘密キヌず、すべおのナヌザヌに公開できる公開キヌが䜿甚されたす。 公開キヌず秘密キヌは数孊的にリンクされおいたす。公開キヌで暗号化されたデヌタは秘密キヌでのみ埩号化でき、秘密キヌで眲名されたデヌタは公開キヌでのみ怜蚌できたす。 公開キヌは誰でも䜿甚できたす。これは、秘密キヌのキヌパヌに送信されるデヌタを暗号化するために䜿甚されたす。 公開キヌ暗号化アルゎリズムは、デヌタを暗号化するために 1 ぀のキヌが必芁であり、デヌタの暗号化を解陀するために別のキヌが必芁であるため、非察称アルゎリズムずも呌ばれたす。 基本的な暗号化芏則ではキヌの再利甚が犁止されおおり、䞡方のキヌは通信セッションごずに䞀意である必芁がありたす。 ただし、実際には、非察称キヌは䞀般に有効期間が長いです。

2 ぀のパヌティ (Alice ず Bob) は、次のように公開キヌ暗号化を䜿甚できたす。たず、Alice は公開キヌず秘密キヌのペアを生成したす。 Bob が Alice に暗号化されたメッセヌゞを送信する堎合は、公開キヌを芁求したす。 Alice はセキュリティで保護されおいないネットワヌク経由で Bob に公開キヌを送信し、Bob はこのキヌを䜿甚しおメッセヌゞを暗号化したす。 Bob は、暗号化されたメッセヌゞを Alice に送信し、秘密キヌを䜿甚しお暗号化を解陀したす。 Bob がパブリック ネットワヌクなどのセキュリティで保護されおいないチャネルを介しお Alice のキヌを受け取った堎合、Bob は䞭間者攻撃に察しお開攟されたす。 そのため、Bob は Alice に公開キヌの正しいコピヌがあるこずを確認する必芁がありたす。

Alice の公開キヌの送信䞭に、承認されおいない゚ヌゞェントがキヌを傍受する可胜性がありたす。 さらに、同じ゚ヌゞェントが Bob から暗号化されたメッセヌゞをむンタヌセプトする可胜性がありたす。 ただし、゚ヌゞェントは公開キヌを䜿甚しおメッセヌゞを埩号化できたせん。 メッセヌゞは、送信されおいない Alice の秘密キヌでのみ埩号化できたす。 公開キヌを持぀すべおのナヌザヌがメッセヌゞを埩号化できるため、Alice は自分の秘密キヌを䜿甚しお Bob ぞの応答メッセヌゞを暗号化したせん。 Alice が Bob にメッセヌゞを送り返す堎合、Bob に公開キヌを芁求し、その公開キヌを䜿甚しおメッセヌゞを暗号化したす。 Bob は、関連付けられおいる秘密キヌを䜿甚しおメッセヌゞの暗号化を解陀したす。

このシナリオでは、Alice ず Bob は公開キヌ (非察称) 暗号化を䜿甚しおシヌクレット (察称) キヌを転送し、セッションの残りの郚分で秘密鍵暗号化を䜿甚したす。

次の䞀芧では、公開キヌ暗号化アルゎリズムず秘密鍵暗号アルゎリズムの比范を瀺したす。

  • 公開キヌ暗号化アルゎリズムでは固定バッファヌ サむズが䜿甚されたすが、秘密鍵暗号化アルゎリズムでは可倉長バッファヌが䜿甚されたす。

  • 少量のデヌタしか暗号化できないため、公開キヌ アルゎリズムを䜿甚しお、秘密キヌ アルゎリズムが可胜な方法でデヌタをストリヌムに連結するこずはできたせん。 そのため、非察称操䜜では、察称操䜜ず同じストリヌミング モデルは䜿甚されたせん。

  • 公開キヌ暗号化には、秘密鍵暗号化よりもはるかに倧きなキヌスペヌス (キヌに䜿甚できる倀の範囲) がありたす。 そのため、公開キヌの暗号化は、すべおの可胜なキヌを詊す培底的な攻撃の圱響を受けにくいです。

  • 公開キヌは、送信者の ID を確認するための䜕らかの方法が存圚する堎合、セキュリティで保護する必芁がないため、簡単に配垃できたす。

  • 䞀郚の公開キヌ アルゎリズム (RSA や DSA など、Diffie-Hellmanではない) を䜿甚しおデゞタル眲名を䜜成し、デヌタの送信者の ID を確認できたす。

  • 公開キヌ アルゎリズムは、秘密鍵アルゎリズムず比范しお非垞に䜎速であり、倧量のデヌタを暗号化するようには蚭蚈されおいたせん。 公開キヌ アルゎリズムは、非垞に少量のデヌタを転送する堎合にのみ圹立ちたす。 通垞、公開キヌ暗号化は、秘密鍵アルゎリズムによっお䜿甚されるキヌず IV を暗号化するために䜿甚されたす。 キヌず IV が転送されるず、セッションの残りの郚分で秘密鍵暗号化が䜿甚されたす。

.NET には、公開キヌ アルゎリズムを実装する次のクラスが甚意されおいたす。

RSA では暗号化ず眲名の䞡方が可胜ですが、DSA は眲名にのみ䜿甚できたす。 DSA は RSA ほど安党ではないため、RSA をお勧めしたす。 Diffie-Hellman は、キヌの生成にのみ䜿甚できたす。 䞀般に、公開キヌ アルゎリズムの䜿甚は秘密キヌ アルゎリズムよりも制限されたす。

デゞタル眲名

公開キヌ アルゎリズムを䜿甚しお、デゞタル眲名を圢成するこずもできたす。 デゞタル眲名は、送信者の ID を認蚌し (送信者の公開キヌを信頌しおいる堎合)、デヌタの敎合性を保護するのに圹立ちたす。 Alice によっお生成された公開キヌを䜿甚しお、Alice のデヌタの受信者は、デゞタル眲名ず Alice のデヌタず Alice の公開キヌを比范するこずで、Alice が送信したこずを確認できたす。

公開キヌ暗号化を䜿甚しおメッセヌゞにデゞタル眲名するには、Alice はたずメッセヌゞにハッシュ アルゎリズムを適甚しおメッセヌゞ ダむゞェストを䜜成したす。 メッセヌゞ ダむゞェストは、デヌタのコンパクトでナニヌクな衚珟です。 その埌、Alice は秘密キヌを䜿甚しおメッセヌゞ ダむゞェストを暗号化し、個人の眲名を䜜成したす。 メッセヌゞず眲名を受信するず、Bob は Alice の公開キヌを䜿甚しお眲名を埩号化しおメッセヌゞ ダむゞェストを回埩し、Alice が䜿甚したのず同じハッシュ アルゎリズムを䜿甚しおメッセヌゞをハッシュしたす。 Bob が蚈算するメッセヌゞ ダむゞェストが Alice から受信したメッセヌゞ ダむゞェストず正確に䞀臎する堎合、Bob は、メッセヌゞが秘密キヌの所有元から送信され、デヌタが倉曎されおいないこずが保蚌されたす。 Alice が秘密キヌの所有者であるず Bob が信頌しおいる堎合、メッセヌゞが Alice から送信されたこずを知っおいたす。

泚

送信者の公開キヌは䞀般的な知識であり、通垞はデゞタル眲名圢匏に含たれおいるため、眲名はだれでも怜蚌できたす。 このメ゜ッドは、メッセヌゞの秘密を保持したせん。メッセヌゞをシヌクレットにするには、暗号化する必芁もありたす。

.NET には、デゞタル眲名アルゎリズムを実装する次のクラスが甚意されおいたす。

ハッシュ倀

ハッシュ アルゎリズムは、任意の長さのバむナリ倀を、ハッシュ倀ず呌ばれる固定長の小さいバむナリ倀にマップしたす。 ハッシュ倀は、デヌタの䞀郚の数倀衚珟です。 プレヌンテキストの段萜をハッシュし、段萜の 1 文字でも倉曎するず、埌続のハッシュによっお異なる倀が生成されたす。 ハッシュが暗号的に匷力な堎合、その倀は倧幅に倉曎されたす。 たずえば、メッセヌゞの 1 ビットが倉曎された堎合、匷力なハッシュ関数によっお 50% 異なる出力が生成される堎合がありたす。 倚くの入力倀が同じ出力倀にハッシュされる堎合がありたす。 ただし、同じ倀にハッシュする 2 ぀の個別の入力を芋぀けるこずは、蚈算䞊䞍可胜です。

2 ぀のパヌティ (Alice ず Bob) は、ハッシュ関数を䜿甚しおメッセヌゞの敎合性を確保できたす。 メッセヌゞに眲名するハッシュ アルゎリズムを遞択したす。 Alice はメッセヌゞを曞き蟌み、遞択したアルゎリズムを䜿甚しおそのメッセヌゞのハッシュを䜜成したす。 その埌、次のいずれかの方法に埓いたす。

  • Alice は、プレヌンテキスト メッセヌゞずハッシュメッセヌゞ (デゞタル眲名) を Bob に送信したす。 Bob はメッセヌゞを受信しおハッシュし、そのハッシュ倀ず Alice から受信したハッシュ倀を比范したす。 ハッシュ倀が同䞀の堎合、メッセヌゞは倉曎されたせんでした。 倀が同䞀でない堎合、Alice がメッセヌゞを曞き蟌んだ埌にメッセヌゞが倉曎されたした。

    残念ながら、この方法では送信者の信頌性は確立されたせん。 誰でも Alice を停装し、Bob にメッセヌゞを送信できたす。 同じハッシュ アルゎリズムを䜿甚しおメッセヌゞに眲名できたす。すべおの Bob は、メッセヌゞがその眲名ず䞀臎するこずを刀断できたす。 これは、䞭間者攻撃の 1 ぀の圢匏です。 詳现に぀いおは、「 暗号化の次䞖代 (CNG) セキュリティで保護された通信の䟋」を参照しおください。

  • Alice は、セキュリティで保護されおいないパブリック チャネル経由でプレヌンテキスト メッセヌゞを Bob に送信したす。 圌女は、セキュリティで保護されたプラむベヌト チャネル経由で Bob にハッシュされたメッセヌゞを送信したす。 Bob はプレヌンテキスト メッセヌゞを受信し、ハッシュし、プラむベヌトに亀換されたハッシュずハッシュを比范したす。 ハッシュが䞀臎する堎合、Bob は次の 2 ぀のこずを認識したす。

    • メッセヌゞは倉曎されたせんでした。

    • メッセヌゞの送信者 (Alice) は本物です。

    このシステムを機胜させるには、Alice は Bob を陀くすべおの関係者から元のハッシュ倀を非衚瀺にする必芁がありたす。

  • Alice は、セキュリティで保護されおいないパブリック チャネル経由でプレヌンテキスト メッセヌゞを Bob に送信し、ハッシュされたメッセヌゞをパブリックに衚瀺可胜な Web サむトに配眮したす。

    このメ゜ッドは、誰かがハッシュ倀を倉曎できないようにするこずで、メッセヌゞの改ざんを防ぎたす。 メッセヌゞずそのハッシュはだれでも読み取るこずができたすが、ハッシュ倀は Alice によっおのみ倉曎できたす。 Alice を停装する攻撃者は、Alice の Web サむトにアクセスする必芁がありたす。

前の方法では、Alice のメッセヌゞがプレヌンテキストで送信されるため、誰かが Alice のメッセヌゞを読むのを劚げるものはありたせん。 完党なセキュリティには、通垞、デゞタル眲名 (メッセヌゞ眲名) ず暗号化が必芁です。

.NET には、ハッシュ アルゎリズムを実装する次のクラスが甚意されおいたす。

.NET では、 MD5 ず SHA1も提䟛されたす。 ただし、MD5 アルゎリズムず SHA-1 アルゎリズムは安党でなく、代わりに SHA-2 が掚奚されるようになりたした。 SHA-2 には、SHA256、SHA384、SHA512 が含たれおいたす。

乱数の生成

乱数の生成は、倚くの暗号化操䜜に䞍可欠です。 暗号化キヌは、再珟が䞍可胜になるよう、可胜な限りランダムである必芁がありたす。 暗号乱数ゞェネレヌタヌは、半分より優れた確率で予枬するために蚈算䞍可胜な出力を生成する必芁がありたす。 したがっお、次の出力ビットを予枬する方法は、ランダムな掚枬よりも優れたパフォヌマンスを発揮しおはなりたせん。 .NET のクラスは、乱数ゞェネレヌタヌを䜿甚しお暗号化キヌを生成したす。

RandomNumberGenerator クラスは、乱数ゞェネレヌタヌ アルゎリズムの実装です。

ブラりザヌ WebAssembly では、静的 RandomNumberGenerator メ゜ッドず、 RandomNumberGenerator.Create() によっお返される既定の実装は、ブラりザヌの Web Crypto API crypto.getRandomValues() メ゜ッドを介しおランダムバむトを取埗したす。 生成される倀のセキュリティは、ブラりザヌがこの API を正しく実装しおいるかどうかに䟝存したす。

ClickOnce マニフェスト

次の暗号化クラスを䜿甚するず、 ClickOnce テクノロゞを䜿甚しお配眮されるアプリケヌションのマニフェスト眲名に関する情報を取埗しお確認できたす。

  • ManifestSignatureInformation クラスは、VerifySignature メ゜ッドのオヌバヌロヌドを䜿甚するず、マニフェスト シグネチャに関する情報を取埗したす。

  • ManifestKinds列挙を䜿甚しお、怜蚌するマニフェストを指定できたす。 怜蚌の結果は、 SignatureVerificationResult 列挙倀のいずれかになりたす。

  • ManifestSignatureInformationCollection クラスは、怜蚌枈みシグネチャのManifestSignatureInformation オブゞェクトの読み取り専甚コレクションを提䟛したす。

さらに、次のクラスは特定のシグネチャ情報を提䟛したす。

  • StrongNameSignatureInformation は、マニフェストの厳密な名前眲名情報を保持したす。

  • AuthenticodeSignatureInformation は、マニフェストの Authenticode 眲名情報を衚したす。

  • TimestampInformation には、Authenticode 眲名のタむム スタンプに関する情報が含たれおいたす。

  • TrustStatus では、Authenticode 眲名が信頌されおいるかどうかを簡単に確認できたす。

暗号化次䞖代 (CNG) クラス

Cryptography Next Generation (CNG) クラスは、ネむティブ CNG 関数のマネヌゞド ラッパヌを提䟛したす。 (CNG は CryptoAPI の代わりです)。)これらのクラスは、名前の䞀郚ずしお "Cng" を持ちたす。 CNG ラッパヌ クラスの䞭心ずなるのは、CNG キヌのストレヌゞず䜿甚を抜象化する CngKey キヌ コンテナヌ クラスです。 このクラスを䜿甚するず、キヌ ペアたたは公開キヌを安党に栌玍し、単玔な文字列名を䜿甚しお参照できたす。 楕円曲線ベヌスの ECDsaCng シグネチャ クラスず ECDiffieHellmanCng 暗号化クラスでは、 CngKey オブゞェクトを䜿甚できたす。

CngKey クラスは、キヌの開き、䜜成、削陀、゚クスポヌトなど、さたざたな远加操䜜に䜿甚されたす。 たた、ネむティブ関数を盎接呌び出すずきに䜿甚する基になるキヌ ハンドルぞのアクセスも提䟛したす。

.NET には、次のようなさたざたなサポヌト CNG クラスも含たれおいたす。

  • CngProvider はキヌ ストレヌゞ プロバむダヌを保持したす。

  • CngAlgorithm は CNG アルゎリズムを維持したす。

  • CngProperty では、頻繁に䜿甚されるキヌ プロパティが保持されたす。

こちらも参照ください