onetimesecretを信頼できますか?
Can We Trust Onetimesecret
解決:
鍵交換は、暗号化を使用することにより、外部サービスを使用せずに日常的に行われます。最も人気のある鍵交換アルゴリズムはDiffie-Hellmanです。
ウィキペディアの引用:
Diffie–Hellman鍵交換方式では、 お互いの事前知識はありません 共有秘密鍵を共同で確立する 安全でないチャネルを介して 。
Diffie-Hellmanを使用する場合は、匿名バージョンを使用せず、固定または一時的なDHを使用してください。この答えを参照してください。
明らかに、実際のこと(つまり、自己学習以外)のために独自の暗号化を使用しないでください。そのためにOpenSSLのようなものを使用してください。
キーを交換するためのより良い代替手段は何ですか?
どのように良いですか?安全?シンプルさ?
セキュリティの場合は、鍵の送信方法を複数用意してください。
たとえば、電話で10文字、テキストで10文字、onetimesecretでさらにいくつか、さらにで 別 Webサイト(たとえば、https://read-once.info)。
このように、ウェブサイト/送信方法の1つが信頼されていない場合でも、完全なキーはなく、その一部しかありません。
もちろん、プレーンテキストの代わりに、最初にアリスの公開鍵で暗号化することもできます。あなたが望むなら、あなたはまた与えることができます 使い物にならない (または十分ではない)アリスが正しいキーを簡単に見つけるための情報。
たとえば、完全なキーが「XYZ123ABC」(「[電子メール保護]#」は使用されない)の場合、異なる送信方法でアリスに「ABC」、「123」、「[電子メール保護]#」および「XYZ」を指定します。
つまり、アリスに与えられたすべての部分を並べ替えさせます。
シークレットの保存についてはサードパーティを信用しませんが、URLリンクを介して共有できるという便利さは気に入っています。
両方の世界を最大限に活用するために、私はself-destruct-o(https://self-destruct-o.control-alt-del.org/)を作成しました。
概念はonetimesecretと似ていますが、いくつかの利点があります。
- ここで独自のインスタンス、コード、および手順を実行するのは簡単です:https://github.com/marksteele/self-destruct-o
- サーバーは必要ありません! (ただし、Amazon AWSアカウントが必要になります)。バックエンドは無料枠で実行できます!
- シークレットのパスフレーズを提供する場合、パスフレーズから暗号化キーを取得し、ブラウザのCBCモードでAES-256を使用して値を暗号化してから、バックエンドサービスに送信します。
リンクを電子メールで送信し、パスフェーズを2番目のチャネル(電話、SMSなど)で共有して、誰も秘密を傍受できないようにすることができます。
詳細はこちら:https://www.control-alt-del.org/post/one-time-password-sharing-securely/