
Tailsでやるパソコンにログを残さずチャットを行う方法
【注意】
この記事を読む前に上記の記事を読了されることを強くおすすめ致します。
初めに
以前、私が紹介した「Tails」というOS。RAM上でシステムを実行する「Live OS」というタイプのOSです。システム実行時に通常のOS(Windowsなど)と違ってHDDやSSDを使わないんですよね。だからそれらにログが残らない。さらにRAMは揮発性メモリなので電源を落とすとRAMに残った記録も消えちゃいます。もちろん警察なんかがパソコンを押収してRAMを解析しようにも記録は消えちゃってるので無理。(ただし、電源を落としてから5~10分はパソコンを冷却することによってRAMを解析可能だったりする場合があるので注意)
このTails OS、内蔵の「Torブラウザ」で匿名でネットサーフィンができるわけですが、良いことばかりではありません。ウェブサイトの中にはTorからのアクセスをブロックしていたりTorからのアクセスは弾いてなくてもTorから利用したりしようとするとアカウント凍結などのペナルティや電話番号の認証を求められるところもあります。有名どころでいくとTwitterとDiscordですね。TwitterはTorからアカウント作成すると電話番号を認証しない限り速攻で凍結されます。Discordも似たような感じでログイン時の認証が面倒くさくなったり。こんなデメリットもあるんですよね。
Tails OSを使った「匿名」でのチャットを考える
Torで何かを検索したいならDuckDuckgoやStartpageを、メールで誰かと連絡を取りたいならProtonmailやTuta、Riseupを使えば良い。でもLINEやDiscordのような「チャット」を「匿名」で使うにはどうすれば良いんでしょう?
プライバシー重視のチャットアプリとして人気のSignal(不遇ながら闇バイトでも使われてるアプリ)が使えると思うかもしれませんが実はSignalには全くと言っていいほど匿名性がありません。
Signalは「ノーログポリシー」ですが最低限の情報は保存しています。ではその「最低限の情報」とは?それは「電話番号」です。電話番号なんて知られたらすぐに特定されちゃいますよね。一応、電話番号を匿名で入手する方法もあるっちゃあるんですがこれがかなり面倒くさいんです。(仮想通貨を洗浄したりしないといけない)
また、匿名性のあるチャットアプリとしてSessionというTorに似た匿名化技術を備えたものもあるのですがこれをTails OS上で動作させるとおかしくなります。(Tor over Torという状態になります)
「それならDiscordに似たチャットアプリで良くね!?」とも思われるかもしれません。確かに、匿名性はありませんがDiscordに似た安全なアプリElementというものはあります。ですがこれはTorからだと使えません。
そもそも、Tails OSは普通のOSとはかなり違う特殊なOS(まぁ一般の方々からすればGNU/Linux自体が特殊なOSですが)なのでアプリをインストールするとなってもひと手間いるんですよね。
それにチャットアプリは「匿名」で使えるだけではいけません。堅牢なセキュリティと安全性も不可欠です。
具体的には
・アプリがオープンソース
・E2EEがデフォルトで有効化
・無料で使える
・アプリの使用にメアドや電話番号がいらない
こんな感じの条件を満たしてないといけません。
ざっくり解説します。「メアドや電話番号がいらない」ってのは匿名で使う上で至極当然のことですし無料で使えるのも当たり前なのですが、オープンソースであることもポイントです。オープンソースってなんやねんって方は以下をご覧ください。
「E2EE」というのは特殊な暗号化のことです。「End-to-End encryption」の略で日本語では「エンドツーエンド暗号化」と言います。通常の暗号化では暗号化されてても(見ようと思えば)他人がメッセージの内容とかを見れてしまうのですが、エンドツーエンドだとメッセージの送信者と受信者しか内容を見ることはできないようになっています。これで通信傍受とかされても大丈夫ってことですね。
でもそんな都合のいいアプリなんてあるの?って話ですがありました。
SimpleX Chat
それが「SimpleX」という名のチャットアプリ。これがすごいんです。無料で使えてオープンソースなのはもちろんのこと、E2EE標準装備で電話番号やメアドもいらない優れもの。
メアドがいらないどころかこのSimpleXには「アカウントID」すらも存在しません。なんでもSimpleXいわく、そういう固定されたIDがあったらIDを追うことで同一人物がした行動を追跡できちゃってプライバシーに良くないよね、ってことでこういうIDすらもないチャットアプリができあがったそうです。SimpleXについての解説は以下の公式サイトをどうぞ。(安心してください、日本語表記ですよ)
Tails OSでSimpleXを使っていく
てことで良いものを見つけたので早速実践していきます。
Tails OSをまだ用意してないよ!!って人は以下の記事をどうぞ。
8GB以上の空のUSB1本とパソコン1台あれば環境はすぐに用意できます。とりあえずTailsに慣れましょう。
慣れたり、Persistent Storage(永続ストレージ)を確保できたら本番です。

