オフザレコード メッセージング( OTR ) は、インスタント メッセージング会話の暗号化を提供する暗号化プロトコルです。OTR は、128 ビットのキー長を持つAES対称キー アルゴリズム、1536 ビットのグループ サイズのDiffie-Hellman キー交換、およびSHA-1ハッシュ関数の組み合わせを使用します。認証と暗号化に加えて、OTR は前方秘匿性と可変暗号化を提供します。
このプロトコルの主な目的は、会話の秘密を守りながら、会話参加者に否定可能な認証を提供することです。これは、実生活でのプライベートな会話や、ジャーナリズムのソースにおけるオフレコのようなものです。これは、後で通信イベントと参加者の身元の検証可能な記録として使用できる出力を生成する暗号化ツールとは対照的です。最初の紹介論文は、「オフレコ通信、または、なぜPGPを使用しないのか」と題されていました。[1]
OTRプロトコルは、暗号学者のイアン・ゴールドバーグとニキータ・ボリソフによって設計され、2004年10月26日にリリースされました。 [2]彼らは、プロトコルを実装したいインスタントメッセージングクライアント開発者へのサポートを容易にするためにクライアントライブラリを提供しています。PidginとKopeteのプラグインがあり、これを使用すると、PidginまたはKopeteでサポートされている任意のIMプロトコルでOTRを使用できます。これは、通常の暗号化されていない会話に干渉することなく、有効になっている仲間とOTRセッションを開始する自動検出機能を提供します。プロトコルのバージョン4 [3]は、2017年[4]からソフィア・セリが率いるチームによって開発され、ニック・ウンガーとイアン・ゴールドバーグがレビューしました。このバージョンは、オンラインとオフラインの否認を提供し、暗号プリミティブを更新し、順序外配信と非同期通信をサポートすることを目的としています。
歴史
OTR は、2004 年に Nikita Borisov、Ian Avrum Goldberg、Eric A. Brewer によって OpenPGP および S/MIME システムの改良として「電子社会におけるプライバシーに関するワークショップ」(WPES) で発表されました。[1]参照実装の最初のバージョン 0.8.0 は、2004 年 11 月 21 日に公開されました。2005 年には、Mario Di Raimondo、Rosario Gennaro、Hugo Krawczyk によって分析が発表され、いくつかの脆弱性が指摘され、適切な修正が提案されました。最も注目すべきは、鍵交換の欠陥です。[5]その結果、2005 年に OTR プロトコルのバージョン 2 が公開され、提案された修正のバリエーションが実装され、公開鍵がさらに隠されるようになりました。さらに、メッセージ サイズが制限されているチャット システムに対応するために OTR メッセージを断片化する可能性が導入され、中間者攻撃に対するより簡単な検証方法が実装されました。[6]
2007年にオリヴィエ・ゴファールはejabberdのmod_otr[7]を公開し、鍵の指紋をチェックしないOTRユーザーに対して中間者攻撃を実行できるようにした。OTR開発者は、libotrに社会主義億万長者プロトコルの実装を導入することでこの攻撃に対抗した。鍵のチェックサムを比較する代わりに、比較的低いエントロピーを許容できる任意の共有秘密の知識を利用できる。 [8]
プロトコルのバージョン3は2012年に公開されました。複数の競合するチャットクライアントが同じユーザーアドレスに同時にサインオンした場合にセッションが繰り返し再確立されることを防ぐ対策として、バージョン3では送信側と受信側のクライアントインスタンスのより正確な識別ラベルが導入されました。さらに、別のデータチャネルに使用できる追加のキーがネゴシエートされます。[9]
複数の参加者との会話をサポートするために、いくつかの解決策が提案されている。2007年にJiang Bian、Remzi Seker、Umit Topalogluによって提案された方法は、1人の参加者のシステムを「仮想サーバー」として使用する。[10] 2009年に公開された「Multi-party Off-the-Record Messaging」(mpOTR)と呼ばれる方法は、中央管理ホストなしで動作し、Ian GoldbergらによってCryptocatで導入された。 [11]
2013年に、 OTRメッセージングとSilent Circle Instant Messaging Protocol (SCIMP)に基づくSignalプロトコルが導入されました。これにより、非同期通信(「オフラインメッセージ」)のサポートが主要な新機能としてもたらされ、メッセージの順序が歪んだ場合でも耐性が向上し、複数の参加者との会話のサポートが簡素化されました。[12] 2015年にAndroid XMPPクライアントConversationsで導入されたOMEMOは、Signalで使用されるダブルラチェットアルゴリズムをインスタントメッセージングプロトコルXMPP (「Jabber」)に統合し、ファイル転送の暗号化も可能にします。2015年秋に、標準化のためにXMPP Standards Foundationに提出されました。[13] [14]
現在、プロトコルのバージョン4が設計されており、PETS2018でSofía CeliとOla Biniによって発表されました。[15]
実装
OTR は、暗号化と認証 ( PGP、GnuPG、X.509 ( S/MIME )などの一般的な公開鍵暗号化スイートでも提供される機能) に加えて、あまり一般的ではない次のような機能も提供します。
- 前方秘匿性
- メッセージは、Diffie-Hellman 鍵交換プロトコルを使用してネゴシエートされた、メッセージごとの一時的なAES鍵でのみ暗号化されます。たとえ攻撃者が暗号文を所有していたとしても、長期間有効な暗号鍵が侵害されても、以前の会話が侵害されることはありません。
- 否認可能な認証
- 会話中のメッセージにはデジタル署名がないため、会話が完了した後は、誰でも会話の参加者の 1 人から送信されたように見せかけるメッセージを偽造することができ、特定のメッセージが特定の人物から送信されたことを証明することは不可能になります。会話中、受信者は、メッセージが自分が特定した人物から送信されたものであることを確認することができます。
認証
OTR 3.1 以降、プロトコルは、社会主義百万長者プロトコルを介して共有秘密を使用したユーザーの相互認証をサポートしています。この機能により、ユーザーは、外部チャネルを介して 公開キーの指紋を手動で比較する手間をかけずに、リモート パーティの ID を確認し、中間者攻撃を回避できます。
制限事項
プロトコルの制限により、OTRは2009年現在マルチユーザーグループチャットをサポートしていませんが[16]、将来的には実装される可能性があります。プロトコル仕様のバージョン3 [9]では、認証されたキー交換中に追加の対称キーが生成され、別のチャネルを介した安全な通信(暗号化されたファイル転送など)に使用できます。暗号化されたオーディオまたはビデオのサポートは計画されていません。(そのためにSRTPとZRTPが存在します。)マルチパーティオフザレコメッセージング(mpOTR)用のプロトコルを作成するプロジェクトは、Cryptocat、eQualitie、およびIan Goldbergを含む他の貢献者によって組織されています。[11] [17][アップデート]
OTRプロトコルv3(libotr 4.0.0)以降、プラグインは複数の場所でログインしている同じ仲間との複数のOTR会話をサポートしています。[18]
クライアントサポート
| 開発者 | OTR開発チーム |
|---|---|
| 安定版リリース | 4.1.1 / 2016年3月9日 |
| 書かれた | C |
| オペレーティング·システム | クロスプラットフォーム |
| タイプ | ソフトウェアライブラリ |
| ライセンス | LGPL v2.1+ [19] |
| Webサイト | otr.cypherpunks.ca/index.php#downloads |
ネイティブ(プロジェクト開発者によってサポートされています)
これらのクライアントは、オフザレコード メッセージングをすぐにサポートします (不完全なリスト)。
- アディウム( OS X )
- Blink SIP クライアント( OS X )
- BitlBee (クロスプラットフォーム)、3.0以降 (コンパイル時にオプション) [20]
- CenterIM ( Unix ライク)、4.22.2 以降
- チャットセキュア( iOS )
- Zom モバイルメッセンジャー( Android )
- climm ( Unix ライク)、(mICQ) 0.5.4 以降
- Jitsi (クロスプラットフォーム)
- Kopete ( Unix 風の) [21] [22]
- 冒涜的な表現、0.4.1 以降
- Psi(クロスプラットフォーム)[23]
- Psi+ (クロスプラットフォーム) [23] [24]
- Mozilla Thunderbird、68年以降
- monocles チャット、XMPP クライアントは 2022 年から OTR をサポートします
- Tkabber (クロスプラットフォーム)、バージョン1.1以降[25]
- irssi、1.2.0以降[26]
サードパーティのプラグイン経由

