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/