List of xmpp - Baldanders.info
tag:Baldanders.info,2014-12-21:/tags
2014-12-21T09:00:00+00:00
バルトアンデルスは連続的な怪物,時間の怪物である。(ホルヘ・ルイス・ボルヘス 『幻獣辞典』より)
https://baldanders.info/images/avatar.jpg
https://baldanders.info/images/avatar.jpg
OTR over XMPP
tag:Baldanders.info,2014-12-21:/blog/000787/
2014-12-21T09:00:00+00:00
2014-12-21T09:00:00+00:00
前回の表を見て個人的に驚いたのは「XMPP って生きてるんだ!」ってことだった。
Spiegel
/profile/
<p>
<a href="https://baldanders.info/blog/000782/">前回</a>の表を見て個人的に驚いたのは「XMPP って生きてるんだ!」ってことだった。
いやだって,日本じゃさっぱり話を聞かないし Google は XMPP を見捨てて Hangouts に行っちゃうし。
</p><ul>
<li><a href="https://www.eff.org/ja/deeplinks/2013/05/google-abandons-open-standards-instant-messaging">Google Abandons Open Standards for Instant Messaging | Electronic Frontier Foundation</a></li>
</ul><p>
で,調べてみたらかなりの数の XMPP クライアントが OTR をサポートしてるんだね。
</p><ul>
<li><a href="http://wiki.xmpp.org/web/OTR">OTR - XMPP WIKI</a></li>
</ul><p>
私が使ってる Psi もいつのまにか OTR に対応した fork 版(Psi+)が登場していた。
</p><ul>
<li><a href="http://psi-plus.com/">Psi+ Project</a></li>
</ul><p>
でもロシア語 orz
</p><p>
というわけで,私のメッセージング環境を一新することにした。
</p>
<section id="messaging">
<h3>電子メールとメッセージングの違い</h3>
<p>
<a href="https://baldanders.info/blog/000782/">前回</a>,メッセージング・アプリの一覧から電子メール・アプリを除いたのには理由がある。
両者は根本的に異なる。
もっとも大きな違いは電子メールは stateless でその他のメッセージングは stateful であるという点である。
もう少し言うと,電子メールを除くメッセージング・システムは当事者間のひとつのセッションの中でのみメッセージが有効であり,それ以外ではメッセージは無効になる(し,無効にしなければならない)。
これを突き詰めていくと OTR(Off-the-Record) Messaging へと行き着く。
</p><p>
一方,電子メールのメッセージは永続的に存在し常に参照(検索)可能であることが要求される。
なので perfect forward secrecy にできないのだ。
暗号化電子メールの要件は以下のとおり。
</p><ol>
<li>Confidentiality(機密性)</li>
<li>Integrity(完全性)</li>
<li>Authentication(認証)</li>
<li>Non-repudiation(否認防止)</li>
</ol><p>
特に「否認防止」が重要。
あとから参照(検索)する可能性がある以上,そのメッセージを否認されては困るのである。
</p>
</section>
<section id="otr">
<h3>OTR の要件</h3>
<p>
OTR の要件は以下のとおり。
</p><ol>
<li>Encryption (暗号化)</li>
<li>Authentication (認証)</li>
<li>Deniability (否認可能)</li>
<li>Perfect Forward Secrecy</li>
</ol><p>
暗号化というのは当然 End-to-End 暗号化のことである。
暗号化は「機密性」と「完全性」の要請からきているもので,サービス・プロバイダが暗号鍵を持っている(または鍵を知りうる立場にある)のでは達成できない。
</p><p>
メッセージング・サービスの場合,
</p><ol>
<li>セッション中,当事者以外にはメッセージ内容が秘匿されること</li>
<li>セッション中のメッセージ内容が正しい(改竄やなりすましがない)ことが保証されること</li>
<li>セッション終了後は,いかなる時点でもメッセージ内容が再生されないこと</li>
</ol><p>
が必要となる。
このためには単にメッセージや鍵を捨てるだけではダメで,万一メッセージ内容が漏れた場合でも,その内容を客観的に「否認」できなければならない。
セッション中はメッセージの完全性を求めるが,セッション外では「否認」できなければならないという結構アレな要求である。
</p><p>
詳しくは以下を参照のこと。
</p><ul>
<li><a href="https://otr.cypherpunks.ca/">Off-the-Record Messaging</a></li>
<li><a href="http://negi.hatenablog.com/entry/2013/11/09/103401">OTRでオフレコチャット! - セキュリティは楽しいかね? Part 2</a></li>
</ul>
</section>
<section id="pidgin">
<h3>Pidgin の導入</h3>
<p>
<a href="https://baldanders.info/blog/000782/">前回</a>の表より Windows デスクトップ用には <a href="https://pidgin.im/">Pidgin</a> を導入することにした。
いや Psi+ はロシア語だし。
しょうがないよね。
</p><p>
Pidgin で OTR 機能を使うためには OTR プラグインを導入する必要がある。
プラグインは以下のページから取得できる。
</p><ul>
<li><a href="https://otr.cypherpunks.ca/">Off-the-Record Messaging</a></li>
</ul><p>
Windows 版ではインストーラを起動して何も考えずにインストールしてしまえば OK。
Pidgin を起動しなおせば OTR がプラグインのリストに含まれているのがわかるだろう。
</p>
<figure style="margin:0 auto;text-align:center;" about="https://www.flickr.com/photos/spiegel/15882171800" typeof="dc:Image">
<a href="https://www.flickr.com/photos/spiegel/15882171800" title="Pidgin - plugin list by Yasuhiro ARAKAWA, on Flickr"><img src="https://farm8.staticflickr.com/7489/15882171800_e414f7266e_o.png" width="446" height="568" alt="Pidgin - plugin list"/></a>
<figcaption><span property="dc:title"><a href="https://www.flickr.com/photos/spiegel/15882171800">Pidgin - plugin list</a></span></figcaption>
</figure>
<p>
OTR 関連の操作はチャット・ウィンドウから可能。
</p>
<figure style="margin:0 auto;text-align:center;" about="https://www.flickr.com/photos/spiegel/16067797211" typeof="dc:Image">
<a href="https://www.flickr.com/photos/spiegel/16067797211" title="Pidgin - OTR Menu by Yasuhiro ARAKAWA, on Flickr"><img src="https://farm8.staticflickr.com/7530/16067797211_af72abdcd0_o.png" width="392" height="110" alt="Pidgin - OTR Menu"/></a>
<figcaption><span property="dc:title"><a href="https://www.flickr.com/photos/spiegel/16067797211">Pidgin - OTR Menu</a></span></figcaption>
</figure>
<p>
<q lang="en">Start private conversation</q> を選ぶと(初回だけ)鍵を生成し,相手との鍵交換を開始する。
相手がなりすましていないかどうか確かめるために <q lang="en">Authenticate buddy</q> を選んで相手の認証を行う。
認証方法としては以下の3つが選択できる。
</p>
<figure style="margin:0 auto;text-align:center;" about="https://www.flickr.com/photos/spiegel/15882267688" typeof="dc:Image">
<a href="https://www.flickr.com/photos/spiegel/15882267688" title="Pidgin - OTR authentication by Yasuhiro ARAKAWA, on Flickr"><img src="https://farm8.staticflickr.com/7482/15882267688_e241c2f38a_o.png" width="453" height="500" alt="Pidgin - OTR authentication"/></a>
<figcaption><span property="dc:title"><a href="https://www.flickr.com/photos/spiegel/15882267688">Pidgin - OTR authentication</a></span></figcaption>
</figure>
<ol>
<li>Question and Answer(質問とその答え)</li>
<li>Shared Secret(共通の秘密)</li>
<li>Manual Fingerprint Verification(公開鍵のフィンガープリントを確認)</li>
</ol><p>
いずれも相手と別チャネルで事前に(またはリアルタイムで)情報を共有しておく必要がある。
(結局この問題に戻るんだよなぁ)
</p>
</section>
<section id="conversations">
<h3>携帯端末側の XMPP クライアント</h3>
<p>
<a href="https://baldanders.info/blog/000782/">前回</a>の表では携帯端末用の XMPP クライアントとして <a href="https://chatsecure.org/">ChatSecure</a> が上がっていたが,私としては <a href="http://www.openkeychain.org/">OpenKeychain</a> と連動できる <a href="https://github.com/siacs/Conversations">Conversations</a> を推しておく。
あとはお好みで。
まぁ iOS 環境だと Conversations は対応してないのだが。
あと Conversations は Hangouts と相性が悪い感じ。
なんなんだろうねぇ。
</p>
</section>
<section id="jid">
<h3>XMPP 用にアカウントを取得しました</h3>
<p>
Google が Hangouts に行っちゃったので, Gmail アドレスじゃない JID を取得する必要がある。
なので,公衆 XMPP サーバでアカウントを取得した。
</p><ul>
<li>spiegel@<a href="http://www.xmpp.jp/">xmpp.jp</a></li>
</ul><p>
<a href="https://xmpp.net/">xmpp.net</a> によると <a href="http://www.xmpp.jp/">xmpp.jp</a> は<a href="https://xmpp.net/result.php?domain=xmpp.jp&type=client">かなり成績いい</a>みたいなので(SASL で SCRAM が使えるみたいだし, TLS の暗号スイートもひと通りのものが使えるようになっている)こっちでいいかな,と。
</p><p>
今後はこちらからのフィードバックも受け付けます。
各ページの案内はそのうち更新します。
あ, Gmail アドレスは今までどおり XMPP でもアクセスできます。
あと Facebook チャットも XMPP 対応しました。
これで Facebook Messanger 捨てれる。
</p>
</section>
<section id="refer2">
<h3>参考図書</h3>
<div class="hreview"><a class="item url" href="https://www.amazon.co.jp/exec/obidos/ASIN/B00H372H18/baldandersinf-22/"><img src="https://images-fe.ssl-images-amazon.com/images/I/51njmeGhpKL._SL160_.jpg" alt="photo" class="photo"/></a><dl><dt class="fn"><a class="item url" href="https://www.amazon.co.jp/exec/obidos/ASIN/B00H372H18/baldandersinf-22/">新版暗号技術入門 秘密の国のアリス</a></dt><dd>結城 浩 </dd><dd>SBクリエイティブ株式会社 2013-12-04</dd><dd>評価<abbr class="rating" title="4"><img src="https://images-fe.ssl-images-amazon.com/images/G/01/detail/stars-4-0.gif" alt=""/></abbr> </dd></dl><p class="similar"><a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00H372H40/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00H372H40.09._SCTHUMBZZZ_.jpg" alt="プログラマの数学"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00L0PDMJ0/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00L0PDMJ0.09._SCTHUMBZZZ_.jpg" alt="数学ガールの秘密ノート/整数で遊ぼう"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00IP549AE/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00IP549AE.09._SCTHUMBZZZ_.jpg" alt="インフラ/ネットワークエンジニアのためのネットワーク技術&設計入門"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00L0PDMIQ/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00L0PDMIQ.09._SCTHUMBZZZ_.jpg" alt="数学ガールの秘密ノート/式とグラフ"/></a> <a href="https://www.amazon.co.jp/exec/obidos/ASIN/B00L0PDMK4/baldandersinf-22/" target="_top"><img src="https://images-fe.ssl-images-amazon.com/images/P/B00L0PDMK4.09._SCTHUMBZZZ_.jpg" alt="数学ガール/ガロア理論"/></a> </p>
<p class="description">まさに入門書。暗号がどのような要素技術で成り立っているのか体系的に理解できる良書。</p>
<p class="gtools">reviewed by <a href="#me" class="reviewer">Spiegel</a> on <abbr class="dtreviewed" title="2014-09-18">2014/09/18</abbr> (powered by <a href="http://www.goodpic.com/mt/aws/index.html">G-Tools</a>)</p>
</div>
<section>
</section></section>
Note of Jabber/XMPP
tag:Baldanders.info,2007-06-29:/blog/000336/
2007-06-29T09:00:00+00:00
2007-06-29T09:00:00+00:00
Google Notebook を使って以下のページをつくりました。
Spiegel
/profile/
<p>
<a href="http://www.google.com/notebook/">Google Notebook</a> を使って以下のページをつくりました。
</p><ul>
<li><a href="http://www.google.com/notebook/public/14383182405942409515/BDSaYIgoQ9vXbgbci">Note of Jabber/XMPP</a></li>
</ul><p>
Jabber/XMPP については自前の RamdomNote にまとめていたんだけど,
内容が古くて使えなくなりつつあるのと Wiki 系のツールを使うのが面倒臭くなってきたこともあり,
<a href="http://www.google.com/notebook/">Google Notebook</a> に移動することにした。
はっきり言って個人用のメモ程度ならこれで十分。
</p><p>
で,
もし Jabber/XMPP に興味がある方でこのページのメンテをしてもいいという奇特な方がいらっしゃれば連絡ください。
コラボレータとしてページをシェアできます。
連絡はこの記事にコメントするか,
mixi, Vox, Twitter, Jabber のいずれかの方法で。
</p>
最近の Jabber Client と Pidgin
tag:Baldanders.info,2007-05-05:/blog/000321/
2007-05-05T09:00:00+00:00
2007-05-05T09:00:00+00:00
皮肉なのかどうか,Twitter を利用するようになって IM の稼働率が上がった。
Spiegel
/profile/
<p>
皮肉なのかどうか,
<a href="http://twitter.com/">Twitter</a> を利用するようになって IM の稼働率が上がった。
で,
ここのところまた Jabber Client を物色しているんだけど,
最近 Gaim から改名した <a href="http://pidgin.im/">Pidgin</a> がいい感じ。
なので,
覚え書きとして記事をのこしておく。
</p><p>
とはいえ,
最近 Jabber 界隈はあまり活気がない感じ。
私はクライアントとして <a href="http://psi-im.org/">Psi</a> と <a href="http://www.pandion.be/">Pandion</a> を常用してるんだけど
(細かいコントロールが必要な場合は一時的に <a href="http://jajc.jrudevels.org/">JAJC</a> を使うこともあるけど),
両者ともここ1年以上バージョンが上がっていない。
その中で比較的元気がいいのは <a href="http://www.google.com/talk/">Google Talk</a> と <a href="http://pidgin.im/">Pidgin</a> だろう。
</p><p>
<a href="http://www.google.com/talk/">Google Talk</a> はサービスそのものよりも Web アプリケーションの実装が注目を集めている。
とくに Google Talk Gadget は秀逸。
でも,
サービスとしてはイマイチのままである。
このサービスを公開してから1年半以上になる筈だが,
いまだに1対1チャットしかできない(ただし他サーバの Conference (グループチャット)に参加することはできるようだ)。
音声は魅力だけどネットに溢れるコミュニケーションツール全体から見ればありふれた機能のひとつに過ぎず,
Jabber ユーザ以外にはアピールしない。
当然 <a href="http://www.google.com/talk/">Google Talk</a> に無い機能はクライアントにも無いわけで,
クライアントの性能はしょぼくならざるを得ない。
</p><p>
(Google Talk Client 以外で音声に対応している Jabber Client としては <a href="http://www.jabbin.com/int/">Jabbin</a> がある。
まだ試してない。
だって RAR で固めてあるんだもん)
</p><p>
Gaim 改め <a href="http://pidgin.im/">Pidgin</a> はマルチプロトコルの IM クライアントである。
数あるプロトコルの中で Jabber (XMPP)も使えるということになっている。
更に <a href="http://pidgin.im/">Pidgin</a> はマルチプラットフォームで動作する FOSS だ。
GUI は GTK+ 上に実装されていて,
GTK+ が利用可能な環境なら基本的にはどの OS 上でも動作する。
</p><p>
かつての Gaim はお世辞にも使いやすい UI ではなかった。
こういうのは人によって好みが違うだろうが,
私は Windows からとっとと Gaim を削除してしまった。
新しい <a href="http://pidgin.im/">Pidgin</a> 2.0.0 は,
あのときに比べれば UI も良くなったし見た目もスマートになった。
あのいかにも「私は無理矢理 Windows で動かされてます」ってな感じのぎこちなさはなくなっている。
というわけで,
当面 <a href="http://pidgin.im/">Pidgin</a> をメインに使ってみようと思う。
</p><p>
<a href="http://pidgin.im/">Pidgin</a> では複数のアカウントを一括して管理できる。
Jabber はあちこちにサーバがあるため複数のアカウントを持っている人も多いと思うが,
全てのアカウントを一括して扱える
(もちろん他の IM アカウントと併せて扱える)。
<a href="http://www.pandion.be/">Pandion</a> は一度にひとつのアカウントにしかアクセスできない。
<a href="http://psi-im.org/">Psi</a> は複数のアカウントを一括して扱える
(更に個別にステータスを変えることも可能。
<a href="http://pidgin.im/">Pidgin</a> はできない)。
ただし,
<a href="http://psi-im.org/">Psi</a> は相手からのメッセージ受信に難があって,
他のユーザ,
または同じユーザでも別のクライアントから来たメッセージは全て個別のウィンドウに表示されてしまう。
例えば <a href="http://twitter.com/">Twitter</a> はユーザとチャット可能な状態になるとユーザとの間にいくつもの接続を張る
(おそらく負荷分散のためだと思うけど。
ちなみに Jabber はひとりのユーザが複数の接続を張ることを許容している)。
<a href="http://psi-im.org/">Psi</a> ではこれらの接続を全て別のチャットとして処理するため,
<a href="http://twitter.com/">Twitter</a> とのチャットウィンドウ(またはタブ)がぼこぼこ立ち上がることになる。
</p><p>
<a href="http://pidgin.im/">Pidgin</a> と <a href="http://www.pandion.be/">Pandion</a> は STARTTLS に対応しているが <a href="http://psi-im.org/">Psi</a> はおそらく古い SSL 接続(ポート 5223 を使用)しか対応していない?
<a href="http://pidgin.im/">Pidgin</a> と <a href="http://www.pandion.be/">Pandion</a> は証明書をチェックしていない(オレオレ証明書を使ったサーバでも警告なしで接続する)?
</p><p>
<a href="http://www.google.com/support/talk/bin/answer.py?answer=24073&topic=1415">Google Talk のヘルプにある Gaim での接続方法</a>は古すぎて使い物にならない。
<a href="http://pidgin.im/">Pidgin</a> で Google Talk に接続するには以下の設定を参考にするとよい。
</p><ul>
<li>アカウントの編集「基本」タブ:
<dl>
<dt>プロトコル:</dt><dd>XMPP</dd>
<dt>スクリーン名:</dt><dd><em>username</em>@gmail.com の <em>username</em> の部分</dd>
<dt>サーバ:</dt><dd>gmail.com</dd>
<dt>リソース:</dt><dd>適当な名前でよい。 "Pidgin" とか</dd>
<dt>パスワード:</dt><dd>パスワード</dd>
</dl></li>
<li>アカウントの編集「拡張」タブ:
<dl>
<dt>古い SSL (ポート番号5223)を強制的に使用する:</dt><dd>チェックしない</dd>
<dt>暗号化されていないストリームを介したプレーンテキスト認証を許可する:</dt><dd>チェックしない</dd>
<dt>接続するポート番号:</dt><dd>5222</dd>
<dt>サーバへ接続:</dt><dd>空白</dd>
</dl></li>
</ul><p>
<a href="http://pidgin.im/">Pidgin</a> は Conference (グループチャット)には対応しているが,
各ルームの細かいコントロールはできない。
例えば常設ルームの設定はできない。
<a href="http://pidgin.im/">Pidgin</a> は Transport 機能に対応していない。
ただし既に登録済みの Transport の状態は見ることができる。
まぁでも <a href="http://pidgin.im/">Pidgin</a> は複数の IM に対応しているので,
わざわざ Jabber の Transport 機能を使う必要はないのかもしれないが。
</p><p>
ん~,
まぁこんなところかな。
間違ってるところなどは適宜修正する。
</p>