Chienomi

LINEやめたい! 代替メッセンジャーアプリ6つ

Live With Linux::software

Wireに替えてThreemaを試し始めたので、ThreemaとWireのアップデートを中心に述べる。

関連記事:

今回の検証軸は特に以下

  • アカウントの気密性 or 匿名性
    • 電話番号やメールアドレスが登録に必要だとしても、それが個人に紐づく情報として公開されないなら良い
    • 公開され、影響がそのアプリにとどまらないことは好ましくないと考える
  • アカウント更新の現実性
    • これは良し悪しというより、方針の問題
    • 「アカウントを消して、現在の関係を破棄して作り直せるか」ということ
    • 例えばLINEは非常に困難である
      • 電話番号ベースな上に、特殊なテクニックを使わないとアカウント登録中に電話番号でマッチングされる
      • このため、仮にアカウントを作り直しても即時捕捉されてしまう
      • そもそもこれまで課金してきたものをすべて放棄する必要があり、ハードルも高い
    • 「公正さ」という意味で更新させないという考え方もある
      • 例えば、同一人物であるのに異なる人物に成りすましたり、雲隠れして連絡を取れないようにして断ち切るようなことは、できるようにすべきでないという考え方がありうる
    • 「とりあえず連絡先を交換して」という状況は割とあるため、最初の連絡先(相手を信用していない状態で教えてもリスクが少ない連絡先)として機能するかどうかという観点である
  • プライバシー保護
    • アプリの利用情報を、第三者が取得・閲覧しないこと
    • アプリの利用情報を、メッセージング以外の用途に利用しないこと
    • アプリ利用における個人情報を秘匿すること
    • 盗聴や改竄に耐えること
  • 日常的利用での使いやすさ
    • テキストメッセージ, 音声メッセージ, 画像送信などがストレスなくできるか
    • 通知や送達は確実性・迅速性があるか
    • 通話品質は良いか
    • 送信した画像や過去ログにアクセスしやすいか
    • 一般的に想定されるコミュニケーション機能をどれだけ持っているか
      • テキストチャット
        • 引用テキスト
        • コードブロック
        • インラインコード
        • 強調
        • CW
      • 画像送信
      • アルバム送信(画像のまとまり)
      • 画像キャプション
      • 音声メッセージ
      • 動画メッセージ
      • メンション
      • リプライ
      • 絵文字リアクション
      • ステッカー
      • GIF (個人的にはいらない)
      • 音声通話
      • ビデオ通話
      • 画面共有
      • ファイル送信
      • 連絡先送信 (個人的にはいらない)
      • 位置情報送信 (個人的にはいらない)
      • 投票
      • 同期メッセージ編集
      • 同期メッセージ削除
  • マルチデバイス
    • PC(Windows/Mac/Linux)で利用可能か
    • 複数のモバイルデバイスで同一アカウントを運用可能か
    • 複数デバイスで同時に利用可能か
  • 連絡先交換ハードル
    • LINEしか使っていないような相手に連絡先を求められたときに、「このアプリを使って」ということを前提とした観点
    • 相手に心理的ハードルを生じる、あるいは技術的ハードルを生じるようだと、単に「今まで使っていないアプリ」という以上の障壁を生じる

前提として、私はプライバシーは尊重してほしいが、匿名であることは求めていない。 匿名でないと困るようなことに使う予定がないからだ。

補足事項としての前提:

  • バッテリー消費について言及があるものは、起動状態での消費である。 (アプリを閉じた状態では、いずれもリストに上がるほど消費しない)
  • モバイルアプリはAndroid、PCアプリはLinuxでテストしている

Telegram

概要

  • Telegram Messanger LLPによるメッセージアプリ
  • VKの兄弟が立ち上げたのが知られている
    • このため、ロシア運営と思っている人が多いけど、ドイツ運営
    • むしろ、ロシア政府はTelegramを敵とみなしていた歴史がある
    • 現在の登記はトルトラ島(イギリス領)にあり、運営本部はドバイにある
  • 2013年開始で、現在はかなり有名になった
    • 秘匿性・匿名性が高いと思い込んでいる人がなぜか多い
    • 実際のところ、現代において当然あるべきプライバシー機能を持っているだけで、特段に秘匿性・匿名性を持っているわけではない
    • もちろん、最低限守るべきプライバシーすら尊重していないLINEあたりと比べれば秘匿性は高いが、プライバシーガチ勢からすれば貧弱
    • 悪用されて有名になっている面もあるが、それは仕方のないことではある1

アカウントとマルチデバイス

  • 電話番号によってアカウントを取得する。アカウントはモバイルアプリで取らなくてはならない
  • ただし、モバイルデバイスと電話番号が一致していなくてはならないわけではない (自動で補完しようとするため、抵抗する必要はある)
  • 同一のアカウントを複数のモバイルデバイスで同時に利用できる
  • ひとつのモバイルアプリで複数のTelegramアカウントを利用できる (通常2, Premiumの場合4)
  • デスクトップアプリの利用はモバイルアプリでの認証が必要
  • デスクトップアプリも同時利用が可能なほか、複数アカウントを使うこともできる (通常2, Premiumの場合4)
  • アカウント更新は、運用方法による
    • 電話番号ベースだが、アカウントを消せばDeleted Accountという扱いになる
    • 同一電話番号で別のアカウントを開設することもできる
    • ただし、相手が電話番号を知っている場合は即座に登録できてしまうので、これまで電話番号を秘匿していることが前提になる

