WinXP上のFIPS準拠のHashAlgorithm?
-
22-07-2019 - |
質問
FIPS準拠のWinXP SP2ボックスでC#を使用して、特定のファイルのコンテンツを一意にハッシュするにはどうすればよいですか?パフォーマンスについては心配していません(まだ?)。
誰かが" rule"の例外を指摘できることを願っていますが、" * ServiceProvider"クラスはFIPSに準拠しており、WinXPでは使用できませんが、" * Managed"クラスはWinXPで使用でき、FIPS準拠ではありません。
そして、MD5は確実に一意ではないために出ています(はい、その小さな可能性でさえ私のプロジェクトでは受け入れられません)。
解決
これらはfipsに準拠しているようです:
HMACSHA1、MACTripleDES、およびSHA1CryptoServiceProvider
ref: http://blog.aggregatedintelligence.com /2007/10/fips-validated-cryptographic-algorithms.html
他のヒント
必要なのは、WindowsマシンのレジストリでFIPS準拠のポリシー設定がオンになっているときにエラーを発生させないハッシュプロバイダーだけである場合、SHA1CryptoServiceProviderを使用できます。 2.0およびXP SP2。
しかし、セキュリティとポリシーの理由で実際にFIPS準拠の実装が実際に必要な場合は、簡単な答えは、クライアントをWin XP SP3(または新しいOS)にアップグレードするか、サードパーティの使用を検討することですFIPS検証済みの暗号化サービスプロバイダー(CSP)。
Windows XP SP2はFIPS準拠モード(レジストリ設定)で動作するSHA1(SHACryptoServiceProvider)のFIPS準拠の実装をサポートしますが、SHA1は2010年以降の新しい実装には使用されないため、FIPS準拠ではなくなる可能性があります、使用法に応じて(つまり、乱数生成とハッシュの使用)。
少なくともXP SP3に到達できる場合は、両方ともFIPS準拠のSHA256CryptoServiceProviderまたはSHA512CryptoServiceProviderを使用できます。