次のクライアントでは、オフザレコード メッセージングを使用するためにプラグインが必要です。
- HexChat、サードパーティのプラグイン付き[27]
- Miranda NG(Microsoft Windows)、サードパーティ製プラグイン付き[28]
- Pidgin(クロスプラットフォーム)、OTRホームページからプラグインが利用可能[29]
- WeeChat、サードパーティのプラグイン付き[30]
- HexChat、*nix版、サードパーティ製プラグイン付き[31]
Google Talk の「非公式」に関する混乱
GmailのGoogle Talkでは「オフレコ」という用語が使用されていますが、この機能はこの記事で説明されているオフレコメッセージングプロトコルとは関係がなく、チャットは上記の方法で暗号化されておらず、エンドユーザーがアクセスできない場合でもGoogleによって内部的に記録される可能性があります。[32] [33]
参照
参考文献
- ^ ab Nikita Borisov、Ian Goldberg、Eric Brewer (2004 年 10 月 28 日)。「Off-the-Record Communication、または、なぜ PGP を使用しないのか」(PDF)。電子社会におけるプライバシーに関するワークショップ。2014年3 月 6 日閲覧。
{{cite conference}}: CS1 maint: 複数の名前: 著者リスト (リンク) - ^ Ian Goldberg (2014年10月26日). [OTR-users] 10周年おめでとうございます! . 2015年4月27日閲覧。
- ^ Sofía Celi、Ola Bini (2019 年 2 月 15 日)。「Off-the-Record Messaging Protocol バージョン 4」。GitHub。
- ^ “免責事項を追加 · otrv4/otrv4@0c0847e”. GitHub . 2023年9月20日閲覧。
- ^ Mario Di Raimondo、Rosario Gennaro、Hugo Krawczyk (2005)。「セキュアな非公式メッセージング」(PDF)。2005 ACM 電子社会におけるプライバシーに関するワークショップ議事録。Association for Computing Machinery: 81–89。
- ^ 「オフザレコード メッセージング プロトコル バージョン 2」。
- ^ "mod_otr"。
- ^ Chris Alexander、Ian Avrum Goldberg (2007 年 2 月)。「非公式メッセージングにおけるユーザー認証の改善」。電子社会におけるプライバシーに関する 2007 ACM ワークショップ議事録( PDF)。ニューヨーク: Association for Computing Machinery。pp. 41–47。doi : 10.1145 /1314333.1314340。ISBN 9781595938831. S2CID 17052562。
- ^ ab 「オフザレコード メッセージング プロトコル バージョン 3」。
- ^ Jiang Bian、Remzi Seker、Umit Topaloglu (2007)。グループ会話のための非記録インスタントメッセージング。IEEE 国際情報再利用および統合会議。IEEE。doi : 10.1109 /IRI.2007.4296601。
- ^ ab Ian Avrum Goldberg、Berkant Ustaoğlu、Matthew D. Van Gundy、Hao Chen (2009)。「マルチパーティ非公開メッセージング」。第 16 回 ACM コンピュータおよび通信セキュリティ会議の議事録(PDF)。Association for Computing Machinery。pp. 358–368。doi : 10.1145 / 1653662.1653705。hdl :11147/ 4772。ISBN 9781605588940. S2CID 6143588。
{{cite book}}: CS1 メンテナンス: 日付と年 (リンク) - ^ Nik Unger、Sergej Dechand、Joseph Bonneau、Sascha Fahl、Henning Perl、Ian Avrum Goldberg、Matthew Smith (2015)。「SoK: Secure Messaging」( PDF) 。2015 IEEE セキュリティとプライバシーシンポジウム議事録。IEEE コンピュータ協会のセキュリティとプライバシーに関する技術委員会: 232–249。
- ^ Straub, Andreas (2015年10月25日). 「OMEMO Encryption」. XMPP Standards Foundationのウェブサイト。2016年1月29日時点のオリジナルよりアーカイブ。2016年1月16日閲覧。
- ^ Gultsch, Daniel (2015 年 9 月 2 日)。「OMEMO 暗号化ジングル ファイル転送」。XMPP Standards Foundation の Web サイト。2016 年1 月 16 日閲覧。
- ^ Sofía Celi、Ola Bini(2018年7月21日)。コミュニケーションの証拠なし:オフザレコードプロトコルバージョン4 (PDF)。2018年11月29日閲覧。
- ^ Ian Goldberg (2009 年 5 月 27 日). 「マルチパーティ OTR 通信? (およびその他の OTR の詳細)」. OTR ユーザー メーリング リスト。
- ^ Nadim Kobeissi (2014 年 2 月 1 日). 「mpOTR プロジェクト計画」. GitHub 上の Cryptocat wiki。
- ^ Ian Goldberg (2012 年 9 月 4 日). 「pidgin-otr および libotr 4.0.0 がリリースされました!」. OTR-announce メーリング リスト。
- ^ 「非公式メッセージング」。
- ^ 「BitlBee Wiki」. Wiki.bitlbee.org. 2014年1月25日. 2014年5月15日閲覧。
- ^ 「kopete-otr in KDE for 4.1」。2008年3月28日時点のオリジナルよりアーカイブ。
- ^ “kopete-otr レビューリクエスト”.
- ^ ab "OTR プラグイン". Github.com . 2017 年9 月 6 日閲覧。
- ^ 「Psi+スナップショット」。Github.com 。 2017年9月6日閲覧。
- ^ 「Tkabber OTR プラグイン」。2014年3月11日時点のオリジナルよりアーカイブ。
- ^ 「Irssi 変更ログ - 1.2.0」。
- ^ 「HexChatのOff the recordプラグイン」。GitHub 。 2021年12月2日。
- ^ 「Miranda OTR プラグイン」。
- ^ 「Pidgin 用 OTR プラグイン」。
- ^ 「 WeeChat用 OTR プラグイン」。GitHub。2019年 1 月。
- ^ “TingPing/hexchat-otr”. GitHub . 2017年3月14日閲覧。
- ^ 「非公式チャット - Talk Help」。
- ^ 「Google Talk - プライバシー ポリシー」。
さらに読む
- Joseph Bonneau、Andrew Morrison (2006 年 3 月 21 日)。「OTR バージョン 2 の有限状態セキュリティ分析」(PDF) 。2013 年9 月 5 日に取得。
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)が必要です - Mario Di Raimondo、Rosario Gennaro、Hugo Krawczyk (2005)。「セキュアなオフザレコード メッセージング」(PDF)。電子社会におけるプライバシーに関する 2005 ACM ワークショップ議事録。Association for Computing Machinery。2013年8 月 27 日閲覧。
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)が必要です
外部リンク
- 公式サイト
- プロトコル仕様
- オフレコ メッセージング: IM の便利なセキュリティとプライバシー 2013 年 12 月 30 日にWayback Machineにアーカイブ、ウォータールー大学でのIan Goldbergによる講演(ビデオ)
- YouTubeの「非公開」インスタント メッセージング チュートリアル (暗号化、認証、否認など)