セキュリティとプライバシー

  • アカウントは非匿名 (電話番号ベース)
  • プライバシーとセキュリティを尊重し、十分なオプションと良いバランスを求める感じ
  • 通話は常時E2EE、メッセージはプライベートメッセージだけがE2EE
    • プライベートメッセージはグループチャットはできず、端末間共有もない
    • 通常メッセージは、Telegram LLC内で特定の人しか見られず、厳重な手続きが必要という「運用でプライバシーを尊重」方式
  • デフォルト設定だと電話番号が公開なので、注意が必要
    • プライバシー設定をちゃんとやらないと、デフォルトがプライバシー優先になっていない

使い勝手

  • あまりにも良い
  • 他のアプリにある機能はだいたいある。(コラボレーションツールに多い)画面共有と、(存在が微妙な)GIFがない程度
  • 通話品質も非常に良い
  • Bot APIが、下手にWebフロントエンドを作るよりTelegram向けに実装したほうがいいくらいに素晴らしい
  • ステッカーが作れる機能が超便利
    • これのおかげでLINEいらず
    • ただ、自作ステッカーというのは難しいので、実際のところ違法モノばっかり
  • テーマ機能も充実
    • むしろ充実しすぎてて、作るの結構大変
  • 検索性が非常に高い
    • アルバムも優秀だし、特にメディアの有効期限もない
    • タイムマシン機能もかなり使いやすく、検索も優れている
  • 最近Premiumが追加された
    • 年間4900円
    • 全体的に「別になくて良い」ようなものになっているが、「もっと!」を求めるヘビーユーザーには嬉しいかも
    • そういう意味で、Discord Nitroに近い
  • 最近Storyが追加された
    • SNSっぽいユーザータイムライン
    • LINEにもあるやつ
    • 写真を撮って投稿するしかないので、すごくインスタグラムっぽい
      • 一定時間で消える仕様もインスタグラム同様
    • 一時期ものすごく目立っていたけれど、不評だったのか引っ込んだ
    • Telegramは推したいらしいけど、正直すごく邪魔
  • 標準で日本語非対応
    • user contributeな言語パックはある
    • おすすめはしない (ため、私はTelegramは日本語非対応のスタンス)
  • 自爆機能がある
    • 一定期間アクセスがなかったらアカウント自動削除してねってやつ
    • 最長が1年でオフにできない
    • 全然使ってなくて存在を忘れていると、久しぶりに連絡取ろうとしたらアカウントが消滅してたということがある
    • Telegram「だけ」でつながっているとちょっとリスキー
  • バッテリー消費量が少ない
    • 常時暗号化は重いため、Telegramはバッテリー消費量では有利
    • メッセージングアプリ全体で見てもかなり省エネ

Signal

  • アカウントは電話番号、常に公開
  • やりとりは常時E2EE
  • 完全に電話にべったりで、電話の拡張でしかない
    • WhatsAppをものすごく意識している
    • 要は、「無料でできるSMS」という振る舞い
    • Signal自体が電話にのっかろうとする
      • つまり、アプリの操作の結果がアプリに閉じていない
    • 日本では受け入れられない挙動と言えそう
  • 相手がアプリをアンインストールしたり、しばらくログインしていないと、そもそも疎通できなくなる
    • この場合、以前はSMSを送る仕様だったが、これがなくなったらしい
    • 「使ってないとアカウントが消され、使いはじめると勝手にアカウントが復活する」という挙動
    • 正直かなり気持ち悪い
  • ときどき謎の空通知を送ってくる

Session

概要

  • オーストラリアのNGOであるOPTFによるメッセージングアプリ
    • Lokinetなどかなりガチな匿名/プライバシーに取り組んでいる人々
  • 完全なプライバシーと自由を謳う
  • 完全匿名で、内容も完全に秘匿される

アカウントとマルチデバイス

  • アカウントは完全匿名
  • 同一アカウントを同時に利用できる
  • ただし、同一アカウントにログインする手順は少し複雑
  • マルチプラットフォームのデスクトップアプリもある
    • GitHubで公開されているOSS
    • Electron
  • アカウント更新はすごく簡単
    • 「データを消去する」すればアカウントは消える
    • アカウントを消しても消さなくても、再度アカウントを作れる
    • アカウントを消さない場合は、単に再インストールすればいいだけ

セキュリティとプライバシー

  • やりとりは常時E2EE
    • libsodiumを使っているらしい
  • メッセージはオニオンネットワーク(≠Tor)を利用して配信される
  • アカウント登録がなく、現実的に既存のアカウントへのアクセスは既にそのアカウントでログインしているセッションが必要
    • PINを設定しておけば端末を盗まれても即座にアカウントにアクセスされない

使い勝手

  • 機能は「ひととおり存在するだけ」
    • テキストチャット, ボイスメッセージ, ファイル送信, (明示的に許可すれば)通話/ビデオ通話
    • 通話はIPアドレスが漏れるため、互いに設定で有効にしない限り使えないらしい
    • 通話品質はめちゃくちゃ悪い
  • 検索機能も一応ある
    • メディア一覧, ドキュメント一覧, テキスト検索
    • テキスト検索がそのテキストがある場所に飛ぶのは良い
    • カレンダー機能はないため、探すのはそんなに楽ではない
  • デスクトップアプリは日本語が使えない
    • IMEで変換しようとすると(変換キーでも)内容が確定され変換できない
    • メッセージが二重になるという問題もある
    • Windowsでも同様の問題があるらしい
    • コピペならいける
    • GitHubでissueが建ってる(が、もう2年経ってる)
  • 品質は低いが、「思ったよりは普通に使える」感じ
    • 少なくともToxなんかよりはずっと良い
  • メッセージは分散配信される
    • つまり、オフラインになってるとメッセージ自体が受け取れない
    • その瞬間受け取れないものがずっと受け取れないわけではなく、直近のメッセージは他のデバイスがアクティブなら受け取れるっぽい
    • 全デバイスがずっとオフラインになっていると、多分メッセージは失われる
    • ちゃんと使ってるモバイルデバイスにアプリいれとくほうが無難
  • メッセージエクスポートがない
    • プライバシーを優先したためか?

