3.安全なデータ配信と保存技術

3.安全なデータ配信と保存技術

3.1. BitTorrent

3.1.1. BitTorrentの概要

BitTorrentは、分散型ファイル共有プロトコル(P2P:Peer to Peer)の一種で、大容量ファイルを効率的に配信するための仕組み。
従来のクライアント-サーバ型ダウンロードとは異なり、ファイルの受信者自身も他の利用者へファイルの一部を同時に送信することで、全体の負荷を分散する設計となっている。

BitTorrentでは、1つのファイルが多数のピア(利用者)によって同時に共有・取得され、ダウンロードすればするほどネットワーク全体が高速化する特性を持つ。

3.1.2. BitTorrentの仕組みと構成要素

主な用語と役割

用語意味
Peer(ピア)BitTorrentネットワークに参加している利用者(ダウンロード中/アップロード中)
Seeder(シーダー)ファイルの全ピースを持っているピア(配布側)
Leecher(リーチャー)ファイルの一部しか持っていないピア(ダウンロード中)
Tracker(トラッカー)ピア同士の通信を仲介するサーバ。各ピアのIPアドレスとピース状況を管理
Torrentファイルダウンロード対象ファイルの情報(構成、ハッシュ値、トラッカーURLなど)を記述した小さなファイル(.torrent)
MagnetリンクTorrentファイルを使わず、分散ハッシュ(info hash)で識別するURI形式のリンク。トラッカーやDHTによりピア情報を取得する。

通信の流れ(トラッカーベース)

  1. ユーザーが.torrentファイルをクライアントに読み込む
  2. クライアントは.torrent内のトラッカーに接続し、参加している他のピア(Seeder / Leecher)のIPアドレスを取得
  3. 各ピアと直接通信し、持っていないピースを効率よく取得しながら、他のピアにも自身が持つピースを提供する
  4. 全てのピースを取得すると、自身もSeederとして振る舞う

3.1.3. P2P効率化技術

ピースの選択戦略(Rarest First)

一般的に**「最も入手困難なピースから優先して取得」**する戦略をとることで、ピースの偏在を防ぎ、ネットワーク全体の効率と可用性を向上させる。

チョーク/アンチチョーク制御(公平性制御)

ピアは一度にアップロードする相手を制限するが、アップロードに協力的な相手へ優先的にデータを流すことで公平性を保ちつつ効率的にファイルを分配。

DHT(分散ハッシュテーブル)

トラッカーがなくても通信可能な仕組み。Magnetリンク利用時やトラッカーが落ちた際に有効。各ピアが他ピアの存在を分散的に記録・参照する。

3.1.4. ポートとセキュリティ

項目内容
通信ポート通常6881~6889、またはクライアントで任意設定可
通信内容一部暗号化オプションあり(“Protocol Encryption”)。ISPによるトラフィック制御を回避可能
セキュリティピア同士が直接通信するためIPアドレスが露出する。VPNや匿名ネットワーク(Tor/I2Pでは非推奨)と併用する

3.1.5. BitTorrentクライアントと特徴

クライアント名特徴
qBittorrent軽量かつ高機能。OSSで広告なし。Linuxにも対応
Delugeモジュール方式の拡張が可能。サーバ用途にも使われる
Transmission最小構成で軽量。UNIX系に最適化
μTorrent(旧版)Windowsで人気。ただし広告やマルウェア注意

3.1.6. BitTorrentの使用上の注意

