「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でも以下のようなクラスの存在を確認。
予想外に、CSPもCNGラッパーも確認できる(CNGはLinux上ではどうなる?)。
乱数生成 †
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? †
サポートを予定している。
メソッド †
署名 †
検証 †
その他 †
部品の検証ツール †
暗号化プロバイダ・テスト・ツール †
以下のツールで、.NETの各種の暗号化プロバイダをテストできる。
暗号化・復号化ツール †
以下のツールで、各種、暗号・復号化 部品を検証できる。
このツールの使用前に、「ココ」と同じ手順で、証明書をインストールする。
このツールの使用する証明書のパスは、
- \root\programs\C#\Frameworks\Tools\Encryption\EncAndDecUtil?\
- EncAndDecUtil_RS256.pfx
- EncAndDecUtil_RS256.cer
となっている。
参考 †