Wire

概要

  • Wire Swiss GmbHによるメッセージングアプリ
  • Skypeからの離脱組がメインになって結成されているらしい
  • 現在はコラボレーションアプリと一体になっていて、同じWireから2つの状態が発生する
    • つまり、LINEとLINE WORKSがアカウントによって切り替わるみたいな状態
    • 共存はできない

アカウントとマルチデバイス

  • アカウントはeメール登録
  • マルチデバイス対応
  • マルチプラットフォームのPCアプリもある
    • デスクトップアプリはElectron
  • ただし、7デバイスまでという制約がある
    • これを超えると、デバイスを削除するように求められる
    • ログアウトさせられてしまうと別デバイスになるのでかなり厄介

セキュリティとプライバシー

  • 常時E2EE
    • ちゃんとセキュリティホワイトペーパー出してるタイプ
    • Legal hold deviceという仮想デバイスによってメッセージを受信しているという説明がある
    • これはチーム機能のオプションで、個人ユーザーはそもそも無効であるとのこと
    • また、リーガルホールドが有効なチームのユーザーとリーガルホールドが無効なユーザーは交信できないとのこと
  • スタンス的には「プライバシーこそ至上!」みたいなタイプではなく、「ウチはプライバシー大事にしてますよ」くらいの感じ
    • Telegramよりは重視してるかな
  • 相手のデバイスが見えてしまうのはよくない
    • リンクしているデバイスが一覧で表示されてしまい、かなり重要なアクティビティが漏れる
  • アカウント更新は割と簡単
    • Delete Accountして、別のメールアドレスで再登録すれば良い

使い勝手

  • メッセージングではまぁまぁ良い
  • 基本機能は揃っている
  • ステッカー機能はなく、代わりにGIF(GIPHY)がある
    • すごい微妙
  • 変わったところとしてPingという機能がある
    • 気づいてほしいときに便利だけど、間違って押すことが圧倒的に多い
  • メッセージは分散配信される
    • ここはSessionと同じ
    • ただし、他のデバイスがアクティブな状態でオンラインに復帰すれば、他のデバイス経由でメッセージは受け取れる
    • しかし……
  • 一定期間使ってないとログアウトされる
    • ログアウトされているとメッセージが受け取れない
    • たまにしか連絡とらない感じだと、いつの間にかログアウトされててメッセージが届かない状態になっていることがある
    • 仕組み上、全端末でログアウトされた状態になるとメッセージは喪失する
    • これが致命的に不便
  • 「7デバイス制限」が結構厄介
    • セッションはいつの間にか増えていくものなので、意図せず引っかかることが多い
    • 実用的に困る部分よりも、気にして手入れしなければいけないということがかなり面倒
    • しかも「デバイスを認証する」という手順もあり、別名もつけられないので余計に手間
    • デバイスの削除はパスワード入力が必要で、モバイルだと結構厄介
  • 通話品質はそこそこ
  • 検索機能はない
    • アルバム機能もなし
  • メッセージエクスポートがない
    • こっちは単にconversationに機能をつけるという発想がなさそう
  • バッテリー消費量が結構多い
    • やりとりしていると結構気になる
  • モバイルでセッションを失ってしまうと、再ログインしてもネットワークにつながらなくなるバグがある
    • 再インストールが必要

その他

  • もともと「仲間とつながろう」みたいな感じだったけど、今はコラボレーションアプリを推している
    • 「個人利用はこちら」みたいな感じになっている
    • 普通にアカウント作れば普通のメッセンジャーではある

Threema.

概要

  • スイスのThreema GmbHによるメッセージングアプリ
  • プライバシーと匿名性を重視している
  • 別建てでコラボレーションツールのThreema. Workもある。
    • 2USD〜3.5USDで、なかなか魅力的
  • 買切り有料アプリで、アプリ購入がアカウントライセンスになっている

アカウントとマルチデバイス

  • アカウントはスマートフォン端末がベース
  • スマートフォンでIDを発行する
  • モバイルデバイスは1端末=1ID
    • バックアップから復元する形で機種変は可能
  • PC版は基本ウェブのみ
    • デスクトップでwebviewを使うデスクトップアプリもある
      • これはLinux版もある
      • Linux版はElectronとQtの2種類ある
    • LINE for Chromeみたいに毎回QRを読ませる「匿名セッション」が使いやすい
    • パスワード保存すれば継続的セッションも作れる
  • PCでの利用もモバイルデバイスが軸
    • モバイル側のアプリが完全に止まってしまうとPC側も停止する
    • 「バッテリー最適化」を外すように言われるけど、機種によってはできない
  • アプリを購入していれば、アカウント数の制限はないっぽい
    • ただし、モバイルの購入の仕組み上、プラットフォームをまたいで購入は共有できない
      • 一番ありがちなのは、Android(Google Play)とiOSの間で共有できない
      • Threema Shop, F-Droidという選択肢もあるが、これらとGoogle Playとの間も共有されない

