パスワードを「暗号化」することにより、違反しています CWE-257 :パスワードを回復可能な形式で保存します。しかし、これはまさに フランス政府が望んでいること です。彼らはあらゆるユーザーのパスワードを取得できるようにしたいと考えています。すべてのアカウントでこれは悪いことです、そして ブルース・シュナイアーは同意します 。
では、どうすればこのフランスの義務を満たし、高水準の安全性を維持できるでしょうか。
ユーザーにまだ別のパスワードを強制しないでください。 PKI、ハードウェアトークン、または OAuth または OpenID のような他の方法を使用して、心配している管轄外にあるIDプロバイダーサイトを活用します。
問題の2004年フランス法の実際の要件 Loi pour la confiance dans l'économienumériqueakaデジタル経済における信頼に関する法律 は明確ではなく、一部の報告ではその影響を誤解または誇張しているようです。たとえば、法執行機関にユーザーのアカウントへの他のアクセス権を提供するだけで十分であるように思えます。 (通常のパスワードリセットのように)アカウントにアクセスしていることをユーザーに知らせないように、児童ポルノの調査のために。
公開キー暗号化 を使用します。サーバーには公開鍵のみがあります。これにより、サーバーはパスワードを暗号化し、ユーザーを認証するために暗号文を比較できます。
秘密鍵は、銀行金庫内のドライブにある必要があります。フランス政府がパスワードを要求する場合、秘密鍵にアクセスしてパスワードを復号化できます。
この質問は、「鍵エスクロー」問題として、しばらくの間、何らかの形で議論されてきました。セキュリティで保護されたデータへのアクセスをサードパーティに与えるアーキテクチャには、根本的な問題があります。これらは、暗号化の実装方法に影響されません。たとえば この記事 を参照してください。
私はこの質問を、保護されたデータへの第三者アクセスを提供する方法として解釈しています。これが実際にフランス政府との現在の状況に対応しているかどうかについての議論は、私が検討しているところです。そして、問題の性質上、これを行うことには解決できないリスクがあります。したがって、この答えは悪い状況を最大限に活用するものと考えてください。
一連の要件は次のとおりです。
実際には、機能暗号化と呼ばれる非常に現代的な暗号化技術を使用したこの問題に対する非常に優れた解決策がありますが、効率的ではありません。これらのタイプのスキームを使用すると、サーバーはマスター秘密鍵を保持して、任意のレコードを復号化でき、特定のレコードの復号化にのみ使用できる新しい秘密鍵を作成できます。これは、(1)、(2)、(5)を解決し、(3)と競合し、(4)を提供しません。
(4)を提供するために、既存のパスワードベースの認証システムが引き続き使用されているハイブリッドシステムを提案します(4)。これには、ユーザーのレコードの暗号化(次を含む)が追加されます。パスワード)。レコードが政府に提供される場合、いったんパスワードを回復すると、それはユーザーの認証に使用されているのと同じパスワードであることを確認して比較できます。
関数暗号化を使用する代わりに、サーバーが適切な暗号化スキームを使用してレコードを暗号化し、政府がレコードを要求するたびにレコードが何であるかを「ゼロ知識」証明を生成できるようにします(秘密鍵)。証明は政府への輸送中に暗号化される可能性があります(政府が他の人と証明を共有するのを防ぐために「指定された検証者」証明を使用することもできます)。
これらの解決策はどれも、政府がその権限を乱用しないように信頼される必要があるという事実を解決することはありません。
PGPを使用すると、パスワードを保存する必要はありません。ユーザーは、公開鍵を送信してサインアップします。ユーザーがサインインする必要がある場合は、ユーザーにランダムなテキストを送信し、サインして返送してもらいます。次に、署名を検証して認証します。
2回保管してください。簡単にアクセスできない秘密キーでPKIを使用し、回復不可能な形式を使用すると、法的な要求に準拠する必要がある場合、その方法があり、日常の標準的なベストプラクティスを使用できます。日認証。