「チャット」は,やってみたいと思いつつ長い間できずにいた。なぜかというと,広く使われている LINE や Google Chat などは,提供している業者といろいろ条件が合わないため。
「誰もが使っているものが使えないのって,どんな条件だ?」と思われそうだが,まず筆者が普段使っている機械が,古いパソコンの OS を入れ替えたもので,それでチャットするアプリを業者が出していない。しかも,SMS を使える契約ができないため,SMS で認証が必要な業者ではアカウントも作れない。逆に筆者から求める条件は「セキュリティ」なのだが,LINE は度々情報漏えいを起こし,Google も Gmail で不達が多発するなど,どちらも危なっかしくて利用する気は起きない。
では「チャット」できないのかというと,XMPP と呼ばれるチャットの規格があり,これは筆者が使うような古い PC 向けをはじめ,様々な機器用クライアントが作られている。しかもアカウントを作れるサーバもあちらこちらにあり,送受信する内容の自動暗号化機能があるなど,セキュリティも高い通信方式。じつはこの「サーバがあちらこちらにある」というのが,「コミュニケーション手段」としても大きな利点。
これまで「新たに通信手段を確保したい」と思ったら,メールアカウントを提供してくれる業者の利用を考えただろうが,最近は提供している業者も減り,その残った業者のサービス品質も低レベル。数年前にスマホを使い始めた親戚の話では,メールの通知が数時間ほど頻繁に遅れるらしい。つまり,ガラケー時代の「送れば直ぐ着信音が鳴る」ようなリアルタイムで伝えたい用途に「メール」は適さなくなりつつある。
そこで,その「新たな通信手段」として,この XMPP というチャットを考えたとすると,まず「登録できるサーバがあちらこちらにある」から,どこでもアカウントを作れる。また「チャット」だから,送信すれば,当然直ぐに通知される。品質が低下した業者の「メール」に代わる通信手段になるのではないかと,筆者は考えている。
唯一と思える欠点は「利用者が少ない」こと。やりとりする相手がいないようなもので,このままでは「通信手段」としての価値は低い。おそらく,どうすれば使えるのかよく知られていないからだろうと思う。だからみんな,セキュリティ上問題のある業者のチャットを使うのだろうと。ここでは,そんな XMPP の利用方法を説明してみたい。安心して確実にメッセージを送受信したいと思っている方は,ぜひお試しあれ。
● 使えないチャット業者 vs XMPP
「チャット」と言えば,日本で利用されているのはほぼ LINE だが,筆者は使えずにいる。主な理由は,まず筆者が普段使っているパソコンが,サポート切れのものに Linux と呼ばれる OS をインストールしたもので,LINE ではそうしたパソコンでもチャットできる「クライアント」のアプリを出していない。しかも,クライアントの設定をする時に
SMS で認証が要るらしいが,筆者は SMS の使える契約もできないため登録もできない……と「使えない」理由ばかりだ。
だから他の,Google Chat や Slack などのサービスでも,古い機械用のアプリがないとか,SMS 認証が必要だったりするとアウトで,そうした業者のチャットはことごとく使うことができずにいる。
さらに,セキュリティ上の懸念もある。LINE 社は問題が多過ぎる。過去には,サーバを勝手に海外に置いていたりとか,データが海外から丸見えだったなどあり,この記事の執筆中も8万件弱ほどの情報漏えいニュースがあった。以下の日経の記事は,昨年(2023)秋の話。
こんなにもセキュリティに問題の多い会社なのに,ネットバンキングを利用している「水井杉友銀行(仮名)」という金融機関は,送られて来たメールに,「LINE と連携させればポイントプレゼント」的なことを平気で書いて来る。控え目に考えて「アタマ大丈夫か?」と思う。
それでいて,この銀行に入社しようとすると,面接で「新聞やニュースはキチンと見ているかね?」みたいなこと聞かれちゃったりするのかなと思う。キチンと見てりゃ LINE 社なんかと連携しないだろっての。新聞やニュースはキチンと見ているのかね? システムを作る連中は?
Google も,筆者が使用する同社製ソフトは不具合連発,Gmail とのメール送受信も不達が多発……と,不安要因だらけ。何か重要な連絡が
Gmail に届かず,それが原因でトラブルが起きても「読めなかったならあきらめてね」と言われたら泣き寝入りするしかない。
「たまたま自分のアドレスに届かないからって……」と思われそうだが,話はそう単純ではない。親戚の住む自治体が運営している図書館に「本の返却通知サービス」があるらしいのだが,そこでも Gmail 宛が届かないそうで,つまり図書館からの「あなたの読みたかった本が返却されました」という通知が Gmail に届かないことがあるとか。「Gmail
の人はあきらめてください」みたいなことになっているらしく,すると同じ本の返却待ちを後から登録した他の人に借りられ続け,永遠に読めない可能性がある。
数年前にスマホデビューした親戚の話では,Gmail と一般のメールソフトを併用していて,両方で頻繁に通知が数時間くらい遅れるらしい。ガラケー時代の「キャリアメール」と呼ばれるメールなら,「送ったら直ぐ着信音が鳴る」ことも多かったから,リアルタイムで伝えたい用途にもある程度使えたが,Google の作った Android というスマホでは,そうした用途でメールを使えなくなりつつあると言えそうだ。
一番ひどいと思ったのは,今年(2024)はじめ神奈川県の公立高校の入試のネット出願でも,Gmail と送受信できない不具合が起きていたとか。Gmail だと入試を受けそこねていたかもしれないわけだ。
上記1月中旬の段階では詳しく分かっていなかったようだが,後日のニュースに原因と思われる点を説明する記事があった。
要約すると,Gmail 宛に特定サーバから大量にメールが送られたために,「迷惑メール」として扱ったかもとか。いやいやいや,あの手この手で利用者を増やしておいて,それらの人に一斉にメールを届ける必要があったら拒否する仕組みだったって,どーゆーことよ? それじゃ,「入試」だけでなく,人を集める申し込みや一斉通知には何も使えねぇじゃねーか。控え目に考えて「アタマ大丈夫か?」と思う。
悔しい思いをしたくなければ,Google のサービスに依存するような状態は避けるべきだと思っている。筆者に言わせれば,「よくみんなこんな『地雷』みたいな業者を平気で利用するなぁ」と思う。LINE もそうだが,こんな業者でアカウント作る気なんか起きないっての。
◆ なぜ XMPP なら可能なのか
「じゃ,チャットなんてできねーじゃねーか」と思われそうだが……じつは XMPP と呼ばれるチャットの規格があり,現在(2024),使用者は多くないものの,それは筆者のような状況下でも使えることがある。
この規格は「公開されている」という点で,LINE や Google などの業者のチャットとは異なる。どういうことかというと,業者が運営するチャットというのは,たいていその業者のみ通用する独自規格のため,その業者が作ったアプリからその業者のサーバにつながらないとダメ,アカウントを「その業者に」登録していないとダメ,しかもチャットする相手も同じ業者に自分用のアカウントがある人じゃないとダメだ。
一方,規格が「公開されている」と,どのようにデータをやりとりするかを知ることができるため,ある意味,誰でも対応のアプリを作ったり,サーバを設置したりできる。すると「あちらこちらに」そのチャットサービスを提供するサーバができる。しかも,それらのサーバをまたいだやりとりもできるように作られているから,どのサーバに登録しても,他のどのサーバに登録した人との間でもチャットできる。
LINE など特定企業のチャットサービスしか使ったことがない人は,異なるサーバでアカウントの登録をした相手ともチャットできると言われてもピンと来ないかもしれないが,じつは「メール」にも似たような仕組みがある。メールアドレスの「@」マークより後ろの「ドメイン」と呼ばれる部分が,そのアカウントを扱う「サーバの名前」に当たる。メールのデータはそのサーバに送られるようになっているわけだ。
だから,異なるサーバ間でやりとりのできる XMPP アカウントの記述方式も,メールアドレスそっくりの以下のような構造をしている。
ユーザ ID @ ドメイン=XMPP サーバ名 例: user-id@xmpp.servername.com
またメールのやりとりに「クライアント」,つまり「メールソフト」が必要なように,XMPP にもクライアント,つまり「チャットアプリ」が必要になる。メールソフトにいろいろあるように,チャット用クライアントもいろいろな開発元が作っている。その中には,筆者が使うような古い機械に対応するものもあったんで,筆者でも XMPP ならチャットできる。こうした柔軟な規格が XMPP だ。
XMPP を知ると,既存チャット業者は制限があり過ぎる感じがする。
述べたように,XMPP は,サーバをまたいだやりとりが可能。規格が公開されていて「誰でも使える」のだから,ネットワークにつながっているコンピュータに,その規格を扱う「サーバ」に当たるソフトを設定すれば,どれでも使えるようになる。とはいえ,「サーバ」のソフトを一般の人が設定することはあまりないだろうが,とりあえず「誰でも」設定できるということは,それらが相互にやりとり可能……つまり他のサーバに登録した人ともやりとりできるようにできているということ。
一方,LINE や Google などが提供する企業特有のチャットサービスでは,それら企業の作る専用アプリでしかサービスを受けられず,そこから業者指定のサーバに接続できないとサービスを受けられない。すると,まず専用アプリがその人の使う機械に対応していないと使えない。筆者がまさにそれだ。しかも,当然その業者に登録した人との間でしかチャットできない。メールのような「異なるサーバの相手とやりとり」もできないのだ。「それってコミュニケーション手段としてどうよ?」と筆者は感じる。おまけに,もし業者のサーバがダウンしてしまうと,全ての人が使えなくなる。それが LINE や Google の危うさだ。
通信手段としての「メール」では,アカウントを取得できるのはそれらセキュリティに問題のある一部業者に限られてしまっているが,XMPP なら「あちらこちらにアカウントを登録できるサーバがある」から,その制約がない。また「チャット」というのは,原則,当然メッセージの送信直後に相手に通知が出る。Gmail ほど「遅延」や「不達」もないだろう。ガラケー時代のキャリアメールのように,リアルタイムに伝えたい時の通信手段として,メールの代わりにもなるのではないかと思う。
◆ メールと決定的に違う特徴
とはいえ,いまいちピンと来ていない方のために,メールと決定的に違う特徴を少々挙げておきたい。
「サーバが異なってもやりとりできる」など,特徴としてもメールに近く,似たような点が多いため,以降でもメールと対比させながら説明することもあると思うが,メールとの決定的な違いを挙げると,以下のとおり。詳細は後述の「XMPP の特徴の詳細」の章を参照。
- 即時性……相手がクライアント(チャットアプリ)を起動しているかどうか分かり,起動している機械の前にいれば,送ったメッセージが直ぐ読まれ,即時的に返信を得られる可能性も高い
- アバター……設定した自分の化身の画像を他の誰もが見れる
- 文字化けなし……万国共通文字コード使用
- 複数人会話……チャットルームを開設すると簡単に可能になる
- 末端暗号化(E2EE)……末端で自動的に暗号化する機能が使える
では,サーバを超えてチャットできる XMPP について解説したい。
● 準備
まずは XMPP の特徴の詳細について……などを説明していると面倒に感じる人のほうが多いと思うので,ここはなるべく直ぐ使えるようになる方向で説明したい。詳細は後述の「● XMPP の特徴の詳細」を参照。
◆ 必要なもの
必要なものは以下のとおり。〔〕内はメールに相当するもの。
- XMPP クライアント〔メールソフト,メーラー,ウェブメール〕
- XMPP アカウント〔メールアカウント(アドレス)〕
このうち「XMPP クライアント」は,一般的なものはソフトウエアのダウンロードとインストールが要るが,ウェブメールに相当するような「ブラウザ上でやりとりする」ものもあり,その場合は特にダウンロードやインストールは必要ない。ただやはりウェブメール同様,その都度 ID とパスワードを入力する必要などが生じる。
◆ XMPP クライアント(ソフト)
まず,自分の機械に合ったクライアントソフトを用意しておく。
メールを使うために「メールソフト」が要るように,XMPP にも専用ソフトが必要。どちらも「クライアント」と言ったりする。一般的にはダウンロードとインストールが必要になる。
メールには,ブラウザで読み書きできる「ウェブメール」と呼ばれるものがあるが,同様に XMPP にもブラウザで使うクライアントがある。その手のものは,ダウンロードやインストール不要で,該当するサイトをブラウザで呼び出すだけで使える。XMPP を本格的に利用できるかどうか自信がない時などは,まずは一時的にその手のクライアントで試してみて,ダウンロードやインストールの要るものは後回しでもいいかもしれない。その場合は先にアカウントを取得する。後述の「◆ ウェブサイトでアカウントを作る」の節を参照。
ただ,ブラウザで使うクライアントはダウンロードやインストールは不要だが,ログインの都度パスワードの入力が要るとか,アカウントを作ったのとは異なるサイトを利用する場合,パスワードなどのログイン情報をその第三者サイトに入力するリスクがある。また,ブラウザとの相性が悪いとうまく動作しないこともある。実際,筆者も XMPP を始めた当初はブラウザのクライアントを使っていたが,あるチャットルームで書き込みしても他に誰も発言しないなと思っていたら,あとからインストールしたクライアントで同じ部屋を見たところ,筆者自身の発言の間にいくつか書き込みがあった。筆者の使うブラウザにそれらが表示されていなかっただけで,発言を「ガン無視」しているみたいになってしまっていた。その辺はインストールして使うクライアントのほうが動作は確実。また,ものによってはクライアント自体にアカウント新規作成機能があり,それを利用するとパスワードが自動で設定され手間が省ける。詳細は「◆ クライアントでアカウントを作る」の節を参照。
以下サイトにクライアントアプリの一覧が掲載されている。
▼ XMPP Software |
記事内で2番めの黒い枠の下(上の図では黄色い枠内の下のほう)にある,「Apps / Clients」というリンクを指定して背景を青くした状態(クリックまたはタップ)で,枠の中にある「Platform」のプルダウンメニューから使いたい機械の OS(Windows, Android,……)を選択すると,該当するクライアントアプリが下部に表示される。
Platform で「All Platforms / Others」を選択した時,各クライアントの Platforms の項目に「Browser」と表示のあるものは,ウェブブラウザ上で使うもので,ダウンロードやインストールは不要。
各クライアントの枠の右端にある「⋁」マークをクリック(タップ)すると概要が表示され,そこに[Show Details]のボタンがあるので,さらにそれのクリックで,そのクライアントの案内記事が表示されて,そこにある[Visit Website]のクリックで,たいていはそのクライアントの公式サイトが呼び出され,ダウンロードやインストールの仕方の説明などが表示される。
上記に掲載されているものの他,以下のようなクライアントもある。公式サイトはよく知らないので,検索などで確認をお願いしたい。
- Pidgin(ワリと使われている)
- Thunderbird(Ice dove)(元々メールソフトで,XMPP にも対応しているが,あまり評判よくなさそう)
なお,筆者が全て試すわけにもいかないので,各個人の判断で選んで欲しい。判断材料としては,仕様を確認して,OMEMO と呼ばれる暗号化に対応しているものがおすすめ。最初から使えるようになっていなくても,後からその機能を追加できることは多いが,最初から使えたほうが無難。暗号化の詳細は,後述「◆ 末端暗号化(E2EE)」を参照。
調べ方としては……筆者が自分で使うものを探していた時は,各クライアントの特徴をまとめた記事を何度か見た気がするのだが,今,簡単に検索した限りでは,ここに掲載しておけば継続的に読めそうな記事がなかなか出て来ない。とりあえずは,上記クライアントのうち使えそうなものをまとめて検索にかけるなどして,調べてみて欲しい。
参考に,筆者が使用中のものを挙げると,Android では blabber.im を使っている。このアプリは Google Play 以外に配布場所があって,Google アカウントのない筆者もダウンロードできたんで使っている。Linux では Dino を使っている。どちらも8~9割がた日本語に対応していて,OMEMO 暗号化にも最初から対応している。
ちなみに,末尾に .im が多いのは,チャットが Instant Message とも呼ばれるため。
◆ XMPP アカウント
メールで「アカウント(メールアドレス)」に当たるものが,「XMPP アカウント」と呼ばれる。メールと同様,次のような構造をしている。
ユーザ ID @ ドメイン=XMPP サーバ名 例: user-id@xmpp.servername.com
この @ マークより後ろの部分が XMPP のサーバ名で,たいていアカウントを作ったサーバと同じものになる。
メールアカウントの場合,以前は無料で作ってくれる業者がいろいろ存在したが,最近はあまりない。一方,この XMPP アカウントを登録できるサーバはワリとあちらこちらにあり,多くは無料。たとえば,以下の記事にアカウントを登録できるサイトのリストがまとめてある。
▼ XMPP Providers - Overview |
上記記事内の表の一番左端がアカウント登録用のサーバ名で,多くの場合,同名のサイトでアカウントの登録が可能。たとえば hookipa.net
なら,https://hookipa.net というアドレスのサイトから登録できる。
このうち,step.im と xmpp.jp は日本語のサイト。また他のサイトでも,自動言語切り替え機能が働き一部日本語表示されるものがあると思うので,とりあえず試しに見に行ってみて欲しい。
「Category」の項目は,A が一番「良く」て,D は悪そうなイメージだが,サーバに備えられた機能が多いか少ないか程度の差で,自動車で例えれば「ミラーがリモート調整可能か,キーレスエントリかどうか」程度の違い。D カテゴリでも登録できればチャットは十分機能するが,詳細不明とか,一時的に登録できなくなっている可能性も多少ある。
このうち筆者は xmpp.jp と hookipa.net に登録している。xmpp.jp
は日本語サイトのためにアカウントを作り易いが,クライアント Dino
からログインしようとしたらエラーが出た。で,「予備」の意味も兼ねて hookipa.net のアカウントを追加で作ったような感じ。
なお,xmpp.jp のサイトはウェブクライアントもあるが,筆者のスマホではログインはできるものの,チャットルームで他の人のメッセージが全く表示されなかったことがあったんで,後にスマホに blabber.im
というクライアントをインストールして,そこで使っている。
◆ ウェブサイトでアカウントを作る
前掲「XMPP Providers」記事内のサーバリストの各項目左端のサーバ名をクリック(タップ)すると,そのサイトの説明記事が出て,そこにある「Website」というリンクから該当サイトを呼び出せる。あるいはサーバ名をブラウザのアドレス欄に入力し該当サイトを呼び出す。いずれも「Register(登録)」とか「Create Account(アカウント作成)」に相当する項目がどこかに見つかれば,そこから登録できる。
多くは,@ マークより左側(利用者 ID 部分)とパスワードを記載する欄があって,それぞれ適当に決めて入力。場合によっては,ドメイン(@ マークの右側)をいくつかから選べる。必要ならメールアドレスを入力して[Register(登録)]とか[Create(作成)]などのボタンを押せばアカウントができる。
メールアドレスは,パスワードを忘れた時にリセットする際,本人のみに確認の連絡をするために使われるものと思われる。また,メールアドレス入力が不要なサイトでも,後からログインして設定できることがある。設定しておけば,パスワードを忘れた時にリセットできる。
なお,アカウント作成の際に「キャプチャ」が要る場合がある。キャプチャとは,ロボットなどでアカウントを自動取得されることを防止するための設問で,人間が確認しないと回答できないようなもの。
ブラウザでサイトを呼び出しアカウント登録する時の「キャプチャ」では,文章問題ならその文章に合う回答をする。もし「ゆがんだ文字」などの画像が表示されたら,回答欄にその文字を入力して先に進む。
ウェブサイトでアカウントが作れない場合でも,次節のクライアントから作成できる可能性もある。
この「サイトで作成したアカウント」を,使用する機械にインストールしたクライアントで使う場合,初回だけクライアントにアカウントの設定が必要になる。クライアントのメニューで「アカウント追加」などを選択し,登録したアカウント(user-id@xmpp.servername.net など)とパスワードを入力しておく。またこの場合,既にサーバにアカウントができている状態のため,新規「ではない」ので注意。
この方法で作成したアカウントをブラウザで使うクライアントで使用する場合は,該当クライアントのサイトを呼び出して,アカウントとパスワードを入力してログインする。ただ,アカウントを作成したサイトと異なるサイトのクライアントを利用する場合は,第三者に認証情報を伝えるリスクがあるので,覚悟の上利用のこと。
◆ クライアントでアカウントを作る
多くのクライアントにはそこでアカウントを作る機能があるようだ。
筆者がサイトで登録したアカウントをクライアントに設定しようとしたらエラーが出てできなかったことがあった。これを避けるには,クライアントにアカウントを作る機能があれば,そこから作ったほうが無難かもしれない。また,前述の「サイトでアカウントを作る」方法では,アカウントを作ったあとでクライアントに設定する手間が要るが,クライアントで作ればその手間も省けるだろう。
クライアントで「アカウントの作成/追加」などの項目や ⊕ マークを選択し,作りたいアカウントと,適宜パスワードを指定し(後で指定する場合もある),「新規登録」などのチェックかボタンで先に進む。ドメイン(@ マークより後ろ)部分は前掲「XMPP Providers」サイトの各項目左端のいずれかを指定する。もしそれがクライアントで使えないサーバならエラーが出るはず。クライアントとサーバの相性で登録可否が異なる可能性があるので,各サーバをとにかく試してみるしかない。
以下は筆者の使うクライアント「blabber.im」での例。
▼ クライアントからアカウント作成 |
なお,アカウント作成の際に「キャプチャ」が要る場合がある。キャプチャとは,ロボットなどでアカウントを自動取得されることを防止するための設問で,人間が確認しないと回答できないようなもの。
クライアントからアカウント登録する時の「キャプチャ」では,クライアント上に文章問題,あるいは画像が表示された場合は前述の「ブラウザ」での登録と同じ。「ゆがんだ文字」などの画像が表示されたら,回答欄にその文字を入力する。もし URL(ウェブアドレス)が表示されたら,それをブラウザなどで開いて画像を確認し,「クライアントの」回答欄に該当文字を入力して先に進む。
この「クライアントで作成したアカウント」は,自動的にクライアントに登録されるので,サーバへも自動でログインされ直ぐに使える。
● 使用方法
ウェブブラウザから XMPP サーバにアクセスして登録したアカウントの場合,初回だけクライアントにアカウント設定が必要になる。クライアントのメニューで「アカウント追加」などを選択し,登録したアカウント(user-id@xmpp.servername.net など)とパスワードを入力しておく。なおこの場合,既にサーバにアカウントができている状態のため,新規「ではない」ので注意。
一方,クライアント(ソフト)の「アカウント作成」機能で作ったアカウントは,自動的にクライアントに登録されるので,直ぐに使える。
◆ 個人とチャットする方法
まず,相手のチャットアカウントを知らせてもらっておく。
あるいは,後述する「チャットルーム」でアカウントが公開されていれば,そこから相手のアカウントが分かるので,それを使ってもいい。
クライアントで,コメントボタンやメニューから「連絡先の追加」とか,「チャットを開始」といった項目を選択して,相手のアカウントを入力する。
また,同じチャットルーム参加中の人には,相手のアカウントが不明でも,他の参加者に見えないように「ささやく」ことができる場合がある。クライアントで,チャットルームにある相手のアイコンなどを選択して現れるメニューの中で「非公開メッセージ」とか,「PM(Private Message)」,あるいは「DM(Direct Message)」などが選択できれば可能。ただ,それができるチャットルームは,そうしたやりとりを許可する設定がされている場合のみ。なお,アカウント非公開の部屋では,暗号化されない状態でやりとりされるようなので注意。
◆ チャットルーム参加方法
クライアントで,コメントボタンやメニューから「チャットルームに参加」とか,「談話室に参加」といった項目を選択して,チャットルームのアドレスを入力する。
「チャットルーム」のアドレスは,以下のサイトなどで検索して探すことができるほか,クライアントにチャットルームの検索機能が付いている場合もあるので,該当の項目を探してみて欲しい。
チャットルームは部屋ごとに「アカウント公開の有無」などの設定が異なるので,たとえば,アカウントを他に知られたくない方は公開されているチャットルームへは参加しない……などの対応が必要。
なお,チャットルームというのは様々な人が読み書きするため,たまにおかしな人も現れる。そうした人は無視するか,クライアントによっては,その人のメッセージだけ非表示設定したり,ルームの管理者は,蹴り出したり,出禁にしたりできる場合がある。
◆ チャットルーム作成方法
これも,クライアントのどこかに,「チャットルームを作成」とか,「談話室を作成」といった項目がある場合があるため,まずそれを探してみてほしい。
そうした項目のないクライアントでは,アカウントを作成したサーバ上にチャットルームを作る機能がある場合がある。ブラウザでアカウントを作ったサイトを呼び出し,そちらを探してみてほしい。その時に,たいていは「ログイン」が必要になる。そのログインしたアカウントがそのチャットルームの「管理者」として扱われ,他アカウントの「蹴り出し」や「出禁」といった参加者を制限する権限を持つことが多い。
あとは,作ったチャットルームのアドレスを,前述「チャットルームに参加する方法」で,クライアントの所定の場所に入力して参加する。
チャットルームは,設定を慎重にすべき点に注意。チャットルームは「誰もが参加できるもの」と,「特定の人だけ参加できるもの」など,何種類かの設定が可能。たとえば,「家族」のチャットルームなどは,不特定の人が参加できないように設定しておかないと,プライベートな会話が外部から丸見えだったり,他人が勝手に参加できてしまったたりするため,設定は慎重に。
なお,現実世界もそうであるように,「誰でも参加可能」なルームには,たまにおかしな人も現れる。チャットルームの管理者は,そうした人を蹴り出したり,出禁にしたりできる場合があるので,そのやり方を知っておくといいと思われる。
◆ 他の人にアカウントを伝える
ウェブアドレスはたいてい http:…… といった記述をする。メールも mailto:…… といった記載方法があるのと同様,XMPP アカウントを記載する場合は,以下のようにする。
xmpp:user-id@xmpp.servername.com
また,チャットルームを記載する場合は,以下のように末尾に ?join を付加する。
xmpp:chatroom@muc.xmpp.servername.com?join
……のだが,これが通用するのは,あくまでも xmpp: という通信方法が考慮されているアプリだけ。そうしたアプリで,機械に XMPP クライアントがインストールされていれば,前述の記述をクリックしたりタップしたりした時に,そのクライアントが起動し,該当の個人やチャットルームでチャットできるようになる。
ただ,多くのアプリでは XMPP は考慮されていない。そうしたアプリ使用中にこの xmpp: のリンクをクリックやタップすると,この xmpp:
の部分は無視され,後半部分が「メールアドレス」として扱われてしまい,メールソフトが起動することが多いので注意。
● XMPP の特徴の詳細
この章では,メールや他のチャットとの違いを詳しく説明したい。
◆ 即時性
メールとの違いで決定的なのは「即時性」。メールの場合,送信したものが直ぐ相手に届くことは多いが,じつは仕組み的には必ずしもそうなっていない。様々なサーバを経由したり,途中でウイルスチェックが入ったりして遅延する可能性もある。また,届いても相手が直ぐに見れるとは限らず,しばらく「未読」にされても送信者からは分からない。Gmail のように「必ずしも届かない」なんて場合も起こりうる。
一方,チャットというのは,相手がクライアントを起動しているかどうか確認する機能がある。起動していれば「在席中(オンライン)」などと表示され,相手はそのソフトを起動している機械の前にいることも多いから,メッセージを送れば直ぐ読んでもらえる可能性が高い。場合によっては,返信も直ぐにもらえるわけだ。
◆ アバター
XMPP はアバター,つまり自分の化身画像を設定できる機能がある。それは主にアカウントの持ち主……つまり,メッセージを書き込む側が設定する。自分のアバターを設定すれば他の誰もがその画像を見れる。
メールでも,ソフトによっては送信した相手の写真を表示するなど,アバターのような機能のあるものがあるが,メールのシステム自体にはアバターを扱う機能はない。それはそのソフトだけに備わった機能で,あくまでもそのソフトを使うメールの「受信者側で」設定されるもの。だから,送信相手の画像が自動で表示されるようなことはなく,相手の写真など「アバター」に相当する画像がなければ使えない。
一方 XMPP では,規格そのものにアバターを扱う機能があり,自分のアバターを設定すると,チャットでネットに接続する誰もがその画像を「あなた」の化身として見れるようになっている。
筆者が「猫」のアバターで参加していたチャットルームで,最初にかけられた言葉が「Hello Kitty」だった。いや,別に「○ンリオ」じゃねーし……と思いつつ「Meow are you?」などと返答したのだった。
◆ 文字化けなし
「メール」のシステムは古い。今ほどパソコンの記憶領域がない頃は「全ての国の人が使う文字」などとても収録しきれず,それぞれの国で使う文字のデータを扱うだけで精一杯だったから,その国ごとに定めた「文字コード」で使うことが半ば標準化している。そのため,使用する文字が異なる国をまたいだメールは文字化けを起こし易い。
一方,XMPP では,標準で UTF-8 と呼ばれるものを使うように統一されているよう。この文字コードは世界共通で,日本語だけでなく世界中の人が使う文字がこの文字コードで表現できるように作られている。
だから,筆者が何となく常駐しているチャットルームなども,世界中の人が常駐しているわけで,様々な文字が飛び交っている。英語のアルファベットだけではなく,欧州で使われるアクセント記号のついた文字(Ä)とか,キリル(ロシア)文字とか,簡体(中国の)漢字とか……翻訳サイトの助けを借りなければよく分からん世界ではある。
◆ 複数人会話
「チャットルーム」とか「MUC(Multi User Chat)」と呼ばれる機能を使うと,複数人で同時会話が可能になる。メールでそれを実現しようとすると,いちいち「宛先」として全ての相手のアドレスを入れたり,あるいは「メーリングリスト」と呼ばれる別の仕組みを利用する必要があるが,チャットは最初からそれを考慮した仕組みができている。
ただそれは XMPP 以外の LINE や Google Chat にもある機能だが,それはそれら LINE や Google の同じアカウントを持つ者同士の間でしか会話できない。その点 XMPP では,どのサーバでアカウントを作ろうと関係ないため,「世界中の人と」会話できることになる。
「そんなの Google も世界中の人がアカウント持っているだろう」と思う方もいるかもしれないが……Google ってのは,筆者みたいな古い
PC や Linux では使えなかったりするのですってば。
◆ 末端暗号化(E2EE)
クライアントによっては,末端で自動的に暗号化する機能が使える。「末端で」というのは,内容を送信する前に暗号化し,相手に届いた後に復号化する(元の読める状態に戻す)こと。暗号化された内容のみがやりとりされることになるため,途中でデータが盗み見られても機密性が保たれる。E2EE(End to End Encryption)と呼ばれる。
XMPP では,OMEMO と呼ばれる E2EE の暗号化方式に標準で対応したクライアントが多くあり,以下のメール暗号化のような面倒な手続きを自動的にしてくれる仕組みのため,手間要らずでセキュリティも高い。
一方,メールにも PGP と呼ばれる E2EE 暗号化があることはあるのだが,必ずしもメールソフトに最初から備わってはいない。その機能が使われていなければ,メールはサーバ側に「生データ(すぐ読める)」状態で保存されるため,そこで盗み見られると,簡単に内容が知られてしまう。しかも,PGP の多くは自分でメールソフトへの設定が必要で,送信側と受信側の双方のメールソフトを同じ方式の暗号化に対応させておく必要があるうえ,相互に相手の「鍵」にあたるデータが事前に伝えられていないと読めないままになる……などなど,使うための準備がいろいろタイヘン。筆者も,知ってはいるが使う気が起きずにいる。
この辺が,XMPP の暗号化方式のほうがずっと手軽だと思う理由。
◆ 他のチャットとの違い
それは何より「XMPP は特定の業者に依存しない」という点。
たとえば,日本でポピュラーなチャットである LINE は,LINE 社のシステムで不具合が生じてしまうと,世界中で使えなくなる。もちろんそれは Google から提供されているチャットサービスも同じだ。いや,Google の場合は,Gmail も同時に使えなくなってしまう可能性もあるから,そうなってしまったら,何も連絡手段がなくなってしまう。
そればかりか,そうした特定の業者のみが扱うチャットでは,それを扱うアプリも,その業者で開発されたものにほぼ限定される。だから,Google が「コストがかかる」からってンで古い機械向けのサポートを打ち切ると,新しい機種を使えない利用者は切り捨てられ,通信できなくなってしまう。新しい機種を買えるとしても,他のアプリが使えなくなるわけではないなら,Google のために浪費させられるようなもの。おまけに,もしアプリに不具合が見つかれば全ての利用者に影響する。つまり,全世界で使えなくなる事態さえ起こりうる。
こうした状態,筆者はセキュリティ上どうなのかと思うのだが……。何より,同じ業者のアカウントを持っている者同士でしか通信できないワケで,それは「通信手段」としてもどうなのか,疑問でしかない。
その点 XMPP というのは,公開されている規格であるため,その規格でアカウントを登録できるサーバがあちらこちらにある。それぞれ独立しているから,どこかのサーバで不具合が起きても,たいていの場合は他のサーバには関係ない。「予備」として複数のサーバでアカウントを作っておけば,どれかが生きていれば通信できるわけだ。
また,チャット用アプリ,いわゆる「クライアント」も,いろいろな開発元から出ている。しかも対応機種や OS も各種新旧取り混ぜ。古い機種で使えなくなる心配もほとんどない。クライアントもそれぞれ個別に開発されているから,使っていたアプリに不具合が見つかっても,他のアプリに同じアカウントを設定すれば使い続けることができる。
● おわりに
述べてきたように XMPP は,業者から提供される他のチャットサービスよりずっと柔軟でセキュア。何と言っても,世界中のサーバをまたぐ通信が可能で,クライアントも様々な機器に対応しているため,機械が少々古くても使い続けることができる。その点,業者のチャットは同じ業者にアカウントを持つ人との間でしか通信ができない点で「コミュニケーション手段」として疑問だし,そればかりか「アップグレード」と称し古い機械で使えなくなってしまうことがある。古い機械の買い替えを促すためだか何だか知らんが,ゴミを増やすようなものだし,障害者などは,操作を補助するツールが新しい機械に未対応のため古い機械を使い続けざるを得ないことも多いのに,そうした方々を切り捨てるようなもの。SDGs に背を向ける行為のように筆者は感じるのだが。
筆者は,メールも含めて,少なくとも2つのサーバにアカウントがあり,また複数の OS で,それぞれに異なるアプリを使っている。どれかに不具合が生じても,別のものが使えるようにしてある。これが筆者の考える「セキュリティ」,XMPP は「転ばぬ先の杖」でもあると思う。