セキュリティとプライバシー

  • 常時E2EE
  • アカウントは電話番号とeメールをリンクするかどうかで性質が全く異なる
    • 特に電話番号をリンクした場合は「連絡先を同期する」というのもあり、この場合WhatsAppとかSignalに近い
  • 何もリンクしない匿名アカウントでの運用も可能
    • 匿名アカウントは「匿名アカウント」という概念がある
    • 特に制限があるわけではない
  • 事故やマルウェアによる情報漏洩を含めて、結構しっかり守る方向になっている
  • アカウント更新に制限自体はない
    • ただし、メールアドレスや電話番号を紐づけている場合は解除しないと、別のIDで同じメールアドレスや電話番号は紐付けられない

使い勝手

  • 高速でかなり良い
  • 複数端末利用できないのが不便
  • PCがモバイルをベースにしているのも不便
  • 個人的にはLINEと同じような使い方ができるので、どうしようもないほど困るわけではない
    • 言い換えれば、Telegramほど便利には感じない
    • 現状、「外に出るときスマホはメインとサブどっちかを持つ」みたいな感じなので、ちょっと困るではある
  • 基本的な機能はひととおりある
    • ステッカー機能はない
    • リプライがない
    • 代わりに賛成/反対がある
  • 通話品質は試せていない
    • 音声通話, ビデオ通話があるらしいけど、Echo Botとはできない
    • グループ通話もある模様
    • 信用レベルが高い相手には直接接続し、それ以外はThreemaサーバーがリレーするのが通常
      • 直接接続は品質を高くしやすく、リレーコールではIPアドレスを秘匿できる、ということの模様
  • 連絡先交換のメインが、QRコード
    • IDを交換することも可能
    • どういう方法で通過されたかによって、相手の「信用度」が表示される
    • 要は、ID交換は「本当に本人かどうか確認できないから」ということ
    • 連絡先の追加は片方向の追加でしかない。 つまり、QRコードで追加する場合は、「お互いのQRコードを読み取る」ことが必要
      • 少し変な感じがするけど、自分のQRコードを友達が勝手に友達の友達に渡した、みたいな状況を考えると、たしかに「QRコードで追加されたけど、こっちとしては相手が誰なのか確認できていない」という状況は存在する
  • 日本語対応
  • 検索機能はSessionと似た感じ
    • 文字列検索と、メディアギャラリーがある
    • メディアギャラリーはファイルタイプで絞り込めるので、Sessionよりも少し便利
    • タイムマシン, カレンダーはない
  • メッセージエクスポートはないが、バックアップ機能で代用が可能
    • バックアップするとトークもバックアップに含まれる
    • 選択的なバックアップはできず、全部を一括のみ
    • バックアップデータはパスワードつきZIPなので、普通にPCで扱える
    • トークの保存形式はCSV
    • 基本的には機種変用の機能だと思う
  • バッテリー消費量がかなり多い
    • 特にデスクトップアプリでログインしている間はモバイルアプリを起動しておく必要があり、このときの消費が非常に大きい

その他

  • 有料アプリ。2023年10月現在、920円
    • だんだん値上がりしている模様
    • Google Playファミリーライブラリに対応しているため、ファミリーで使うときは1購入で5人までOK
    • アカウント作成時に「有効なライセンスが見つかりません」と表示される場合があるが、端末再起動すればOKだった

MEGA CHAT

概要

  • 健全なストレージサービスに生まれ変わったMEGAのコラボレーション機能のひとつ
  • 基本的にストレージサービスを軸にしていて、単純なメッセージングアプリとはちょっと趣が違う
  • ストレージがあって、それをユーザーと共有したり、ミーティングやチャットがあったりと考えると、Gsuiteとかと似てるかも
  • ここでは、「アカウントを取って、基本メッセージングだけに使う」状況を想定する

アカウントとマルチデバイス

  • アカウント自体は名前の設定が必要だけど、必要な情報はメールアドレスだけ
    • このメールアドレスは、連絡先交換した場合相手に伝わる
  • モバイルアプリはメッセージングの機能を内包している
    • 同一アカウントを複数デバイスで使うことは可能。というより、ファイル共有という機能からして、それができないとちょっと困る
  • デスクトップアプリは基本的にストレージ同期機能のみ
    • 他の機能はウェブから使う
    • デスクトップアプリの「私のアカウント」というところをクリックすると、アカウントトークンリンクになっているので、認証なしでアカウントに飛べるのがすごく便利
  • MEGAには課金があるが、これはチャット機能には影響しない
    • 強いていうなら、送信できる(かつ見られる状態で残している)データの量と、期間内に受け取れるデータの量に絡むが、普通は支障ないと思う
  • アカウント更新はちょっと面倒
    • まず、MEGA上にはデータがある。加えて課金している場合はサブスク期間というのもある
    • 無料アカウントの場合は、容量拡張条件というのもある
    • ただ、データに関してはMEGAの場合基本的には同期だから、MEGAのアカウント解約を可能にするところまで持っていくのは難しくない
    • サブスクに関しては残り期間を諦めれば大したことない。
      • どちらかというと、課金してる場合はデータを再アップロードするほうが大変かも
    • 無料アカウントで運用している場合、「新規ユーザーを招待する」というような条件もあるため、ちょっと大変かも
      • でもどのみち永続じゃないし諦めよう
      • 昔の50GB/転送量無制限時代に作ったアカウントはきついので、別アカウントでやったほうがいい
    • メールアドレスベースのアカウントなので、違うメールアドレスを使う必要がある

