「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>機能一覧]] * 目次 [#adce8a06] #contents *概要 [#s9dee55e] >https://techinfoofmicrosofttech.osscons.jp/index.php?.NET%E3%81%AE%E7%BD%B2%E5%90%8D%E3%83%BB%E6%9A%97%E5%8F%B7%E5%8C%96%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0]]) -Managed優先、無ければCSPを使用というポリシーで実装。 -CNG実装への移行は、まだ行っていない。 ***暗号ハッシュ [#la4e1baf] https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/C%23/Frameworks/Infrastructure/Public/Util/GetHash.cs#L162 -Managed優先、無ければCSPを使用というポリシーで実装。 -Membership.GeneratePasswordを使っている。~ RNGCryptoServiceProviderに変更したい。 --ASP.NETを使ってランダムなパスワードを生成する:CodeZine(コードジン)~ https://codezine.jp/article/detail/238 ---GeneratePassword Method~ http://aspnet.4guysfromrolla.com/demos/GeneratePassword.aspx ***キー付きハッシュ [#o0ef5dab] https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/C%23/Frameworks/Infrastructure/Public/Util/GetKeyedHash.cs#L182 -Managedのsuffixが無いが、MSDNではmscorlib.dllとなっているためManaged実装と思われる。 -キーは、Rfc2898DeriveBytesを使用して生成している。 -HMACの実装が不足している。 --HMACSHA1のみ実装 --HMACMD5、HMACRIPEMD160、HMACSHA256、HMACSHA384、HMACSHA512が未実装。 ***秘密鍵暗号方式 [#m1c66e75] https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/C%23/Frameworks/Infrastructure/Public/IO/SymmetricCryptography.cs#L430 -AesCryptoServiceProviderが例外的に余分に実装されている。 -キーは、Rfc2898DeriveBytesを使用して生成している。 ***公開鍵暗号方式 [#r9036717] https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/C%23/Frameworks/Infrastructure/Public/IO/ASymmetricCryptography.cs -暗号化・複合化で使用できるのは、RSACryptoServiceProviderのみ。 ***署名・検証 [#s1ca647e] なし。 ***乱数生成、キー生成 [#q715ba2e] なし。 -乱数発生にはRNGCryptoServiceProviderを使ってもイイかもしれない。 -通常のハッシュを取得 --対応プロバイダ(アルゴリズム) ---MD5CryptoServiceProvider, ---SHA1CryptoServiceProvider ---SHA1Managed ---SHA256Managed ---SHA384Managed ---SHA512Managed --メソッド ---ハッシュ取得(バイト) ---ハッシュ取得(文字列) ---Salted and Hashed パスワード生成 ---Salted and Hashed パスワード検証 -キー付きハッシュを取得 --対応プロバイダ(アルゴリズム) ---HMACSHA1 ---HMACMD5 ---HMACRIPEMD160 ---HMACSHA256 ---HMACSHA384 ---HMACSHA512 ---MACTripleDES --メソッド ---ハッシュ取得(バイト) ---ハッシュ取得(文字列) ---Salted and Hashed パスワード生成 ---Salted and Hashed パスワード検証 -パスワード生成クラス~ RNGCryptoServiceProviderを使用してパスワードを生成するクラス -対称アルゴリズムによる暗号化・復号化 --対応プロバイダ ---AesManaged ---DESCryptoServiceProvider ---RC2CryptoServiceProvider ---RijndaelManaged ---TripleDESCryptoServiceProvider --メソッド ---暗号化 ---復号化 -非対称アルゴリズムによる暗号化・復号化 --対応プロバイダ ---RSACryptoServiceProvider --メソッド ---秘密鍵と公開鍵を取得 ---暗号化 ---復号化 -電子署名(X509 or RFC 3275 XML Key) --対応プロバイダ(アルゴリズム) ---RSACryptoServiceProvider:MD5 ---RSACryptoServiceProvider:SHA1 ---RSACryptoServiceProvider:SHA256 ---RSACryptoServiceProvider:SHA384 ---RSACryptoServiceProvider:SHA512 ---DSACryptoServiceProvider:SHA1 --メソッド ---署名 ---検証 -JWTアサーションの生成・検証 --HS256バージョン(HMACSHA256ハッシュによる署名・検証) --RS256バージョン(RSACryptoServiceProvider:SHA256による署名・検証)