Open棟梁 wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

Open棟梁で提供される、暗号・復号化 部品。

ポリシー

  • Managed優先(.NET Standard対応を考慮)
  • Managedが無ければCSPを使用というポリシーで実装。
  • 必要に応じて、下記のCNG対応を行う(CNGサポートを追加)。

CNG対応

方針

  • CNGでしか提供されないアルゴリズムは、CNGで実装する。
  • 必要に応じて、CNGサポートを追加(後方互換維持のため、置き換えはしない)。

調査結果

  • Managedが無く、CSPとCNGがサポートされるプロバイダは以下。
    • MD5
    • SHA1
    • TripleDES
    • RSA
    • DSA
  • CNGでしか提供されないアルゴリズム。
    • ECDsaCng?
    • ECDiffieHellmanCng?
  • なお、調査を進めてみたトコロ、
    .NET Standard 2.0でも以下のようなクラスの存在を確認。
    • System.Security.Cryptography
      • RSA
      • RSACryptoServiceProvider?
      • , etc.

予想外に、CSPラッパーと同一名称のクラスの存在も確認できる。
なので、.NET Standardの場合は、CNGより、むしろCSPになるもよう。

乱数生成

https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/CS/Frameworks/Infrastructure/Public/Security/GetPassword.cs

パスワード生成クラス

対応プロバイダ

RNGCryptoServiceProvider?

メソッド

Generate

RandomByte?

  • RandomByte?
  • Base64Secret
  • Base64UrlSecret?

キー生成

対応プロバイダ

Rfc2898DeriveBytes?

メソッド

なし。内部利用のみ。

暗号ハッシュ

https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/CS/Frameworks/Infrastructure/Public/Security/GetHash.cs

通常のハッシュを取得

対応プロバイダ(アルゴリズム)

MD5CryptoServiceProvider?,

SHA1CryptoServiceProvider?

SHA1Managed

SHA256Managed

SHA384Managed

SHA512Managed

メソッド

ハッシュ取得(バイト)

ハッシュ取得(文字列)

Salted and Hashed パスワード生成

Salted and Hashed パスワード検証

キー付きハッシュ

https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/CS/Frameworks/Infrastructure/Public/Security/GetKeyedHash.cs

キーを使用してハッシュを取得

対応プロバイダ(アルゴリズム)

HMACSHA1

HMACMD5

HMACRIPEMD160

HMACSHA256

HMACSHA384

HMACSHA512

MACTripleDES

メソッド

ハッシュ取得(バイト)

ハッシュ取得(文字列)

Salted and Hashed パスワード生成

Salted and Hashed パスワード検証

秘密鍵暗号方式

https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/CS/Frameworks/Infrastructure/Public/Security/SymmetricCryptography.cs

対称アルゴリズムによる暗号化・復号化

対応プロバイダ

AesManaged?

DESCryptoServiceProvider?

RC2CryptoServiceProvider?

RijndaelManaged?

TripleDESCryptoServiceProvider?

メソッド

暗号化

復号化

公開鍵暗号方式

https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/CS/Frameworks/Infrastructure/Public/Security/ASymmetricCryptography.cs

非対称アルゴリズムによる暗号化・復号化

対応プロバイダ

RSACryptoServiceProvider?

ECDiffieHellmanCng?

サポートを予定している。

メソッド

秘密鍵と公開鍵を取得

暗号化

復号化

署名・検証

対応プロバイダ(アルゴリズム)

RSACryptoServiceProvider?:MD5

RSACryptoServiceProvider?:SHA1

RSACryptoServiceProvider?:SHA256

RSACryptoServiceProvider?:SHA384

RSACryptoServiceProvider?:SHA512

DSACryptoServiceProvider?:SHA1

DSACryptoServiceProvider?:MD、SHA256はエラーになるため、現状サポートなし。

ECDsaCng?

サポートを予定している。

メソッド

署名

検証

その他

JWTの生成と検証

部品の検証ツール

暗号化プロバイダ・テスト・ツール

以下のツールで、.NETの各種の暗号化プロバイダをテストできる。

暗号化・復号化ツール

以下のツールで、各種、暗号・復号化 部品を検証できる。

ツール

このツールの使用前に、「ココ」と同じ手順で、証明書をインストールする。

このツールの使用する証明書のパスは、

  • \root\programs\C#\Frameworks\Tools\Encryption\EncAndDecUtil?\
    • EncAndDecUtil_RS256.pfx
    • EncAndDecUtil_RS256.cer

となっている。

参考

.NETの署名・暗号化アルゴリズム - マイクロソフト系技術情報 Wiki


添付ファイル: filetool.png 41件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-07-22 (日) 17:47:27 (28d)