セキュリティとプライバシー

  • MEGAが「暗号化してるから、うちは分からない」というのは、プライバシー保護とは別に特別な意味がある
    • もともと、違法アップロードの温床になるファイル共有サービスをしていた
    • 著作権絡みのせいで創始者が国際指名手配になり、サービスが終了
    • MEGAとしては、この問題を再度起こされると困る
    • 「うちは知りようがない」は自身を守る上で絶対に必要になっている
    • こういう、変な理由でMEGAがセキュアであることはかなり信頼できる
  • 基本的にはPGPを使ったシンプルな暗号化メソッドであるっぽい
    • 悪いことではなく、これ破られることがあれば大騒ぎになるということでもある
    • 実際にそれを安全に運用するためのメソッドを考えるのは大変ではある
    • Signalのような巧妙な方式ではないので、効率は悪く、制限はある

使い勝手

  • デスクトップアプリがチャットに対応してないため、ブラウザで開いてないとメッセージ通知をPCで受信できないのはちょっと不便
  • MEGA外のユーザーを会話に加える機能がある
    • ミーティング, グループチャット, チャットのいずれでもできる
    • ただし、ゲストユーザーがルームに戻ってこれない(戻ると別ユーザー扱いになる)という問題があり、ワンタイムでないならやらないほうが良い
  • メッセージはかなりラグい
  • ストレージベースなのでファイル/画像/動画の送信がクセつよ
    • チャット上では何も違和感はない
    • 送信したファイルは送信した側の「私のチャットファイル」というフォルダの中に置かれ、このファイルが共有された扱いになる
    • つまり、送信者のストレージ容量を使うが、これはメリットだとも考えられる
      • 一般的に、送信したファイルの所在は分からない
      • チャットテキストもそうだけれど、ファイルはまたややこしい問題を抱えている
      • 本当にE2EEを採用し、サービス側が読めないなら問題ないが……
      • MEGAはチャットの暗号化とは別に、そもそもファイル自体も暗号化している
      • セキュリティとプライバシーで述べたようにファイルの暗号化はかなり信用できる
      • ストレージと同じ扱いがされるのであれば、容量というデメリットはあるが、コントロールしやすいというメリットがある
      • これは、LINEのように「期限切れで消える」ような問題とも関係してくる
  • 通話品質はだいぶ低い
    • 特にミーティングは厳し目。画面共有とカメラは排他で、画面共有は共有してる内容が見切れてしまったりする
    • ビデオ通話/画面共有の品質が低く、テキストなどは読むのが厳しい
  • 機能は以下の通り
    • ある
      • テキスト
      • 音声メッセージ (ボイスクリップ)
      • 写真メッセージ
      • 音声通話
      • ビデオ通話
      • 画面共有 (ビデオと排他)
      • 連絡先送信
      • 位置送信
      • ファイル送信
      • メディア送信
        • ファイル送信とともにメッセージをつけることはできないし、複数画像をまとめて送ると単に連投される
      • スキャン
        • PDFで送る機能?
      • GIF(GIPHY)
      • 絵文字リアクション
    • ない
      • ステッカー
      • アルバム
      • リプライ
        • グループチャットでもリプライがないため、コラボレーションとしては結構きつい
  • グループチャット機能があり、それとは別にミーティング機能がある
    • グループチャット機能はテキスト主体、ミーティング機能は通話主体
  • 履歴削除とチャットのエクスポートがあるのが便利
  • 共有ファイル周りの扱いが手厚い
  • 連絡先は基本QRコード
    • Telegram同様、QRコードリンクというのがあって、リンクを送りつければ対応できる
  • アプリを開いたときに表示する画面を設定できるのはとても便利
    • チャット主体で使う場合は、チャットを開くようにできる
  • 期間指定ミュートがある
  • かなりしっかり日本語対応
  • アプリ起動がめっちゃ遅い
    • モバイルアプリは通知欄からチャットに飛べば早い
  • 通知は結構不安定だけど、確実に届く
    • 特に複数のモバイルアカウントがある場合、1つだけすぐ届くけど、他がなかなか来ないということが多い
    • ただし、通知先がない場合はメールで通知されるため、通知自体は逃すことはない
    • また、モバイルアプリが1つしか存在しない場合、その1つには結構確実に届く
  • チャットログはデータとして保存されている
    • ロードに時間がかかるが、端末によって取得できないといったことがない
  • 共有されたファイルを消した場合
    • 画像に関してはすぐには消えない
    • 音声や動画など、「再生」する必要があるものは完全削除すると取れなくなる
    • また、画像はダウンロードなどはできなくなり、あくまで表示ができるだけ
    • なお、送ったファイルを履歴をそのままにして消してしまうと、メッセージ履歴が消せなくなる。これを消すには、クリアするか、時間制限で消すかしかない
      • それだけでなく、相手も含めチャットのロードやエクスポートにも支障か出る
      • 基本的にはメッセージを消してからファイルを消すようにすべき
      • なお、チャットのファイルは特殊な扱いで、メッセージを消すと共有も消える
  • メッセージの削除は常に同期する。履歴のクリアも相手に同期される。
  • 本文検索はない。 共有ファイルのライブラリはある。

その他

  • Google Playストアにある “MEGA CHAT” というアプリは偽物
  • 私はMEGAを「信用できるサービス」だと考えている
    • この関係で私はMEGAのストレージを結構重要な用途に使っている (それ以前はCopy.com2とDropboxを使っていた)
    • 信用しているが、MEGAにアップロードしているデータは基本的にEncFSである。これはCopy.comやDropboxと同じ扱い
    • 信用できるかを判断するために「ちゃんと」知りたい人はセキュリティホワイトペーパーを読むと良い
    • その上で私は、プライバシーまたはセキュリティに関わる重大なデータ(例えば、クレジットカードやパスワードの情報など)でない限りは、EncFSなしに置いても良いと考えている
    • 不明点をはっきりさせるため、MEGAに問い合わせを行った (次節にて)