Tailsを起動させました。パスフレーズを入力して「Persistent Storage」がアンロックされてることを確認しましょう。

WiFiへの接続や「Tor Connection」の設定は済ませましたか?済ませたらTorブラウザを開いて以下のリンクにアクセスします

少し下にスクロールしたら「Get SimpleX desktop app」っあるのでクリック。

そしたらダウンロードのページに飛びます。

今回使用しているTails OSは「Linux」というタイプのOSです。なのでLinuxの項目にある「Appimage」をクリックしてください。

クリックしたら左上にこんな表示が出るので「Save File」を選択。

こんな画面に遷移されます。どこのフォルダにファイルを保存するか選べます。

保存先は「Tor Browser(Persistent)」を選びましょう。

右上の「Save」をクリック。

Torブラウザに戻り、ウィンドウの右上を確認してみてください。円グラフのような表示があるのでクリックするとダウンロードの進捗がわかります。
ダウンロード完了までの時間は環境にもよりますが大体5分〜10分くらいが目安です。

ダウンロードが完了すると円グラフのような表示は「Completed」(完了)となります。次のステップに行きましょう。

次に、画面右上の「Applications」をクリックします。

色んなアプリが出てきますが「Files」を選択。

こんな画面になるはずなので左下の「Tor Browser(Persistent)」をクリック。

そこにさっき保存したSimpleXのファイルがあるはずです。

このファイルを右クリックします。すると色々出てきますが一番下の「Properties」をクリック。

この画面が出てきたらOK。

一番下の「Executable as Program」(要はプログラムとして実行するってこと)の項目にチェックを入れます。
これで準備完了です。

今度はファイルを左クリックします。するとアプリが起動できます。

「Create your profile」を選択しましょう。

名前を決めます。匿名で使うので普段SNSなどで使ってる名前(例えば僕なら「ビュール」)や本名とは懸け離れた名前を決めましょう。

な阪関無
申淫N
ってことで僕の場合は適当に決めました。

パスフレーズも決めます。堅牢なセキュリティのために12桁以上にして小文字と大文字、数字を織り交ぜましょう。

私も長いのにしました。

データベースを暗号化かするか聞かれるので「Encrypt」をクリックします。

次はこんな画面に遷移。何もいじらずそのまま「Continue」を押して構いません。

設定が一旦終わりました。しかしこのままではインターネットに繋がりません。

左下に未設定のアイコンがありますよね。そこをクリックします。

一番下の「Settings」を選択してください。

こんな画面が出てきます。

「Network & Servers」をクリックしましょう。

プロキシの設定を行います。

「Use SOCK proxy」という項目にチェックを入れてください。

プロキシを使うか聞かれるので「Confirm」を選択します。これでインターネットに接続できるようになりました。

続いては試運転です。左下にある「Search or paste SimpleX link」の項目をいじっていきます。

試しに自分のSimpleXアドレスを貼り付けてみました。デフォルトのプロフィールか新たなプロフィールを選ぶか聞かれますが別にどちらでも構いません。(上記の画面は誰かとSimpleXのアドレスを交換する度に出てきます。SimpleXの特徴として、チャットの相手ごとにプロフィールを変えれるというものがあります。チャットごとにプロフィールを変えるともちろん誰が誰だか分からなくなるので匿名性が上がります。)

プロフィールを設定できたらリクエストが相手に送信されます。

こちらは私が普段使いしているSimpleXのアカウントです。先ほどリクエストを送った「ton334」ってアカウントがありますね。

普段使いのアカウントの方から試しにメッセージを送信してみます。

