Archive

プライバシー重視のメッセンジャーを求めて、SignalとSessionの緩やかな導入

ここ最近色々あって安心して利用できそうなメッセンジャーツールを探していたのだけど、その流れでSignalSessionを導入してみた。

正直僕の場合はそもそもプライベートなメッセージやり取りをあまりしないのに加えて、そのプライベートなメッセージも9割がFacebook Messenger, 適当なコミュニティーSlack、TwitterのDMで済んでしまっており、これらを無理に変えようとはしていない。なので今のところSignalはAndroidのSMSクライアントとして、Sessionは自分自身とのチャットによるメモ置き場くらいにしかつかってない。

ただ、もし今後はよりプライバシーを重視した手段/サービスでメッセージのやり取りをしたい、僕と個別に連絡を取りたいという人は、僕の電話番号知ってる人ならSignalでも反応できるようにしたし、電話番号も避けたいというのであれば Session のIDも個別に教えますよという告知です。

言いたいことは以上なのだけど、以下それぞれどんなものかを、せっかくなので僕が調べたことを書いておく。

Signal

https://signal.org/ja/#signal

Signal はプライバシー重視なプライベートメッセンジャーを探すと比較的簡単に見つかった。アメリカの非営利団体Signal Foundationが運営を行っており、そのおかげもあって広告類やメディア記事などの余計な機能はまったくない。それでいて音声通話、ビデオ電話、グループチャット、ブロック機能、ファイル添付などメッセンジャーアプリとして必要な機能はちゃんとある。メッセージ送信後3時間以内であれば削除も可能。事前に「〇〇分後に削除」という時間制限付きのメッセージの送信なんかもできる。Facebookメッセンジャーのようにメッセージにリアクションをつけることもでき、UI的にもとてもシンプルで日本語にも対応しており個人的にはいい意味で渋いなと感じている。PC版もWindows/mac/Linux版がある。

後述する欠点もあるんだけど、 アプリの使いやすさ・わかりやすさ・シンプルさ・導入の敷居の低さや機能面を考慮すると、Signalは今回探してみた中では幅広い人に一番勧めやすいとは感じる。

Signalはサーバ上にはメッセージを残さない模様。なのでそもそもやり取りした内容の情報は流失しようがない感じ。また、通信の際には当然暗号化はされているが、その暗号化のプロトコルが libsignal-protocol-c としてOSSとして公開されているのも大きい。iOSアプリAndroidアプリデスクトップアプリについても同様にOSSとしてコードは公開されている。

Wikipedia曰く「電子フロンティア財団が定める「最もセキュアなメッセンジャーリスト」で、7つの調査項目の全てをクリアしている。また、アメリカ合衆国上院議員の公式な連絡ツールとして認められている。その他、インターネット監視プログラム「PRISM」を内部告発した、内部告発者のエドワード・スノーデンも、秘匿性の高さを評価した。 」とのこと。1

アカウントとか連絡帳の扱い

Signalアカウントというものがあり、電話番号(SMS)でサインアップをする。 SMSで認証をすればすぐに使い始めることができるので、始める敷居はとても低い。

基本的に電話番号を知っているもの同士でのやり取りが前提になっている。どうも「『友達』という概念はない」と解釈したほうがよさそうで、「この電話番号のアカウントにメッセージの送信/通話を試みる。以上」という感じがしている。また、Android版はデフォルトのSMSクライアントとしても利用できるので、「とりあえずSMS用に導入してみて徐々にSignalに連絡方法を移していく」ということもできそう。

Signalアプリは連絡帳との連携もできる。その際の連絡帳の情報は、連絡帳にある電話番号がSignalユーザーとして登録されているかどうかの判断のためにSignalサーバに定期的に送信はされるようではある。実際、新規にチャットを開始する際の宛先一覧で、Signalユーザーの電話番号のものは左側の文字が青くなる。

ただし、Signalサーバに送信される連絡帳情報は本当に「Signalユーザーかどうかの判断」のみにしか使われておらず、Signalが勝手に連絡帳の中の情報に対して通知をしたりメッセージを送るようなことはなく、Signalサーバーに連絡帳の情報も保存されない模様。以下のブログに詳しく説明があり、ContactDiscoveryService という技術を利用してSignalサーバからでさえも連絡帳の中身を盗み見ることができないようにされている。(と、少なくとも自分は解釈している)