余談: MEGAへの問い合わせと回答

MEGAについてドキュメントとセキュリティホワイトペーパーで解決しなかった部分について質問した。

翻訳の問題か、全てに回答されなかったが、回答をもとに検証したことを含めて、いくつかの重要なことは判明した。

  • 「転送」はダウンロードクォータ
    • 同期下り, ダウンロード, ストリーミングで消費
    • 共有では消費しないっぽい
    • 転送単独の購入はないっぽい
    • 新規インストールで同期する分でも消費
      • 予めrsyncしておくと転送されないので、そうしたほうがいい
      • プロアカウントでは選択的同期前提かも
  • Google PlayのMEGA Chatは公式アプリではない
  • パスワードは「秘密鍵の暗号鍵」っぽい
    • 非対称鍵である秘密鍵(複合鍵)をパスワードを使った対象鍵で暗号化し、データの復号化にはまず秘密鍵が復号化されている必要がある?
      • GnuPGやOpenSSHでも秘密鍵を対象鍵で暗号化できる
      • 暗号化された秘密鍵をMEGAは持ってるっぽい
      • ローカルに保存されている秘密鍵ではなくクラウドで配信された秘密鍵
    • 少なくともデータ暗号化の鍵とパスワードは別

暗号化周りの話が、類似技術に慣れていない人にはわかりにくいと思う。 言い換えると次のような話:

  • 暗号化処理はPGPで行っている
  • パスワードはPGP秘密鍵を暗号化するのに使う対称鍵用
  • 秘密鍵自体は(パスワードにより)暗号化されたものがMEGA上にあり、これを使う
  • パスワード更新はMEGA上の秘密鍵を更新する
  • パスワードは一方向性関数を通したものを含め、MEGA上にはない

質問(日本語)

1. 有料プランの「転送」について

例えばPro Iプランなら「2TBの転送」と記載されていますが、これがよく分かりません。

a. 月払いした場合は月に1度2TB、年払いした場合は年に1度24TBの「転送」が付与される?
b. 転送はMEGAからMEGAの外へダウンロードした場合に消費される?
c. 例えば1TBのデータをMEGAに置き、新しい空っぽのPCにMEGAをインストールして同期した場合、1TBの転送が消費されますか?
d. MEGAの暗号化方式は他者とファイルを共有した場合、ローカルで復号化し、他者の公開鍵で暗号化して送信するように見えますが、これも転送を消費しますか?

2. アプリについて

