Double Ratchetアルゴリズム
Double Ratchetアルゴリズム(英語: Double Ratchet Algorithm)は、Trevor Perrinとモクシー・マーリンスパイクが2013年に考案した鍵管理アルゴリズムである。初回の鍵共有後の短期セッション鍵の更新と管理の手順を規定する。インスタントメッセージングでエンドツーエンド暗号化を実現する暗号プロトコルの一部として使用できる。ディフィー・ヘルマン鍵共有および、ハッシュ関数などの鍵導出関数をもとにした「ラチェット」(英語: ratchet)と呼ばれる機構から構成されるため、二重ラチェット(Double Ratchet)という名称が付いている。以前はAxolotl Ratchetと呼ばれていた[1][2]。
Double Ratchetアルゴリズムは、一定の条件下で通信当事者の鍵が危殆化した場合に未来の通信が攻撃者に解読されるのを防ぐため、自己修復的(self-healing)である[3]。セッション鍵は数回の通信のたびに更新され、一度傍受されていない鍵共有が起きると攻撃者はそれ以降の通信へのアクセスを失うことになるため、攻撃者はすべての通信を傍受する必要がある。この暗号プロトコルの機能はのちに後方秘匿性(英語: future secrecy)またはpost-compromise securityと呼ばれるようになった[4]。
仕組み
[編集]通信当事者は、通信相手と対話できる場合はディフィー・ヘルマン(DH)ラチェットを使って、対話できない場合はハッシュラチェットを使って単独でセッション鍵マテリアルを更新する。各ハッシュラチェットは、それぞれDHラチェットから導出した共通の秘密の値でシードされる。メッセージを送受信するたびに、2つのハッシュラチェット(送信用と受信用)のどちらかが1段階進められる。また、可能であれば常にDHラチェットの前進と新しい公開DH値の通信相手への通知を試み、相手から新しいDH値を受け取った場合はDHラチェットを1段階進める。新しい共通の秘密の値が確立されると、ハッシュラチェットが初期化される。
Double Ratchetアルゴリズムは、暗号プリミティブに以下を使用する。
- DHラチェット
- 楕円曲線ディフィー・ヘルマン鍵共有(Curve25519)
- メッセージ認証コード
- HMAC-SHA256
- 対称鍵暗号
- AES(CBC、PKCS #5およびCTR、パディングなし)
- ハッシュラチェット
- HMAC[5]
アプリケーション
[編集]以下は、Double Ratchetアルゴリズムまたはその独自実装を採用するアプリケーションの一覧である。
- ChatSecure[注釈 1]
- Conversations[注釈 1]
- Cryptocat[注釈 1][6]
- Facebook Messenger[注釈 2][注釈 3][7]
- G Data Secure Chat[注釈 3][8][9]
- Gajim[注釈 1][注釈 4]
- GNOME Fractal[注釈 5]
- Google Allo[注釈 6][注釈 3][10]
- Google メッセージ[注釈 7][注釈 3][11]
- Haven[注釈 3][12][13]
- Pond[14]
- Element[注釈 5][15]
- Signal[注釈 3]
- Silent Phone[注釈 8][16]
- Skype[注釈 9][注釈 3][17]
- Viber[18]
- WhatsApp[注釈 3][19]
- Wire[注釈 10][20]
関連項目
[編集]脚注
[編集]注釈
[編集]出典
[編集]- ^ “Compare Revisions”. GitHub (30 March 2016). 9 April 2016閲覧。
- ^ “Signal on the outside, Signal on the inside”. Open Whisper Systems (30 March 2016). 31 March 2016閲覧。
- ^ Marlinspike, Moxie (26 November 2013). “Advanced cryptographic ratcheting”. whispersystems.org. Open Whisper Systems. 20 January 2021閲覧。 “The OTR style ratchet has the nice property of being 'self healing.'”
- ^ Cohn-Gordon, K.; Cremers, C.; Garratt, L. (2016). “On Post-compromise Security”. 2016 IEEE 29th Computer Security Foundations Symposium (CSF): 164–178. doi:10.1109/CSF.2016.19. ISBN 978-1-5090-2607-4 .
- ^ Frosch et al. 2014.
- ^ “Security”. Cryptocat. 7 April 2016時点のオリジナルよりアーカイブ。14 July 2016閲覧。
- ^ “You Can All Finally Encrypt Facebook Messenger, So Do It”. Wired. Condé Nast (4 October 2016). 5 October 2016閲覧。
- ^ Seals, Tara (17 September 2015). “G DATA Adds Encryption for Secure Mobile Chat”. Infosecurity Magazine. Reed Exhibitions Ltd.. 16 January 2016閲覧。
- ^ “SecureChat”. GitHub. G Data. 14 July 2016閲覧。
- ^ Greenberg, Andy (18 May 2016). “With Allo and Duo, Google Finally Encrypts Conversations End-to-End”. Wired. Condé Nast. 14 July 2016閲覧。
- ^ Amadeo, Ron (2021年6月16日). “Google enables end-to-end encryption for Android's default SMS/RCS app” (英語). Ars Technica. 2022年3月3日閲覧。
- ^ “Haven Attributions”. GitHub. Guardian Project. 22 December 2017閲覧。
- ^ “Snowden's New App Uses Your Smartphone To Physically Guard Your Laptop”. The Intercept. First Look Media (22 December 2017). 22 December 2017閲覧。
- ^ Langley, Adam (9 November 2013). “Wire in new ratchet system”. GitHub. 16 January 2016閲覧。
- ^ Butcher, Mike (19 September 2016). “Riot wants to be like Slack, but with the flexibility of an underlying open source platform”. TechCrunch. AOL Inc.. 20 September 2016閲覧。
- ^ “Silent Circle/libzina”. GitHub. Silent Circle. 19 December 2017閲覧。
- ^ “Signal partners with Microsoft to bring end-to-end encryption to Skype”. Open Whisper Systems (11 January 2018). 11 January 2018閲覧。
- ^ “Viber Encryption Overview”. Viber (25 July 2018). 26 October 2018閲覧。
- ^ “Forget Apple vs. the FBI: WhatsApp Just Switched on Encryption for a Billion People”. Wired. Condé Nast (5 April 2016). 5 April 2016閲覧。
- ^ “Wire Security Whitepaper”. Wire Swiss GmbH (17 August 2018). 28 August 2020閲覧。
参考文献
[編集]- Cohn-Gordon, Katriel; Cremers, Cas; Dowling, Benjamin; Garratt, Luke; Stebila, Douglas (2016年). "A Formal Security Analysis of the Signal Messaging Protocol" (PDF). Cryptology ePrint Archive (英語). International Association for Cryptologic Research (IACR).
- Frosch, Tilman; Mainka, Christian; Bader, Christoph; Bergsma, Florian; Schwenk, Jörg; Holz, Thorsten (2014年). "How Secure is TextSecure?" (PDF). Cryptology ePrint Archive (英語). International Association for Cryptologic Research (IACR).
- Unger, Nik; Dechand, Sergej; Bonneau, Joseph; Fahl, Sascha; Perl, Henning; Goldberg, Ian Avrum; Smith, Matthew (2015年). SoK: Secure Messaging (PDF). Proceedings of the 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。