それでもなお連絡帳の情報をSignalに送信したくないのであれば、Signalに対して連絡帳アクセスの権限を与えなければよい。新規の人とチャットを始める際は電話番号を手入力(電話帳からコピペ)すればよいので、Signalに電話帳アクセスを許可しなくても使うことはできる。

また、連絡帳連携をしている場合は連絡帳に登録された電話番号が新たにSignalにサインアップされたときに通知を受け取ることもできる。逆にいえば、Signalにサインアップをすれば自分の電話番号を知っている人はそれを検知することはできるということ。「〇〇という電話番号はSignalメッセージが受信可能である」という事実がパブリックになる感じ。それによって検知した人ができることは「Signalのメッセージの送信」程度なため、実質「リッチなSMSのやり取りができる」くらいではある。電話番号所有者の名前であったりSignal上で誰と繋がっているかなどの電話番号以上に個人に踏み込んだ情報が漏れるわけではないものの、ここは人によって印象は別れるかもしれない。

なお、連絡帳連携の有無は関係なく、Signalでメッセージのやり取りを実際に始めると相手に自分のSignalで登録しているプロフィールは公開される。

電話番号以外で人とやり取りする手段がないという点が若干微妙ではあるのだけど、逆に言えば少なくとも電話番号を知っている人同士の場合のやりとりはSignalがちょうどいいなとも思える。(個人的には)

個人的に微妙に感じている部分

しっかりとした団体が運営していてUI的にもシンプルで使いやすく、基本的には好印象なのだけど、欠点もあるなーとは感じる。例を挙げてみると次の通り。

  • 電話番号に変更がある場合、同じアカウントを維持できる保証がない2
  • DM相手だけでなく、同じグループチャットにいる人に対しても名前と電話番号が公開される
  • iOSからAndroid、AndroidからiOSのデータ移行はできない
  • PCは何台でもリンク可能だが、モバイル端末は1台しかアクティブにしておけない
  • 新規でPCアプリにリンクした場合、過去のメッセージをオフィシャルにシンクする手段がない
  • オフィシャルではPCアプリのデータバックアップ・リストアができない。3

このあたりの仕様はちょっと注意が必要だなーというのと、特にバックアップまわりは改善してほしいなとは感じる。

Session

https://getsession.org/

Session はたまたまどこかのTweetで存在を知って入れてみた感じ。強固な暗号化通信を用いているのはSignalと一緒だけど、こちらは世界中の分散ノードを通じたE2EEによるチャット、グループチャット、ファイル添付が行える。残念ながら通話やビデオ電話は現時点でできない。アプリのソースを見るとSignalのフォークの模様。PC版も Windows/mac/Linux それぞれそろっている。

Signalとの違いは次のような感じ

  • 電話番号不要で使える
  • やり取りは世界中に分散されたノードを通じてE2EEで行われる
  • 音声通話、ビデオ電話は現時点ではできない
  • PC・モバイル端末ともに同時に利用できる台数に制限なし
  • オープンチャットが存在する

また、サイトやドキュメントは英語だけどもアプリはちゃんと日本語対応されている。

アカウントまわり

サインアップの際は電話番号もメールアドレスなども不要で、サインアップに使った端末から(?)一意のSession ID(ランダムな英数字)が発行されていきなり使い始めることができる。よくわかんないけどとりあえず始める分にはそこまで敷居は高くないかもしれない。

メッセージのやり取りをするには相手のSession IDを手入力(or コピペ)するか、相手にQRコードを発行してもらいそれをスキャンすることでやり取りを開始することができる。

グループチャットについては誰でも作成は可能で、過去にメッセージをやり取りしたことがある人をinviteしていくという感じっぽい。

PC利用

PCでの利用の際にはモバイル側で「リカバリフレーズ」を発行して、それを入力して「リカバリ」すれば利用できる。

PCで起動すると最初はデータがなくて空っぽだが、Signalと違って過去数日のチャットのやり取りも同期される。どのくらいの年月まで同期可能なのかはわからないが、少なくとも過去分全部とは行かなかった。セキュリティ・プライバシーの観点だとデフォルトは過去分は同期されないほうが安全かなという気はするが、利便性を考えるとこっちのほうが便利だなとも思う。