a. Google Playストアに "PC7" というデベロッパーによって "Mega Chat" というアプリが公開されています (https://play.google.com/store/apps/details?id=com.rsteam.megachat&hl=en_US) が、これは公式ではないという認識で合っていますか?
b. デスクトップアプリにチャット機能が追加される予定はありませんか? (Linux版を使っています)
c. モバイルのMEGAアプリは、インストールしただけでは何のファイルもMEGAに送信しないという認識で合っていますか?

3. 暗号化処理について

a. パスワードを変更した場合、鍵ペアが更新され、これに伴って全ファイルの暗号が更新されるという理解で合っていますか?
b. グループチャットで自分を含めて5人の参加者がいる場合、4つの公開鍵で暗号化して送信する(特定の1人とチャットしているときの4倍の処理が必要である)ということで合っていますか?

回答(英語と翻訳された日本語) 翻訳の品質がえらい高かった

Hello,

Thank you for using MEGA.

1. The transfer quota is the total volume of data you can download
from MEGA, and it is also consumed when streaming.

You can view your current transfer quota usage by accessing this link
https://mega.nz/fm/dashboard using your PC browser.

For Pro accounts, the transfer quota is the amount of data each user
will be able to download (i.e. 1 TB of data during one month) and it
is measured per user account, not per IP address. 

Pro users get one allocation of their entire transfer quota per
billing period, so annual Pro accounts will get one year's worth all
at once.

If the quota is not entirely used in one month or year (depending on
the term chosen), the remaining quota expires.

As a Pro account user, you are able to grant a percentage of your
transfer quota to anyone downloading from your public file/folder
links (this includes FREE users and non-registered users). 
The maximum percentage of your transfer quota granted to others can be
set here: https://mega.nz/fm/account/transfers

Once you have used up all of your Pro account's transfer quota
allocation, you will have to purchase another plan.

If you put 1TB files in your cloud drive and you are syncing the full
cloud drive in another device, all the files will be downloaded from
the cloud drive when you setup the sync path, therefore it will
consume 1TB transfer quota.

However, if you are doing a selective sync, the transfer quota usage
will depend on the size of the files that you sync/download.

If you download files from your MEGA cloud drive or a MEGA public link
when you logged in, this will use the transfer quota of your Pro
account, otherwise it will use the free transfer quota that assigned
to your IP.

2. The official mobile app is called 'MEGA', the app you are referring
to is not developed by us.

Regarding adding the chat function in the Desktop app, we have raised
your request to our team. However the chat feature is already
supported in web browser, you can go to our website to use the chat
feature for your Linux device.

Installing MEGA mobile app will not sending any files, it will allow
you to access the data that already exist in your cloud drive. However
if you enabled the Camera Uploads feature, this will automatically
upload files from your mobile device to the cloud drive.

3. If you have a group chat and create a public link for it, the group
chat link for all the participates in the chat will be the same.

MEGA provides privacy by design (not by policy) with Zero-knowledge
encryption.
All files stored on MEGA are encrypted by your computer / phone /
device. All data transfers from and to MEGA are also encrypted.
Although most cloud storage providers claim encryption in transit and
at rest, MEGA is much more secure. Unlike the industry norm where the
cloud storage provider holds the decryption key, with MEGA you control
the encryption, you hold the keys, and you decide who you grant or
deny access to your files, without requiring any risky software
installs. The encryption occurs in your web browser / device!

With our Zero-knowledge encryption, data being uploaded is encrypted
on the uploading device before it is sent out to the Internet, and
data downloaded is decrypted only after it has arrived on the
downloaded device. The client machines are responsible for generating,
exchanging and managing the encryption keys. MEGA's encryption model
does not require any usable symmetric or private keys to ever leave
the end-user's computer.

The password for your MEGA account is also a prompt for your unique
master encryption key to your files. The encryption key gets created
from your password and to strengthen the key we have collected the
entropy from your mouse movements and key stroke timings. 
Remember to keep your MEGA password secure and confidential at all
times and generate your Recovery Key for the event of misplacing your
password in the future - https://mega.nz/keybackup

To sum it up:
For your security and privacy, all data that you store in your Cloud
drive is encrypted on your own device before it is uploaded to our
servers.

Every file is encrypted with its own key.

The file keys are also stored on our servers, but they are first
encrypted with your master key.

Your master key is also stored on our servers, but it is first
encrypted with your password.

We do not store your password. 

As a result, if you lose your password, your master key can no longer
be decrypted, which means that your file keys can no longer be
decrypted, which results in all of your data becoming unreadable.

You can however set a new one by requesting a reset link to your email
address and then entering your previously exported Recovery Key.

If you have no Recovery Key available, it is mathematically impossible
to regain access to your data. In that case, you have to start afresh.

For more about security, please read here: https://mega.nz/security


Kind regards,
MEGA Support

総評

  • 他にもLINE, Kakao Talk, Viber, ICQ, META Messenger, Skype, WhatsApp, あたりがあるが、セキュリティとプライバシーの点で私が許容できない
  • 他にも不便であることを許容できるなら、XMPPやToxもあるが、不便なので候補に入れなかった
  • 他にもDiscord, Slack, Teamsなどをメッセージングに使うこともできるが、メッセージングアプリとしてはやや微妙。X DMなども同様
  • 私は相変わらず、最初に教えるのはSession, 本当に親しい人だけにTelegram
    • その中間としてWireを使っていたけれど、Wireの自動ログアウトが致命的
    • Wire, Threema, MEGA Chatでどれがいいか検討中
    • Signalはアンインストールした (ので、次回の検証があれば、それには含まれない)
  • Wire/Threema/MEGAの選択肢であれば、使い勝手はThreemaに感じている
    • ただ、有料アプリで、相手に入れてもらうハードルが特段に高い
    • ハードルはWireが低いと思うけれど、相手が他にWireでやりとりする人がいなくて、長く使ってないとそれだけで終わってしまうので微妙
    • MEGAも他にいろんなものがついてくるので、それはそれでハードルが高い
  • Telegramはプライバシーに対しては100%満足ではない
    • ただ、機能的・体験的には極めて素晴らしいので、Telegramをメインにしたいとは考える
    • だからこそ、Telegramを特別な相手に限って教える方式を取っている
  • 割とどれもハードル要素がある
    • Telegram - 電話番号による登録, 日本語なし
    • Threema - 有料アプリ
    • MEGA - 怪しげなストレージサービス
    • SessionとWireが登録ハードルは低そう
      • 一発目の交換はこれのどっちかが良いと思う
      • Sessionはアカウント作成もなく、アプリを入れて開くだけ
  • 人々はプライバシーを求め始めたようだ
    • 従来、WhatsAppとFacebook Messengerが圧倒的に強かった
    • それ自体は変わっていないけれど、Telegramユーザーは増加傾向
    • Wire, Threemaも増加傾向ではあるっぽい
    • 資金獲得を含めて、企業ツールに進出するのが今の流れか
  • 使い勝手は Telegram > Threema > MEGA > Session > Wire かな
  • ハードルの低さは Session > Wire > MEGA > Threema > Telegram
  • メッセージングのプライバシーは Session > Threema > Wire > MEGA > Telegram
  • プライバシーに対する信頼性は Session > MEGA > Threema > Wire > Telegram
  • タイムマシン(カレンダーベースのジャンプ/絞り込み)を実装しているのがTelegramだけ
    • かなり重要な機能なのだけど、なぜだろう
  • メッセージエクスポートがあるのはTelegramとMEGA、限定的にはThreema
    • 検索を補う重要な機能だけど、「メッセージを残されてしまう」ということに懸念を持つから、匿名性を重視するタイプのメッセージングアプリには実装されない可能性がある
    • ただ、メッセージエクスポートがないとアカウント更新はしづらいし、あったほうが嬉しいものだと思う
    • メッセージエクスポートがあれば、貧弱な検索を補う手段として使える
  • エクスポートの形式――
    • TelegramはHTML (量が多い場合は分割される)
      • メディアやステッカーも含めて、ファイルから閲覧可能な形でエクスポートできる
    • MEGA Chatはテキスト
      • 添付ファイルが削除されていると、失敗した旨表示される。ただし、それらのファイルがtruncateされているだけでテキスト自体は読める
      • 同一ファイル名のファイルが送られている場合、ZIPアーカイブとしては同名の別ファイルを含める形になるため、展開が難しい
    • ThreemaはCSV
  • MEGAにはリプライがない
    • 話題が交錯したときは1:1でも結構便利なので、ちょっと気になる
    • 特にMEGAはコラボレーションでも使うので、割と欠けている感じがする
    • Threema Workも同じなら同様
  • 機能的にはTelegram以外は一長一短
    • Sessionは機能自体は割と文句ないけれど、それがうまく機能しないのが問題

余談: 暗号化について

暗号化は簡単に言えば「特定の者だけが復号化可能な変換」である。

経路暗号化は、Aから出ていくときには暗号化されており、Bに到着するときにも暗号化されている、というもの。 AとBの内部では暗号化されていない状態になる。

メッセージングで重要になってくる概念が、「経路暗号化」と「データ暗号化」だ。

例えばクライアントAとサーバーBとの間をSSLで暗号化する経路暗号化を考えてみる。 AとBは平文データにアクセスすることができ、AとBがやりとりしている内容を盗聴した場合は内容は暗号化されているため読み取ることができない。

これは、「暗号化された経路を使って送信している」という状態だ。 続いて、データ暗号化を考えてみよう。

クライアントAはデータを暗号化し、平文の経路で送信する。 サーバーBは暗号化されたデータを受け取り、復号化する。

この場合、経路暗号化とデータ暗号化の違いは、わずかなタイミングの違いでしかない。3 ところが、ここに関係者が増えると話が変わる。

メッセージングアプリの場合、一般的には最低でもクライアントA、クライアントB、サーバーの三者が登場する。 経路暗号化の場合、Aとサーバーの間、Bとサーバーの間の経路が暗号化されており、データは平文である。 つまり、サーバーは平文のデータを受け取るため、サーバーは内容を知ることができる。

これがデータ暗号化になると、Aが暗号化した内容をBが復号化するのならば、サーバーは暗号化されたデータを中継するだけなので、サーバーは内容を知ることができない。

しかし、データ暗号化でも、Aが暗号化してサーバーが復号化し、サーバーが暗号化してBが復号化する、という仕組みになっている場合はサーバーも内容を知ることができる。

E2EEはこの図の端っこにある、この場合はAとBが互いに暗号化/復号化する立場にあることを示す。 経路暗号化によるE2EEであれば、サーバーは経路確立時に仲介し、AとBが(仮想的にでも)直接つながる経路を確立する。

データ暗号化によるE2EEであれば、AとBが唯一の共通鍵を共有する者となるか、AはBの公開鍵で、BはAの公開鍵で暗号化して送信する。

このためE2EEはこの通信において、AとBの秘密となる。 しかし、E2EEがあれば情報は秘密となるということではない。

というのも、「やりとりはE2EEで暗号化されているが、それとは別にアプリはサーバーにデータを送信する」ということが可能だからだ。 E2EEを実現していることは秘密を実現する上で必要条件だが、サービスがその秘密を手に入れようとするかどうかという問題は別に存在するため、十分条件ではない。

シンプルに実装のことを考えれば、E2EEを実装していながら情報を収集するなどという無駄なことはしない。 ところが、個人情報というのはとてもおいしい蜜なので、サービス側としてはやりたくなることでもあるのだ。 少なくとも私は、LINEがE2EEであるとするLetter Sealingが有効なチャットで話した内容が、広告に反映されたのを確認している。

以上を踏まえると、基本的に「メッセージがE2EEでやりとりされていることを確認する」「クライアントが秘密を他へ送信しないことを確認する」の2点が必要である。

サーバーがOSSでないことが問題であるように言う人がいるが、それは間違いである。 というのも、データ暗号化を用いる場合、クライアント間でしか知り得ない秘密(これは暗号用語)を使って暗号化を行う場合、サーバーがどのような処理をするとしてもE2EEが成り立つ。 また、クライアントがその秘密(暗号用語)と、クライアントが保持するデータをサーバーに送信しなければ、サーバーにはそもそもそのデータが届かない。

このため、安全かどうかはクライアントがOSSであれば検証可能である。 ただし、経路暗号化によるE2EEを実現する場合は、サーバーの挙動を確認できなければ検証できない場合もある。

このことから、プライバシーを保証しようとするサービスは、まず自身がどのような方法をとっているかということを明らかにする必要がある。 その上でそれを検証可能にする必要がある。ほとんどの場合、それはクライアントソフトウェアをOSSにすることである。 そして、監査を受けたほうが良い。検証可能になっていても、検証する人がいなければ意味がないからだ。

なお、E2EE暗号化が必ずしも絶対の正義というわけでもない。 暗号化を行えば、それだけ処理は重くなり、モバイルの場合はバッテリー消費も増える。 また、常時E2EEや、高度なプライバシー保護を行う場合、そうでないアプリであれば簡単に実装できるような機能が実装困難になる場合もある。 ある一面では、メッセージングアプリのプラットフォーマーが、情報収集におけるアドバンテージを存分に活用とするのが当たり前になっている状況で、そのようなプライバシー侵害をしないという姿勢を表明するためのE2EEという面もある。 そしてそれは、実際はプライバシーを尊重していないアプリが、E2EEを謳うことで偽りの安心感を与えるという目的で使われてもいる。

機能早見表

確認できていないものは記載していない。

機能 Telegram Session Wire Threema MEGA
テキスト
画像
画像アルバム
画像キャプション
インラインコード
コードブロック
引用テキスト
強調 4 5
CW
音声メッセージ
動画メッセージ 6
メンション ?7
リプライ 8
絵文字リアクション ?9
ステッカー
GIF 10
音声通話
ビデオ通話
画面共有 11 12
ファイル送信
連絡先送信
位置情報送信
投票
編集 13 14 15
削除 16
テーマ 17 18 ?19
パスコード
Xプラットフォーム
PC同時
マルチモバイル
日本語 ?20
テキスト検索
ギャラリー
カレンダー
エクスポート ?21