概要 機械式ラチェット ダブルラチェットアルゴリズムは、エンドツーエンド暗号化システムで長年一般的に利用されてきた特性を備えています。すなわち、伝送経路全体にわたるコンテンツの暗号化、リモートピアの認証、およびメッセージの改ざん防止です。DH ラチェット とKDF ラチェットのハイブリッドとして、両方の原理の望ましい機能を複数組み合わせています。OTRメッセージングからは、前方秘匿性とセッションキーが漏洩した場合の秘匿性の自動 再 確立、秘密の永続メインキーが漏洩した場合の前方秘匿性、およびメッセージの作成者に関するもっともらしい否認可能性といった 特性を受け継いでいます。さらに、セカンダリKDFラチェットを使用することで、リモートピアとのやり取りなしにセッションキーを更新できます。順序が乱れたメッセージのセッションキーを後続のキーを危険にさらすことなく保持できるように、追加のキー導出ステップが実行されます。
送信済みメッセージの並べ替え、削除、およびリプレイを検知し、OTRメッセージングと比較して、受動的な盗聴に対する前方秘匿性を向上させると言われている。
事前に生成されたワンタイムキー (prekeys) を保持するための公開鍵インフラストラクチャ と組み合わせることで、リモートピアが存在しない場合でもメッセージングセッションを初期化できます (非同期通信)。初期鍵交換方法として トリプルディフィー・ヘルマン鍵交換 (3-DH) を使用すると、否認性が向上します。その例として、ダブルラチェットアルゴリズム、prekeys、および 3-DH ハンドシェイクを組み合わせた Signal プロトコルがあります。[ 8 ] このプロトコルは、機密性、完全性、認証、参加者の一貫性、宛先検証、前方秘匿性、後方秘匿性 (別名将来秘匿性)、因果関係の保持、メッセージのリンク不可性、メッセージの否認、参加の否認、および非同期性を提供します。[ 9 ] 匿名性の保持は提供されず、メッセージの中継と公開鍵マテリアルの保存のためにサーバーが必要です。[ 9 ]
機能 クライアントは、Diffie-Hellman (DH) ラチェットを使用してリモート ピアと対話的にセッション キー マテリアルを更新しようとします。これが不可能な場合、クライアントはハッシュ ラチェットを使用してセッション キーを個別に更新します。クライアントは、メッセージを送信するたびに、送信用と受信用の 2 つのハッシュ ラチェットのうちの 1 つを進めます。これらの 2 つのハッシュ ラチェットには、DH ラチェットから共通の秘密情報がシードされます。同時に、クライアントは、リモート ピアに新しい公開 DH 値を提供する機会を常に利用し、リモート ピアから新しい DH 値が到着するたびに DH ラチェットを進めようとします。新しい共通の秘密情報が確立されるとすぐに、新しいハッシュ ラチェットが初期化されます。
ダブルラチェットアルゴリズムは、暗号プリミティブとして、
DHラチェット用 Curve25519 を使用した楕円曲線ディフィー・ヘルマン (ECDH) 、メッセージ認証コード (MAC、認証) SHA-256 に基づく鍵付きハッシュメッセージ認証コード (HMAC) 、対称暗号化の場合 高度暗号化標準 ( AES)を、 PKCS #5に従ってパディング付き の暗号ブロック連鎖モード (CBC)で部分的に使用し、パディングなしのカウンタモード(CTR)で部分的に使用する。 ハッシュラチェット用 HMAC。[ 10 ]
アプリケーション 以下は、ダブルラチェットアルゴリズム、またはそのカスタム実装を使用するアプリケーションの一覧です。
集中型ネットワーク ダブルラチェットアルゴリズムは、アルゴリズムの実装、暗号化プロトコル(アルゴリズムが属する部分)、その実装、または公式アプリケーションの無関係な部分に欠陥を導入するバックドア に対する、集中型ネットワークの固有の脆弱性を解決しようとするものではありません。しかしながら、様々な集中型ネットワーク向けの公式クライアントに多数実装されています。
注記 ↑ 「秘密の会話」の中でのみ 1 2 3 4 5 6 7 8 シグナルプロトコル 経由 ↑ 「シークレットモード」のみ ↑ 1対1のRCSチャットのみ ↑ ジナプロトコル経由 ↑ 「プライベートな会話」でのみ ↑ Viberは「Open Whisper Systems Signalアプリケーションで使用されている「ダブルラチェット」プロトコルと同じ概念を使用している」 ↑ Proteusプロトコル経由
参考文献 ↑ トレバー・ペリン(編集者)、モクシー・マーリンスパイク、「ダブルラチェットアルゴリズム」。改訂版1、2016年11月20日 ↑ Perrin, Trevor (2016年3月30日). "Compare Revisions" . GitHub . 2016年 4月9日 取得 。 1 2 3 Marlinspike, Moxie (2016年3月30日). 「外部の信号、内部の信号」 . Open Whisper Systems . 2016年 3月31日 取得 。 ↑ Cohn-Gordon, K.; Cremers, C.; Garratt, L. (2016). "On Post-compromise Security" . 2016 IEEE 29th Computer Security Foundations Symposium (CSF) . pp. 164–178 . doi : 10.1109/CSF.2016.19 . ISBN 978-1-5090-2607-4 . S2CID 5703986 . ↑ https://signal.org/blog/spqr ↑ Ksenia Ermoshina、Francesca Musiani。「コード実行による標準化」:シグナルプロトコルとエンドツーエンド暗号化メッセージングにおける事実上の標準化。インターネットの歴史、2019年、1-21ページ。10.1080/24701475.2019.1654697。halshs-02319701 ↑ コーン・ゴードンら。 2016 、p. 1 ↑ ウンガーら。 2015 、p. 241 1 2 ウンガーら。 2015 、p. 239 ↑ Frosch et al. 2014 ↑ブッチャー、マイク(2016年9 月 19日)。 「RiotはSlackのようになりたいが、基盤となるオープンソースプラットフォームの柔軟性も欲しい」 。TechCrunch。AOL Inc。 2016年 9月20日 閲覧 。 ↑ 「セキュリティ」 . Cryptocat. 2016年4月7日時点の オリジナルからアーカイブ済み。 2016年 7月14日 取得 。 1 2 ヴャチェスラフ・カルプキン。 「OMEMO for Psi・GitHub」 。 GitHub 。 2018年3月4日 に取得 。 ↑ Richard Bayerle. "lurch - libpurple 用の OMEMO" . GitHub . 2017-02-12 に取得. ↑ Olivier Mehani. "Lurch4Adium - Adium 用 OMEMO Xtra" . GitHub . 2017-06-08 に取得. ↑ René Calles. "profanity-omemo-plugin: profanity XMPP メッセンジャーで (axolotl / Signal Protocol) 暗号化を使用する Python プラグイン" . GitHub . 2017-01-10 に取得. ↑ Greenberg, Andy (2016年10月4日). 「Facebook Messengerを暗号化できるようになったので、そうしましょう」 . Wired . Condé Nast . 2016年 10月5日 閲覧 . ↑ シールズ、タラ(2015年9月17日)。 「G DATAが安全なモバイルチャットのための暗号化を追加」 。Infosecurity Magazine。Reed Exhibitions Ltd。 2016年 1月16日 取得 。 ↑ "SecureChat" . GitHub . G Data . 2016年 7月14日 取得 . ↑ Greenberg, Andy (2016年5月18日). 「AlloとDuoで、Googleはついに会話をエンドツーエンドで暗号化」 . Wired . Condé Nast . 2016年 7月14日 閲覧 。 ↑ アマデオ、ロン (2021-06-16). 「Google が Android のデフォルトの SMS/RCS アプリでエンドツーエンド暗号化を有効化」 . Ars Technica . 2022-03-03 に閲覧。 ↑ 「Haven Attributions」 . GitHub . Guardian Project . 2017年 12月22日 取得 。 ↑ Lee, Micah (2017年12月22日). 「スノーデン氏の新しいアプリはスマートフォンを使ってノートパソコンを物理的に保護する」 . The Intercept . First Look Media . 2017年 12月22日 閲覧 。 ↑ Langley, Adam (2013年11月9日). "Wire in new ratchet system" . GitHub (GitHub contribution) . 2016年 1月16日 取得 。 ↑ "Silent Circle/libzina" . Github . Silent Circle . 2017年 12月19日 取得 . ↑ Lund, Joshua (2018年1月11日) 「SignalがMicrosoftと提携し、Skypeにエンドツーエンド暗号化を導入」 Open Whisper Systems 。 2018年 1月11日 取得 。 ↑ 「Viber暗号化の概要」 (PDF) 。Viber。2018年7月25日。 2018年 10月26日 取得 。 ↑ Metz, Cade (2016年4月5日). 「Apple対FBIは忘れろ:WhatsAppが10億人向けに暗号化を有効化」 . Wired . Condé Nast . 2016年 4月5日 閲覧 。 ↑ 「Wire Security Whitepaper」 (PDF) 。Wire Swiss GmbH。2018年8月17日。 2020年 8月28日 取得 。
文学 Cohn-Gordon, Katriel; Cremers, Cas; Dowling, Benjamin; Garratt, Luke; Stebila, Douglas (2016年10月25日) 「シグナルメッセージングプロトコルの形式的セキュリティ分析」(PDF) . Cryptology ePrint Archive . International Association for Cryptologic Research (IACR). Frosch, Tilman; Mainka, Christian; Bader, Christoph; Bergsma, Florian; Schwenk, Jörg; Holz, Thorsten (2014). "TextSecureはどれほど安全か?" (PDF) . Cryptology ePrint Archive . International Association for Cryptologic Research (IACR) . 2016年 1月16日 取得 . Unger, Nik; Dechand, Sergej; Bonneau, Joseph; Fahl, Sascha; Perl, Henning; Goldberg, Ian Avrum; Smith, Matthew (2015). SoK: セキュアメッセージング (PDF) . 2015 IEEE Symposium on Security and Privacy 論文集. IEEE Computer Society's Technical Committee on Security and Privacy. pp. 232–249 . doi : 10.1109/SP.2015.22 .