メッセージを送信することができました。
SimpleXには電話を使える機能もあるのですが、少なくとも私の環境(Tails←→Androidスマホ)だと通話はできないようです。
そしてここから大事なことをします。電源を消さないで次の解説に進んでください!
アカウントを使い続けよう
Tailsは前述の通り、電源を消すと記録が何もかも消えてしまいます。もちろん、SimpleXでログインしていた状態も保持されません。SimpleXのアカウント自体はTailsとは違う外部で保存されているので作成したアカウントが消えるわけではありませんが。しかし、どうすれば良いのでしょう?ここでSimpleXの「Export」機能が生きてきます。

(ここからの解説も上と同じです。)上記でもやったように左下の設定画面を開いて「Database passphrase & export」をクリック。

「Export Database」を選択。

わかりにくいので文量多めで解説します。選択したらこんな表示が出るので画面をいじります。左側にある「Folder」って表記がありますよね。そこからフォルダを下ると「Persistent」ってのがあるのでクリックしてください。そしたら更に「/Tor Browser」というのが出てくると思います。そこもクリックします。これで保存先の指定ができました。右下の「OK」をクリックします。保存完了です。

Exportした直後だとChatがストップしていると思うので

クリックして「Running」に変えときましょう。
アカウントのインポート

Tailsを再起動させてみましょう。いよいよアカウントのインポートをやっていきます。上の写真はWiFi接続など、諸々済ませている状態(永続ストレージアンロック済み)です。インポートするにはデータベースのファイルを少し編集する必要があります。

「Applications」から「file」→「Tor Browser(Persistent)」を開くと2つのファイルが出てくるはず。

2つのファイルのうち、zipファイルを選択しましょう。右クリックします。すると写真みたいな感じになるので一番下の「Properties」をクリック。

するとこんな画面に。一番下の「Permission」をクリック。

「Others」の項目の「Access」権限が「Read only」(読み取り専用)になってるので変更します。

クリックして「Read And Write」に変更しましょう。
これで編集が終わりました。次からは早速インポートしていきます。

SimpleXのアプリを開いてください。

この画面の下にある「Migrate from another device」を選択。

するとこんな画面に遷移するので「import database」をクリックします。

「Persistent」→「/Tor Browser」の順で下っていき先ほど編集したzipファイルを選択して「OK」を押します。

インポートが完了しました。

パスフレーズを入力しましょう。

無事パスフレーズが入力できました。上のような画面が出てくることがありますがここは「Stable」をクリックしときます。

というわけで無事アカウントのインポートが完了しました。なにか起動してSimpleXを使う度にインポートしなきゃならないのは少し面倒な気もしますがこのTails+SimpleXの組み合わせは下手したらFBIにも太刀打ちできる程の匿名性かもしれないので背に腹は代えられないですね。
注意点2つ
・データベースは更新し続けないといけません。ですから使い終わったら古いデータベースを削除→新しいダウンロードをエクスポートしましょう。
次回からもこのデータベースの手動更新を行います。(というかそうじゃないとアカウントを使い続けられない)データベースのパスフレーズはエクスポートしても変わらないので別に気にしなくて良いです。
・今回の記事ではインポートするためのデータベースのファイルをTails内の永続ストレージに保存していますがこれはあまりおすすめできません。SimpleXアプリ本体のファイルは保存していても良いのですが。(データベースのファイル無くすと洒落にならないので紛失したりしないよう)クラウドサービスにバックアップを取っておくことをおすすめします。クラウドサービスは基本有料ばかりですが以下の「MEGA」はなんと無料で20GBの容量が使えてE2EE有効化、しかもTorからも使えるという超優良サービス。登録にはメアドが必要なので普段使いとは違うメアドを用意しておきましょう。
もちろん、Tails上でTorを通してメアドを作りましょう。
Torから作れて継続的に使えるおすすめのメアドは色々ありますが
上記の3つが個人的にはおすすめです。以上になります。強力にプライバシーを守れる方法の紹介でした。なにかあったら遠慮なく聞いてくださいね。それでは。
Special Thanks
Ryoさん - Twitter
Ryoさんの助力のなしではこの記事を書き上げることは確実にできなかったと思います。この場を借りて感謝申し上げます。ありがとうございました。