ちなみにモバイル同士の機種変更なんかでも同様の挙動をする。

雑感

個人的には特に電話番号不要という点が大きくて、プライベートなメッセージングツールとして理想的な仕様だなとは感じている。

ただ使っていると「まだまだ開発段階なのかなー」という印象は結構あって、試し始めたばかりのときは別のアカウントとのメッセージのやり取りはできても、PCとモバイルでなかなかメッセージが同期されないみたいなことはあった。このへんはアップデートのたびによくはなっている。

また、Signalと比べるとギークっぽさが強いところはあると思う。

その他

他にもいくつか調べたものはあるのでメモ程度に書いておく

  • Telegram
    • こちらも機密性の高いメッセージングサービスで調べるとすぐに出てくる。(せっかくなので実はTelegramもアカウントはとった)
    • ロシア生まれだが現在はドイツの独立系非営利企業Telegram Messenger LLPが運営しているらしい
    • 多くのプラットフォームで利用可能で、APIも公開されている関係で非公式なクライアントも存在する模様。
    • Android版のサインアップ時、連絡帳や通話履歴のアクセス許可を求められたが拒否しても使うことはできた。
    • 非営利企業による運営のおかげか、広告やメディアなどの余計な機能はない
    • 通常のチャットとE2EEプライベートなチャットの2種類のチャットがある
    • 残念ながら公式には日本語対応はされてない。
  • Discord
    • ゲーマー向けのイメージが強いが、最近はゲームに限らない様々なコミュニティのやり取りに使われている印象がある
    • 現状はE2EE対応こそされてないけど、ボイスチャットの実績もあり、クロスプラットフォームのクライアントもありで利便性はとても高い
    • どこかのサーバーに入ってワイワイやるイメージが強いけど、特定のアカウントと友達として直接つながり1対1でやり取りすることもできる
    • 友達として繋がって、1対1のやりとりで連絡する人が結構増えている話を聞いたことがあって、たしかにアリだなとは思った。
  • Google メッセージ
    • 最近のAndroidだとデフォルトのSMSクライアントとして入っていることがほとんどのアプリ
    • ただのSMSクライアントと思いきやRCS対応もしていて、いつの間にか日本でもこのGoogle メッセージ同士であれば画像やファイルの添付、ステッカーなんかを使ったリッチなチャットができるようになっていた。
    • グループチャットなども対応していて、正直「Androidユーザー同士ならこれでいいじゃん...」という気持ちに
    • PCでもWeb版で利用できるが、モバイル端末とリンクする挙動でSMSも含めてPC上で扱えて、とても良くできている。
    • iOS版が無いようで、iOSユーザーとのやりとりはSMSのみになってしまう(iMessageも似たような状況かな)
    • 現状E2EE対応はされてはおらず、これから1対1のやり取りで利用可能になるっぽい 4
  • エアレペルソナ
    • 国産のサービスらしい。
    • 電話帳情報不要で利用可能。GoogleアカウントやAppleアカウントなどでサインアップもできる。
    • カードという概念があり、繋がっている人の「会社の繋がり」「趣味のつながり」「家族」みたいなカテゴライズができる模様。
    • PC版がない点や、E2EEに関して特に言及されていなので「うーん...」という感じ。利便性を優先するにも、「それならDiscordのほうがいいのでは?」というのが正直な印象
  • +メッセージ
    • 日本の3キャリアが提供するサービス
    • MVNOだと使えないのであまり詳しくは調べていない

他にもいい感じのものがあれば知りたい。


  1. Signal (ソフトウェア) - Wikipedia 

  2. Android端末でsimを抜いた状態でも引き続き利用することはできた。ただ、この状態がどこまで保証されるかはわからない。少なくとも他の人に電話番号が渡ってしまうと利用の継続は厳しそうに思う。 

  3. アンオフィシャルなバックアップツールは存在する https://github.com/carderne/signal-export 

  4. Google、Androidの7つの新機能予告 「メッセージ」のE2EEや★追加など - ITmedia NEWS