ピア同士で直接IPを晒すためVPNやProxyを介した利用が一般的である。 TorやI2P上でもBitTorrentは利用可能だが、プロトコルの設計と衝突するため非推奨(特にTorでは出口ノードに負荷をかけ、匿名性を崩す可能性がある。

3.2. Cyberlocker

Note

このページは将来的な記載が予定されています。 もうしばらくお待ちください。

3.3. 安全なデータの保存方法

3.3.1. 不適切な暗号化

最終的にはアプリの技術的な詳細を調べ、「悪い暗号」を使用しているのか「良い暗号」を使用しているのかを確認するには最終的には自分で調べる必要がある。

一般的に避けるべき暗号と良いとされる暗号を以下に記載する。

  • ハッシュ
    • 良いもの
      • 推奨: SHA-3 または BLAKE2
      • 比較的問題なく使用できるもの:SHA-2(広く使用されている SHA-256 や SHA-512 など)
    • 避けるべきもの:
      • SHA-1、MD5、CRC、MD6
  • ディスク/ファイル暗号化
    • 推奨
      • ハードウェアアクセラレーションあり:AES(Rijndael)256ビット、HMAC-SHA-2 または HMAC-SHA-3(Veracrypt、Bitlocker、Filevault 2、KeepassXC、LUKS はデフォルトでこれを使用しています)。 SHA-3 を推奨。
      • ハードウェアアクセラレーションなし:上記のアクセラレーション付きと同じ、または利用可能な場合は以下を検討してください。
        • ChaCha20
        • XChaCha20(ChaCha20 は Kryptor で使用できますが、残念ながら Veracrypt では利用できません)。
        • Serpent
        • TwoFish
    • 避けるべきもの:上記その他すべて
  • パスワードの保存
    • 推奨: Argon2、scrypt
      • これらが利用できない場合は bcrypt を使用するか、不可能な場合は少なくとも PBKDF2 を使用してください(最後手段)
      • Argon2d は一部のサイドチャネル攻撃に対して脆弱であるため、使用には注意が必要です。 Argon2i または Argon2id を推奨
    • 避けるべきもの: SHA-3、SHA-2、SHA-1、MD5
  • ブラウザセキュリティ (HTTPS)
    • 推奨: TLS 1.3 (理想的には ECH/eSNI 対応の TLS 1.3)、または少なくとも TLS 1.2 (広く使用されている)
    • 避けるべきもの: その他 (TLS 1.1 未満、SSL 3 未満)
  • GnuPG (GPG) によるメッセージ/ファイルの署名
    • 推奨: ECDSA (ed25519)+ECDH (ec25519) または RSA 4096 ビット
      • PGP/GPG のより現代的な代替手段として、Minisign を検討してください
    • 避けるべきもの: RSA 2048 ビット
  • SSH鍵
    • 推奨: ED25519 (推奨) または RSA 4096ビット
    • 避けるべきもの:RSA 2048ビット

Warning

RSAとED25519は残念ながら「量子耐性」とは見なされておらず、まだ解読されていないものの、将来的には解読される可能性が高いです。 RSAが解読されるかどうかの問題ではなく、いつ解読されるかの問題です。これらの暗号よりも優れた可能性がないためこれらの暗号が優先されます。

3.4. 安全なデータのバックアップの方法

3.4.1. 作業内容を安全にバックアップする

安全対策を講じずに、否認可能な暗号化ファイルコンテナ(隠しコンテナを含む)をほとんどのクラウドサービス(iCloud、Google Drive、OneDrive、Dropbox)にアップロードしないこと。
多くのクラウドサービスはファイルのバックアップとバージョン管理を行っており、暗号化コンテナのバックアップとバージョン管理は差分分析に利用され、隠しコンテナの存在を証明するために使用される可能性があるため。

3.4.2. 選択したファイルのオフラインバックアップ

これらのバックアップには、バックアップするファイルを保存するのに十分な容量を持つUSBメモリまたは外付けハードドライブが必要となる。

Veracrypt

利便性、セキュリティ、移植性の観点から、すべてのプラットフォーム(Linux/Windows/macOS)でVeracryptを使用することをお勧めする。

通常のファイルコンテナ

手順は非常に簡単で以下のVeracryptチュートリアルに従うだけで済む。 https://www.veracrypt.fr/en/Beginner%27s%20Tutorial.html

このコンテナには、機密データを手動で保存したり、任意のバックアップユーティリティを使用してOSからコンテナにファイルをバックアップしたりできる。 また、このコンテナは、どこにでも安全に保管可能。

否認機能を備えた隠しファイルコンテナ

この手順では標準のVeracryptボリュームではなく、Veracryptウィザードを使用して隠しVeracryptボリュームを作成する。

隠しボリュームは、既存の標準ボリューム内に作成することも、ウィザードを使用して新規に作成することもできる。

例えば 8GB のコンテナを作成したい場合は以下の通り。

  1. ウィザードにて「外殻ボリューム」を作成し、プロンプトが表示されたらそこにデコイ情報を保存する
  2. デコイファイル(隠したいものではないもの)は、このデコイボリュームに保存する。
  3. Veracrypt は外殻ボリューム内に、実際の隠しファイルを保存するための小さな隠しコンテナ(たとえば 2GB または 4GB)を作成するように要求する。
  4. Veracrypt でマウントするファイルを選択すると、入力したパスワードに応じて、外殻デコイボリュームまたは隠しボリュームがマウントされる。

その後、隠しボリュームをマウントし、機密ファイルを通常通り保存できる。

デコイボリュームで作業を行うと、隠しボリューム内のデータが上書きされる可能性があるため、マウント時に隠しボリュームが上書きされないように保護する必要がある。外側のデコイボリュームをマウントしてコンテンツを更新する際はご注意ください。

保護するには、デコイボリュームをマウントする際に、「マウントオプション」を選択し、「隠しボリュームを保護する」オプションにチェックを入れ、同じ画面で隠しボリュームのパスワードを入力します。その後、デコイボリュームをマウントします。これにより、デコイファイルを変更しても隠しボリュームが上書きされなくなります。
これはVeracryptのドキュメントでも説明されています。

以下のファイルコンテナには特に注意してください。

複数のバージョンを保存したり、ファイルシステムやストレージシステムによってバージョン管理が行われている場所に保存したりしないこと。
これらのファイルコンテナは、保存場所を問わず同一である必要がある。コンテナのバックアップをどこかに保存している場合は、現在使用しているものと完全に同一である必要がある。この予防措置を講じない場合、攻撃者はこのコンテナの異なる2つのバージョンを比較し、隠しデータの存在を証明することができてしまう 。コチラの推奨事項に注意深く従うこと。

このようなコンテナは、ゲストVMからのみマウントし、ホストOSからはマウントしない外付けUSBキーに保存することを勧める。
ファイルに変更を加えるたびに、USBディスクの空き領域を消去し、コンテナのバックアップが各キーとコンピュータ上で完全に同一であることを確認するようにしてください。

またホストOSから隠しボリュームをマウントする場合(非推奨)、使用後はこの隠しボリュームの痕跡をすべて消去する必要がある。これは様々な場所に痕跡が残っている可能性があるため(システムログ、ファイルシステムのジャーナリング、アプリケーションで最近使用したドキュメント、インデックス作成、レジストリエントリなど)。
Virtualboxなどを利用すれば、隠しボリュームを開く/操作する前にVMのスナップショットを作成し、使用後に隠しボリュームを開く/操作する前にスナップショットを復元することができます。これにより、隠しボリュームの存在の痕跡が消去され、問題が軽減されるはず。ホストOSは、USBキーの挿入に関するログは保持しているかもしれませんが、隠しボリュームの使用に関するログは保持していない可能性があります。そのため、ホストOSからこれらのログを使用することはお勧めしません。

3.4.3. フルディスク/システムバックアップ

ディスク全体/フルシステムの安全なバックアップでは主に2つの方法がある。

  • 【非推奨】 バックアップユーティリティ(EaseUS Todo Free、Macrium Reflect などの市販ユーティリティ、または macOS Time Machine、QubesOS Backup、Ubuntu Déjà Dup、Windows Backup などのネイティブユーティリティ)を使用して、稼働中のオペレーティングシステムからバックアップを行う
    • このバックアップは、オペレーティングシステムの実行中に実行できる。
    • このバックアップは、ディスク暗号化ではなく、バックアップユーティリティの暗号化アルゴリズム(ほとんどの場合、信頼する必要があり、制御は不可能)を使用して暗号化される。あるいは、バックアップメディアを別途自分で暗号化することもできる(例えば、Veracrypt を使用)。
    • 一部のユーティリティでは、完全バックアップではなく、差分/増分バックアップが可能。
    • これらのバックアップユーティリティは、暗号化されたファイルシステムをネイティブにサポートしていないため、暗号化されたドライブをそのまま復元することはできない。そのため、これらの方法では、システムを暗号化された状態で復元するために、より多くの作業が必要となる(復元後に再暗号化する必要があります)。
  • 【推奨】ブートドライブからオフラインで実行する方法(無料のオープンソースツール Clonezilla などを使用)
    • このバックアップは、オペレーティングシステムが稼働していない場合にのみ実行できる。
    • このバックアップでは、暗号化されたディスクがそのままバックアップされるため、デフォルトで同じメカニズムで暗号化される(「fire and forget(一度バックアップしてやり直す)」ソリューションに近い)。復元でも暗号化がそのまま復元されるため、復元後すぐにシステムを使用可能になる。
    • この方法では増分/差分バックアップは実行できない(毎度フルバックアップをする必要あり)
    • この方法は管理が最も簡単

Clonezillaイメージを使用してシステムを定期的にバックアップすることをすすめる。実行も復元も簡単で、通常、あらゆるケースで問題なく確実に動作する。また作業時間は多くの人が考えているのとは異なり、それほど遅くはなく、ほとんどのバックアップは保存先メディアの速度にもよりますが、約1時間程度で完了する。

作業中に個々のファイルをバックアップする場合は、前のセクションで説明したように、ファイルコンテナまたは暗号化メディアを直接手動で使用することを勧める。

必要事項と考慮事項

このバックアップにはソースディスクと同等以上の空き容量を持つ外付けドライブが必要となる。
ノートパソコンのディスク容量が250GBの場合、フルイメージバックアップには少なくとも250GBの空き容量が必要。バックアップユーティリティによる圧縮により、この容量は大幅に削減される場合もあるが、安全のため、バックアップドライブには少なくともソースディスクと同等以上の空き容量を確保しておく必要がある。

また、セキュアブートを使用する場合は、Clonezilla AMD64バージョンを含む、セキュアブートをサポートするバックアップユーティリティが必要となる。

バックアップドライブのファイルシステムとしてexFATの使用するように。
exFATは、NTFS/HFS/ext4よりも様々なOS(macOS、Linux、Windows)間の互換性が向上するため。

Linuxの場合

Ubuntuなどの一般的なディストリビューションの場合は、利便性と信頼性の観点から、オープンソースのClonezillaユーティリティの使用を推奨するが、この目的には他にも多くのネイティブLinuxユーティリティや方法が利用可能できる。

Windowsの場合

Windowsの場合はオープンソースで無料のClonezillaユーティリティの使用のみを推奨する。

  • 注意事項
    • TPM423を有効にした状態でBitlocker暗号化を使用する場合、Bitlockerキーを(安全な場所に)どこかに保存しておく必要がある場合がある。これは、HDD/SSDやその他のハードウェア部品が変更された場合にドライブを復元する際に必要となる場合がある。別の方法として、TPMを使用せずにBitlockerを使用するという方法もある。この場合は、このオプションは不要である。ただし、繰り返すが、Bitlockerの使用は推奨しない。
    • 復元後に発生する可能性のある問題を解決できるよう、Veracryptレスキューディスクのバックアップを常に手元に置いておくことを推奨する。このレスキューディスクにはパスフレーズなどの機密情報は含まれていないことに注意が必要である。そのまま保存して構わない。
    • 障害発生後にHDD/SSDを交換した場合、ハードドライブIDが変更されていると、Windows 10/11が起動しなくなる可能性がある。Windows 10/11では起動前に一致するIDが必要となる場合があり、新しいドライブのIDを変更する必要がある可能性があるため、バックアップ前にこのIDを保存しておく必要がある。
    • WindowsでPlausible Deniabilityを使用している場合は、隠しOSパーティションをバックアップしないこと。このイメージは、前述のように、フォレンジックによって隠しボリュームの存在を証明するために使用される可能性がある。Decoy OSパーティションのバックアップは問題ないが、隠しOSを含むパーティションは絶対にバックアップしないこと。

3.4.4. オンラインサービス上での安全なデータバックアップ

オンライン上でのデータ保存の安全性は脅威モデルによって異なる。

推奨方法は以下の通り。

セルフホスティング

匿名ホスティングを利用する場合は、セルフホスティング(例えばNextcloudなど)も可能。

クラウドホスティング

ファイルサイズが小さい場合は、以下を検討されたい。

「主流のプラットフォーム」(Dropbox、Google Drive、OneDriveなど)に機密データを保存する場合は、これらのプラットフォームに偽装コンテナを保存しないこと。また、アップロードする前に、ローカルで暗号化し、メタデータなどをチェックすること。
Veracryptなどのソフトウェア、またはCryptomatorなどのソフトウェアを使用することなどのソフトウェアを使用すること。これらのプラットフォームに暗号化されていないファイルをアップロードしないこと。繰り返すが、これらのファイルには、安全な保護されたVMからのみアクセスすること。

テキストの安全なオンラインでの保存方法

情報(テキスト)のみを保存したい場合は、安全でプライバシーが保護されたpastebin424の利用を推奨する。PrivacyGuides.org が推奨するpastebinを主に利用する。

これらのプロバイダでは、保存したい情報を保存したパスワード保護されたパッドを作成できる。 パッドを作成し、パスワードで保護し、そこに情報を書き込むだけで良い。パッドのアドレスを覚えておくこと。