-
@@ -168,7 +168,7 @@
- Gpg4Win (Windows):
https://gpg4win.org
- - GPGTools (macOS):
https://gpgtools.org
+ - Gpg4Win (Windows):
https://gpg4win.org
+ - GPGTools (macOS):
https://gpgtools.org
- 鍵輪(keyring):公開鍵のデータベース(
pubring.kbx
) + -
+ 鍵輪(keyring):公開鍵のデータベース(
pubring.kbx
) -
秘密鍵(
private-keys-v1.d/*.key
) @@ -407,11 +408,11 @@ Hello world! -----BEGIN PGP SIGNATURE----- 4ePvSxAe7vAIz1eM7Cpf50dPN/XKXw43sxcjd0aKM+clw98LuPVIrr0o4XNot6B1 -WwgmS6hMakPcdOR6w1gNUEFzI37islEJMVdEZOp8g77BPewRIGKFj7OOF7L6Kv6N +(中略) ZUtN8Ok53i1ritOTiSAdwByH/7hSaKQTBJkU5uT5g87HDNilwPQf8+MMCjigwQ== =nyG7 -----END PGP SIGNATURE----- -$ echo '(上の暗号文のコピペ)' | gpg --verify +$ echo '(前のコマンドの出力)' | gpg --verify gpg: Signature made Wed 06 Jul 2022 11:50:00 PM UTC gpg: using EDDSA key 040F3145FCB028003A73B19DCFABC5032E9CC2E8 gpg: Good signature from "Alice" [ultimate] @@ -426,15 +427,9 @@ $ cat ciphertext eVYKv/BEJnEwDY9Q25fuEQIyYYcjqHArOUH301Lc9JJpJdAZjoHg3o/oZofRr314 575Tm0CCXCNwM1Qx+j2keze3VL3Qde8duTzSZs8JjWY1qIuyh2hTkGObLZZuEMpP +(中略) ZH05hm1qxKKcMjxra8nZOUO56G/rOfd3o8Gp/SQPg746Zsrn2k6eKtEL4TEeUFyE -Sr4HuxpKtS8ctBt82i7bgGFFl1omr4qRTvaM68DuyWpLtIQxL0UY6VJkNCM1pFff -GBz3Waa+lKi4R1U8KoIEEaFWEqy04MPjplmj7zvLQRyp5JQT9RmHhg/cTIHhIvRR -KwebVyXnWAjN0uICcXeM9NenA9HDfJQtVispTIwgyolOQgET/0pWk1ilo8M5K8e2 -CYgJWuOCMxTvwzKoMW7L4WR221HCmB1ouwFFJkH6cllQzqP49RydDF66Rnsvu/yz -UBXI05EHaNAlLEc7RMU7r+m0QiZ3j40W/2penc5okir39gZpOYa/PgIbFNh+q+PR -A66o3JdIbcdFI8Z2NYvfC4G/6ag7DkgAJIxYLj2XV4pLZulq+j8EPlMQ26fh2XFB -368BJ3spUamFN+BtSp9q38HFQLc/tN2gvG+syYJo8Tp4Gld+MouNy+lDFO2RDDCF -l60BTOBtX1TCvsNr2fRqqBRuRcGCiuwDKh2R7q6fJR9+0JlUSewQA1r4Gr7Jz+Ze +iMHCSuGYJqFSzEZqM/R2yFnttshBBDqGNKz4+5v9ulWcemdtq/B7YiZdK0N0oUaV w8fqPiCL2XgIpGWJ110= =Prxj -----END PGP MESSAGE----- @@ -474,11 +469,11 @@ $ cat alice-file-backup.[a-d] | gpg -d \→ 外部資料: GNU Privacy Guard 講座:
https://gnupg.hclippr.com/main/index.html
公開鍵
注: OpenPGP においての「公開鍵」(証明書)は本来の「公開鍵」(主鍵や副鍵の鍵データ)と衝突し、実際には証明書を指すため、少し残念な用語です。
-OpenPGP においての公開鍵(public key)は、鍵データ(key material、 厳密な意味での公開鍵)、所有者情報、作成日時、有効期限などの情報で構成される証明書(certificate)です。
+OpenPGP においての公開鍵(public key)とは、鍵データ(key material、 厳密な意味での公開鍵)、所有者情報、作成日時、有効期限などの情報で構成され、証明書(certificate)の役割と果たします。
公開鍵の中に以下の鍵データがあります。
-
-
- 主鍵(primary key):証明書の身元役を果たす鍵。 -
- 副鍵(subkey):署名、暗号化などに使われる鍵。 +
- 主鍵(primary key):証明書の身元役を果たす鍵。 +
- 副鍵(subkey):署名、暗号化などに使われる鍵。
以下の GnuPG コマンドで鍵輪内の公開鍵を表示させます。
@@ -529,12 +524,12 @@ sub ed25519/CFABC5032E9CC2E8 2022-05-31 [S] [expires: 2023-05-31]$ gpg --list-keys [<key>]
しかし、一部の編集をした後に署名が追加されるかもしれず、編集前の情報が上書き(削除)されるとは限りません。編集前の情報を削除するには、編集コマンドの
minimize
サブコマンドで削除できるかもしれません。一部の情報(例えば生成日時)を通常編集できません。鍵指紋と鍵 ID
注:デジタルセキュリティ問題の一種を指す「指紋抽出」もあるため、「鍵指紋」は誤解と不愉快を招くおそれがあり、少し残念な用語です。
-鍵指紋(key fingerprint)は、公開鍵から計算される固定長の数値で、公開鍵の識別子として使われます。鍵共有や他の鍵操作を行う際、 OpenPGP 利用者が鍵指紋で公開鍵を照合・指定します。他人の公開鍵を入手する歳、公開鍵所有者から安全な手段で鍵指紋を入手して、入手した鍵の鍵指紋と照合することでその公開鍵を検証することが重要です。
-鍵指紋は(SHA-1 ハッシュ関数の出力の) 160 ビット数値で、 16 進数で表すと以下のような 40 文字です。公開鍵の鍵データ(key material)、生成日付などの情報から鍵指紋が計算されます。以下のように空白が挿入されて表示されることが多いが、空白はあくまでも人間がより簡単に読み取れるために挿入されるだけで、空白の有無は自由です。
+鍵指紋(key fingerprint)とは、公開鍵から計算される固定長の数値で、公開鍵の識別子として使われます。鍵共有や他の鍵操作を行う際、 OpenPGP 利用者が鍵指紋で公開鍵を照合・指定します。他人の公開鍵を入手する歳、公開鍵所有者から安全な手段で鍵指紋を入手して、入手した鍵の鍵指紋と照合することでその公開鍵を検証することが重要です。
+鍵指紋は(SHA-1 ハッシュ関数の出力の) 160 ビット数値で、 16 進数で表すと以下のような 40 文字です。公開鍵の鍵データ、生成日付などの情報から鍵指紋が計算されます。以下のように空白が挿入されて表示されることが多いが、空白はあくまでも人間がより簡単に読み取れるために挿入されるだけで、空白の有無は自由です。
-A7E6 0E7C 26F1 4BBC 69E0 D382 7633 46CA 665E B5CF
鍵の指定には少し長いため、鍵指紋の後尾の 64 ビット(16 文字)という鍵 ID (key ID)だけで鍵が指定される場合が多いです。例えば、上の鍵指紋に該当する鍵 ID は
+763346CA665EB5CF
です。ただし、鍵 ID だけで入手した公開鍵を検証しては不十分です。鍵の指定には少し長いため、鍵指紋の後尾の 64 ビット(16 文字)という鍵 ID (key ID)だけで鍵が指定される場合が多いです。例えば、上の鍵指紋に該当する鍵 ID は
763346CA665EB5CF
です。ただし、鍵 ID だけで入手した公開鍵を検証しては不十分です。鍵機能
-鍵を生成する際、鍵の機能 (usage、 capability)を指定できます。ただし、鍵署名(certify)の機能は副鍵に与えられず、主鍵は鍵署名の機能を必ず与えられます。
+鍵を生成する際、鍵の機能(usage、 capability)を指定できます。ただし、鍵署名(certify)の機能は副鍵に与えられず、主鍵は鍵署名の機能を必ず与えられます。
@@ -582,7 +577,7 @@ sub ed25519/CFABC5032E9CC2E8 2022-05-31 [S] [expires: 2023-05-31] 鍵に複数の機能(例えば鍵署名とメッセージ署名)を与えることができます。しかし、主鍵に鍵署名以外の機能を与えず、各機能を一つの有効な鍵だけに与えることを推奨します。主鍵に鍵署名以外の機能(例えばメッセージ署名)も与えた場合、その機能を使えなくならずに主鍵の秘密鍵をオフライン保管できません。一方、ある機能が複数の有効な鍵に付いている場合、その機能を使用する際にどちらの鍵が使われるかがわからなくなります。
UID
-UID (user ID、ユーザ ID)は、鍵の所有者情報を表す UTF-8 文字列です。公開鍵は必ず一つ以上の UID を有します。公開鍵を表示する際、 UID も表示されます。また、 GnuPG では、鍵を指定する際、鍵指紋または鍵 ID でなく UID の内容で指定できます。
+UID (user ID、ユーザ ID)とは、鍵の所有者情報を表す UTF-8 文字列です。公開鍵は必ず一つ以上の UID を有します。公開鍵を表示する際、 UID も表示されます。また、 GnuPG では、鍵を指定する際、鍵指紋または鍵 ID でなく UID の内容で指定できます。
よくある UID 形式は以下のように氏名やメールアドレスを含むパターンです。
氏名 (コメント) <メールアドレス>
とはいえ、 OpenPGP では UID の形式が自由で、実名やメールアドレスを指定しなくても大丈夫です。鍵生成の際、 GnuPG は氏名、メールアドレスとコメントを入力するよう求めるが、希望の UID を氏名として入力し、メールアドレスとコメントを空白にすることで、希望の UID を指定できます。ただし、自由な UID を扱いたい場合、
@@ -597,7 +592,7 @@ uid [ultimate] Alice (alice2021) <alice@example.org>しかし、一部の OpenPGP クライアント(特にメールクライアント)は以上のような氏名とメールアドレスの UID 形式を強制し、生成時にその形式を強制したりその形式を持たない UID を公開鍵インポート時に拒否したりします。また、コメントは UID の受け入れの妨げになるかもしれません。そのため、 UID を選ぶ際にこのポイントに注意してください。--allow-freeform-uid
オプションが必要かもしれません。顔写真や他のデータを持つ拡張 UID (厳密には “user attribute” と呼ばれます)があるが、一般的にはこのような拡張 UID を使用しないことを推奨します。
優先特徴リスト
-優先特徴リスト(preference list)は、公開鍵(厳密には UID)が優先するサイファ、ハッシュ関数、圧縮関数などの特徴のリストです。公開鍵を扱う送信クライアントは全ての受信者の公開鍵に指定されている優先特徴リストを考慮し、適切なアルゴリズムを選びます。
+優先特徴リスト(preference list)とは、公開鍵(厳密には UID)が優先するサイファ、ハッシュ関数、圧縮関数などの特徴のリストです。公開鍵を扱う送信クライアントは全ての受信者の公開鍵に指定されている優先特徴リストを考慮し、適切なアルゴリズムを選びます。
OpenPGP クライアントが全アルゴリズムに対応しているわけではないため、送信クライアントが受信公開鍵の全優先特徴リストの共通集合を取ってから適切なアルゴリズムを選ぶ必要があります。全優先特徴リストの共通集合が空集合とならないよう、 3DES サイファ(
3DES
)、 SHA-1 ハッシュ関数(SHA1
)と無圧縮(Uncompressed
)が優先特徴リストに指定されていなければ、 OpenPGP クライアントはこれらを最後の優先項目として扱います。自分のクライアントが以下のアルゴリズムに対応していない場合を除き、以下の優先特徴リストをデフォルトとして指定することを推奨します。広く使われていて、 Tails OS 内 GnuPG のデフォルトのリストです。この優先特徴リストをデフォルトにしたら、今後鍵ペアを生成する時にこの優先特徴リストが公開鍵にコピーされます。他の優先特徴リストを指定したら、 OpenPGP クライアントに対する指紋抽出の手がかりになるため注意してください。
@@ -660,7 +655,7 @@ Really update the preferences for the selected user IDs? (y/N) y
秘密鍵
注: GnuPG 2.2 以前は異なる秘密鍵保存形式を用いました。 GnuPG 2.2 以前から GnuPG 2.2 に秘密鍵を移行するにはエクスポートしてインポートしなおすことが必要かもしれません。
注: GnuPG 2.3 から新しい秘密鍵保存形式が採用される見通しです。本ガイドの一部の内容が将来に古くなる可能性があります。
-秘密鍵(private key または secret key)は公開鍵の鍵データに該当する秘密の鍵データで、公開鍵と合わせると鍵ペアを構成します。
+秘密鍵(private key または secret key)とは、公開鍵の鍵データに該当する秘密の鍵データで、公開鍵と合わせると鍵ペアを構成します。
以下の GnuPG コマンドで秘密鍵を表示させます。
$ gpg [--with-keygrip] --list-secret-keys [<key>]
秘密鍵を表示させると以下のような出力を得ます。
@@ -671,7 +666,7 @@ ssb cv25519/DAD46EDC281F5DC8 2022-05-31 [E] [expires: 2023-05-31] Key fingerprint = 2882 3E91 EF7C 3C48 5043 FA87 DAD4 6EDC 281F 5DC8 ssb ed25519/CFABC5032E9CC2E8 2022-05-31 [S] [expires: 2023-05-31] Key fingerprint = 040F 3145 FCB0 2800 3A73 B19D CFAB C503 2E9C C2E8 -sec
(主鍵)またはssb
(副鍵)の後に#
(見つからない)または>
(スマートカードに保管)が付いている場合、秘密鍵が GnuPG ディレクトリ内に存在しないため使用できません。例えば、主鍵の秘密鍵をオフラインデバイスに保管されている場合、sec#
と表示され、鍵署名やほとんどの鍵編集操作ができません。オプション
+--with-keygrip
で秘密鍵の鍵グリップ(keygrip)も表示させます。鍵グリップは GnuPG 内部の秘密鍵の識別子で、<GNUPGHOME>/private-keys-v1.d/<keygrip>.key
のように秘密鍵のファイル名が鍵グリップに対応します。オプション
--with-keygrip
で秘密鍵の鍵グリップ(keygrip)も表示させます。鍵グリップは GnuPG 内部の秘密鍵の識別子で、<GNUPGHOME>/private-keys-v1.d/<keygrip>.key
のように秘密鍵のファイル名が鍵グリップに対応します。しかし、これは GnuPG 独自の保存形式であることに注意してください。他の OpenPGP クライアントに秘密鍵をエクスポートするには、
--export-secret-keys
または--export-secret-subkeys
コマンドを使用する必要があります。すると、公開鍵に似ている OpenPGP データを得ます。デバイス・クライアント移行またはバックアップの場合以外に秘密鍵をエクスポートする必要がほとんどなく、もちろん秘密鍵を配布すべきではなく、秘密鍵を独占的かつ安全に保管して守るべきです。
鍵管理
@@ -777,7 +772,10 @@ sub ed25519/CFABC5032E9CC2E8 2022-05-31 [S] [expires: 2023-05-31] -----BEGIN PGP PUBLIC KEY BLOCK----- glIXcCzcd9fsMoGs/wn8xhNmjGnzIMLDft93Vq0gtey8g9QPX154HNGH5OPOvCZU +hzenXcL/DwbMoFUH49GvoFS4W21ZwvAQ7u8UTi38HNSkaCWVzogZZQmKhuDvXX+v (中略) +Qwm3FBy/ecc2m3ZSXV9j5K+npp2xHx58MIrWnkp1RAx/sUMz9UXI4m4oISntuL4U +UDkqSw9LjgjLREDCtMReicGUmV2y9dKTGdKu97gu7bxOb0YMZlXccty3LatJBTEb Wwp/nSZg =prkJ -----END PGP PUBLIC KEY BLOCK----- @@ -903,7 +901,7 @@ Wwp/nSZgまた、本セクションではメッセージ署名の検証について説明します。
標準署名
-標準署名(standard signature)はテキストまたはバイナリのメッセージによらず任意のメッセージに使える署名で、ファイルの平文の後に付け加える署名方法です。元のメッセージの復元に OpenPGP クライアントを必要とする形式で、メッセージと署名が出力されます。
+標準署名(standard signature)はテキストまたはバイナリのメッセージによらず任意のメッセージに使える署名で、メッセージの平文の後に付け加えられる署名です。元のメッセージの復元に OpenPGP クライアントを必要とする形式で、メッセージと署名が出力されます。
暗号化と同時に使用でき、その場合、メッセージと署名がまとめて暗号化されます。メッセージを暗号化する場合によく使われる署名方法です。
メッセージに標準署名してからパスワード暗号化するには、以下のコマンドを使用します。(括弧と
...
付きの{
…}...
は署名鍵の指定--local-user <key>
を一つ以上受け付けることを表し、文字通り入力しません)
-$ gpg [--output <out-message>] --sign --symmetric [--armor] \ @@ -915,18 +913,19 @@ Hash: SHA512 Hello world! -----BEGIN PGP SIGNATURE----- -iHUEARYKAB0WIQRFLPUBbLlzlH+zIZuv7OLMt8ZOKwUCYstVWgAKCRCv7OLMt8ZO -K+87APwM+88+X7cLlQ27gm0Q8dvXviHIkkS/H9ybFfStdJn1gAD/SMeBEeoNZWS1 -TxwSN5iXFUECWnZ3vb0dSIOD5mSehA4= -=wLhi +3lhKTwni2JMMZYsLKgA8+tfS7sitY/JqXasU6NRdjQ953vhuO45XyaMgbXLCXlZ4 +(中略) +uWgHaSAbpVcXDd1nfsQrcGJoc/FV+hWCSlb8oOtAejofiwPwVNNJECXVDq6l6fqD +RRGmmHZrvNZzPvSxUosmw= +=1XPA -----END PGP SIGNATURE-----
クリア署名(cleartext signature)はテキストメッセージに使える署名で、テキストメッセージの平文の後に署名を base64 形式で付け加える署名方法です。以上の例に示すように、 OpenPGP クライアントを持っていなくてもメッセージ(
+Hello world!
)を読めるが、 OpenPGP 形式としてメッセージと署名が出力されます。クリア署名(cleartext signature)とは、テキストメッセージに使える署名で、メッセージの平文の後に base64 形式で付け加えられる署名です。以上の例に示すように、 OpenPGP クライアントを持っていなくてもメッセージ(
Hello world!
)を読めるが、 OpenPGP 形式としてメッセージと署名が出力されます。メッセージの改行形式が変換されても(例えば Linux の LF から Windows の CRLF に)署名検証が成功します。テキストメッセージを暗号化せず、電子メールやメッセンジャーや掲示板などを配布経路として使う場合によく使われる署名方法です。
テキストメッセージにクリア署名するには、以下のコマンドを使用します。
$ gpg [--output <out-message>] --clear-sign \ > {--local-user <key>}... [<in-message>]
分離署名
-分離署名(detached signature)はテキストまたはバイナリのメッセージによらず任意のメッセージに使える署名で、署名を別のファイルに出力させる署名方法です。受信者が OpenPGP クライアントを持っていなくても元のメッセージファイルを問題なく扱うことができるが、 OpenPGP クライアントを持っている受信者が署名検証できます。メッセージと署名が切り離されてなければならない場合(例えばソフトウェア)によく使われる署名方法です。
+分離署名(detached signature)とは、テキストまたはバイナリのメッセージによらず任意のメッセージに使える署名で、署名対象メッセージとは切り離された署名です。受信者が OpenPGP クライアントを持っていなくても元のメッセージファイルを問題なく扱うことができるが、 OpenPGP クライアントを持っている受信者が署名検証できます。メッセージと署名が切り離されてなければならない場合(例えばソフトウェア)によく使われる署名方法です。
テキストメッセージに分離署名するには、以下のコマンドを使用します。
@@ -952,7 +951,7 @@ TxwSN5iXFUECWnZ3vb0dSIOD5mSehA4=$ gpg [--output <signature>] --detach-sign [--armor] \ > {--local-user <key>}... [<message>]
- 署名自体が正しい。(
Good signature ...
と表示された)鍵署名
-OpenPGP では公開鍵の完全性と認証を検証可能にするために公開鍵内のデータが署名されます。このような署名は一般的に鍵署名(key signature)と呼ばれます。また、 OpenPGP の公開鍵は事実上の証明書(certificate)であり、鍵署名は保証(certification)とも呼ばれます。例えば、公開鍵内の UID や副鍵を主鍵に結び付ける自己署名(self signature)があります。
+OpenPGP では公開鍵の完全性と認証を検証可能にするために公開鍵内のデータが署名されます。このような署名は一般的に鍵署名(key signature)と呼ばれます。また、 OpenPGP の公開鍵は証明書であるため、このような鍵署名は保証(certification)とも呼ばれます。例えば、公開鍵内の UID や副鍵を主鍵に結び付ける自己署名(self signature)があります。
他人の公開鍵への鍵署名という非自己署名もあります。鍵信用が不十分な場合に、クライアントは利用者に注意したりエラーを出したりすることがあります。鍵署名は他人の公開鍵の鍵信用を成立させる一つの方法です。
他人の公開鍵に署名する前の検証
一般的には、非自己署名は、署名者が以下の 3 点の関係を十分に検証済みで、署名した公開鍵を保証することを示します。
@@ -966,7 +965,7 @@ TxwSN5iXFUECWnZ3vb0dSIOD5mSehA4=鍵所有者、公開鍵と UID との関係を十分に検証した後、検証した UID に鍵署名をします。 GnuPG では以下のコマンドで対象 UID
<target-UID>
と署名者鍵<signer>
(鍵 ID や UID)を指定して鍵署名をします。鍵署名には主鍵の秘密鍵が必要です。$ gpg --local-user <signer> --sign-key <target-UID>
ただし、ドクシング(doxxing)行為に当たるため、他人の公開鍵に署名しても、鍵サーバへの送信を含めて、インターネット上にアップロードしないでください。他人の公開鍵に署名した場合、直接その人に署名した公開鍵を安全に送ることを推奨します。
-信用の輪を積極的に利用しない限り、他人の公開鍵をエクスポートしない方がいいでしょう。他人の公開鍵を信用することを記録したい場合にエクスポートできないローカル署名(local signature)で鍵署名することを推奨します。
+信用の輪を積極的に利用しない限り、他人の公開鍵をエクスポートしない方がいいでしょう。他人の公開鍵を信用することを記録したい場合にエクスポートできないローカル署名(local signature)で鍵署名することを推奨します。
$ gpg --local-user <signer> --lsign-key <target-UID>
鍵署名の検証
公開鍵の署名検証は
@@ -1078,7 +1077,7 @@ TxwSN5iXFUECWnZ3vb0dSIOD5mSehA4=--check-sigs
コマンドで行います。署名検証せずに鍵署名を表示するには
--list-sigs
を使用します。Base64 符号化
-Base64 符号化は、 binary-to-text 符号化の一種で、
+A
–Z
、a
–z
、0
–9
、+
と/
の印刷可能文字(計 64 文字)に変換する符号化方式です。 Binary-to-text 符号化は、バイナリのデータを許容しない通信経路(紙への印刷、電子メール、インターネット掲示板、メッセンジャーなど)での通信に必要です。制御文字や印刷不可能文字を含むバイナリデータを許容しない通信経路(紙への印刷、電子メール、インターネット掲示板、メッセンジャーなど)を使用するには、まずデータを印刷可能文字に変換する必要があります。 Base64 符号化は、バイナリから印刷可能文字への符号化の一種で、
A
–Z
、a
–z
、0
–9
、+
と/
の印刷可能文字(計 64 文字)に変換する符号化方式です。各文字は 6 ビットの値を表し、各 3 バイト(24 ビット)のデータが 4 文字で表されます。元のデータのバイト数が 3 で割れない場合に数ビットが余るため、パディング(padding)バイト数を表す
=
の文字が追加されます。 Base64 符号化されたデータは元のデータより約 4/3 の割合で大きくなります。@@ -1106,7 +1105,7 @@ TxwSN5iXFUECWnZ3vb0dSIOD5mSehA4=
-OpenPGP ではこの符号化を “ASCII armor” と呼ばれます。 OpenPGP の base64 符号化データは以下の構造です。ただし、メタデータには完全性と認証がなく、誰でもが簡単に捏造・改竄・削除できるため、信用すべきではありません。
+OpenPGP ではこの符号化を ASCII armor と呼ばれます。 OpenPGP の base64 符号化データは以下の構造です。ただし、メタデータには完全性と認証がなく、誰でもが簡単に捏造・改竄・削除できるため、信用すべきではありません。
- ヘッダ(データの種類に該当する 1 行):
-
@@ -1144,7 +1143,7 @@ jA0ECQMKFE/lM/98gpr/0kgB4aENgiZM5m7E1rzJjvFlVCysmotbughjfTUKHdM1
- メッセージの内容
鍵サーバ
-鍵サーバ(keyserver)は OpenPGP 利用者が自分の公開鍵の配布に使用でき、鍵交換を促進するサーバです。公開鍵をエクスポートして、鍵サーバにアップロードしたら、他人がいつでも自由にその公開鍵を入手できます。
+鍵サーバ(keyserver)は OpenPGP 利用者が自分の公開鍵の配布に使用でき、鍵交換を促進するサーバです。公開鍵をエクスポートして、鍵サーバにアップロードしたら、他人がいつでも自由にその公開鍵を入手できます。
OpenPGP の普及を進めながら検閲耐性を目的とした SKS (synchronizing key server)同期化鍵サーバネットワークが立ち上がりました。 SKS には以下の特徴があります。
- 分散型とノード間同期化:ネットワーク故障問題や検閲への耐性 @@ -1179,17 +1178,17 @@ jA0ECQMKFE/lM/98gpr/0kgB4aENgiZM5m7E1rzJjvFlVCysmotbughjfTUKHdM1
- 所有者信用(owner trust または “trust”):「この公開鍵の所有者は他の公開鍵をしっかり検証してから鍵署名をする人だ」と信じる時に OpenPGP 利用者自身が各公開鍵(所有者の検証能力)に与える信用。 -
- 鍵信用(key trust または “validity”):「この公開鍵は間違いなくその人が支配するものだ」「信用している人がこの公開鍵を信用している」などと信じる時、鍵署名から公開鍵を信用できると確認できた時などに公開鍵に与える信用。 +
- 所有者信用(owner trust または “trust”):「この公開鍵の所有者は他の公開鍵をしっかり検証してから鍵署名をする人だ」と信じる時に OpenPGP 利用者自身が各公開鍵(所有者の検証能力)に与える信用。 +
- 鍵信用(key trust または “validity”):「この公開鍵は間違いなくその人が支配するものだ」「信用している人がこの公開鍵を信用している」などと信じる時、鍵署名から公開鍵を信用できると確認できた時などに公開鍵に与える信用。
- 直接信用(
direct
):ある利用者自身が各公開鍵の信用を自由自在に決める。(鍵信用は利用者自身が与えた所有者信用だけで決まる) - 信用の輪(
pgp
):互いの公開鍵に積極的に鍵署名されることで出来上がった連鎖を活用して、ある利用者自身が与えた所有者信用と鍵署名から各公開鍵の信用を計算。
@@ -1197,7 +1196,7 @@ jA0ECQMKFE/lM/98gpr/0kgB4aENgiZM5m7E1rzJjvFlVCysmotbughjfTUKHdM1
- *1:
--list-packets
が署名情報を表示する時に表示される。
- - *2:署名者が UID を指定するが、ハッシュ化の対象について文書化されていない。
- - Amnesic:ホストデバイス1に何の情報や跡も残さない記憶喪失。 +
- Amnesic:ホストデバイス1に何の情報や跡も残さない記憶喪失。 -
- Incognito:プライバシーと匿名性を保護。 -
- Live:持ち運び可能な DVD または USB からすぐに起動。 -
- - System: OS2。 +
- Incognito:プライバシーと匿名性を保護。 +
- Live:持ち運び可能な DVD または USB からすぐに起動。 +
- System: OS2。
- GnuPG: PGP 鍵の生成・管理とデータの暗号化・復号化・署名・検証。 @@ -183,7 +182,7 @@
- USB メモリ用(“For USB sticks (USB image)”) @@ -239,7 +238,7 @@
- Tails 開発者の PGP 公開鍵
- “Applications” → “System Tools” → “Synaptic Package Manager”
- インストールしたパッケージ(Additional Software)
- ドットファイル(Dotfiles)
- “Applications” → “Tails” → “Back Up Persistent Storage”
/live/Persistent/TailsData_unlocked
:復元先の Tails- キーボードが危殆化した恐れがある場合、 Tails の仮想キーボードまたはパスワード管理ソフトウェア(例: KeepassXC)を使うことでキーボードの使用をできる限り避ける。
- - APT Tor トランスポート + apt-transport-tor
- OnionShare @@ -127,18 +127,18 @@
https://tb-manual.torproject.org
→http://dsbqrprgkqqifztta6h3w7i2htjhnq7d3qkh3c7gvc35e66rrcv66did.onion
- Tor ネットワーク:インターネット(TCP/IP)接続経路を匿名化するネットワーク。
- Tor ソフトウェア: Tor ネットワークの参加または使用に必要なソフトウェア。
- Tor Project: Tor のネットワークとソフトウェアを管理するアメリカの NPO 法人。
- ガードノード: Tor ネットワークを通過するトラフィックがこのノードから入る、接続元側のノード。 @@ -214,7 +214,7 @@
- セキュリティとプライバシーに十分配慮したアプリケーションだけによるネットワークアクセスを許可した上で Tor 経由にして、それ以外のアプリケーションによるネットワークアクセスを拒否・遮断する。
- オニオン接続における両側の Tor 回線のガードノード
- APT Tor トランスポート: APT (Advanced Package Tool)のためのパッケージの匿名ダウンロードのトランスポート。 +
- apt-transport-tor: APT (Advanced Package Tool)のためのパッケージの匿名ダウンロードのトランスポート。
- Bisq:非中央化の暗号通貨取引所。
https://bisq.network/
- Brave:プライバシーと広告ブロッキングに特化したウェブブラウザ。
https://brave.com/
- F-Droid: Android のソフトウェア管理。
https://f-droid.org/
@@ -326,7 +326,7 @@
- parcimonie:プライバシーを考慮した GnuPG 鍵輪更新ヘルパー。
https://salsa.debian.org/intrigeri/parcimonie/
- Qubes OS:分離でのセキュリティ(security by isolation)に特化したデスクトップ OS。
https://qubes-os.org/
- SecureDrop:報道機関が管理する内部告発用情報提供システム。
https://securedrop.org/
- - Tails:プライバシーと匿名性の保護に特化した持ち運び可能なデスクトップ OS。
https://tails.boum.org/
+ - Tails:プライバシーと匿名性の保護に特化した持ち運び可能なデスクトップ OS。
https://tails.net/
- 一部の暗号通貨ウォレット。
- ファイル共有(Share Files):共有者がオニオンサービスを起動させ、受信者が Tor Browser でファイルをダウンロードする。
- ファイル受信(Receive Files):受信者がオニオンサービスを起動させ、送信者が Tor Browser でファイルを共有する。 @@ -394,9 +394,9 @@
- Tor Browser のインターフェイスを通じて Tor Project からブリッジを要求する。
-
注意点と限界
-
+
- + Firefox ベースに関するセキュリティ問題 +
- Tor Browser のブラウザ指紋 @@ -123,7 +126,7 @@
https://www.torproject.org
→http://2gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion
- 設定済みの Tor クライアント。
- Mozilla Firefox (ブラウザのベース)。 @@ -161,15 +164,19 @@
- あらゆる通信(ウェブトラフィックやメールなど)を暗号で保護する。
- できる限り JavaScript3 を無効化する。 -
- 代替検索エンジンを利用する。(例: DuckDuckGo、 searX) +
- 代替検索エンジンを利用する。(例: DuckDuckGo、 searXNG)
- リンクをクリックする時の HTTP referer 発信に注意し、必要に応じて(URL のコピーペーストで)発信防止をする。
- メタデータ(例:ファイル名、カメラの機種、位置情報、著者など)
- 身元を特定する内容(例: PGP 公開鍵、顔や財産などが写っている写真)
- 身元、場所、時間帯などを絞る内容(例:観光名所で撮った最近の写真) -
- 文章の著者を絞る表現のスタイル(stylometry) +
- 文章の著者を絞る手口となる表現スタイル(stylometry)
Tor Browser とは
-Tor Browser とは、匿名性とプライバシー保護を目的に開発されたウェブブラウザです。以下で構成されます。
+Tor Browser とは、匿名性とプライバシー保護を目的に開発されたウェブブラウザです。以下で構成されます。
注意点と限界
Tor Browser はプライバシーや匿名性を保証しません。 Tor 自体はプライバシーや匿名性を保証しない一方、ウェブブラウザは攻撃対象領域の広い複雑なソフトウェアです。
本セクションでは、 Tor Browser についての一部の注意点や限界について説明します。以下に紹介する一部の点は Tor Browser だけでなく他のウェブブラウザにもあてはまります。
-→ ガイド: Tor 匿名化ネットワーク § 注意点と限界 — Markdown | HTML
+→ ガイド: Tor 匿名化ネットワーク § 注意点と限界 — Markdown | HTML
+Firefox ベースに関するセキュリティ問題
+Tor Browser は Firefox をベースにしているため、 Firefox の多くのセキュリティ問題を受け継ぎます。 Firefox のセキュリティ(エクスプロイト保護)についての批判が指摘されています。
+→ 外部資料: Firefox のセキュリティ問題:
+https://madaidans-insecurities.github.io/firefox-chromium.html
→ 外部資料: “Tor and its Discontents”:
https://medium.com/@thegrugq/tor-and-its-discontents-ef5164845908
Tor Browser のブラウザ指紋
Tor Browser は、利用者が Tor Browser ならではの、できる限り統一したブラウザ指紋をウェブサイトに見せようとします。 Tor Browser のブラウザ指紋は、 Firefox のブラウザ指紋に一部似ているものの、他のブラウザのブラウザ指紋の真似をしたり無作為にしたりしようとしません。
-ちなみに、 Tor Browser 11.0.3 (デスクトップ版)のユーザエージェント文字列は以下のようなもので、 Windows 上の Firefox に該当するユーザエージェント文字列です。
-
+Mozilla/5.0 (Windows NT 10.0; rv:91.0) Gecko/20100101 Firefox/91.0
ちなみに、 Tor Browser 12.5 (デスクトップ版)のユーザエージェント文字列は以下のようなもので、 Windows 上の Firefox に該当するユーザエージェント文字列です。
+Mozilla/5.0 (Windows NT 10.0; rv:102.0) Gecko/20100101 Firefox/102.0
Tor Browser 利用者が Tor Browser の設定を変更すると、ブラウザ指紋が Tor Browser の標準のブラウザ指紋から離れて、それによって匿名性を損なう恐れがあります。
ビューポートの縦と横の長さの調整を控える
-Tor Browser の機能の一つは、ビューポートの縦と横の長さのレターボックス化です。 Tor Browser のウィンドウの縦と横の長さを問わず、ビューポート(ウェブページが表示される長方形)の縦と横の長さは 200px × 100px の倍数に縮まります。この機能はビューポートの縦と横の長さに基づくブラウザ指紋唯一性を軽減する対策です。
-レターボックス化の機能のためビューポートの縦と横の長さは 200px × 100px の倍数に限られるが、それでもビューポートの縦と横の長さの情報は利用者の非匿名化につながる可能性が残ります。 Tor Browser のウィンドウの縦と横の長さの調整とウィンドウの最大化・フルスクリーン化を控えることを推奨します。
+Tor Browser の機能の一つは、ビューポートの縦と横の長さのレターボックス化です。 Tor Browser のウィンドウの縦と横の長さを問わず、ビューポート(ウェブページが表示される長方形)の縦と横の長さは 200px × 100px の倍数に縮まります。この機能はビューポートの縦と横の長さに基づくブラウザ指紋唯一性を軽減する対策です。
+レターボックス化(letterboxing)の機能によってビューポートの縦と横の長さは 200px × 100px の倍数に限られるが、それでもビューポートの縦と横の長さの情報は利用者の非匿名化につながる可能性が残ります。 Tor Browser のウィンドウの縦と横の長さの調整とウィンドウの最大化・フルスクリーン化を控えることを推奨します。
セキュリティとプライバシーの意識は依然として必要
匿名性とプライバシーに特化したブラウザを利用していても、依然として日常的なセキュリティとプライバシーの意識は必要です。以下にのブラウザの利用に関連する対策の具体例をあげます。
-
@@ -189,7 +196,7 @@
非匿名化につながる恐れのある行動・現象に注意
@@ -203,7 +210,7 @@ - ウェブサイト訪問時の唯一性のある行動的情報の生成をできる限り避けるかごまかす。 @@ -316,7 +323,7 @@ $ ./start-tor-browser.desktop
- “Request a Bridge…”: Tor Project からブリッジを要求する。
- “Add a Bridge Manually…”:入手したブリッジを入力する。 -
- HTTP 応答ヘッダ:
Onion-Location: <address>
- HTML 属性:
<meta http-equiv="onion-location" content="<address>" />
@@ -434,7 +441,7 @@ $ ./start-tor-browser.desktop
- ほとんどの設定(接続、ユーザインターフェイス、セキュリティレベル、検索エンジンなど)
- 検索エンジンが保存したキャッシュページ
- ウェブアーカイブ
-
-
- Wayback Machine:
https://web.archive.org/
+ - Wayback Machine:
https://web.archive.org/
- Wayback Machine:
- 代替フロントエンド7
-
-
- Bibliogram (Instagram の代替)
-
-
-
- 公式インスタンス:
https://bibliogram.art/
- - ウェブサイト:
https://git.sr.ht/~cadence/bibliogram/
-
- - 公式インスタンス:
- Invidious (Youtube の代替) +
-
+ Invidious (Youtube の代替)
- ウェブサイト:
https://invidious.io/
- インスタンス一覧:
https://github.com/iv-org/documentation/blob/master/invidious-instances.md
- - ウェブサイト:
- Nitter (Twitter の代替)
-
-
-
- 公式インスタンス:
https://nitter.net/
- - インスタンス一覧:
https://github.com/zedeus/nitter/wiki/instances
-
- - 公式インスタンス:
- Teddit (Reddit の代替)
-
-
-
- 公式インスタンス:
https://teddit.net/
- - インスタンス一覧:
https://codeberg.org/teddit/teddit
-
- 公式インスタンス:
@@ -533,18 +523,31 @@ Referer: <referer-URL>
- Bibliogram (Instagram の代替)
-
- DuckDuckGo +
-
+ Brave
+
-
+
- クリアネット:
https://search.brave.com/
+ - オニオンサービス:
https://search.brave4u7jddbv7cyviptqjc7jusxh72uik7zt6adtckl5f4nwy2v72qd.onion/
+
+ - クリアネット:
-
+ DuckDuckGo
- クリアネット:
https://duckduckgo.com/
- オニオンサービス:
https://duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion/
- - クリアネット:
- searX +
-
+ searXNG
-
-
- プロジェクトのウェブサイト:
https://searx.me/
- - インスタンス一覧(クリアネット):
https://searx.space/
-
- - インスタンス一覧(オニオンサービス):
http://searxspbitokayvkhzhsnljde7rqmn7rvoga6e4waeub3h7ug3nghoad.onion/
+ - ウェブサイト(クリアネット):
https://searx.space/
+ - ウェブサイト(オニオンサービス):
http://searxspbitokayvkhzhsnljde7rqmn7rvoga6e4waeub3h7ug3nghoad.onion/
+
+ - プロジェクトのウェブサイト:
-
+ Whoogle (Google 検索の代替フロントエンド)
+
-
+
https://github.com/benbusby/whoogle-search
- 技術の脆弱なアルゴリズムへの対応による危険動作。(例: OpenPGP や SSH のバックドア楕円曲線や SHA-1 ハッシュ関数への対応)
-
暗号化で作成した暗号文からの平文の入手
@@ -191,14 +191,14 @@
以上の例と利用者の多様性を考えると、間違えようのない暗号ツールが重要であることがわかるでしょう。暗号ツールの単なる理論的セキュリティより、利用者や社会環境を含めて実際の使用事例について考えることが重要です。
暗号の要素
本セクションでは暗号の利用に役立つ暗号の要素について説明します。まず、以下の用語を簡潔に説明します。
-暗号プリミティブ(cryptographic primitive)とは、暗号プロトコルや暗号系の構築に用いられる基本要素です。高度の信頼性がある暗号プリミティブはシステム構築に必要不可欠です。
-暗号アルゴリズム(cryptographic algorithm)とは、ある暗号機能と実現するアルゴリズム(算法)です。
-暗号方式、暗号システムまたは暗号系(cryptosystem)とは、一連のセキュリティ特性を実現するために構築されたシステムで、一連の暗号アルゴリズムを含むシステムです。たいていは鍵生成、暗号化と復号化のアルゴリズムを含むシステムを指します。
-暗号プロトコル(cryptographic protocol)とは、暗号を用いてセキュリティ機能を実現する通信プロトコルです。たいていは実際に通信に利用する暗号方式を指すが、通信以外の使用事例にも役立つかもしれません。
+暗号プリミティブ(cryptographic primitive)とは、暗号プロトコルや暗号系の構築に用いられる基本要素です。高度の信頼性がある暗号プリミティブはシステム構築に必要不可欠です。
+暗号アルゴリズム(cryptographic algorithm)とは、ある暗号機能と実現するアルゴリズム(算法)です。
+暗号方式、暗号システムまたは暗号系(cryptosystem)とは、一連のセキュリティ特性を実現するために構築されたシステムで、一連の暗号アルゴリズムを含むシステムです。たいていは鍵生成、暗号化と復号化のアルゴリズムを含むシステムを指します。
+暗号プロトコル(cryptographic protocol)とは、暗号を用いてセキュリティ機能を実現する通信プロトコルです。たいていは実際に通信に利用する暗号方式を指すが、通信以外の使用事例にも役立つかもしれません。
公開鍵暗号
他の要素を説明する前に、まず公開鍵暗号を簡潔に説明しておきます。
-公開鍵暗号(public key cryptography)または非対称暗号(asymmetric cryptography)とは、数学的に関係づけられた公開鍵と秘密鍵を用いた暗号です。秘密鍵から公開鍵を簡単に導出できるが、その逆が困難であるような数学的関係を有します。公開鍵が使われることから「公開鍵暗号」の名称が由来し、暗号化と復号化(または署名と検証)の際に異なる鍵を使うことから「非対称暗号」の名称が由来します。
-数学的に関係づけられた公開鍵と秘密鍵は鍵ペアまたは鍵対(keypair)と呼びます。
+公開鍵暗号(public key cryptography)または非対称暗号(asymmetric cryptography)とは、数学的に関係づけられた公開鍵(public key)と秘密鍵(private key)を用いた暗号です。秘密鍵から公開鍵を簡単に導出できるが、その逆が困難であるような数学的関係を有します。公開鍵が使われることから「公開鍵暗号」の名称が由来し、暗号化と復号化(または署名と検証)の際に異なる鍵を使うことから「非対称暗号」の名称が由来します。
+数学的に関係づけられた公開鍵と秘密鍵は鍵ペアまたは鍵対(keypair)と呼ばれます。
公開鍵は、名称どおり、公開しても問題がありません。公開鍵を持っている人は秘密鍵所有者宛に秘密を送ったり秘密鍵所有者が署名したデータを検証したりできます。
一方、秘密鍵を安全に保管する必要があります。秘密鍵が流出すれば、その鍵を入手する他人は対応する公開鍵宛に暗号化した全てのメッセージを読んだり本来の秘密鍵所有者をなりすましたりできるようになってしまいます。
以下は公開鍵暗号アルゴリズムの代表例です。
@@ -214,13 +214,13 @@→ 外部資料: RSA 暗号:
https://invidious.snopyta.org/watch?v=HKDyUELFdXs
→ 外部資料:楕円曲線暗号:
https://invidious.snopyta.org/watch?v=jxmN8LqyTR4
暗号化
-暗号化(encryption)とは、鍵(公開鍵、パスワードなど)を用いてある情報を読めないようにすることで、秘匿性を実現する手法です。暗号化された情報は「暗号文」(ciphertext)と呼ばれ、もとの情報は「平文」(ひらぶん、 plaintext)または「明文」(cleartext)と呼ばれます。暗号化は、鍵を用いて平文を暗号文に変換する行為です。復号化(decryption)は暗号化の逆で、秘密の鍵(秘密鍵、パスワードなど)を用いて暗号文を平文に戻す行為です。
+暗号化(encryption)とは、秘密情報(例:鍵やパスワード)を用いて(公開鍵暗号化の場合に公開鍵を(も)用いる)ある情報を読めないように変換することで、秘匿性を実現する手法です。暗号化された情報は暗号文(ciphertext)と呼ばれ、もとの情報は平文(ひらぶん、 plaintext)または明文(cleartext)と呼ばれます。暗号化は、平文を暗号文に変換する行為です。復号化(decryption)は暗号化の逆で、秘密情報を用いて暗号文を平文に戻す行為です。
情報を読めないようにする対象は一般的には第三者(当事者以外)だけだが、当事者(例えば情報を暗号化した人自身)も情報を読めないようにする使用事例もあります。
暗号化には種類があります。
暗号化のプリミティブ
対称鍵暗号化
-対称鍵暗号化(symmetric encryption)または共通鍵暗号化(common key encryption)とは、暗号化と復号化に共通する鍵(共通鍵)を用いた暗号化です。対称鍵暗号化アルゴリズムはサイファ(cipher)とも呼ばれます。
+対称鍵暗号化(symmetric encryption)または共通鍵暗号化(common key encryption)とは、暗号化と復号化に共通する鍵(共通鍵)を用いた暗号化です。対称鍵暗号化アルゴリズムはサイファ(cipher)とも呼ばれます。
- ブロックサイファ(block cipher):ブロック単位(例: 128 ビット)の情報を読み込んで暗号化する。
- ストリームサイファ(stream cipher):小さな単位(例: 1 バイト)の情報でも次々に暗号化できる。 @@ -241,29 +241,29 @@
- 決定性(determinism):同じメッセージをハッシュ化したら同じハッシュ値を得ること。 -
- 無作為性(randomness):メッセージが極わずかでも変化したら全く違うハッシュ値を得ること。 -
- 原像計算困難性(pre-image resistance): +
- 決定性(determinism):同じメッセージをハッシュ化したら同じハッシュ値を得ること。 +
- 無作為性(randomness):メッセージが極わずかでも変化したら全く違うハッシュ値を得ること。 +
-
+ 原像計算困難性(pre-image resistance):
- 第 1 原像計算困難性:与えられたハッシュ値を有するメッセージを探すことが困難であること。
- 第 2 原像計算困難性:与えられたメッセージと同じハッシュ値を有する別のメッセージを探すことが困難であること(弱衝突耐性)。
- - 衝突耐性(collision resistance):同じハッシュ値を有する異なるメッセージを探し出すことが困難であること(強衝突耐性)。 +
- 衝突耐性(collision resistance):同じハッシュ値を有する異なるメッセージを探し出すことが困難であること(強衝突耐性)。
- 完全性:検証者が所有するメッセージと署名されたメッセージが一致すること。 @@ -359,7 +361,7 @@ alice.txt: OK
- 完全性:検証者が所有するメッセージと MAC で保護されたメッセージが一致すること。 @@ -384,15 +386,15 @@ alice.txt: OK
- エラー(error):与えられた情報に不備があった場合。
- 拒否(rejected):与えられた情報の整合性を確定できなかった場合。
- 承認(approved):与えられた情報の整合性を確定した場合。
- 特定の形式を満たす鍵:パスワードや鍵長が合わない鍵などから希望の形式・鍵長の秘密鍵を導出。(例:パスワードから 256 ビットの鍵を導出)
- 秘密情報を得ようとする攻撃に耐える鍵:弱いかもしれない秘密情報(例:短い鍵)から秘密情報を得ようとする攻撃に耐える鍵を導出。鍵ストレッチングと呼ばれる。
- 複数の鍵:秘密でない情報を付加したりハッシュ化を繰り返したりすることで、同じ秘密情報から複数の鍵を導出。
- Argon2 @@ -488,7 +490,7 @@ lenjiqlnfi
- *1:アカウントのパスワードをサーバ上に保存しない。
- *2:実際には 32 ビットより長い値を使うべき。
- レインボーテーブルの事前算出が実行不可能になるため、レインボーテーブル6を用いた攻撃からパスワードを保護する(ただし、弱いパスワードを保護しない)。 @@ -497,8 +499,8 @@ lenjiqlnfi
-
序文
- — Markdown | HTML + — Markdown | HTML
(最終更新: 2022-08-12) -
デジタルセキュリティの概念
- — Markdown | HTML + — Markdown | HTML
- (最終更新: 2022-02-28) + (最終更新: 2023-08-17) -
セキュリティ計画
- — Markdown | HTML + — Markdown | HTML
(最終更新: 2021-12-29 (原文更新: 2021-02-02)) -
Tor 匿名化ネットワーク
- — Markdown | HTML + — Markdown | HTML
(最終更新: 2021-12-29) -
Tor Browser
- — Markdown | HTML + — Markdown | HTML
- (最終更新: 2023-01-27) + (最終更新: 2023-08-17) -
Tails を用いた自由かつ匿名コンピューティング
- — Markdown | HTML + — Markdown | HTML
- (最終更新: 2023-01-27) + (最終更新: 2023-08-17) -
暗号技術入門
- — Markdown | HTML + — Markdown | HTML
(最終更新: 2022-08-11) -
OpenPGP と GnuPG
- — Markdown | HTML + — Markdown | HTML
- (最終更新: 2023-02-20) + (最終更新: 2023-08-17) -
用語集
- — Markdown | HTML + — Markdown | HTML
(最終更新: 2022-02-28) -
外部資料
- — Markdown | HTML + — Markdown | HTML
- (最終更新: 2023-01-27) + (最終更新: 2023-08-17) - - 全ての情報と通信を効果的な技術で保護する + 全ての情報と通信を効果的な措置で保護する
- 記録した情報を最低限にし、不要な情報を削除する @@ -86,18 +86,18 @@
- 失敗した場合の影響はどれくらい悪いか?(影響)
- 可能な影響を防ごうとするためにどれくらい苦労する意志があるか?(意志、能力、制約) -
- デバイスの電源を完全に切る。
- デバイスを持ち歩かない。 -
- マイク、カメラ、無線、スピーカーなどを物理的に取り除くか無効化する。 +
- マイク、カメラ、無線、スピーカー、移動検出センサなどを物理的に取り除くか無効化する。
- 森林の中や他の監視されていない場所で打ち合わせ、共同作業、懇親会などを行う。
- 情報、通信、ファイルシステムなどを暗号化する。
- 強いパスワードや多要素認証5で情報やアカウントを保護する。 -
- 情報、通信、デバイスなどを隠匿する。 +
- 情報、通信、デバイスなどの存在や外見や位置を隠匿する。
- 錠、金庫などを用いて物理的アクセスを制御する。
- 保存している不要な情報を削除し、情報を定期的に管理する。
- 区分とそれに入る物と情報を事前に計画する。 @@ -164,17 +164,17 @@
- ウェブサイトまたは電子メール内のリンクは信用できるか詐欺なのか?
- PRISM Break:
https://prism-break.org/
- Privacy Tools:
https://privacy-tools.io/
- switching.software:
https://swiso.org/
- セキュリティ計画の見直し:脅威モデルの確認、対策の妥当性確認など。 @@ -185,11 +185,11 @@
- 対策のテスト:漏洩テスト、侵入テスト、バックアップ復元テストなど。
- 現金、 ATM カード、クレジットカードなど
- 供給チェーン -
- 財産(asset)4といえば、宝石類、電子製品、金融書類、パスポート、写真などを含む可能性があります。 +
- + 財産(asset)4といえば、宝石類、電子製品、金融書類、パスポート、写真などを含む可能性があります。
- 敵といえば、泥棒、ルームメイト、来客などを含む可能性があります。 +
- + 敵(adversary)5といえば、泥棒、ルームメイト、来客などを含む可能性があります。 +
- 近所周辺の泥棒の経歴は?ルームメイト・来客はどこまで信用できるか?敵の能力はどの程度か?考慮すべきリスクは何か? +
- 近所周辺の不法侵入の経歴は?ルームメイト・来客はどこまで信用できるか?敵の能力(capability)6はどの程度か?考慮すべきリスクは何か? +
-
-
脅威モデル(threat model):どの可能な脅威を重要視するかを決めるためにどのように自分のデータを保護したいかを考える方法。あらゆるたくらみや敵から保護することは不可能なため、どの人が自分のデータを手に入れたいだろうか、何を得たいだろうか、そしてどのようにそれを得るだろうかに集中すべきです。防止計画に対象にする可能な脅威のセットを考え出すことは脅威モデルまたはリスク評価と呼ばれます。↩︎
+脅威モデル(threat model):どの可能な脅威を重要視するかを決めるためにどのように自分のデータを保護したいかを考える方法。あらゆるたくらみや敵から保護することは不可能なため、どの人が自分のデータを手に入れたいだろうか、何を得たいだろうか、そしてどのようにそれを得るだろうかに集中すべきです。防止計画に対象にする可能な脅威のセットを考え出すことは脅威モデリングまたはリスク評価と呼ばれます。↩︎
-
財産(asset):脅威モデルにおいて、保護の対象となるデータやデバイス。↩︎
-
-
財産(asset):脅威モデルにおいて、保護の対象となるデータやデバイス。↩︎
+敵(adversary):自分のセキュリティ目標を弱体化させようとしている人または組織。敵は状況によって異なります。例えば、カフェのネットワークを見張っている犯罪者、学校の公共コンピュータで自分のアカウントに不正ログインするかもしれないクラスメートなどが心配かもしれません。敵はしばしば仮想したものです。↩︎
-
-
財産(asset):脅威モデルにおいて、保護の対象となるデータやデバイス。↩︎
+能力(capability):(本ガイドにおける意味合いでの)攻撃者の能力とは、目標達成のために攻撃者ができること。例えば、国の安全保障局は通話を傍受する能力を持つかもしれない一方、隣人は窓から自分を観察する能力を持っているかもしれません。ある能力を持っているということは、攻撃者がそれを利用するとは限りません。その可能性と対策を考慮すべきだということです。↩︎
-
-
データ(data):典型的にデジタルな形として保存されるあらゆる種類の情報。データはドキュメント、画像、鍵、プログラム、メッセージや他のデジタル情報・ファイルを指します。↩︎
+財産(asset):脅威モデルにおいて、保護の対象となるデータやデバイス。↩︎
-
-
脅威(threat):コンピュータセキュリティにおいて、データを守る対策を弱体化させる恐れがある可能な事象。脅威といえば、意図的な事象(攻撃者が考案したもの)も不慮の事象(例:起動したコンピュータを無防備な状態で放置する)もあります。↩︎
+財産(asset):脅威モデルにおいて、保護の対象となるデータやデバイス。↩︎
-
-
敵(adversary):自分のセキュリティ目標を弱体化させようとしている人または組織。敵は状況によって異なります。例えば、カフェのネットワークを見張っている犯罪者、学校の公共コンピュータで自分のアカウントに不正ログインするかもしれないクラスメートなどが心配かもしれません。敵はしばしば仮想したものです。↩︎
+データ(data):典型的にデジタルな形として保存されるあらゆる種類の情報。データはドキュメント、画像、鍵、プログラム、メッセージや他のデジタル情報・ファイルを指します。↩︎
-
-
能力(capability):(本ガイドにおける意味合いでの)攻撃者の能力とは、目標達成のために攻撃者ができること。例えば、国の安全保障局は通話を傍受する能力を持つかもしれない一方、隣人は窓から自分を観察する能力を持っているかもしれません。ある能力を持っているということは、攻撃者がそれを利用するとは限りません。その可能性と対策を考慮すべきだということです。↩︎
+脅威(threat):コンピュータセキュリティにおいて、データを守る対策を弱体化させる恐れがある可能な事象。脅威といえば、意図的な事象(攻撃者が考案したもの)も不慮の事象(例:起動したコンピュータを無防備な状態で放置する)もあります。↩︎
-
-
リスク評価(risk assessment):コンピュータセキュリティにおいて、脅威から防御するどれくらいの努力をかけるべきかを知るべく、リスク解析は脅威が発生する確率を計算すること。データの支配またはアクセスを失う方法は様々かもしれないが、ある方法は他より可能性が低いでしょう。リスク評価を行うことは、どの脅威を重要視し、どの脅威がありそうにないか無害すぎる(または対策が無理な)ため心配に値しないだろうかを決めることです。脅威モデルを参照。↩︎
+敵(adversary):自分のセキュリティ目標を弱体化させようとしている人または組織。敵は状況によって異なります。例えば、カフェのネットワークを見張っている犯罪者、学校の公共コンピュータで自分のアカウントに不正ログインするかもしれないクラスメートなどが心配かもしれません。敵はしばしば仮想したものです。↩︎
-
-
リスク評価(risk assessment):コンピュータセキュリティにおいて、脅威から防御するどれくらいの努力をかけるべきかを知るべく、リスク解析は脅威が発生する確率を計算すること。データの支配またはアクセスを失う方法は様々かもしれないが、ある方法は他より可能性が低いでしょう。リスク評価を行うことは、どの脅威を重要視し、どの脅威がありそうにないか無害すぎる(または対策が無理な)ため心配に値しないだろうかを決めることです。脅威モデルを参照。↩︎
+能力(capability):(本ガイドにおける意味合いでの)攻撃者の能力とは、目標達成のために攻撃者ができること。例えば、国の安全保障局は通話を傍受する能力を持つかもしれない一方、隣人は窓から自分を観察する能力を持っているかもしれません。ある能力を持っているということは、攻撃者がそれを利用するとは限りません。その可能性と対策を考慮すべきだということです。↩︎
+
+ -
+
リスク評価(risk assessment):コンピュータセキュリティにおいて、脅威から防御するどれくらいの努力をかけるべきかを知るべく、リスク解析は脅威が発生する確率を計算すること。データの支配またはアクセスを失う方法は様々かもしれないが、ある方法は他より可能性が低いでしょう。リスク評価を行うことは、どの脅威を重要視し、どの脅威がありそうにないか無害すぎる(または対策が無理な)ため心配に値しないだろうかを決めることです。脅威モデリングを参照。↩︎
+
+ -
+
リスク評価(risk assessment):コンピュータセキュリティにおいて、脅威から防御するどれくらいの努力をかけるべきかを知るべく、リスク解析は脅威が発生する確率を計算すること。データの支配またはアクセスを失う方法は様々かもしれないが、ある方法は他より可能性が低いでしょう。リスク評価を行うことは、どの脅威を重要視し、どの脅威がありそうにないか無害すぎる(または対策が無理な)ため心配に値しないだろうかを決めることです。脅威モデリングを参照。↩︎
信用
何かしらの方法で公開鍵を手動で確認したり相手を個人に知っていたりしている場合に自信をもってその人の公開鍵が使えるが、個人的に知らない人や会ったことさえない人の公開鍵をどうやって信用できるでしょうか?
-OpenPGP では利用者が他の利用者の公開鍵に署名することで、信用(trust)を示したり与えたりします。他人の公開鍵を何かしらの方法で確認できた後に自分の主鍵でその公開鍵に鍵署名することで、「この公開鍵を信用します」という情報をその公開鍵に付加できます。一方、公開鍵をインポートする際、公開鍵に付加された鍵署名を検証することで信用度を評価できます。
+OpenPGP では利用者が他の利用者の公開鍵に署名することで、信用(trust)を示したり与えたりします。他人の公開鍵を何かしらの方法で確認できた後に自分の主鍵でその公開鍵に鍵署名することで、「この公開鍵を信用します」という情報をその公開鍵に付加できます。一方、公開鍵をインポートする際、公開鍵に付加された鍵署名を検証することで信用度を評価できます。
この習慣が実践されている代表例といえば、 Debian コミュニティです。 Debian 貢献者の公開鍵はその人の身元証明書らしきものとして扱われ、年例の DebConf (Debian カンファレンス)で鍵署名パーティ(key signing party)が開催されることが多いです。
→ 外部資料:鍵署名パーティ:
https://debconf22.debconf.org/talks/51-continuous-key-signing-party-introduction/
所有者信用と鍵信用
このように OpenPGP 利用者が互いの公開鍵に署名することで、公開鍵の連鎖が出来上がります。その連鎖を基に、信用の輪という信用モデルを用いて他人の公開鍵の信用度を評価できます。 OpenPGP では、信用の輪に関する以下の信用概念があります。
-
-
信用モデル
-信用の輪(web of trust)、直接信用(direct trust)などという信用モデル(trust model)があります。オプション
+--trust-model
で信用モデルを指定します。信用の輪(web of trust)、直接信用(direct trust)などという信用モデル(trust model)があります。オプション
--trust-model
で信用モデルを指定します。公開鍵が OpenPGP クライアントに最終的に信用されるかは、信用モデルから導出された鍵信用次第です。
信用度
-鍵信用が完全信用(full trust)以上ではない場合、クライアントは利用者に注意したりエラーを返したりなどをします。不完全信用(marginal trust)という信用度は、所有者信用の不完全な公開鍵が他人の公開鍵に署名した時に与えられます。信用しない(never trust)という信用度も与えることも可能です。その他に、失効した、期限が切れた、信用不明などの信用度もあります。
+鍵信用が完全信用(full trust)以上ではない場合、クライアントは利用者に注意したりエラーを返したりなどをします。不完全信用(marginal trust)という信用度は、所有者信用の不完全な公開鍵が他人の公開鍵に署名した時に与えられます。信用しない(never trust)という信用度も与えることも可能です。その他に、失効した(revoked)、期限が切れた(expired)、信用不明(unknown trust)などの信用度もあります。
@@ -1379,7 +1378,7 @@ jA0ECQMKFE/lM/98gpr/0kgB4aENgiZM5m7E1rzJjvFlVCysmotbughjfTUKHdM1 秘密鍵の守秘は重大
OpenPGP のセキュリティは秘密鍵が守られることが大前提となっています。秘密鍵が他人に漏れるように危殆化したら、その他人が元の鍵所有者の公開鍵で暗号化したメッセージを復号化したり元の秘密鍵所有者をなりすましたりできるようになってしまいます。また、 OpenPGP は前方秘匿(forward secret)な暗号系ではないため、秘密鍵が危殆化したら全ての暗号文の秘匿性に影響を及ぼし、暗号文を収集する攻撃者に対して危殆化の影響が大きいです。
そのため、秘密鍵は鍵所有者が独占的かつ安全に保管し、秘密鍵を厳重に守るべきです。 OpenPGP の秘密鍵はパスワードで保護されるが、その保護だけに頼っては危険でしょう。また、 OpenPGP の前方秘匿の欠如への対策として、定期的に新しい鍵を生成・採用した方がいいかもしれません。
-→ ガイド:暗号技術入門 § 自分の秘密鍵を自分で保管する — Markdown | HTML
+→ ガイド:暗号技術入門 § 自分の秘密鍵を自分で保管する — Markdown | HTML
しかし、一部の OpenPGP クライアントは以上の秘密鍵保管原則を破ります。典型的な例といえば、秘密鍵をサービス提供者のサーバにアップロードさせる OpenPGP 対応ウェブメールクライアントです。この場合、サービス提供者は悪質なウェブクライアントを利用者に送ってパスワードを盗み取るなどして利用者の秘密鍵を不正に入手できるため、安全ではないと言えるでしょう。
秘密鍵が危殆化した後に鍵所有者が該当する公開鍵を失効させていない間に、危殆化した鍵所有者の公開鍵を他人が不意に使い続けてしまいます。万が一秘密鍵が危殆化した場合、その鍵をもう信用すべきではないことを示すよう鍵を失効させるべきです。
メタデータをほぼ全く保護しない
@@ -1405,7 +1404,7 @@ Comment: GPGTools - http://gpgtools.org問題の原因はおそらく一般人の暗号概念とデジタルの理解不足、セキュリティ意識の低さ、クライアントの使い難さとオプションの過多の何かしらの組み合わせでしょう。
発案されてから数十年が経ったものの、主にこの問題によって OpenPGP の普及は特定のグループ、セキュリティ要件の高い人、セキュリティ専門家、ソフトウェア開発者などにとどまり、一般人に及んでいません。
メールクライアントの実装問題に加えて、この使用困難さとミスしやすさの問題によって OpenPGP メールの不便さと危険性が更に高まります。署名の確認ミスによるなりすましや改竄のリスク、暗号化の使用ミスまたは有効化忘れによる平文の流出、鍵の期限が切れたか失効したかの場合への対応の混乱、鍵管理の問題など、様々な落し穴があります。
-→ ガイド:暗号技術入門 § 不便性や使用ミスによるセキュリティリスク — Markdown | HTML
+→ ガイド:暗号技術入門 § 不便性や使用ミスによるセキュリティリスク — Markdown | HTML
鍵署名と信用の輪に関する問題
OpenPGP では「この公開鍵を信用します」という他人の公開鍵への署名をすることができ、鍵署名の連結に基づく信用の輪から信用の計算が可能です。
しかし、信用の輪と鍵署名には問題があり、一般的には推奨しません。
@@ -2482,7 +2481,9 @@ Subject: ... D290tRvIZsNv7lKDVIl+OBa8eITgNGz61L0IbjdTd0MrfSeg+H1CUZIbbH+E6kq0 KSwc/5gZ1JcGBJqpDZFDqG6BD0PzcIlnHrUrtdPLlmM68TaBZHDZAFtfkBAM8Nwk +(中略) kixmj9H3/oRJPY3im7i6A1gJ3Gen2k0sp9IkGUy87WWfTyQxzt66TqZgrTMJ8fWg +368BJ3spUamFN+BtSp9q38HFQLc/tN2gvG+syYJo8Tp4Gld+MouNy+lDFO2RDDCF GHoGoe1J9Neaz8k= =GIwg -----END PGP MESSAGE----- @@ -2494,6 +2495,7 @@ b5oQ7/mx2rfWyzpzVOi4P3cQPZDvQsORh+D75CSI+izscPDvzciMAzxEfeoFyGM+ MYmr2E6c2p6hASpI5K3CzaNjmWii8fCK9OgaLXUmU5xSYHY93IaxZOSDzL5p7C8+ nTZKiiGm7srnc3iZnBNvQxODvlBG7BHYOejlRU1wVX2jB4kI7wBDnI/d/nA5/bS1 F9DiLRgdt/0aOMSu+h40Hk09tSlOJzS2pEu7L3BpLwaZTv5AbEnJtPkzlxEB2tdc +(中略) lkUwBTNG5MImOe724I8mvfVj9W9wVNdTvNIZpFpCEj/gayGkNHSw3RqOWglMm6UK PlsDnI5AjHxVAX0kjtE4xAREPNtQlhPWXQHKnaXfLCdZrqwUly2zPI1pF18oVr4h u+giH9YIMc7wLjZWkiMiCiOBDKqdQ71T8U9YZ20SwwrsVwx9m29S4CbjxWmvw/I6 @@ -2685,28 +2687,28 @@ J7h9kBxb/yFhkPcyUlMc0x10 検証度不明の証明書保証 (generic certification) 保証者の主鍵 -保証対象 UID*2 +主鍵の公開鍵データと保証対象 UID デフォルトの非自己署名種類。 0x11 検証なしの証明書保証 (persona certification) 保証者の主鍵 -保証対象 UID*2 +主鍵の公開鍵データと保証対象 UID 0x12 簡易検証済みの証明書保証 (casual certification) 保証者の主鍵 -保証対象 UID*2 +主鍵の公開鍵データと保証対象 UID 0x13 確信検証済みの証明書保証 (positive certification) 保証者の主鍵 -保証対象 UID*2 +主鍵の公開鍵データと保証対象 UID 自己署名にも用いられる。 @@ -2748,7 +2750,6 @@ J7h9kBxb/yFhkPcyUlMc よくある OpenPGP データのパケット種類
@@ -2950,7 +2951,7 @@ max-cert-depth 5
アリスとボブ
- +連絡先
PGP 鍵
diff --git a/ja-html/alice2bob-ja-Tails-2.1.html b/ja-html/alice2bob-ja-Tails-2.2.html similarity index 90% rename from ja-html/alice2bob-ja-Tails-2.1.html rename to ja-html/alice2bob-ja-Tails-2.2.html index 8b34463..9da8f2a 100644 --- a/ja-html/alice2bob-ja-Tails-2.1.html +++ b/ja-html/alice2bob-ja-Tails-2.2.html @@ -10,10 +10,10 @@1D3E 313C 4DB2 B3E0 8271 FC48 89BB 4CBB 9DBE 7F6D
Tails を用いた自由かつ匿名コンピューティング
アリスとボブ
-バージョン: 2.1
-本ガイドの最終更新: 2023-01-27
+バージョン: 2.2
+本ガイドの最終更新: 2023-08-17
Tails 5.9
- +
-
@@ -121,19 +121,18 @@
注:本ガイドに記載した Tails ドキュメンテーション(
+https://tails.boum.org/doc/
…)への一部の外部リンクは、 Tails 内からもインターネットなしで閲覧できます。 “Applications” → “Tails” → “Tails documentation” の手順で Tails 内のドキュメンテーションを閲覧します。ただし、 Tails ウェブサイトと Tails 内のドキュメンテーションは完全一致しません。注: Tails の公式サイト URL が 2023 年 7 月に変わりました。
+https://tails.boum.org/
→https://tails.net/
注:本ガイドに記載した Tails ドキュメンテーション(
https://tails.net/doc/
…)への一部の外部リンクは、 Tails 内からもインターネットなしで閲覧できます。 “Applications” → “Tails” → “Tails documentation” の手順で Tails 内のドキュメンテーションを閲覧します。ただし、 Tails ウェブサイトと Tails 内のドキュメンテーションは完全一致しません。注:リリース 5.8 では Tails が大きく変化し、それに伴って様々な使用上の問題が報告されました。 Tails 5.7 またはそれ以前からの更新を検討している場合、 Tails 5.8 リリース記事内の “Known issues” を参考にしてください。
-→ 外部資料: Tails 5.8 問題:
+https://tails.boum.org/news/version_5.8/index.en.html#issues
→ 外部資料: Tails 5.8 問題:
https://tails.net/news/version_5.8/index.en.html#issues
Tails とは
-Tails (テイルス)とは、プライバシーと匿名性の保護に特化したデスクトップ OS です。名称の由来は “The Amnesic Incognito Live System” の頭文字です。
+Tails (テイルス)とは、プライバシーと匿名性の保護に特化したデスクトップ OS です。名称の由来は “The Amnesic Incognito Live System” の頭文字です。
-
-
特徴
@@ -145,12 +144,12 @@Tails はプライバシーと匿名性を保護しようとします。
基本的には白紙の状態で始まり、 OS の唯一の特徴を最小限にします。そのため、 Tails 利用者同士の区別を困難にしたり、利用者の作業が OS の唯一の特徴によって汚染されるリスクを最小限にします。
ほぼ全てのトラフィックを Tor (匿名化ネットワーク)経由にすることで、ネットワーク上の匿名性を保護しようとします。その上、 Tor Browser を用意しているため、簡単に匿名ウェブ閲覧できるようになっています。
-→ ガイド: Tor 匿名化ネットワーク — Markdown | HTML
+→ ガイド: Tor 匿名化ネットワーク — Markdown | HTML
Tails はネットワークに接続する時に、ホストデバイスのネットワークデバイスの MAC アドレス3をデフォルトでごまかします。利用者が自身のデバイスを他人のネットワークに接続する場合、デバイスを特定する唯一の MAC アドレスをネットワークから保護するため重要です。
その代わりに、ネットワークが不要な場合、 STFU 原則に則って、ネットワークを無効化した上で Tails を起動させることができます。
-セキュリティ
-Tails は Debian (Linux)ベースの OS で、 FLOSS です。私有ソフトウェアの OS よりセキュリティが高くて検証可能な Debian をベースに、 Tails は利用者のプライバシーと匿名性の保護に特化しています。
-→ ガイド:デジタルセキュリティの概念 § FLOSS を使用する — Markdown | HTML
+FLOSS
+Tails は Debian (Linux)ベースの OS で、 FLOSS です。私有ソフトウェアの OS より検証可能な Debian をベースに、 Tails は利用者のプライバシーと匿名性の保護に特化しています。
+→ ガイド:デジタルセキュリティの概念 § FLOSS を使用する — Markdown | HTML
Tails には様々なセキュリティ・プライバシーツールが用意されています。
永続性ストレージ
Tails には LUKS 暗号化永久性ストレージ機能があります。永久性ストレージには個人ファイル、 PGP 鍵と GnuPG 設定、 SSH 鍵、ドットファイル4、パッケージ、ネットワーク接続、ブラウザのブックマークなどを保存でき、利用者がそれらを有効化したり無効化したりできます。
永久性ストレージが存在する場合、 Tails を起動させる度に復号化パスワードが求められます。そこで永久性ストレージを開けるか開けないかを選択できます。
-→ 外部資料:永久性ストレージ:
+https://tails.boum.org/doc/first_steps/persistence/
→ 外部資料:永久性ストレージ:
https://tails.net/doc/first_steps/persistence/
注意点と限界
DVD や USB メモリの耐久性と寿命の問題
Tails を頻繁にまたは長年にかけて利用したい場合、記憶媒体(DVD や USB メモリ)の耐久性と寿命を考えなければなりません。特に、 Tails の永続性ストレージ機能を有効化した場合、記憶媒体が劣化したら、個人データを失う恐れがあります。
@@ -196,23 +195,23 @@Tails のイメージはその容量の全てを満たさず、永続性ストレージを追加できるかもしれません。
ホストデバイスとの互換性の問題
Tails を起動できないデバイスがあります。まず、 Tails は x86-645 対応 CPU を必要とし、スマートフォンや古いコンピュータでは動作しません。 2 GiB 以上の RAM が推奨されます。また、ホストデバイスの周辺機器を操作できるドライバが Tails に含まれていない場合、その周辺機器が使えません。もちろん、 DVD または USB から起動する機能も必要です。
-→ 外部資料:
+https://tails.boum.org/doc/about/requirements/
→ 外部資料:
https://tails.net/doc/about/requirements/
Tor 以外のトラフィックの遮断
Tails はほぼ全てのトラフィックを Tor ネットワーク経由にし、 Tor 以外のほぼ全てのトラフィックの送受信を遮断します。そのため、 Tor の問題と限界を引き継ぎます。例えば、ゲームやビデオ電話など UDP 通信に依存する好きなアプリケーションが使用できません。
-→ ガイド: Tor 匿名化ネットワーク § 注意点と限界 — Markdown | HTML
-→ 外部資料: Tor に関する注意点:
+https://tails.boum.org/doc/about/warnings/tor/
→ ガイド: Tor 匿名化ネットワーク § 注意点と限界 — Markdown | HTML
+→ 外部資料: Tor に関する注意点:
https://tails.net/doc/about/warnings/tor/
プライバシーや匿名性や秘匿性を保証しない
Tails はプライバシーや匿名性を保証しません。記憶喪失、個人を特定する特徴の最小化、セキュリティ向上などの特徴があるが、アプリケーションによる個人情報や IP アドレスなどの情報漏洩や利用者自身の行動による情報漏洩の防止またはその情報の匿名化をしません。例えば、ある 1 つの Tor Browser セッションから 2 つの異なる目的・活動のアカウントで同じウェブサイトにログインしたり、メタデータを含む写真をアップロードしたりして、誤ってアカウント間の繋がりができたり情報漏洩したりしてしまいます。
-→ 外部資料:個人情報の情報漏洩に関する注意点:
+https://tails.boum.org/doc/about/warnings/identity/
→ 外部資料:個人情報の情報漏洩に関する注意点:
https://tails.net/doc/about/warnings/identity/
永続性ストレージに関する注意
特に、利用者が永続性ストレージを使うと、永続性ストレージ内の個人ファイルや個人設定によって利用者の特定や匿名性の低下につながる恐れがあります。もちろん、マルウェアが永続性ストレージに入っていると、利用者の情報や Tails の使用が漏洩・操作される恐れがあります。永続性ストレージの設定と使用を最低限にすることを推奨します。
-→ 外部資料:永久性ストレージに関する注意点:
+https://tails.boum.org/doc/first_steps/persistence/warnings/
→ 外部資料:永久性ストレージに関する注意点:
https://tails.net/doc/first_steps/persistence/warnings/
Tails の使用を隠さない
Tails は Tails の使用を隠しません。ローカルネットワークの管理者やインターネットサービスは利用者が Tails を使っていると推測できるかもしれません。また、画面が見える身の回りの人たちは利用者が Tails を使っていると認識するかもしれません。
悪質または危殆化したハードウェア
Tails ではホストデバイスの OS が起動しないため、 Tails は悪質または危殆化したホストデバイスの OS を回避できます。しかし、悪質または危殆化したホストデバイス(BIOS、ハードウェアなど)から利用者を保護できません。攻撃者がキーロガー、悪質な BIOS、メモリの危殆化、 USB ポートの危殆化などでホストデバイスを危殆化させた場合、 Tails はこのような攻撃から利用者を保護できません。
自分のデバイスを使用していない時に、デバイスを隠したり他人に届かない場所にデバイスを保管したりして、できる限りデバイスの物理的セキュリティを保護することを推奨します。
-→ 外部資料:疑わしいデバイスを使用時のリスク軽減:
+https://tails.boum.org/doc/about/warnings/computer/
→ 外部資料:疑わしいデバイスを使用時のリスク軽減:
https://tails.net/doc/about/warnings/computer/
準備
本セクションでは、以下のデバイスを用いた手順が存在します。
-
@@ -223,7 +222,7 @@
注:危殆化したデバイスを用いて Tails のダウンロード、検証またはインストールを行った場合、安全でない Tails を準備する恐れがあります。信用するデバイス(ハードウェア、 BIOS と OS が安全なもの)を用いて Tails を準備してください。
ダウンロード
Tails ダウンロードページは以下のリンクでアクセスします。
-
+https://tails.boum.org/install/
https://tails.net/install/
ここから 3 種類の Tails イメージファイルをダウンロードできます。
Tails のオンラインドキュメンテーションに Tails の全ての PGP 公開鍵の情報が記載されています。そのページに “Signing key” というセクションがあります。
-
+https://tails.boum.org/doc/about/openpgp_keys/#index2h1
https://tails.net/doc/about/openpgp_keys/#index2h1
公開鍵
<key-file>
(例:tails-signing.key
)の指紋を照合し、 GnuPG の鍵輪に追加します。$ gpg --show-key <key-file> ... (鍵の情報の表示) @@ -283,12 +282,12 @@ $ gpg --import <key-file>
ホストデバイスの電源を入れる前に、ホストデバイスのブート(起動)選択キーを把握します。 Esc または F12 のキーをブート選択に用いるデバイスが多いです。あるいは、ホストデバイスのブートの優先順位を USB または DVD が最優先となるよう設定しておき、電源を切ります。ブート選択キーやブートの設定方法はデバイスのモデルまたは製造者によって異なるため、わからない場合はデバイスの取扱説明書を参照してください。
電源を入れます。ブート選択キーを押し続ける必要がある場合、ブート選択メニューが表示されるまで押し続けます。ブート選択メニューが表示されたら、 USB メモリからの起動を選びます。
ここまでうまく行くと、次に Tails の起動メニューが表示されるはずです。
-→ 外部資料: Tails の起動(Mac 以外のパソコン):
-https://tails.boum.org/doc/first_steps/start/pc/
→ 外部資料: Tails の起動(Mac):
+https://tails.boum.org/doc/first_steps/start/mac/
→ 外部資料: Tails の起動(Mac 以外のパソコン):
+https://tails.net/doc/first_steps/start/pc/
→ 外部資料: Tails の起動(Mac):
https://tails.net/doc/first_steps/start/mac/
ウェルカムスクリーン
Tails が起動する度に、ウェルカムスクリーン(Welcome Screen)が表示されます。 Tails の起動が完了する前に、ここでいくつかの設定を変更できます。
-→ 外部資料:ウェルカムスクリーン:
+https://tails.boum.org/doc/first_steps/welcome_screen/
→ 外部資料:ウェルカムスクリーン:
https://tails.net/doc/first_steps/welcome_screen/
ユニバーサルアクセス
ユニバーサルアクセス機能(コントラスト、ズーム、仮想キーボードなど)が必要な場合、画面の右上の アイコンをクリックします。
言語・地域設定
@@ -309,21 +308,21 @@ $ gpg --import <key-file>パッケージのインストールなどシステム管理の権限が必要な場合、ルート(管理者)権限のパスワード(Administration Password)を指定する必要があります。ルート権限のパスワードを指定しなければルートアカウントが無効化されます。
攻撃者がルート権限のパスワードを入手すると、 Tails の全ての振る舞いとセキュリティ対策を変えることができるため、ルート権限の有効化とパスワードの選択・使用に注意が必要です。
Ctrl+Shift+A を押すとルート権限のパスワードの入力欄に移動します。 “Administrator Password” と “Confirm” の欄に一致するパスワードを入力することで、ルート権限を有効化します。
-→ 外部資料:ルート権限のパスワード:
+https://tails.boum.org/doc/first_steps/welcome_screen/administration_password/
→ 外部資料:ルート権限のパスワード:
https://tails.net/doc/first_steps/welcome_screen/administration_password/
MAC アドレスのランダム化
MAC アドレスのランダム化(MAC Address Anonymization)はホストデバイスの MAC アドレスを保護するためにデフォルトで有効化されます。 MAC アドレスのランダム化に伴う問題が特に無ければ、設定をそのままにすることを推奨します。
公共のコンピュータまたは自宅のネットワークを使用している場合、ランダム化はおそらく不要でしょう。また、認定済みの MAC アドレスからの接続だけを許可するネットワークが存在します。ランダム化がネットワーク使用上の技術問題または疑いを生じさせる恐れがある場合、ランダム化を無効化してください。
ホストデバイスのハードウェア内の制限によって MAC アドレスのランダム化が失敗する場合があります。ランダム化に失敗したネットワークデバイスは無効化されます。ランダム化なしでそのネットワークデバイスを使用したい場合、無効化してください。
Ctrl+Shift+M を押すと MAC アドレスのランダム化の設定に移動します。 “Don’t anonymize MAC addresses” を選ぶことで MAC アドレスのランダム化を無効化します。
-→ 外部資料: MAC アドレスのランダム化:
+https://tails.boum.org/doc/first_steps/welcome_screen/mac_spoofing/
→ 外部資料: MAC アドレスのランダム化:
https://tails.net/doc/first_steps/welcome_screen/mac_spoofing/
オフラインモード
-オフラインモード(Offline Mode)では、ホストデバイスのネットワークデバイスを無効化できます。デバイスからの電波の放射を少なくし(STFU 原則)、セキュリティを強化させるために、ネットワークが不要でない限りオフラインモードを有効化することを推奨します。
+オフラインモード(Offline Mode)では、ホストデバイスのネットワークデバイスを無効化できます。デバイスからの電波の放射を少なくし(STFU 原則)、セキュリティを強化させるために、ネットワークが不要でない限りオフラインモードを有効化することを推奨します。
オフラインモードを有効化するには、 “Disable all networking” を選びます。
-安全でないブラウザ
-安全でないブラウザ(Unsafe Browser)は、 Tor の使用が不可能または不適切でない時に使用できるブラウザです。インターネットアクセスの許可を得るためにカプティブポータル6でログインしたい場合、ローカルのネットワーク上のプリンタや無線 LAN の管理をしたい場合などに、 Tor ネットワークを使用しない「安全でないブラウザ」が必要です。このような場合、安全でないブラウザを有効化してください。
-安全でないブラウザを使ってカプティブポータルでのログインに成功してインターネットアクセスを得た後、安全でないブラウザを閉じてください。 Tails が Tor 回線を構築しようとし、 Tor 回線の構築ができたら Tor Browser などが使えるようになります。間違えて安全でないブラウザでウェブ閲覧をしないよう注意してください。
-攻撃者が Tails 内の脆弱性を利用することで、安全でないブラウザを通じて Tails 利用者の IP アドレスを抽出することがあり得ます。例えば、攻撃者が Tails 利用者に Thunderbird の脆弱性を利用するメールで攻撃できるかもしれません。安全でないブラウザが不要な場合、無効化したままにしておいてください。
-安全でないブラウザを有効化するには、 “Enable the Unsafe Browser” を選びます。
+Unsafe Browser
+Unsafe Browser とは、 Tor の使用が不可能または不適切でない時に使用できるブラウザです。インターネットアクセスの許可を得るためにカプティブポータル6でログインしたい場合、ローカルのネットワーク上のプリンタや無線 LAN の管理をしたい場合などに、 Tor ネットワークを使用しない Unsafe Browser が必要です。このような場合、 Unsafe Browser を有効化してください。
+Unsafe Browser を使ってカプティブポータルでのログインに成功してインターネットアクセスを得た後、 Unsafe Browser を閉じてください。 Tails が Tor 回線を構築しようとし、 Tor 回線の構築ができたら Tor Browser などが使えるようになります。間違えて Unsafe Browser でウェブ閲覧をしないよう注意してください。
+攻撃者が Tails 内の脆弱性を利用することで、 Unsafe Browser を通じて Tails 利用者の IP アドレスを抽出することがあり得ます。例えば、攻撃者が Tails 利用者に Thunderbird の脆弱性を利用するメールで攻撃できるかもしれません。 Unsafe Browser が不要な場合、無効化したままにしておいてください。
+Unsafe Browser を有効化するには、 “Enable the Unsafe Browser” を選びます。
Tails の起動を完了させる
ウェルカムスクリーンが終了して Tails の起動を完了させるには、 Alt+S を押すかウィンドウの右上側の “Start Tails” ボタンをクリックします。
Tails を終了させる
@@ -354,7 +353,7 @@ $ gpg --import <key-file> -→ 外部資料: Tails のデスクトップ:
+https://tails.boum.org/doc/first_steps/introduction_to_gnome_and_the_tails_desktop/
→ 外部資料: Tails のデスクトップ:
https://tails.net/doc/first_steps/introduction_to_gnome_and_the_tails_desktop/
アプリケーションメニュー
アプリケーションメニューを開くには、左上の “Applications” をクリックします。
@@ -409,7 +408,7 @@ $ gpg --import <key-file>Tails は自動更新または手動更新の方法で更新できます。
注: Tails が危殆化した恐れがある場合、自動更新と手動更新は安全でないかもしれません。再インストールで Tails を更新してください。
-→ 外部資料: Tails の更新:
+https://tails.boum.org/doc/upgrade/
→ 外部資料: Tails の更新:
https://tails.net/doc/upgrade/
自動更新
インターネットに接続している場合、 Tails は自動的に更新の有無を確認しようとします。現在使用中のバージョンより新しいバージョンがあった場合、 Tails は差分更新をダウンロードします。
自動更新が完了した後、 Tails の記憶装置に以下が保存されます。
@@ -445,7 +444,7 @@ $ gpg --import <key-file>“Use a downloaded Tails ISO image” を選び、 Tails の最新のイメージファイルを参照します。 “Target USB stick” ドロップダウンに更新対象の Tails を選びます。更新を実行するには “Upgrade” をクリックします。
ソフトウェアの追加
Tails には様々なソフトウェアが事前に用意されているが、利用者は他のソフトウェアも使いたいかもしれません。
-Tails は Debian ベースであるため、 APT (Advanced Package Tool)でソフトウェアを管理します。 APT で管理したソフトウェアをパッケージ(package)と呼ばれ、パッケージファイルは
+.deb
識別子を持ちます。Tails は Debian ベースであるため、 APT (Advanced Package Tool)でソフトウェアを管理します。 APT で管理したソフトウェアをパッケージ(package)と呼ばれ、パッケージファイルは
.deb
識別子を持ちます。ソフトウェアを追加するにはルート権限が必要です。
Tails の APT には事前に Debian、 Tails と Tor Project のリポジトリ(
tor+http
でアクセスするオニオンアドレス)が用意されています。/etc/apt/sources.list
と/etc/apt/sources.list.d/
を見ることで確認でき、リポジトリを追加するには/etc/apt/sources.list.d/
の中にリポジトリ指定ファイルを追加します。ソフトウェアをインストールするには、以下のアプリケーションを使用できます。
@@ -459,7 +458,7 @@ $ gpg --import <key-file>リポジトリを用いる代わりに、自分でパッケージを入手して、
-dpkg
コマンドで.deb
ファイルからパッケージを直接インストールできます。オフラインモードで Tails を使用する場合にかなり便利な方法だが、使いたいパッケージとその依存パッケージを手動に入手する必要があるため困難です。→ 外部資料:
+https://tails.boum.org/doc/first_steps/additional_software/
→ 外部資料:
https://tails.net/doc/first_steps/additional_software/
→ 外部資料:
apt(8)
manpage→ 外部資料:
dpkg(1)
manpage永続性ストレージ
@@ -470,7 +469,7 @@ $ gpg --import <key-file>永続性ストレージが既に作成されていない場合、パスワードの指定が要求されます。良好なパスワードを決めて、パスワード入力欄に入れます。その後、作成ボタンをクリックします。
永続性ストレージの作成には多少時間がかかるかもしれません。作成が完了した後、設定が表示されます。
-→ 外部資料:永久性ストレージの作成と設定:
+https://tails.boum.org/doc/first_steps/persistence/configure/
→ 外部資料:永久性ストレージの作成と設定:
https://tails.net/doc/first_steps/persistence/configure/
設定
永続性ストレージの作成と設定は以下の手順でアクセスします。
-
@@ -493,7 +492,7 @@ $ gpg --import <key-file>
→ 外部資料:永久性ストレージの作成と設定:
+https://tails.boum.org/doc/first_steps/persistence/configure/
→ 外部資料:永久性ストレージの作成と設定:
https://tails.net/doc/first_steps/persistence/configure/
他の記憶装置へのバックアップ
永続性ストレージ内の情報をただ一つの記憶装置だけに保存したら、紛失、盗難、破損などによって情報を失うリスクが高いです。そのため、他の記憶装置にも Tails と永続性ストレージを準備し、定期的にバックアップを行うことを推奨します。
-
@@ -525,7 +524,7 @@ $ gpg --import <key-file>
→ 外部資料:永久性ストレージのバックアップ:
+https://tails.boum.org/doc/first_steps/persistence/backup/
→ 外部資料:永久性ストレージのバックアップ:
https://tails.net/doc/first_steps/persistence/backup/
故障した Tails からの救助
Tails が起動しなくなった場合、記憶装置が劣化しつつあって故障する可能性があるため、永続性ストレージ内の情報をすぐに救助することを推奨します。
-
@@ -554,7 +553,7 @@ $ gpg --import <key-file>
注:以上の
-rsync
コマンドを実行する前に、各永続性ストレージの末尾の/
の有無が以上と一致することを確認してください。→ 外部資料:永久性ストレージの救助:
+https://tails.boum.org/doc/first_steps/persistence/rescue/
→ 外部資料:永久性ストレージの救助:
https://tails.net/doc/first_steps/persistence/rescue/
削除
注:永続性ストレージを以下の方法で削除しても、高い能力を有する攻撃者がデータ復元の手法でデータを復元できるかもしれません。安全に情報を削除するには、記憶媒体内の全てのデータを完全消去する必要があります。
永続性ストレージの削除は以下の手順でアクセスします。
@@ -563,7 +562,7 @@ $ gpg --import <key-file>ウィンドウが表示されたら、 “Delete” をクリックすることで永続性ストレージを削除します。
永続性ストレージの削除は、ロック解除された状態で削除できません。永続性ストレージが既にロック解除されている場合、 Tails を再起動してから永続性ストレージを削除してください。
-→ 外部資料:永久性ストレージの削除:
+https://tails.boum.org/doc/first_steps/persistence/delete/
→ 外部資料:永久性ストレージの削除:
https://tails.net/doc/first_steps/persistence/delete/
使用事例
ホストデバイスの OS の回避
Tails をホストデバイスで起動させると、ホストデバイスの OS に触れることはありません。そのため、ホストデバイスの(信用しないまたは使いたくない) OS を回避して Tails をホストデバイス上で使えます。
@@ -576,7 +575,7 @@ $ gpg --import <key-file>Tails が危殆化した恐れがある場合、記憶装置を完全消去して Tails をインストールし直してください。
-→ 外部資料:疑わしいデバイスを使用時のリスク軽減:
+https://tails.boum.org/doc/about/warnings/computer/
→ 外部資料:疑わしいデバイスを使用時のリスク軽減:
https://tails.net/doc/about/warnings/computer/
有害の恐れのあるファイルの扱い
Tails で有害の恐れのあるファイルをより安全に扱うことができます。
-
@@ -623,7 +622,7 @@ $ gpg --import <key-file>
アリスとボブ
- +連絡先
PGP 鍵
diff --git a/ja-html/alice2bob-ja-Tor-2.1.html b/ja-html/alice2bob-ja-Tor-2.2.html similarity index 90% rename from ja-html/alice2bob-ja-Tor-2.1.html rename to ja-html/alice2bob-ja-Tor-2.2.html index b8d9287..71d92ae 100644 --- a/ja-html/alice2bob-ja-Tor-2.1.html +++ b/ja-html/alice2bob-ja-Tor-2.2.html @@ -10,10 +10,10 @@1D3E 313C 4DB2 B3E0 8271 FC48 89BB 4CBB 9DBE 7F6D
Tor 匿名化ネットワーク
アリスとボブ
-バージョン: 2.1
+バージョン: 2.2
本ガイドの最終更新: 2021-12-29
OnionShare 2.4 | Tor 0.4.6
- +
-
@@ -76,7 +76,7 @@
一般 Tor クライアント
tor
Tor とは
-Tor (トーア)とは、通常(直接的接続)より高いプライバシー・匿名性でインターネットを利用することを可能にする技術です。 “Tor” という単語は以下の 3 つの意味があります。
+Tor (トーア)とは、通常(直接的接続)より高いプライバシー・匿名性でインターネットを利用することを可能にする技術です。 “Tor” という単語は以下の 3 つの意味があります。
Tor は「オニオンルーティング」という暗号化方式を実装したもので、トラフィックが Tor ノードを経由する度に暗号化・復号化が行われます。玉ねぎの皮のように暗号化・復号化が行われることから暗号化方式が「オニオンルーティング」と名付けられ、名称の由来は最初の名称 “The Onion Router” の頭文字です。
-世界中において、約 6000–8000 の Tor ノード(中継点)1と約 250 万人の Tor 利用者が分散していて、最も人気な匿名化ネットワークです。使用するには登録や支払いが不要で、基本的には誰でも無料で使用できます。 Tor ノードの立ち上げに関しても同様で、ボランティアとして Tor ネットワークに貢献する制度です。
+世界中において、約 6000–8000 の Tor ノード(中継点)1と約 250 万人の Tor 利用者が分散していて、最も人気な匿名化ネットワークです。使用するには登録や支払いが不要で、基本的には誰でも無料で使用できます。 Tor ノードの立ち上げに関しても同様で、ボランティアとして Tor ネットワークに貢献する制度です。
概要
オニオンルーティング
-オニオンルーティングはネットワーク上の匿名化を実現します。 Tor クライアントはトラフィックを Tor ネットワークに中継させる前に、自動的に無作為に 3 つのノードを選び2、 Tor ネットワークを通過する接続を成立させます。選ばれた 3 つのノードで構成される接続は「回線」(circuit)と呼ばれます。トラフィックは Tor 回線を経由してから接続先に到着します。
+オニオンルーティングはネットワーク上の匿名化を実現します。 Tor クライアントはトラフィックを Tor ネットワークに中継させる前に、自動的に無作為に 3 つのノードを選び2、 Tor ネットワークを通過する接続を成立させます。選ばれた 3 つのノードで構成される接続は回線(circuit)と呼ばれます。トラフィックは Tor 回線を経由してから接続先に到着します。
各ノードの呼称と意味は以下のとおりです。
一方、接続先自身または接続先側にあるネットワーク管理者や ISP が、接続元情報に基づいて接続拒否、情報提供の操作、差別などをするかもしれません。この場合に Tor を利用すると、接続元のネットワーク情報が接続先側に届かず、接続元側による接続元の地域や所属などに基づく検閲と差別が困難になります。
ただし、 Tor 利用者全体に対する検閲と差別が簡単になってしまいます。それを回避するには Tor ブリッジを検討してください。
オニオンサービス
-インターネットサービスは通常 IP アドレスに結び付けられたドメイン名(例:
+torproject.org
)でクリアネット4上で運用するが、 IP アドレスを明かさないオニオンサービスで運用することができます。オニオンサービスはオニオンアドレス(.onion
識別子のあるアドレス)を持ち、 Tor でしか接続できないサービスです。インターネットサービスは通常 IP アドレスに結び付けられたドメイン名(例:
torproject.org
)でクリアネット4上で運用するが、 IP アドレスを明かさないオニオンサービスで運用することができます。オニオンサービスはオニオンアドレス(.onion
識別子のあるアドレス)を持ち、 Tor でしか接続できないサービスです。オニオンサービスへの接続(オニオン接続)では、接続元および接続先が各自 Tor 回線を構築し、中間で接続元の回路が接続先の回路に接続します。接続に 6 つのノードが存在し、出口ノードが存在しません。
オニオンアドレスは、オニオンサービスを特定する 56 文字5と
.onion
で構成されます。例えば、 Tor Project ホームページのオニオンアドレスは以下のとおりです。
@@ -262,7 +262,7 @@2gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion
例えば、ウェブ閲覧をしたい場合、 Tor をプロキシとして設定されたどのウェブブラウザでも利用する代わりにプライバシーと匿名性に特化した Tor Browser を利用するといいかもしれません。また、 BitTorrent は Tor とかなり衝突するため悪い組み合わせとなり、 Tor ネットワークに重い負荷をかけながら BitTorrent 利用者に匿名性を提供しません。 BitTorrent の代わりに、例えば OnionShare でファイルを共有した方がいいでしょう。
-→ ガイド: Tor Browser — Markdown | HTML
+→ ガイド: Tor Browser — Markdown | HTML
利用者の行動による情報漏洩
Tor は利用者の行動(利用パターンや情報提供など)による情報漏洩を抑えようとしません。利用者自身がセンシティブ情報を明かしたら、トラフィックをどのように経由しても何も変わりません。また、 Tor はフィッシングなどの詐欺から利用者を保護しません。
インターネット利用者が実践する良い習慣は重要な対策です。ウェブ閲覧、ダウンロード、投稿、フォーム入力、ログインなどをする時に、うっかり明かしてしまうかもしれない情報と故意に提供する情報について考えた上でインターネットを慎重に利用すると、このリスクを軽減できます。
@@ -283,17 +283,17 @@一方、接続先から Tor 使用を隠したり Tor ブロッキングを回避したりしたい場合、接続先側のプロキシ(例:ウェブアーカイブ、代替フロントエンド)を利用すると効果的かもしれません。
-→ ガイド: Tor Browser § Tor ブロッキングの回避 — Markdown | HTML
+→ ガイド: Tor Browser § Tor ブロッキングの回避 — Markdown | HTML
Tor に対する攻撃
「オニオンルーティング」であげた情報に加えて、各ノードと接続元と接続先ではトラフィックの特徴(データ量、形状、タイミング)も存在します。そのため、 Tor は完全な匿名化を実現せず、共謀する悪質の Tor ノード、接続の両側でのロギングまたは監視、インターネットを広範囲監視できる敵などから保護してくれません。
-Tor はトラフィックをできる限り速く中継しながら匿名化しようとする低レイテンシ匿名化ネットワークでです。トラフィックを一時的に持ち続ける高レイテンシ匿名化ネットワークと異なって、強度なインターネット監視に対して保護することができません。
+Tor はトラフィックをできる限り速く中継しながら匿名化しようとする低レイテンシ匿名化ネットワークです。トラフィックを一時的に持ち続ける高レイテンシ匿名化ネットワークと異なって、強度なインターネット監視に対して保護することができません。
トラフィック指紋抽出
-トラフィック指紋抽出(traffic fingerprinting)とは、トラフィックを解読しようとせず、インターネット利用者のトラフィックの特徴を監視・解析することで、利用者がアクセスしているサービス・内容を推測したり Tor や VPN などの使用を推測したりする攻撃です。この攻撃は Tor だけでなく、他の低レイテンシ匿名化ネットワークや VPN などに対しても効果的でしょう。
+トラフィック指紋抽出(traffic fingerprinting)とは、トラフィックを解読しようとせず、インターネット利用者のトラフィックの特徴を監視・解析することで、利用者がアクセスしているサービス・内容を推測したり Tor や VPN などの使用を推測したりする攻撃です。この攻撃は Tor だけでなく、他の低レイテンシ匿名化ネットワークや VPN などに対しても効果的でしょう。
インターネット利用者が Tor や VPN などを用いてトラフィックを暗号化しても、接続先や内容の通信情報が接続元側(ISP やローカルネットワークなど)から保護されるとは限らず、この攻撃は暗号化したトラフィックに対しても可能です。 Tor や VPN などのようなトラフィックの暗号化は多くの通信情報(接続先の IP アドレス、ポート番号、内容など)を読めないようにするが、通信が行われている事実やトラフィックの特徴(データ量、形状、タイミングなど)の情報を保護しようとしません。
トラフィック相関攻撃
-トラフィック相関攻撃(traffic correlation attack)またはエンドツーエンド相関攻撃(end-to-end correlation attack)とは、トラフィックを解読しようとせず、対象者と接続先とのトラフィックを両側で観測・解析することで対象者の身元を特定したり非匿名化したりする攻撃です。
+トラフィック相関攻撃(traffic correlation attack)またはエンドツーエンド相関攻撃(end-to-end correlation attack)とは、トラフィックを解読しようとせず、対象者と接続先とのトラフィックを両側で観測・解析することで対象者の身元を特定したり非匿名化したりする攻撃です。
主に資源・資金の多い攻撃者が行う攻撃だが、トラフィック相関攻撃に協力する恐れがあるインターネット上の行為者といえば、ローカルネットワーク管理者、 ISP、 VPN 提供者、訪問先のサービスなど多数あります。
Tor ノードだけによる攻撃について、一つのノード管理者が以下のいずれかを支配する場合、トラフィック相関攻撃が可能です。
-
@@ -301,7 +301,7 @@
Sybil 攻撃
-Sybil 攻撃とは、攻撃者が多数の仮名または匿名の身元を作成することで不当な影響力を入手し、ネットワークの評判制度を転覆させる攻撃です。
+Sybil 攻撃(Sybil attack)とは、攻撃者が多数の仮名または匿名の身元を作成することで不当な影響力を入手し、ネットワークの評判制度を転覆させる攻撃です。
Tor ノードを立ち上げるにはコンピュータのハードウェアとインターネットアクセスの費用以外のコストが無く、ノード管理者に対する厳格な身元確認や他のチェックも特にありません。そのため、資源・資金の多い攻撃者は簡単に多数の Tor ノードを立ち上げることができます。一つの行為者が支配するノードの数が多くなるにつれて、無作為に選ばれた Tor 回線に対するトラフィック相関攻撃が可能になる確率が上がります。
悪質または危殆化したデバイス
Tor は悪質または危殆化したデバイス(OS、 BIOS、ハードウェアなど)から利用者を保護できません。攻撃者がマルウェア、キーロガー、悪質な BIOS、メモリの危殆化などでデバイスを危殆化させた場合、 Tor はこのような攻撃から利用者を保護できません。
@@ -317,7 +317,7 @@一方、 Tor エコシステムを構成する一部の第三者アプリケーションは以下です。
-
-
以下のセクションで一部のアプリケーションを説明します。以下で説明するアプリケーション(Tor Browser 以外)を使うには、 Tor のインストールが必要です。
@@ -364,9 +364,9 @@Tor のインストール
Tor Project の Debian リポジトリの追加を完了した後、以下のように Tor をインストールします。
-# apt install tor
APT Tor トランスポート
-APT Tor トランスポート(パッケージ名:
-apt-transport-tor
)とは、 APT のために開発されたリポジトリ情報とパッケージの匿名ダウンロードのトランスポートです。APT でパッケージを管理する OS を使っていて、 Debian リポジトリが APT に設定されている場合、 APT Tor トランスポートを以下のようにインストールします。
+apt-transport-tor
+apt-transport-tor とは、 APT のために開発されたリポジトリ情報とパッケージの匿名ダウンロードのトランスポートです。
+APT でパッケージを管理する OS を使っていて、 Debian リポジトリが APT に設定されている場合、 apt-transport-tor を以下のようにインストールします。
# apt install apt-transport-tor
その後、リポジトリ指定ファイル
/etc/apt/sources.list
と/etc/apt/sources.list.d/
を以下のように変更します。-
@@ -379,7 +379,7 @@
deb [signed-by=/etc/apt/trusted.gpg.d/deb.torproject.org-keyring.gpg] tor+http://apow7mjfryruh65chtdydfmqfpj5btws7nbocgtaovhvezgccyjazpqd.onion/torproject.org/ sid main
→ 外部資料:
https://support.torproject.org/apt/#apt-3
OnionShare
-OnionShare とは、オニオンサービスを用いたファイル共有アプリケーションです。以下の機能を持ちます。
+OnionShare とは、オニオンサービスを用いたファイル共有アプリケーションです。以下の機能を持ちます。
→ 外部資料:
https://docs.onionshare.org/
Tor Browser
Tor Browser を別のガイドで説明します。
-→ ガイド: Tor Browser — Markdown | HTML
+→ ガイド: Tor Browser — Markdown | HTML
Torsocks
-Torsocks とは、他のアプリケーションのトラフィックを SOCKS を用いて Tor ネットワーク経由にするラッパーコマンドです。 SOCKS に対応するアプリケーションを Tor 化してくれるコマンドです。 DNS 要求を安全に扱い、 TCP 以外のトラフィックを遮断します。
+Torsocks とは、他のアプリケーションのトラフィックを SOCKS を用いて Tor ネットワーク経由にするラッパーコマンドです。 SOCKS に対応するアプリケーションを Tor 化してくれるコマンドです。 DNS 要求を安全に扱い、 TCP 以外のトラフィックを遮断します。
APT でパッケージを管理する OS を使っていて、 Debian リポジトリが APT に設定されている場合、 Torsocks を以下のようにインストールします。
# apt install torsocks
使い方は Tor 化したいコマンドの先頭に
@@ -407,7 +407,7 @@torsocks
を追加するだけです。→ 外部資料:
https://gitlab.torproject.org/tpo/core/torsocks/
→ 外部資料:
https://gitlab.torproject.org/legacy/trac/-/wikis/doc/torsocks/
Tor ブリッジ
-ブリッジ(bridge)とは、 Tor 利用者の Tor ネットワークへの接続を支援する非公開 Tor ノードです。公開 Tor ノードと同様に誰でもブリッジを立ち上げることができるが、 Tor ノードだとバレない限り、公開 Tor ノードに対する利用者側のブロッキングを回避できます。そのため、 Tor がブロックされているか注目を引く状況においても、ブリッジを用いて Tor に接続できます。
+Tor ブリッジ(Tor bridge)とは、 Tor 利用者の Tor ネットワークへの接続を支援する非公開 Tor ノードです。公開 Tor ノードと同様に誰でもブリッジを立ち上げることができるが、 Tor ノードだとバレない限り、公開 Tor ノードに対する利用者側のブロッキングを回避できます。そのため、 Tor がブロックされているか注目を引く状況においても、ブリッジを用いて Tor に接続できます。
→ 外部資料: Tor ブリッジ:
https://tb-manual.torproject.org/bridges/
→ 外部資料:検閲回避:
https://tb-manual.torproject.org/circumvention/
Pluggable transport
@@ -427,7 +427,7 @@入手方法によって CAPTCHA9 が要求されるかもしれません。
-→ ガイド: Tor Browser § Tor ブリッジの設定 — Markdown | HTML
+→ ガイド: Tor Browser § Tor ブリッジの設定 — Markdown | HTML
ブリッジの追加
Pluggable transport の種類や IP プロトコルバージョン(IPv4 または IPv6)によって、以下のような形式でブリッジを入手するでしょう。
Pluggable transport なしの IPv4 ブリッジの例(2 つ)。
@@ -459,7 +459,7 @@ Bridge obfs4 xxx.xxx.xxx.xx:990 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX cert=YY本セクションでは、 VPN について説明して、 Tor と VPN の併用について説明します。
→ 外部資料:
https://gitlab.torproject.org/legacy/trac/-/wikis/doc/TorPlusVPN
VPN
-VPN (Virtual Private Network)とは、公的ネットワーク(例:インターネット)に跨って、ある私的(プライベート)ネットワークを拡張する技術です。 VPN は、 VPN 利用者と VPN 提供者との間で、ネットワーク通信の認証、完全性と秘匿性を提供します。複数の拠点をわたってネットワークを安全に拡張することに多く使われます。
+VPN (Virtual Private Network)とは、公的ネットワーク(例:インターネット)に跨って、ある私的(プライベート)ネットワークを拡張する技術です。 VPN は、 VPN 利用者と VPN 提供者との間で、ネットワーク通信の認証、完全性と秘匿性を提供します。複数の拠点をわたってネットワークを安全に拡張することに多く使われます。
インターネット監視・検閲を回避する目的で VPN を使う人は多く、セキュリティとプライバシーを重視するコミュニティに広く知られている対策です。しかし、インターネット監視を回避する目的とした VPN 応用について、残念ながら勘違いが多いみたいです。以下のセクションで VPN のメリットとデメリットについて簡潔に説明します。
インターネット利用者側の監視・検閲の回避
インターネット利用者側の監視・検閲に対して VPN は効果的かもしれません。例えば、インターネット利用者側の ISP はトラフィックに対して、全てをロギングしたり特定のトラフィックをブロックしたりすることが多いです。また、ローカルネットワークの管理者または公共 Wi-Fi の他の利用者はネットワーク利用者のトラフィックを監視するかもしれません。
@@ -487,12 +487,12 @@ Bridge obfs4 xxx.xxx.xxx.xx:990 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX cert=YYTor と VPN の併用
Tor と VPN を併用することで、両者の一部のメリットを得ながら両者の一部のデメリットを削減できます。しかし、技術を組み合わせて併用する前に、組み合わせ全体のセキュリティ特性を理解・検討する必要があります。
接続元 → VPN → Tor → 接続先
-Tor over VPN (接続元 → VPN → Tor → 接続先)とは、 VPN 接続を経由して Tor に接続する接続方法です。
+Tor over VPN (接続元 → VPN → Tor → 接続先)とは、 VPN 接続を経由して Tor に接続する接続方法です。
ISP またはローカルネットワークを信用しない場合、この方法で接続することにはメリットがあります。この方法では、利用者が Tor を使用していることが利用者側から隠されるかもしれません。(ただし、トラフィック指紋抽出から保護しません。)状況によって VPN も疑われるかもしれないが、一般的には VPN は Tor より多く使われているため、この方法は Tor だけより目立たないかもしれません。
Tor に対する攻撃が成功しても、 VPN 経由で Tor に接続するため、 VPN のおかげで攻撃から利用者の IP アドレスが保護されるかもしれません。一方、 VPN に対する攻撃が成功しても、 VPN 利用者のトラフィックは Tor 経由のため、接続先情報や通信内容が保護されるかもしれません。
VPN の代わりに Tor ブリッジを利用すると、多少似ている特性が得られるでしょう。
接続元 → Tor → VPN → 接続先
-VPN over Tor (接続元 → Tor → VPN → 接続先)とは、 Tor を経由して VPN に接続する接続方法です。
+VPN over Tor (接続元 → Tor → VPN → 接続先)とは、 Tor を経由して VPN に接続する接続方法です。
この接続方法では、接続先側から見て VPN のサーバから接続しているように見えます。接続先側による Tor ブロッキングを回避するためにこの接続方法を使う人がいます。
しかし、このようにインターネットを利用したら、接続先側から見て VPN 利用者の匿名性は VPN だけを利用する場合と同じ程度で、匿名ではありません。
その上、 Tor は通常、 Tor 回線を頻繁に変更するが、引き続き VPN に接続していると Tor 回線の変更が少なくなって、同じ Tor 回線を長時間使用してしまいます。
@@ -542,7 +542,7 @@ Bridge obfs4 xxx.xxx.xxx.xx:990 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX cert=YY
アリスとボブ
- +連絡先
PGP 鍵
diff --git a/ja-html/alice2bob-ja-Tor-Browser-2.1.html b/ja-html/alice2bob-ja-Tor-Browser-2.2.html similarity index 90% rename from ja-html/alice2bob-ja-Tor-Browser-2.1.html rename to ja-html/alice2bob-ja-Tor-Browser-2.2.html index 82fe34f..a316007 100644 --- a/ja-html/alice2bob-ja-Tor-Browser-2.1.html +++ b/ja-html/alice2bob-ja-Tor-Browser-2.2.html @@ -10,10 +10,10 @@1D3E 313C 4DB2 B3E0 8271 FC48 89BB 4CBB 9DBE 7F6D
Tor Browser
アリスとボブ
-バージョン: 2.1
-本ガイドの最終更新: 2023-01-27
+バージョン: 2.2
+本ガイドの最終更新: 2023-08-17
Tor Browser 12.0
- +
-
@@ -26,6 +26,9 @@
→ ガイド: Tor § Tor ブリッジ — Markdown | HTML
+→ ガイド: Tor § Tor ブリッジ — Markdown | HTML
プロキシとファイアウォール通過の設定
プロキシを用いてインターネットに接続するかファイアウォールを通過する必要がある場合、 “Advanced” 見出しの下にある欄にプロキシを指定したり許可されているポート番号を指定したりします。
@@ -350,7 +357,7 @@ $ ./start-tor-browser.desktop非暗号化接続の停止
-非暗号化接続(HTTP)でデータを送受信すると傍受される恐れがあります。また、非暗号化接続でデータの改竄やマルウェア注入も可能です。 HTTPS-Only という設定で、このような非暗号化接続の扱いを制御します。
+非暗号化接続(HTTP)でデータを送受信すると傍受される恐れがあります。また、非暗号化接続でデータの改竄やマルウェア注入も可能です。 HTTPS-Only という設定で、このような非暗号化接続の扱いを制御します。
非暗号化接続の停止を有効化するには、 HTTPS-Only 設定の “Enable HTTPS-Only Mode in all windows” を選択します。
-
@@ -369,7 +376,7 @@ $ ./start-tor-browser.desktop
新たな更新が発見され、ポプアップが表示されたら、 “Download” を選ぶことですぐに更新をダウンロードするか、 “Dismiss” を選ぶことで更新を延期します。
Onion-Location
-Onion-Location とは、ウェブサイトが自分のオニオンアドレスを告知することで Tor 利用者にオニオン接続をしてもうらう機能です。ウェブサイトは以下のいずれかの方法でオニオンアドレス
+<address>
を告示します。Onion-Location とは、ウェブサイトが自分のオニオンアドレスを告知することで Tor 利用者にオニオン接続をしてもうらう機能です。ウェブサイトは以下のいずれかの方法でオニオンアドレス
<address>
を告示します。Canvas データ抽出
-Canvas 要素とは、ウェブページに 2 次元ビットマップ画像を描くための HTML5 要素で、 HTML5 に導入されたものです。 Canvas 要素自体はあくまでコンテナだけです。画像の描画とデータ抽出は JavaScript で行うことを前提にした要素です。 Tor Browser では、 canvas 要素データ抽出の試みがあった時に URL バーの左側にアイコンが表示されます。
+Canvas 要素(canvas element)とは、ウェブページに 2 次元ビットマップ画像を描くための HTML5 要素で、 HTML5 に導入されたものです。 Canvas 要素自体はあくまでコンテナだけです。画像の描画とデータ抽出は JavaScript で行うことを前提にした要素です。 Tor Browser では、 canvas 要素データ抽出の試みがあった時に URL バーの左側にアイコンが表示されます。
ウェブサイトはこの要素を用いて利用者に対するブラウザ指紋抽出攻撃ができます。訪問者に見えない canvas 要素をウェブページに追加して、その中にテキストや他の描画オブジェクトを挿入し、結果の画像データを抽出・解析することで、訪問者を特定するブラウザ指紋を(訪問者が知らずに無断で)得ることができます。デバイスとブラウザによって異なるフォントセット、設定、ハードウェアなどがあるため、この方法では訪問者を特定する唯一性の高い指紋が得られます。
→ 外部資料: Canvas データ抽出:
@@ -461,7 +468,7 @@ $ ./start-tor-browser.desktophttps://www.propublica.org/article/meet-the-online-tracking-device-that-is-virtually-impossible-to-block
一方、悪質な JavaScript のあるサイト(サイト B)を Safest の設定でアクセスした後に、他のタブで JavaScript と必要とするサイトにアクセスするためにセキュリティレベルを Safer に引き上げた場合、サイト B は JavaScript が実行されないまま安全に閲覧できます。しかし、サイト B のタブを Safer の設定で(誤って)再読み込みしたらサイト B の悪質な JavaScript が実行されてしまいます。
以上のように、セキュリティレベルを操作しながらサイトにアクセスできるが、気をつけながらセキュリティレベルとタブを操作する必要があります。
HTTP リファラ
-HTTP リファラ(HTTP referer)は HTTP 要求ヘッダの属性で、ウェブサイト訪問者があるウェブページを要求する時にウェブサイトに送られるリンク元の URL を指します。ウェブサイトはこの情報を入手することで訪問者がどこから要求されたページに辿り着いたかを把握でき、ウェブサイトの最適化やセキュリティ向上などに利用できます。
+HTTP リファラ(HTTP referer)は HTTP 要求ヘッダの属性で、ウェブサイト訪問者があるウェブページを要求する時にウェブサイトに送られるリンク元の URL を指します。ウェブサイトはこの情報を入手することで訪問者がどこから要求されたページに辿り着いたかを把握でき、ウェブサイトの最適化やセキュリティ向上などに利用できます。
HTTP リファラ
<referer-URL>
は以下の例のように HTTP 要求に含まれます。GET /download HTTP/2 Host: www.torproject.org @@ -496,35 +503,18 @@ Referer: <referer-URL>
代替検索エンジン
大量監視を犯している Bing、 Facebook、 Google、 Yahoo などを避けて、様々な代替検索エンジンを利用することを推奨します。
-
-
アリスとボブ
- +連絡先
PGP 鍵
diff --git a/ja-html/alice2bob-ja-external-resources-2.1.html b/ja-html/alice2bob-ja-external-resources-2.2.html similarity index 91% rename from ja-html/alice2bob-ja-external-resources-2.1.html rename to ja-html/alice2bob-ja-external-resources-2.2.html index e14cf72..9c3a43c 100644 --- a/ja-html/alice2bob-ja-external-resources-2.1.html +++ b/ja-html/alice2bob-ja-external-resources-2.2.html @@ -10,9 +10,9 @@1D3E 313C 4DB2 B3E0 8271 FC48 89BB 4CBB 9DBE 7F6D
外部資料
アリスとボブ
-バージョン: 2.1
-本ガイドの最終更新: 2023-01-27
- +バージョン: 2.2
+本ガイドの最終更新: 2023-08-17
+
-
@@ -47,6 +47,11 @@
著作物
English
+Jameson Lopp, “Attack Vectors in Real Life: Being your own bank,” 2020-09-03 +
+https://invidious.snopyta.org/watch?v=eWbBnqRcIo0
+
+ 内容:暗号通貨に関する損失・攻撃ベクトルBuggedplanet.info
https://buggedplanet.info
@@ -91,6 +96,9 @@Marc Meillassoux, Mihaela Gladovic, “Nothing to Hide,” 2017
+
https://videocommons.org/w/6b43a28c-86ee-4681-8ab9-787ac140afc0
Madaidan’s Insecurities +
+https://madaidans-insecurities.github.io/
grugq, “Operational PGP”
https://gist.github.com/grugq/03167bed45e774551155
@@ -201,9 +209,9 @@alternative-front-ends (代替フロントエンド一覧)
-
https://github.com/mendel5/alternative-front-ends
PRISM Break +
delightful
+
-https://prism-break.org/
https://delightful.club/
Privacy Tools
-
https://privacytools.io/
@@ -266,15 +274,12 @@https://qubes-os.org/
http://qubesosfasa4zl44o4tws22di6kepyzfeqv3tg4e3ztknltfxqrymdad.onion/
searX (メタ検索エンジン) -
-https://searx.me/
Session (メッセンジャー)
https://getsession.org/
Tails (持ち運び可能な OS)
+
-https://tails.boum.org/
https://tails.net/
Tor(匿名化ネットワーク)
https://www.torproject.org/
@@ -296,18 +301,18 @@Autistici/Inventati (様々なサービス)
-
https://www.autistici.org/
Bibliogram (Instagram の代替フロントエンド) +
Brave Search (検索エンジン)
+
- 公式インスタンス:https://bibliogram.art/
+https://search.brave.com/
- ウェブサイト:https://git.sr.ht/~cadence/bibliogram/
https://search.brave4u7jddbv7cyviptqjc7jusxh72uik7zt6adtckl5f4nwy2v72qd.onion/
BrowserLeaks (ブラウザ指紋テスト)
https://browserleaks.com/
CheckShortURL (短縮 URL の拡張)
-
https://checkshorturl.com/
Codeberg (gitea インスタンス) +
Codeberg (Forgejo インスタンス)
https://codeberg.org/
Dégooglisons Internet (様々なサービス) @@ -334,14 +339,17 @@
Just Delete Me (アカウント削除手順一覧)
-
https://justdeleteme.xyz/
keys.openpgp.org (OpgnPGP 公開鍵サーバ) +
keys.openpgp.org (OpenPGP 公開鍵サーバ)
+
https://keys.openpgp.org/
http://zkaan2xfbuxia2wpf7ofnkbz6r5zdbbvxbunvp5g2iebopbfc4iqmbad.onion/
Libreddit (Reddit の代替フロントエンド) +
+https://github.com/libreddit/libreddit/
Nitter (Twitter の代替フロントエンド)
- 公式インスタンス:https://nitter.net/
+ ウェブサイト:https://github.com/zedeus/nitter
インスタンス一覧:https://github.com/zedeus/nitter/wiki/instances
NoLog.cz (様々なサービス) @@ -352,7 +360,7 @@
-https://riseup.net/
http://vww6ybal4bd7szmgncyruucpgfkqahzddi37ktceo3ah7ngmcopnpyyd.onion/
searX (メタ検索エンジン)のインスタンス +
searXNG (メタ検索エンジン)のインスタンス
https://searx.space/
@@ -368,9 +376,7 @@https://sourcehut.org/
Teddit (Reddit の代替フロントエンド)
+
- 公式インスタンス:https://teddit.net/
-
- インスタンス一覧:https://codeberg.org/teddit/teddit
https://codeberg.org/teddit/teddit
TorZillaPrint (ブラウザ指紋テスト)
@@ -383,6 +389,12 @@
https://arkenfox.github.io/TZP/tzp.html
Wayback Machine (ウェブアーカイブ)
+
https://web.archive.org/
Whoogle (Google 検索の代替フロントエンド) +
+
+https://github.com/benbusby/whoogle-search
Wikiless (Wikipedia の代替フロントエンド) +
+https://github.com/Metastem/wikiless
市民社会組織
Access Now (INT)
@@ -430,7 +442,7 @@
アリスとボブ
- +連絡先
PGP 鍵
diff --git a/ja-html/alice2bob-ja-glossary-2.1.html b/ja-html/alice2bob-ja-glossary-2.2.html similarity index 97% rename from ja-html/alice2bob-ja-glossary-2.1.html rename to ja-html/alice2bob-ja-glossary-2.2.html index cf2e651..86b5745 100644 --- a/ja-html/alice2bob-ja-glossary-2.1.html +++ b/ja-html/alice2bob-ja-glossary-2.2.html @@ -10,9 +10,9 @@1D3E 313C 4DB2 B3E0 8271 FC48 89BB 4CBB 9DBE 7F6D
用語集
アリスとボブ
-バージョン: 2.1
+バージョン: 2.2
本ガイドの最終更新: 2022-02-28
- +
-
@@ -165,7 +165,7 @@
アリスとボブ
- +連絡先
PGP 鍵
diff --git a/ja-html/alice2bob-ja-intro-cryptography-2.1.html b/ja-html/alice2bob-ja-intro-cryptography-2.2.html similarity index 79% rename from ja-html/alice2bob-ja-intro-cryptography-2.1.html rename to ja-html/alice2bob-ja-intro-cryptography-2.2.html index e822569..955719c 100644 --- a/ja-html/alice2bob-ja-intro-cryptography-2.1.html +++ b/ja-html/alice2bob-ja-intro-cryptography-2.2.html @@ -10,9 +10,9 @@1D3E 313C 4DB2 B3E0 8271 FC48 89BB 4CBB 9DBE 7F6D
暗号技術入門
アリスとボブ
-バージョン: 2.1
+バージョン: 2.2
本ガイドの最終更新: 2022-08-11
- +
-
@@ -84,7 +84,7 @@
暗号とは
-暗号とは、第三者や悪質な行動から情報と通信を保護する手法です。デジタルデバイスを対象にした現代の暗号は情報セキュリティ、計算科学、数学、物理学、電気電子工学、通信工学などの分野を交差し、商業、通貨、人権保護、軍事、身元のデジタル化などの用途に使われています。通信だけに限らず、記憶媒体にデータを保存する際にも適用できます。
+暗号(cryptography)とは、第三者や悪質な行動から情報と通信を保護する手法です。デジタルデバイスを対象にした現代の暗号は情報セキュリティ、計算科学、数学、物理学、電気電子工学、通信工学などの分野を交差し、商業、通貨、人権保護、軍事、身元のデジタル化などの用途に使われています。通信だけに限らず、記憶媒体にデータを保存する際にも適用できます。
情報の所在・存在を隠すことを目的にするステガノグラフィや物質的手法と異なり、暗号は情報の所在・存在を隠さずに情報を第三者が読めないようにすることが多いです。
セキュリティ特性
現代の暗号はただ秘匿性だけでなく、使用事例に適した様々なセキュリティ特性を実現できます。以下では暗号で実現できるセキュリティ特性の例を大きく分類します。
@@ -102,17 +102,17 @@暗号は強力なツールだが、万能の対策でも魔法でもありません。暗号を信用・利用する前に、以下の点を考慮した方がいいでしょう。
暗号は本当に適切な解決策か?
「デジタルセキュリティの概念」では、自分の状況を理解すること、最弱点から対策を始めること、 KISS 原則、記録した情報を最低限することなど様々な原則を推奨しました。あなたの使用事例に暗号は本当に最適な解決策か、それとも、ローテクの対策または情報隠蔽の方が適切か?状況によって異なります。ハイテクな対策にこだわらずに、他に適切な対策を考えてみてください。
-→ ガイド:デジタルセキュリティの概念 § KISS:単純な対策を優先する — Markdown | HTML
+→ ガイド:デジタルセキュリティの概念 § KISS:単純な対策を優先する — Markdown | HTML
暗号機能が提供するセキュリティ特性を理解する
暗号機能を採用する前に、提供されるセキュリティ特性の詳細を理解することが重要です。
「暗号化メール」は具体的にどんな暗号化なのか不明すぎるため、秘匿性の強度、どんな敵から情報を保護してくれるかが不明です。トランスポート暗号化、サーバのディスク暗号化またはエンドツーエンド暗号化がメールに適用されるかによって、「暗号化メール」が提供してくれる秘匿性が異なります。
署名を行う際、署名者が決めたメッセージだけでなく、署名日時(タイムスタンプ)、署名者情報、アプリケーションバージョンなど他の情報もアプリケーションによって含まれることが少なくありません。署名を検証する時にどの情報が署名で保護されているか、そして署名を行う際に他にどの情報が追加(漏洩)されるか、それらを理解した方がいいでしょう。
通信のメタデータ(データについてのデータ)が暗号で保護されない場合が多いです。例えば、ウェブ閲覧の際、ウェブサーバとのやり取り(内容)がしばしば TLS で保護されるが、 IP (インターネットプロトコル)ではトラフィックの IP アドレスが平文のままです。
OpenPGP の署名や暗号化はメールの内容の保護に利用できるが、メールの宛先、送信元、件名などを保護しません。また、メールのメッセージが OpenPGP で署名されても、署名者がメールを送ったとの認証になりません。
-→ ガイド: OpenPGP と GnuPG § メタデータをほぼ全く保護しない — Markdown | HTML
+→ ガイド: OpenPGP と GnuPG § メタデータをほぼ全く保護しない — Markdown | HTML
虚偽宣伝をするソフトウェアプロジェクトやサービス提供者もいるので、セキュリティ特性をできる限り理解してから採用することを推奨します。例えば、エンドツーエンド暗号化を提供すると偽ったビデオ通話ソフトが自らのサーバで会話を傍聴できる方式だった事例がありました。
→ 外部資料: Zoom E2EE の虚偽宣伝:
-https://theintercept.com/2020/03/31/zoom-meeting-encryption
→ ガイド:デジタルセキュリティの概念 § 物事を疑わずに受け入れず、十分に検証する — Markdown | HTML
+→ ガイド:デジタルセキュリティの概念 § 物事を疑わずに受け入れず、十分に検証する — Markdown | HTML
暗号技術の安全性を確認する
暗号機能のセキュリティ特性を理解することが良いスタートだが、そのセキュリティ特性を実現する暗号技術は本当に安全でしょうか?
解読攻撃の知識によって暗号アルゴリズムは時間につれて弱体化する可能性があり、設計時にバックドアが施された可能性もあります。また、暗号機能には実装上のバグ、バックドア、サイドチャネルなどの脆弱性が入っている可能性があります。 NSA のバックドアが入っていると広く疑われている Dual_EC_DRBG 疑似乱数生成アルゴリズムが代表的な例です。
@@ -125,7 +125,7 @@FLOSS (自由オープンソースソフトウェア)や FLOSH (自由オープンソースハードウェア)は安全性の確認可能性には不可欠です。開発者以外の人たちがソフトウェアやハードウェアのソースコードを閲覧・確認できなければ、安全性の確認は不可能なため、信用不可能です。
-→ ガイド:デジタルセキュリティの概念 § FLOSS を使用する — Markdown | HTML
+→ ガイド:デジタルセキュリティの概念 § FLOSS を使用する — Markdown | HTML
利用者全員がこの確認をしなければならないわけでなく、専門者でない一般の利用者にとって確認作業が無理または困難でしょう。しかし、開発者から独立した専門者によるセキュリティ監査の報告書、コミュニティ掲示板の投稿、他の情報などを参考にしながら、利用者には少なくとも安全なアルゴリズムと実装が使われているかを確認してから暗号機能を採用することを推奨します。
自家製暗号に要注意
“Don’t roll your own crypto” (自家製暗号を開発するな)という注意スローガンがよくあります。暗号学とプログラミングとデジタルセキュリティに精通していない人たちが開発したコード、一人だけが開発したコード、セキュリティの議論・レビュー・監査が不十分なコードなどは、実際使用の際に要注意です。
@@ -134,7 +134,7 @@開発しているソフトウェアに暗号を採用する必要がある場合、既存の高品質のライブラリを探して採用することを推奨します。
→ 外部資料:暗号ライブラリの比較:
https://ja.wikipedia.org/wiki/暗号ライブラリの比較
暗号解読
-暗号解読(cryptanalysis)とは、暗号のアルゴリズム上または実装上の弱点を探すことです。秘密情報(例:鍵、パスワード、平文)を使用せずに以下のようなことが攻撃者にとって主な目的です。
+暗号解読(cryptanalysis)とは、暗号のアルゴリズム上または実装上の弱点を探すことです。秘密情報(例:鍵、パスワード、平文)を使用せずに以下のようなことが攻撃者にとって主な目的です。
公開鍵暗号化
-暗号化と復号化に共通する鍵を用いた暗号化と異なり、公開鍵暗号化(public key encryption)または非対称鍵暗号化(asymmetric encryption)とは、公開鍵を用いた暗号化のことです。公開鍵で暗号化したメッセージを、数学的に関係づけられた秘密鍵を用いて復号化します。
+暗号化と復号化に共通する鍵を用いた暗号化と異なり、公開鍵暗号化(public key encryption)または非対称鍵暗号化(asymmetric encryption)とは、公開鍵を用いた暗号化のことです。公開鍵で暗号化したメッセージを、数学的に関係づけられた秘密鍵を用いて復号化します。
公開鍵暗号化では、鍵がデジタル身元の役割を果たすことが多く、簡単に長期的に同じ鍵ペアを利用することができます。通信に必要な秘密情報について、各当事者が自分の鍵ペアだけを交換・保管する必要があります。
しかし、公開鍵暗号化は対称鍵暗号化より遅いため、大量の情報の暗号化に適していません。また、公開鍵を多く使用すると秘密鍵の情報が徐々に漏洩される可能性があります。
ハイブリッド暗号化
ハイブリッド暗号化(hybrid encryption)とは、公開鍵暗号化と対称鍵暗号化を組み合わせた暗号化のことです。公開鍵暗号化と対称鍵暗号化と異なり、ただの暗号化プリミティブではなく、プリミティブを組み合わせた物です。
-ハイブリッド暗号化は公開鍵暗号化と対称鍵暗号化の両者のメリットを取り入れながらデメリットを排除しようとします。対称鍵暗号化は公開鍵暗号化より高速で大量情報の暗号化に適している一方、公開鍵暗号化は安全なセッション鍵(session key)の共有に適しています。公開鍵は長期的に使用できるデジタル身元みたいなものです。
-ハイブリッド暗号化の一例は、一通のメッセージだけに使うセッション鍵を生成してから公開鍵で暗号化し、メッセージをセッション鍵とサイファで暗号化する仕組みです。 OpenPGP はこのようなハイブリッド暗号化を使います。他に、身元鍵(identity key)の役割を演じる公開鍵が危殆化されてもセッション鍵が危殆化されない前方秘匿性のある通信方式など、様々なハイブリッド暗号化もあります。 TLS と SSH もハイブリッド暗号化を使います。
-→ ガイド: OpenPGP と GnuPG § 暗号化 — Markdown | HTML
+ハイブリッド暗号化(hybrid encryption)とは、公開鍵暗号化と対称鍵暗号化を組み合わせた暗号化のことです。公開鍵暗号化と対称鍵暗号化と異なり、ただの暗号化プリミティブではなく、プリミティブを組み合わせた物です。
+ハイブリッド暗号化は公開鍵暗号化と対称鍵暗号化の両者のメリットを取り入れながらデメリットを排除しようとします。対称鍵暗号化は公開鍵暗号化より高速で大量情報の暗号化に適している一方、公開鍵暗号化はセッション鍵(session key)の共有に適しています。公開鍵は長期的に使用できるデジタル身元みたいなものです。
+ハイブリッド暗号化の一例は、一通のメッセージだけに使うセッション鍵を生成してから公開鍵で暗号化し、メッセージをセッション鍵とサイファで暗号化する仕組みです。 OpenPGP はこのようなハイブリッド暗号化を使います。他に、身元鍵(identity key)の役割を演じる公開鍵が危殆化されてもセッション鍵が危殆化されない前方秘匿性のある通信方式など、様々なハイブリッド暗号化もあります。 TLS と SSH もハイブリッド暗号化を使います。
+→ ガイド: OpenPGP と GnuPG § 暗号化 — Markdown | HTML
暗号化技術の種類
暗号化のプリミティブについて前述しました。ここで用途で分類した暗号化について紹介します。
保管時の暗号化
-保管時の暗号化(encryption at rest)とは、情報を保管する際の暗号化です。暗号化ファイルシステムを利用したら、ファイルシステムに保存する情報の暗号化・復号化が自動的です。自分のデバイス上に情報を保存するには不可欠な暗号化です。
+保管時の暗号化(encryption at rest)とは、情報を保管する際の暗号化です。暗号化ファイルシステムを利用したら、ファイルシステムに保存する情報の暗号化・復号化が自動的です。自分のデバイス上に情報を保存するには不可欠な暗号化です。
OpenPGP (秘密鍵やメッセージの暗号化)、 KeePassXC (データベースの暗号化)、 LUKS (ファイルシステムの暗号化)、 VeraCrypt (ファイルシステムの暗号化)などのアプリケーションは保管時の暗号化を活用します。
しかし、他人のデバイスに情報を任せる場合、保管時の暗号化の価値が少ないでしょう。保管先が暗号化の鍵も持っている場合、保管先が勝手に情報を覗き見・改竄できます。また、情報をネットワーク経由で保管先にアップロード・ダウンロードする場合、保管先との間の通信を保護しなければ第三者が通信を傍受するリスクがあります。通信を保護した上で行うよう注意し、保管先も情報を復号化できないようなエンドツーエンド暗号化を利用した方がいいかもしれません。
転送中の暗号化
-転送中の暗号化(encryption in transit)またはトランスポート暗号化(transport encryption)とは、情報が転送中に秘匿性を保護するよう、送信者から受信者まで施す暗号化です。例えば、 SSL/TLS は過去 10 年の間に徐々に採用され、現在はほとんどのウェブサイトが TLS に対応しているため、インターネットに重大なセキュリティ向上に貢献しています。
+転送中の暗号化(encryption in transit)またはトランスポート暗号化(transport encryption)とは、情報が転送中に秘匿性を保護するよう、送信者から受信者まで施す暗号化です。例えば、 SSL/TLS は過去 10 年の間に徐々に採用され、現在はほとんどのウェブサイトが TLS に対応しているため、インターネットに重大なセキュリティ向上に貢献しています。
転送中の暗号化は、送信者と受信者の間に転送される情報を復号化して再び暗号化する方式も含みます。情報の復号化・再暗号化をする中間者が存在する場合、その情報が転送中に盗聴・改竄される可能性があります。また、エンドツーエンド暗号化と異なり、当事者が鍵の交換・検証を十分に行えない場合が多いです。そのため、秘匿性と認証が重要な使用事例には転送中の暗号化だけに頼ってはならず、エンドツーエンド暗号化を利用した方がいいかもしれません。
エンドツーエンド暗号化
-エンドツーエンド暗号化(end-to-end encryption、 E2EE、 E2E 暗号化)とは、送信者と受信者で構成される当事者(エンドポイント)だけが鍵を持ち、中間者や第三者による傍聴を防ぐ暗号化です。単の転送中の暗号化と異なり、当事者が各自鍵ペアを生成・管理・交換したりセッション鍵に合意したりし、当事者だけがコントロールする暗号で通信を保護します。
+エンドツーエンド暗号化または E2EE(end-to-end encryption)とは、送信者と受信者で構成される当事者(エンドポイント)だけが鍵を持ち、中間者や第三者による傍聴を防ぐ暗号化です。単の転送中の暗号化と異なり、当事者が各自鍵ペアを生成・管理・交換したりセッション鍵に合意したりし、当事者だけがコントロールする暗号で通信を保護します。
エンドツーエンド暗号化は Tor オニオンサービス、 OpenPGP、 Signal プロトコルまたはそれに類するプロトコルのメッセンジャーなどに活用されています。
ハッシュ化
-ハッシュ化(hashing)とは、任意長のメッセージ(原像、 pre-image)を決定的に固定長の数値に写像する手法です。出力値はハッシュ値(hash)またはダイジェスト(digest)と呼ばれます。写像自体はハッシュ関数(hash function)と呼ばれます。
+ハッシュ化(hashing)とは、任意長のメッセージ(原像、 pre-image)を決定的に固定長の数値に写像する手法です。出力値はハッシュ値(hash)またはダイジェスト(digest)と呼ばれます。写像自体はハッシュ関数(hash function)と呼ばれます。
ハッシュ化のなだれ効果。 @@ -298,18 +298,19 @@ ハッシュ化は決定的な計算で、同じメッセージに対して同じハッシュ値が得られます。しかし、ハッシュ化にはなだれ効果(avalanche effect)があり、メッセージが微小に変化してもハッシュ値が全く変わります。
-可逆性のある暗号化・復号化と異なり、ハッシュ化は不可逆な変換で、メッセージを復元する逆演算がありません。また、暗号に適した安全なハッシュ関数(暗号的ハッシュ関数、 cryptographic hash function)に求められる性質は以下です。
+ハッシュ化は決定的な計算で、同じメッセージに対して同じハッシュ値が得られます。しかし、ハッシュ化にはなだれ効果(avalanche effect)があり、メッセージが微小に変化してもハッシュ値が全く変わります。
+可逆性のある暗号化・復号化と異なり、ハッシュ化は不可逆な変換で、メッセージを復元する逆演算がありません。また、暗号的ハッシュ関数(cryptographic hash function)という暗号に適した安全なハッシュ関数に求められる性質は以下です。
-
-
情報の完全性検証に大きな役割を演じます。ある情報の正しいハッシュ値を持っていれば、情報をハッシュ化した結果と照合することで完全性を確認できます。様々な使用事例があります。
-
@@ -348,8 +349,9 @@ $ # SHA-256 ハッシュ値を照合。
$ sha256sum --check SHA256SUMS
alice.txt: OK
署名
+注:「署名」(名詞)は用法によって “signing” (行為)か “signature” (物)を意味します。曖昧さ回避のために、本ガイドでは署名行為を「署名発行」と呼びます。
-署名(signing)とは、秘密鍵を用いてメッセージの完全性と認証を検証可能にする証明の生成のことです。署名アルゴリズムが出力する検証のための情報は署名(signature)と呼ばれます。秘密鍵で署名されたメッセージと署名を、数学的に関係づけられた公開鍵を用いて検証します。
+暗号における署名発行(signing)または単に署名とは、秘密鍵を用いてメッセージの完全性と認証を検証可能にする証明を生成・発行することです。署名アルゴリズムが出力する検証のための情報は署名(signature)と呼ばれます。秘密鍵で署名されたメッセージと署名を、数学的に関係づけられた公開鍵を用いて検証します。
署名されたメッセージの検証に成功したら、検証者が暗号上正当なメッセージと署名と公開鍵を揃って所有するため、以下のことを証明できます。
このような特性を持つため、契約や注文など重要な文書に署名するという応用例に適しています。また、リリースしたソフトウェアに署名するソフトウェア開発者が少なくありません。
ハイブリッド暗号化と似ているように、現代の署名は公開鍵暗号とハッシュの両者のメリットを取り入れながらデメリットを削減し、メッセージへの直接の署名ではなく、メッセージのハッシュ値に対して秘密鍵を用いて署名アルゴリズムを適用します。
メッセージ認証符号
-メッセージ認証符号(message authentication code、 MAC)とは、共通鍵と任意長のメッセージを入力とするアルゴリズムで生成された、メッセージを検証する際に使う情報です。 MAC はメッセージの完全性確認を可能にし、メッセージの共通鍵を所有する検証者に送信者からのメッセージであることを証明します。
+メッセージ認証符号または MAC (message authentication code)とは、共通鍵と任意長のメッセージを入力とするアルゴリズムで生成された、メッセージを検証する際に使う情報です。 MAC はメッセージの完全性確認を可能にし、メッセージの共通鍵を所有する検証者に送信者からのメッセージであることを証明します。
検証に成功したメッセージと MAC で、以下を得ます。
検証
署名と MAC について前述したため、ここで検証について簡潔に説明します。
-暗号における検証(verification)とは、情報の完全性・出所や通信相手の身元などを確認することです。与えられた情報(メッセージ、ハッシュ値、署名、公開鍵、 MAC、共通鍵など)から以下の結果が出ることが可能です。
+暗号における検証(verification)とは、情報の完全性・出所や通信相手の身元などを確認することです。与えられた情報(メッセージ、ハッシュ値、署名、公開鍵、 MAC、共通鍵など)から以下の結果が出ることが可能です。
疑似乱数生成
-疑似乱数生成器(pseudo-random number generator、 PRNG)は、疑似乱数列を出力するアルゴリズムです。暗号的に安全な PRNG (cryptographically secure PRNG、 CSPRNG)は、強力な秘密鍵、セッション鍵、ソルト、パスワードなどを生成するために不可欠な要素で、暗号方式が多く CSPRNG を活用します。
-PRNG はシード値(seed)と呼ばれる乱数で初期化されてから使用されます。 PRNG の出力は決定的で、同じシード値を与えたら同じ数列が出力されます。 PRNG の内部状態またはシード値が知られたら、出力が予測可能になってしまいます。そのため、暗号やセキュリティの使用事例では CSPRNG が安全に初期化される必要があります。
+疑似乱数生成器または PRNG (pseudo-random number generator)とは、疑似乱数列を出力するアルゴリズムです。 CSPRNG (cryptographically secure PRNG、暗号的に安全な PRNG)は、強力な秘密鍵、セッション鍵、ソルト、パスワードなどを生成するために不可欠な要素で、暗号方式が多く CSPRNG を活用します。
+PRNG はシード値(seed)と呼ばれる乱数で初期化されてから使用されます。 PRNG の出力は決定的で、同じシード値を与えたら同じ数列が出力されます。 PRNG の内部状態またはシード値が知られたら、出力が予測可能になってしまいます。そのため、暗号やセキュリティの使用事例では CSPRNG が安全に初期化される必要があります。
真の乱数列は規則性も再現性もなく、予測不可能です。一方、 PRNG の出力は真の乱数列ではありません。 PRNG の出力が真の乱数列に近似するには、良い統計的無作為性(一様性、無相関など)が必要です。それに加えて、 CSPRNG は出力を予測する攻撃への耐性も有します。
以下は疑似乱数生成アルゴリズムの例です。
-
@@ -409,21 +411,21 @@ $ # 小文字と数字だけの 10 文字の無作為文字列を生成。
$ cat /dev/urandom | tr -dc 'a-z0-9' | head -c 10
lenjiqlnfi
鍵交換
-鍵交換(key exchange)とは、通信の当事者が秘密の共通鍵に合意する手法です。
+鍵交換(key exchange)とは、通信の当事者が秘密の共通鍵に合意する手法です。
非暗号化チャネル上で秘密情報や鍵を平文で送信すると、それが盗聴されるおそれがあるため、非暗号化チャネル上で通信を行う前にまず共通鍵に合意する必要があります。仮に非暗号化チャネル上で使える安全な鍵交換手段がなかった場合、まず事前に当事者が面会して鍵を交換するか安全な他のチャネル(例:信用たる宅配便業者)で鍵を伝える必要があります。
ところが、 Diffie–Hellman 鍵交換法では監視されている非暗号化チャネル上でも当事者が安全に秘密の共通鍵に合意できます。当事者が共通鍵に合意した後、対称鍵暗号化を用いた秘匿通信ができます。ただし、認証性のあるチャネルまたは他の認証手段が必要です。何かしらの認証を行わない場合、 Diffie–Hellman 鍵交換はチャネル上のメッセージを改竄できる MITM 攻撃に対して失敗します。
前方秘匿性
-前方秘匿性(forward secrecy)は、鍵交換に使用した長期的な鍵(例:鍵ペア)が危殆化されてもセッション鍵が危殆化されないという暗号化の仕組みです。前方秘匿通信では各セッションに新しい鍵が生成・使用されるため、一つのセッションが危殆化されても他のセッションに及びません。
+前方秘匿性(forward secrecy)は、鍵交換に使用した長期的な鍵(例:鍵ペア)が危殆化されてもセッション鍵が危殆化されないという暗号化の仕組みです。前方秘匿通信では各セッションに新しい鍵が生成・使用されるため、一つのセッションが危殆化されても他のセッションに及びません。
鍵生成が速い Diffie–Hellman 鍵交換は前方秘匿性の実現によく使われます。メッセージのやり取りの使用事例では、メッセージ毎に鍵交換を行うことによって前方秘匿性を実現できます。
鍵導出
-鍵導出(key derivation)とは、秘密情報(パスワードまたは身元鍵など)を用いて、特定の形式を満たす鍵、強力な鍵、複数の鍵などを導出することです。以下の目的に使用されます。
+鍵導出(key derivation)とは、秘密情報(パスワードまたは身元鍵など)を用いて、特定の形式を満たす鍵、強力な鍵、複数の鍵などを導出することです。以下の目的に使用されます。
鍵導出は疑似乱数関数(pseudo-random function)を利用し、たいていはハッシュ関数またはブロックサイファを疑似乱数関数として利用します。鍵導出は決定的でありながら、秘密情報(またはソルト)が変わるとなだれ効果によって全く違う鍵が得られます。
+鍵導出は疑似乱数関数(pseudo-random function、 PRF)を利用し、たいていはハッシュ関数またはブロックサイファを疑似乱数関数として利用します。鍵導出は決定的でありながら、秘密情報(またはソルト)が変わるとなだれ効果によって全く違う鍵が得られます。
以下は鍵導出関数の例です。
鍵導出にはソルト値(塩、 salt)という乱数が与えられることがあります。秘密情報にソルト値を付加してからハッシュ化すると、秘密情報が同じであっても毎回異なるハッシュ値が得られます。
+鍵導出にはソルト値(塩、 salt)という乱数が与えられることがあります。秘密情報にソルト値を付加してからハッシュ化すると、秘密情報が同じであっても毎回異なるハッシュ値が得られます。
ソルト値とハッシュ値が流出しても、秘密情報を得ようとする攻撃からその秘密情報を保護します。保存されているパスワードの保護によく活用されます。ソルト化することで、以下のセキュリティメリットが得られます。
ただし、以上のような簡単なソルト化では、強力なオフライン攻撃7が実行できる攻撃者がソルト値とハッシュ値を入手した場合、保護が不十分かもしれません。また、辞書攻撃8からの保護が限定的です。
鍵ストレッチング
-鍵ストレッチング(key stretching)とは、弱いかもしれない秘密情報(例:人間が発想したパスワード、短い鍵)から攻撃に耐性のある鍵を導出することです。
-鍵ストレッチングではソルト値が導出された鍵と共に保管される一方、鍵強化(key strengthening)ではソルト値が破棄されます。鍵強化は弱いかもしれない秘密情報から鍵を導出するが、二度と同じ秘密情報から同じ鍵を導出する必要がない用途にしか使えず、一般のパスワード保護には適しません。
+鍵ストレッチング(key stretching)とは、弱いかもしれない秘密情報(例:人間が発想したパスワード、短い鍵)から攻撃に耐性のある鍵を導出することです。
+鍵ストレッチングではソルト値が導出された鍵と共に保管される一方、鍵強化(key strengthening)ではソルト値が破棄されます。鍵強化は弱いかもしれない秘密情報から鍵を導出するが、二度と同じ秘密情報から同じ鍵を導出する必要がない用途にしか使えず、一般のパスワード保護には適しません。
ハッシュ化には高速なハッシュ関数が望ましい使用事例が多い一方、鍵ストレッチングでは攻撃を遅らせることが目的で、逆に資源(時間と空間)が多くかかる計算が望ましいです。一回だけ正しいパスワードを入力することが多い正当な利用者にとって負担がわずかな一方、多数のパスワードの候補を試行する攻撃者にとって負担が大きいという良好な非対称があります。
ソルト化とハッシュ化を(数万回〜数億回)繰り返すことで、総当たり攻撃、レインボーテーブルを用いた攻撃、辞書攻撃などのオフライン攻撃を困難または実行不可能にすることができます。例えば、 OpenPGP は最大 65,011,712 回のソルト化とハッシュ化をする鍵ストレッチング(s2k)で秘密鍵と暗号文を保護します。 LUKS ファイルシステム(デフォルト: PBKDF2)や KeepassXC データベース(デフォルト: Argon2)を解錠時、解錠に数秒ぐらいがかかることには気が付くでしょう。
@@ -533,7 +535,7 @@ lenjiqlnfi
アリスとボブ
- +連絡先
PGP 鍵
diff --git a/ja-html/alice2bob-ja-preface-2.1.html b/ja-html/alice2bob-ja-preface-2.2.html similarity index 74% rename from ja-html/alice2bob-ja-preface-2.1.html rename to ja-html/alice2bob-ja-preface-2.2.html index 35ad0f1..9753991 100644 --- a/ja-html/alice2bob-ja-preface-2.1.html +++ b/ja-html/alice2bob-ja-preface-2.2.html @@ -10,9 +10,9 @@1D3E 313C 4DB2 B3E0 8271 FC48 89BB 4CBB 9DBE 7F6D
序文
アリスとボブ
-バージョン: 2.1
+バージョン: 2.2
本ガイドの最終更新: 2022-08-12
- +
アリスとボブはやりとりをしたいが、デジタル技術が広く行き渡っている情報化時代の中に生きていて、蔓延している監視と統制から自身と相手を守りたい。どうしたらいいか?
@@ -29,78 +29,78 @@
アリスとボブ
- +連絡先
PGP 鍵
diff --git a/ja-html/alice2bob-ja-security-concepts-2.1.html b/ja-html/alice2bob-ja-security-concepts-2.2.html similarity index 84% rename from ja-html/alice2bob-ja-security-concepts-2.1.html rename to ja-html/alice2bob-ja-security-concepts-2.2.html index c84c31a..998f110 100644 --- a/ja-html/alice2bob-ja-security-concepts-2.1.html +++ b/ja-html/alice2bob-ja-security-concepts-2.2.html @@ -10,9 +10,9 @@1D3E 313C 4DB2 B3E0 8271 FC48 89BB 4CBB 9DBE 7F6D
デジタルセキュリティの概念
アリスとボブ
-バージョン: 2.1
-本ガイドの最終更新: 2022-02-28
- +バージョン: 2.2
+本ガイドの最終更新: 2023-08-17
+
-
@@ -38,7 +38,7 @@
他人がセンシティブ情報を保護してくれることを信用しない
→ ガイド:セキュリティ計画 — Markdown | HTML
+→ ガイド:セキュリティ計画 — Markdown | HTML
最弱点から対策を始める
例えば、自宅の玄関のドアを強化して鍵をかけても、どこかの窓が開けっ放しだとあまり意味がありません。
守りたい物事に関連する各部分の連鎖を考えて、リスクが最も高い部分を優先しましょう。セキュリティを強化したい時に、まず最弱点から対策を始めた方が最も効果的でしょう。
KISS:単純な対策を優先する
複雑な対策を導入したら、動く部分の連鎖が長くなります。攻撃対象領域(脆弱性の数)や相互作用の数が増え、かえってセキュリティ低下になる恐れがあります。また、複雑な対策だと管理が難しくなるため、セキュリティ対策の維持と見直しが疎かになりがちです。
-できる限りセキュリティ対策を単純にしておくことをおすすめします。これは KISS2 原則と呼ばれることが多いです。
+できる限りセキュリティ対策を単純にしておくことをおすすめします。これは KISS2 と呼ばれることが多いです。
単純かつローテクな対策のいくつかの例を下にあげます。
→ 外部資料: “Signal Fails”:
@@ -105,8 +105,8 @@https://itsgoingdown.org/signal-fails
一件のミスまたは侵害だけで取り返しがつかない被害を受ける恐れがあります。特に、物質と違って、デジタルの情報は一度でも漏洩されると無数に閲覧・コピーされがちです。事後対応はある程度被害を抑えられるものの、遡及力が限定的で対応コストが一般的に高いです。
ミスと侵害を未然防止する事前対策を徹底することが大事です。
STFU:情報を不要に明かさない
-センシティブ情報3を漏らすと、該当する活動や対策の失敗、または当事者(場合によって回りの人も)に対する危険や個人情報窃盗につながる恐れがあります。
-関係者の同意を得ていない限り、センシティブ情報を不要に明かすことを控えましょう。特に、知る必要がある人以外の前で秘密情報を口にすることを避けましょう。知る必要のある人でない限り、もちろん家族や親友にも内緒です。これは STFU4 と呼ばれ、重要性の高い原則です。
+センシティブ情報3を漏らすと、該当する活動や対策の失敗、または当事者(場合によって回りの人も)に対する危険につながる恐れがあります。
+関係者の同意を得ていない限り、センシティブ情報を不要に明かすことを控えましょう。特に、知る必要がある人以外の前で秘密情報を口にすることを避けましょう。知る必要のある人でない限り、もちろん家族や親友にも内緒です。これは STFU4 と呼ばれ、重要な原則です。
原則として全ての情報をセンシティブ情報として扱うべきです。ただし、必要に迫られた場合、必要な情報だけを安全な手段で共有すると情報漏洩のリスクを最小限にすることができます。
一見では単純な原則だと思われるだろうが、守ることが簡単ではありません。人間は自分の知識や活動について自慢したりおしゃべりを沢山したりする社会的な動物です。また、情報開示の影響を身近に感じないか把握しきれないことが多いため、口に出すべきでない情報をうっかり口に出してしまいます。自慢話やおしゃべりの際に余計なことを言わないよう気をつけましょう。
情報は人の意識的な言動以外からも漏れることがあります。インターネットは監視の悪夢で、現代デバイスの通信とセンシング機能が恐ろしいです。デジタルに関連する STFU の例を以下にあげます。
@@ -120,15 +120,15 @@他人がセンシティブ情報を保護してくれることを信用しない
デジタルの時代にプライバシーポリシーや情報保護法が普及しています。しかし、このような法的手段は実際に人たちの情報を保護してくれているでしょうか?インターネット会社は任意にまたは強制されて法執行機関と協力することが多く、サービス利用者のセンシティブ情報の売買を習慣的にやります。また、多くのインターネット会社はプライバシー意識とセキュリティ対策を欠け、日常茶飯事かのようにデータ流出が発生しています。
一方、友達と家族さえセンシティブ情報を保護してくれることを信用するには要注意です。インターネット会社と同様、多くの人たちもプライバシー意識とセキュリティ対策を欠け、脅迫、強制、詐欺、誘惑などに対して脆弱です。自分とやりとりする人はその時に暗号化通信を利用するかもしれないが、恐らく他人と非暗号化のメールや電話をするか信用しない他人とやりとりすることが多く、その時に自分のセンシティブ情報を明かしてしまう恐れがあります。
-必要がある時に親友や弁護など信用できる人に情報を明かしても大丈夫かもしれないが、他人にセンシティブ情報を容易に明かすことを避けましょう。どの情報をどの人にどの目的で明かしたらいいかをよく考えた上で行動すべきです。
-全ての情報と通信を効果的な技術で保護する
-プライバシーポリシーや他人の約束に頼ってはいけないことを示唆しました。人は強要、詐欺、働きかけなどに応じてセンシティブ情報を明かしてしまいます。それに加えて、仮に誰も信用しなくても、法的保護に頼ってはいけません。例えば、不法侵入の法律のある管区にさえ自宅が泥棒に入れられる可能性があります。また、自宅が火事になってしまう可能性も考えなければなりません。法的保護や方針や約束は脆弱なものです。情報と通信を保護するためには効果的な技術的手段が不可欠です。
-情報の破損、損失、改竄、漏洩、身元特定、不正アクセス、傍受、詐欺などをおそらく未然防止したいでしょう。デジタルセキュリティにおける技術的手法の例をいくつかあげます。
+必要がある時に親友や弁護士など信用できる人に情報を明かしても大丈夫かもしれないが、他人にセンシティブ情報を容易に明かすことを避けましょう。どの情報をどの人にどの目的で明かしたらいいかをよく考えた上で行動すべきです。
+全ての情報と通信を効果的な措置で保護する
+プライバシーポリシーや他人の約束に頼ってはいけないことを示唆しました。法的保護に頼ってはいけません。例えば、不法侵入を法律上犯罪化している管区にさえ自宅が泥棒に入れられる可能性があります。また、自宅が火事になってしまう可能性も考えなければなりません。法的保護や方針や約束は脆弱なものです。情報と通信を保護するためには効果的な技術的・物理的措置が不可欠です。
+情報の破損、損失、改竄、漏洩、身元特定、不正アクセス、傍受、詐欺などをおそらく未然防止したいでしょう。デジタルセキュリティにおける技術的・物理的措置の例をいくつかあげます。
記録した情報を最低限にし、不要な情報を削除する
@@ -139,15 +139,15 @@情報の入手と生成を最低限にする方法といえば、デバイス内のアプリやシステムのロギングの無効化、メールやメッセンジャーのやりとりの自動削除など、様々な手法があります。情報の生成と保存を最低限にする OS6 といえば、 Tails を推奨します。 Tails では、ユーザが意図的に保存した情報以外の情報が終了時に消去されます。
-→ ガイド: Tails での自由かつ匿名コンピューティング — Markdown | HTML
+→ ガイド: Tails での自由かつ匿名コンピューティング — Markdown | HTML
デジタル情報を簡易削除するだけで完全に消去されず、記憶装置に残ってしまいます。センシティブ情報を削除する際、データの完全な消去・破壊によって情報を復元不可能にすべきでしょう。例えば、ファイル削除後の空きスペース消去(上書き)、記憶装置の破壊などの手法があります。物質界では、情報を記載した紙の焼却かつ破砕は代表的な例です。
自宅からリスクの高い活動をしない
リスクの高い活動の出所が自宅まで追跡されたら、自宅と居住者に対する監視、ハラスメント、暴力などの攻撃の発生可能性が上がってしまいます。
また、自宅と身元(例えば実名)との繋がりが発覚されたら、身元に対する攻撃のリスクも出てきます。管区によるが、自宅と人の身元の情報はしばしば繋がっています。例えば、不動産を購入したり賃貸契約に入ったりする際に身元を明かす義務が多いです。運転免許証に住所が記載され、住所変更の申告を義務付ける管区もあります。国勢調査は匿名ではなく、氏名、出生、性別、国籍、配偶者などの個人情報が要求されます。その他に、友人や家族を自宅に誘ったり買い物を自宅まで郵送してもらったりして、日常生活において人が自分の身元を自宅に繋げることが多いです。
自宅からリスクの高い活動をしないことが重要です。できる限り、身元に繋がっていない場所からリスクの高い活動をしましょう。匿名化ネットワーク、匿名アカウントなどを使ってもこの原則は重要です。
物と情報を活動または身元ごとに区分する
-日常生活のために利用する物と情報をセンシティブな活動に使用しないことは重要です。日常生活用と活動用を区分に入れ、区分間の汚染を極力避けましょう。更に、日常生活に使う家族用、仕事用などのアカウント、連絡先、デバイスなども別の区分に入れるといいでしょう。
-できる限り区分すべきかもしれない物と情報といえば、別名、アカウント、連絡先、デバイス、ソフトウェア、インターネット接続、道具、知人・ソーシャルグラフ、スタイル、活動拠点など多数の例があります。一部の物と情報(例えば変更できない身体)は区分が無理かもしれないが、物と情報を区分すればするほど日常生活と活動との繋がりの発覚可能性を削減できます。
+日常生活のために利用する物と情報をセンシティブな活動に使用しないことは重要です。日常生活用と活動用を区分に入れ、区分間をわたる交差汚染を極力避けましょう。更に、日常生活に使う家族用、仕事用などのアカウント、連絡先、デバイスなども別の区分に入れるといいでしょう。
+できる限り区分すべきかもしれない物と情報といえば、別名、アカウント、連絡先、デバイス、ソフトウェア、インターネット接続、道具、人間関係(知人・ソーシャルグラフ)、スタイル、活動拠点など多数の例があります。一部の物と情報(例えば変更できない身体)は区分が無理かもしれないが、物と情報を区分すればするほど日常生活と活動との繋がりの発覚可能性を削減できます。
しかしながら、区分を維持するには多少の管理が必要です。そのために、以下の方法を提案します。
FLOSS を使用する
-FLOSS (自由オープンソースソフトウェア)とは、ソースコードが開示され、利用・コンパイル・頒布・変更ともが自由なソフトウェアです。自由ソフトウェアとオープンソースソフトウェアを含む総称で、 FLOSS は “free/libre and open-source software” の頭文語です。
+FLOSS (自由オープンソースソフトウェア)とは、ソースコードが開示され、利用・コンパイル・頒布・変更ともが自由なソフトウェアです。自由ソフトウェアとオープンソースソフトウェアを含む総称で、 FLOSS は “free/libre and open-source software” の頭文語です。
FLOSS はソフトウェアの検証を可能にするため、デジタルセキュリティにとって不可欠です。開発者だけしかソースコードが閲覧・編集できないソフトウェアでは、ソフトウェア利用者を監視していないか、バックドアを導入していないか、裏に怪しい動作・機能を導入していないか、セキュリティが健全であるかなど、ソフトウェア利用者が開発者に完全な信用を与えなければなりません。一方、 FLOSS では誰もがソースコードを閲覧し、ソフトウェアを自由に編集、複製、頒布などできるため、市民社会がソフトウェアを理解したり直接的にセキュリティ機能を確認したり脆弱性を修正したりできます。
そのため、できる限り FLOSS のみを使用することを推奨します。デバイス内のソフトウェアの完全 FLOSS 化は不可能かもしれないが(特にアップルデバイス、モバイルデバイス、ファームウェアレベルなどでは困難かもしれません)、 OS とアプリケーションを検証された FLOSS に取り替えるとセキュリティ向上になるでしょう。
-
-
とはいえ、 FLOSS だからセキュリティが健全だという保証はありません。あくまでも機能とセキュリティを検証可能にするだけです。 FLOSS が市民社会にとってのセキュリティ利益になるためには、暗号やプログラミングやコンピュータやセキュリティに詳しい人たちがコードを監査し、問題を開発者に指摘したり市民社会に結果を知らせたりしなければなりません。セキュリティを重要視するソフトウェアプロジェクトは監査を依頼することがあるが、ほとんどのソフトウェアは監査されていません。
+→ 外部資料: Linux のセキュリティ問題:
https://madaidans-insecurities.github.io/linux.html
対策の点検と見直しを定期的に行う
-セキュリティはツールの導入または購入ではなく、プロセスです。対策を導入しただけで終わりません。例え VPN や暗号化を使い始めても、それだけでは不十分です。
+セキュリティはツールの導入または購入ではなく、継続するプロセスです。対策を導入しただけで終わりません。例え VPN や暗号化を使い始めても、それだけでは不十分です。
セキュリティを維持するために、以下のことを定期的に行う必要があるでしょう。
自分のセキュリティ要件が時間につれて変わるかもしれません。また、過去に健全だったセキュリティ対策が脆弱になったかもしれません。過去に導入したセキュリティ対策が現在のセキュリティ必要に十分かつ適切か、定期的にセキュリティ対策を見直した方がいいです。
-→ ガイド:セキュリティ計画 — Markdown | HTML
+→ ガイド:セキュリティ計画 — Markdown | HTML
攻撃ベクトルと攻撃対象領域
-では、デジタルセキュリティにおいて実際に何を保護する必要があるか?本セクションでは具体例を紹介します。ただし、全ての点をここであげたと思わないでください。また、どうやってこれらの点を攻撃に利用したり保護したりできるかを自分で考えてください。
-攻撃ベクトル(attack vector)とは、攻撃者が対象者に害を与えるために利用できるまたは利用した特定の弱点(経路、手法、シナリオ、場所など)のことです。攻撃者が対象者の領域に侵入する場合を指すことが多いが、対象者の領域に対する監視や情報収集など受動的な攻撃も範囲内だと考えられます。
-攻撃対象領域(attack surface)とは、攻撃ベクトルの集合のことです。攻撃対象領域が広ければ広いほど攻撃されやすくなるため、セキュリティの観点では最小限にすることが望ましいです。
+では、デジタルセキュリティにおいて実際に何を保護する必要があるか?本セクションでは具体例を紹介します。ただし、全ての点をここであげると思わないでください。また、どうやってこれらの点を攻撃に利用したり保護したりできるかを自分で考えてください。
+攻撃ベクトル(attack vector)とは、攻撃者が対象者に害を与えるために利用できるまたは利用した特定の弱点(経路、手法、シナリオ、場所など)のことです。攻撃者が対象者の領域に侵入する場合を指すことが多いが、対象者の領域に対する監視や情報収集など受動的な攻撃も範囲内だと考えられます。
+攻撃対象領域(attack surface)とは、攻撃ベクトルの集合のことです。攻撃対象領域が広ければ広いほど攻撃されやすくなるため、セキュリティの観点では最小限にすることが望ましいです。
物質界
当然ながら、みんなの身体、デバイス、インターネットは物質界の中に存在します。また、暴力と物理的な力も物質界に存在します。そのため、身の回りの物質界は大変重要な保護対象です。
物質界の中に存在する物事の例を下にあげます。
@@ -209,12 +209,12 @@一方、アナログ(電磁波)とデジタルの情報と通信と異なって、物質で表現した情報は有限の質量を有します。一般的には光の速度より遥かに遅く移動し、希少性を有し、複製が難しいです。したがって、センシティブ情報をアナログまたはデジタルの記録・通信から遠ざけるメリットがあります。
+一方、アナログ(電磁波)とデジタルの情報と通信と異なって、物質で表現した情報は有限の質量を有します。一般的には光の速度より遥かに遅く移動し、希少性を有し、複製が難しいです。したがって、センシティブ情報をアナログまたはデジタルの記録・通信から遠ざけることにはメリットがあります。
ネットワーク通信
現代のネットワーク通信は多数の部分と層で構成されて実現しているものです。これを理解するには TCP/IP モデルまたは OSI モデルを見るといいかもしれません。
TCP/IP モデル
-TCP/IP モデルまたはインターネット・プロトコル・スィート(internet protocol suite)とは、インターネット(TCP/IP)開発中に 1970 年代頃に考案された 4 階層のプロトコルモデルです。ネットワーキング開発によく用いられているモデルです。
+TCP/IP モデルまたはインターネット・プロトコル・スィート(internet protocol suite)とは、インターネット(TCP/IP)開発中に 1970 年代頃に考案された 4 階層のプロトコルモデルです。ネットワーキング開発によく用いられているモデルです。
@@ -242,7 +242,7 @@ OSI モデル
-OSI モデルとは、多様な通信システムの標準化と相互利用可能性を目的に 1980 年代に考案された 7 階層の概念モデルです。 TCP/IP モデルに似ている階層モデルだが、インターネットより一般化したモデルです。
+OSI モデルとは、多様な通信システムの標準化と相互利用可能性を目的に 1980 年代に考案された 7 階層の概念モデルです。 TCP/IP モデルに似ている階層モデルだが、インターネットより一般化したモデルです。
@@ -290,7 +290,7 @@ “Layer 8”
-OSI モデルから拡張し、いわゆる「第 8 層」(“layer 8”)に言及されることがよくあります。人によって第 8 層の見解が異なるが、第 8 層とはアプリケーションとの相互作用をするユーザを意味することが少なくありません。「第 8 層」はネットワーク通信モデルから由来した用語だが、ユーザがアプリケーションと相互作用することが主なため、オフラインのアプリケーションのユーザを指すこともあります。
+OSI モデルから拡張し、いわゆる「第 8 層」(“layer 8”)に言及されることがよくあります。人によって第 8 層の見解が異なるが、第 8 層とはアプリケーションとの相互作用をするユーザを意味することが少なくありません。「第 8 層」はネットワーク通信モデルから由来した用語だが、ユーザがアプリケーションと相互作用することが主なため、オフラインのアプリケーションのユーザを指すこともあります。
デジタルセキュリティにおいては、アプリケーションとそれ以下の階層に問題がないにもかかわらず、ユーザがアプリケーションの使用でうっかりセンシティブ情報を明かすなどしてセキュリティを損ねてしまうことがあり得ます。そのため、ユーザはアプリケーションの正しい使い方やセキュリティ特性を理解することが重要です。
ユーザがアプリケーションを使う時に何か問題があった際に「問題は第 8 層にある」とユーザを批判する開発者がたまにいるだろうが、アプリケーション開発者はユーザの要件とデジタルセキュリティを理解して、ユーザが安全にアプリケーションを利用できるよう開発を進める必要もあります。
デバイスと周辺機器
@@ -305,7 +305,7 @@重要なセキュリティ上の注意点はデバイスに接続できる周辺機器についてです。キーボード、マウス、 USB メモリ、 SD カード、 Bluetooth、 Wi-Fi などの周辺機器はデータのロギング・抜き出しまたは悪質なデータ・ソフトウェアの挿入などの攻撃ベクトルになり得ます。例えば、ハードウェアのキーロガー、 USB 経由でマルウェアを注入したり USB ポートを破壊したりする悪質な USB デバイス、空港やホテルなど公共の場に設置されている悪質なスマートフォン充電器、主メモリに直接アクセスする Firewire や PCI Express などのインターフェイス、公共の場の Bluetooth または Wi-Fi デバイスを監視・攻撃する装置。
ベースバンド
ここで携帯電話・スマートフォンによくある問題について説明します。
-ベースバンドプロセッサ(baseband processor)略してベースバンドとは、携帯電話など移動体通信ネットワークに接続できるデバイスの中に内蔵し、送受信データと基底帯域(ベースバンド)信号との間の生成・復元を行う装置です。たいていは自らの CPU、メモリ、デジタル信号処理器(DSP)などを内蔵し、リアルタイムオペレーティングシステム(RTOS)のファームウェアを実行します。
+ベースバンドプロセッサ(baseband processor)略してベースバンドとは、携帯電話など移動体通信ネットワークに接続できるデバイスの中に内蔵し、送受信データと基底帯域(ベースバンド)信号との間の生成・復元を行う装置です。たいていは自らの CPU、メモリ、デジタル信号処理器(DSP)などを内蔵し、リアルタイムオペレーティングシステム(RTOS)のファームウェアを実行します。
そのため、事実上は現代のスマートフォンに主にアプリケーション(主プロセッサ)とベースバンドという2 つのコンピュータが入っていると言えます。基底帯域信号処理を個別のプロセッサで行う根拠といえば、無線機能の性能と信頼性を確保するという技術的な理由、また(アプリケーションからの分離による)認証簡素化という法令遵守の理由があります。
しかし、ベースバンドには複数の問題があります。しかも、仮に利用者がアプリケーションスタック(ハードウェア、 OS、アプリなど)を自由に選択・変更できても、ベースバンドの選択・変更は困難です。
-
@@ -345,7 +345,7 @@
アリスとボブ
- +連絡先
PGP 鍵
diff --git a/ja-html/alice2bob-ja-security-plan-2.1.html b/ja-html/alice2bob-ja-security-plan-2.2.html similarity index 71% rename from ja-html/alice2bob-ja-security-plan-2.1.html rename to ja-html/alice2bob-ja-security-plan-2.2.html index 9738d7a..7cca108 100644 --- a/ja-html/alice2bob-ja-security-plan-2.1.html +++ b/ja-html/alice2bob-ja-security-plan-2.2.html @@ -10,9 +10,9 @@1D3E 313C 4DB2 B3E0 8271 FC48 89BB 4CBB 9DBE 7F6D
セキュリティ計画
アリスとボブ
-バージョン: 2.1
+バージョン: 2.2
本ガイドの最終更新: 2021-12-29 (原文更新: 2021-02-02)
- +
-
@@ -46,21 +46,25 @@
注:本ガイドは Electronic Frontier Foundation (EFF)のシリーズ “Surveillance Self-Defense” のガイド “Your Security Plan” の翻訳です。原文は以下のリンクでアクセスできます。
https://ssd.eff.org/en/module/your-security-plan
セキュリティ計画
あらゆる人からあらゆる時に自分の全てのデータ1を保護しようとすることは非現実的で骨が折れるでしょう。それにしても、恐れないでください!セキュリティはプロセスで、思慮に富んだ計画づくりで自分にとって適切な計画を作成できます。セキュリティは利用するツールやダウンロードするソフトウェアのことだけではありません。自分が立ち向かう脅威とその対抗方法の理解で始まります。
-コンピュータセキュリティにおいて、脅威(threat)2とはデータを守る対策を弱体化させる恐れがある可能な事象です。何を誰から守る必要があるかを決意したら、脅威に対抗できるようになります。これはセキュリティ計画のプロセスで、脅威モデル(threat modeling)3と呼ばれます。
+コンピュータセキュリティにおいて、脅威(threat)2とは、データを守る対策を弱体化させる恐れがある可能な事象です。何を誰から守る必要があるかを決意したら、脅威に対抗できるようになります。これはセキュリティ計画のプロセスで、脅威モデリング(threat modeling)3と呼ばれます。
本ガイドは、自分のデジタル情報のためのセキュリティ計画を作成して、どの対策が最適かを決める方法を教えます。
では、セキュリティ計画はどのように見えるか?自分のお家と所有物を安全にしておきたいとしましょう。以下の質問を聞くでしょう。
守るに値する何を持っているか?
-
-
誰または何からそれを守りたいか?
-
-
それを守る必要がある公算はどの程度あるか?
-
-
失敗した場合の影響はどれくらい悪いか?
-
@@ -94,27 +98,27 @@
この質問について詳しく考えましょう。
守るに値する何を持っているか?
-財産5とは大切で保護したい物です。デジタルセキュリティにおいては、財産といえば情報です。例えば、電子メール、連絡先、メッセージ、位置、ファイルなどは財産6でしょう。デバイスも財産でしょう。
-財産をリストアップしましょう:保存しているデータ7、保存場所、それにアクセスできる人、何が他人によるアクセスを防止しているかなど。
+財産7とは、大切で保護したい物です。デジタルセキュリティにおいては、財産といえば情報です。例えば、電子メール、連絡先、メッセージ、位置、ファイルなどは財産8でしょう。デバイスも財産でしょう。
+財産をリストアップしましょう:保存しているデータ9、保存場所、それにアクセスできる人、何が他人によるアクセスを防止しているかなど。
誰または何からそれを守りたいか?
-この質問を答えるには、誰が自分または自分の情報を狙うかを特定することが重要です。自分の財産を脅かす8人や存在物は敵(adversary)9と呼ばれます。あり得る敵の例は、上司、元配偶者、商売の競争相手、政府機関、公共ネットワーク上のハッカーなどです。
-敵、または自分の財産を入手しようとしたいかもしれない人をリストアップしましょう。このリストには個人、政府機関、企業などが含まれるかもしれません。
+この質問を答えるには、誰が自分または自分の情報を狙うかを特定することが重要です。自分の財産を脅かす10人や存在物は敵11と呼ばれます。あり得る敵の例は、上司、元配偶者、商売の競争相手、政府機関、公共ネットワーク上のハッカーなどです。
+敵、または自分の財産を入手しようとしたいかもしれない人をリストアップしましょう。このリストには個人、政府機関、企業などが含まれるかもしれません。
敵と状況によっては、セキュリティ計画を終えた後、このリストを破壊した方がいいかもしれません。
失敗した場合の影響はどれくらい悪いか?
敵が自分のデータにアクセスできる手段が様々でしょう。例えば、敵はネットワーク上の自分のプライベートの通信を傍受できるかもしれないし、自分のデータを削除・破損できるかもしれません。
敵の動機は大幅に異なり、方策もそうです。警察暴力の動画の拡散を止めようとしている政府はその動画をただ削除するかアクセスを防止することだけで満足するかもしれません。それと対照して、ある政治的な相手は秘密の内容へのアクセスを取得し、その内容を自分が知らずに公開したいかもしれません。
-セキュリティ計画は、敵が自分の財産にアクセスするに成功した場合の悪影響の範囲を理解することを求めます。これを把握するには、敵の能力10を考慮すべきです。例えば、移動体通信提供者は自分の全ての通話記録へのアクセスを持ちます。誰でも利用できる Wi-Fi ネットワーク上のハッカーは自分の非暗号化通信を納受できます。政府機関はより強い能力を有するでしょう。
-敵が自分のプライベートなデータで何がしたいかもしれないかをリストアップしましょう。
+セキュリティ計画は、敵が自分の財産にアクセスするに成功した場合の悪影響の範囲を理解することを求めます。これを把握するには、敵の能力12を考慮すべきです。例えば、移動体通信提供者は自分の全ての通話記録へのアクセスを持ちます。誰でも利用できる Wi-Fi ネットワーク上のハッカーは自分の非暗号化通信を納受できます。政府機関はより強い能力を有するでしょう。
+敵が自分のプライベートなデータで何がしたいかもしれないかをリストアップしましょう。
それを守る必要がある公算はどの程度あるか?
注:本ガイドの原本は “risk” (リスク)を脅威の発生公算と定義するが、リスクは脅威の発生公算だけでなく発生後の悪影響も考慮すべき概念です。影響を無視したら、発生可能性の高い無害のリスクを過大評価する一方、ありそうにない重大なリスクを過小評価してしまいます。
-リスク(risk)11とは、ある特定の財産に対する特定の脅威が実際に発生する公算です。敵の能力と強く関連します。移動体通信提供者が自分の全てのデータにアクセスできるとしても、そのプライベートのデータをインターネット上に投稿して自分の評判に害を与える公算が低いでしょう。
+リスク(risk)13とは、ある特定の財産に対する特定の脅威が実際に発生する公算です。敵の能力と強く関連します。移動体通信提供者が自分の全てのデータにアクセスできるとしても、そのプライベートのデータをインターネット上に投稿して自分の評判に害を与える公算が低いでしょう。
起こり得る事象とその事象が起こる公算を区別することは重要です。例えば、自分の建物が崩壊する脅威はあるが、(地震がよくある)サンフランシスコで起こるリスクは(地震がめったにない)ストックホルムより遥かに高いです。
リスクの評価は個人的かつ主観的なプロセスです。多くの人には、ある脅威が存在するだけで発生公算を問わず容認できないことがあります。一方、リスクが高くてもある脅威を問題視しない人もいます。
-どの脅威を重要視し、どの脅威がありそうにないか無害すぎる(または対抗が無理な)ため心配するほどではないだろうかをリストアップしましょう。
+どの脅威を重要視し、どの脅威がありそうにないか無害すぎる(または対抗が無理な)ため心配するほどではないだろうかをリストアップしましょう。
可能な影響を防ごうとするためにどれくらい苦労する意志があるか?
-セキュリティには完璧な選択肢はありません。同じ優先順位、懸念、資源へのアクセスなどを持つ人はいないでしょう。自分のリスク評価(risk assessment)12は、利便性、コストとプライバシーのバランスを取った自分にとって適切な戦略を計画できるよう支えてくれます。
+セキュリティには完璧な選択肢はありません。同じ優先順位、懸念、資源へのアクセスなどを持つ人はいないでしょう。自分のリスク評価(risk assessment)14は、利便性、コストとプライバシーのバランスを取った自分にとって適切な戦略を計画できるよう支えてくれます。
例えば、面白い猫の動画をメールで共有する家族のメンバーより、安全保障の裁判に顧客を代表する弁護士の方が暗号化メールなどによってその裁判に関連する通信を保護するためにより苦労する意志があるでしょう。
-自分の唯一の脅威を軽減するために自分が利用できる選択肢をリストアップしましょう。金銭的な制約、技術的な制約または社会的な制約がある場合、それも書きましょう。
+自分の唯一の脅威を軽減するために自分が利用できる選択肢をリストアップしましょう。金銭的な制約、技術的な制約または社会的な制約がある場合、それも書きましょう。
定期的な習慣としてのセキュリティ計画
セキュリティ計画は状況と共に変わり得ることを念頭に置きましょう。そのため、セキュリティ計画を頻繁に見直すことは良い習慣です。
自分の状況に基づくセキュリティ計画を作成しましょう。それから、カレンダー上の将来の日程に印をつけましょう。これは、計画を見直して自分の状況にまだ適切かを確認するよう促してくれます。
@@ -128,41 +132,47 @@脅威(threat):コンピュータセキュリティにおいて、データを守る対策を弱体化させる恐れがある可能な事象。脅威といえば、意図的な事象(攻撃者が考案したもの)も不慮の事象(例:起動したコンピュータを無防備な状態で放置する)もあります。↩︎
アリスとボブ
- +連絡先
PGP 鍵
diff --git a/ja-md/alice2bob-ja-OpenPGP-2.1.md b/ja-md/alice2bob-ja-OpenPGP-2.2.md similarity index 96% rename from ja-md/alice2bob-ja-OpenPGP-2.1.md rename to ja-md/alice2bob-ja-OpenPGP-2.2.md index c147586..2b771de 100644 --- a/ja-md/alice2bob-ja-OpenPGP-2.1.md +++ b/ja-md/alice2bob-ja-OpenPGP-2.2.md @@ -4,15 +4,15 @@ アリスとボブ -バージョン: 2.1 +バージョン: 2.2 -本ガイドの最終更新: 2023-02-20 +本ガイドの最終更新: 2023-08-17 RFC 4880 (更新:2020-01-21) \| GnuPG 2.2 ガイド一覧に戻る ---- [Markdown](../ja-md/alice2bob-ja-preface-2.1.md#list) -\| [HTML](../ja-html/alice2bob-ja-preface-2.1.html#list) +--- [Markdown](../ja-md/alice2bob-ja-preface-2.2.md#list) +\| [HTML](../ja-html/alice2bob-ja-preface-2.2.html#list) *** @@ -73,7 +73,7 @@ RFC 4880 (更新:2020-01-21) \| GnuPG 2.2 ## OpenPGP とは {#what-is-OpenPGP} -OpenPGP (オープン PGP)は、公開鍵暗号方式の技術仕様です。 +**OpenPGP** (オープン PGP)とは、公開鍵暗号方式の技術仕様です。 1991 年に開発された "Pretty Good Privacy" (PGP)という ソフトウェアから由来したものです。 主に電子メールの暗号化に使われているが、 @@ -134,15 +134,15 @@ OpenPGP の技術仕様と関連技術仕様は以下のとおりです。 → ガイド: **暗号技術入門** ---- [Markdown](../ja-md/alice2bob-ja-intro-cryptography-2.1.md) -\| [HTML](../ja-html/alice2bob-ja-intro-cryptography-2.1.html) +--- [Markdown](../ja-md/alice2bob-ja-intro-cryptography-2.2.md) +\| [HTML](../ja-html/alice2bob-ja-intro-cryptography-2.2.html) ### 利用者が公開鍵・秘密鍵を自分で保管・管理できる {#self-key-custody} 他の多くの暗号系と異なり、 OpenPGP では利用者が公開鍵・秘密鍵を自分で保管・管理できます。 利用者が自由に鍵を生成・追加・編集・削除・共有などをします。 -鍵の配布は利用者自身または鍵サーバ(keyserver)経由で行われ、 +鍵の配布は利用者自身または**鍵サーバ**(keyserver)経由で行われ、 他人の公開鍵は自動的に信用されず、 利用者自身の判断または信用度計算で信用の可否が決まります。 多くの OpenPGP クライアントでは、 @@ -203,7 +203,7 @@ GnuPG フロントエンド一覧: ## GnuPG とは {#what-is-GnuPG} -GnuPG (GNU Privacy Guard)は、 +**GnuPG** (GNU Privacy Guard)とは、 PGP の FLOSS 代用として 1997 年に初めてリリースされた OpenPGP 準拠ソフトウェアです。 CLI (コマンドラインインターフェイス)のソフトウェアだが、 @@ -243,8 +243,8 @@ Linux (特に Debian 系)に既に Windows と Mac を対象にした専用ソフトウェアもあります。 -- Gpg4Win (Windows): `https://gpg4win.org` -- GPGTools (macOS): `https://gpgtools.org` +- **Gpg4Win** (Windows): `https://gpg4win.org` +- **GPGTools** (macOS): `https://gpgtools.org` ### 検証 {#verify} @@ -356,7 +356,8 @@ GnuPG のホームディレクトリ(home directory)に OS によって異なります。 本ガイドではホームディレクトリを `1D3E 313C 4DB2 B3E0 8271 FC48 89BB 4CBB 9DBE 7F6D
` と示します。 -- 鍵輪(keyring):[公開鍵](#public-keys)のデータベース(`pubring.kbx`) +- **鍵輪**(keyring): + [公開鍵](#public-keys)のデータベース(`pubring.kbx`) - [秘密鍵](#private-keys)(`private-keys-v1.d/*.key`) - [失効証明書](#key-revocation)(`openpgp-revocs.d/*.rev`) - [信用データベース](#trust)(`trustdb.gpg`) @@ -531,11 +532,11 @@ Hello world! -----BEGIN PGP SIGNATURE----- 4ePvSxAe7vAIz1eM7Cpf50dPN/XKXw43sxcjd0aKM+clw98LuPVIrr0o4XNot6B1 -WwgmS6hMakPcdOR6w1gNUEFzI37islEJMVdEZOp8g77BPewRIGKFj7OOF7L6Kv6N +(中略) ZUtN8Ok53i1ritOTiSAdwByH/7hSaKQTBJkU5uT5g87HDNilwPQf8+MMCjigwQ== =nyG7 -----END PGP SIGNATURE----- -$ echo '(上の暗号文のコピペ)' | gpg --verify +$ echo '(前のコマンドの出力)' | gpg --verify gpg: Signature made Wed 06 Jul 2022 11:50:00 PM UTC gpg: using EDDSA key 040F3145FCB028003A73B19DCFABC5032E9CC2E8 gpg: Good signature from "Alice" [ultimate] @@ -570,15 +571,9 @@ $ cat ciphertext eVYKv/BEJnEwDY9Q25fuEQIyYYcjqHArOUH301Lc9JJpJdAZjoHg3o/oZofRr314 575Tm0CCXCNwM1Qx+j2keze3VL3Qde8duTzSZs8JjWY1qIuyh2hTkGObLZZuEMpP +(中略) ZH05hm1qxKKcMjxra8nZOUO56G/rOfd3o8Gp/SQPg746Zsrn2k6eKtEL4TEeUFyE -Sr4HuxpKtS8ctBt82i7bgGFFl1omr4qRTvaM68DuyWpLtIQxL0UY6VJkNCM1pFff -GBz3Waa+lKi4R1U8KoIEEaFWEqy04MPjplmj7zvLQRyp5JQT9RmHhg/cTIHhIvRR -KwebVyXnWAjN0uICcXeM9NenA9HDfJQtVispTIwgyolOQgET/0pWk1ilo8M5K8e2 -CYgJWuOCMxTvwzKoMW7L4WR221HCmB1ouwFFJkH6cllQzqP49RydDF66Rnsvu/yz -UBXI05EHaNAlLEc7RMU7r+m0QiZ3j40W/2penc5okir39gZpOYa/PgIbFNh+q+PR -A66o3JdIbcdFI8Z2NYvfC4G/6ag7DkgAJIxYLj2XV4pLZulq+j8EPlMQ26fh2XFB -368BJ3spUamFN+BtSp9q38HFQLc/tN2gvG+syYJo8Tp4Gld+MouNy+lDFO2RDDCF -l60BTOBtX1TCvsNr2fRqqBRuRcGCiuwDKh2R7q6fJR9+0JlUSewQA1r4Gr7Jz+Ze +iMHCSuGYJqFSzEZqM/R2yFnttshBBDqGNKz4+5v9ulWcemdtq/B7YiZdK0N0oUaV w8fqPiCL2XgIpGWJ110= =Prxj -----END PGP MESSAGE----- @@ -651,15 +646,15 @@ GNU Privacy Guard 講座: 本来の「公開鍵」(主鍵や副鍵の鍵データ)と衝突し、 実際には証明書を指すため、少し残念な用語です。* -OpenPGP においての公開鍵(public key)は、 -鍵データ(key material、 厳密な意味での公開鍵)、 -所有者情報、作成日時、有効期限などの情報で構成される -証明書(certificate)です。 +OpenPGP においての**公開鍵**(public key)とは、 +**鍵データ**(key material、 厳密な意味での公開鍵)、 +所有者情報、作成日時、有効期限などの情報で構成され、 +**証明書**(certificate)の役割と果たします。 公開鍵の中に以下の鍵データがあります。 -- 主鍵(primary key):証明書の身元役を果たす鍵。 -- 副鍵(subkey):署名、暗号化などに使われる鍵。 +- **主鍵**(primary key):証明書の身元役を果たす鍵。 +- **副鍵**(subkey):署名、暗号化などに使われる鍵。 以下の GnuPG コマンドで鍵輪内の公開鍵を表示させます。 @@ -726,7 +721,8 @@ $ gpg --edit-key [--expert] *注:デジタルセキュリティ問題の一種を指す「指紋抽出」もあるため、 「鍵指紋」は誤解と不愉快を招くおそれがあり、少し残念な用語です。* -鍵指紋(key fingerprint)は、公開鍵から計算される固定長の数値で、 +**鍵指紋**(key fingerprint)とは、 +公開鍵から計算される固定長の数値で、 公開鍵の識別子として使われます。 鍵共有や他の鍵操作を行う際、 OpenPGP 利用者が鍵指紋で公開鍵を照合・指定します。 @@ -735,8 +731,7 @@ OpenPGP 利用者が鍵指紋で公開鍵を照合・指定します。 鍵指紋は(SHA-1 ハッシュ関数の出力の) 160 ビット数値で、 16 進数で表すと以下のような 40 文字です。 -公開鍵の鍵データ(key material)、生成日付などの情報から -鍵指紋が計算されます。 +公開鍵の鍵データ、生成日付などの情報から鍵指紋が計算されます。 以下のように空白が挿入されて表示されることが多いが、 空白はあくまでも人間がより簡単に読み取れるために挿入されるだけで、 空白の有無は自由です。 @@ -746,13 +741,13 @@ A7E6 0E7C 26F1 4BBC 69E0 D382 7633 46CA 665E B5CF ~~~ 鍵の指定には少し長いため、鍵指紋の後尾の 64 ビット(16 文字)という -鍵 ID (key ID)だけで鍵が指定される場合が多いです。 +**鍵 ID** (key ID)だけで鍵が指定される場合が多いです。 例えば、上の鍵指紋に該当する鍵 ID は `763346CA665EB5CF` です。 ただし、鍵 ID だけで入手した公開鍵を検証しては不十分です。 ### 鍵機能 {#key-usage} -鍵を生成する際、鍵の機能 (usage、 capability)を指定できます。 +鍵を生成する際、鍵の機能(usage、 capability)を指定できます。 ただし、鍵署名(certify)の機能は副鍵に与えられず、 主鍵は鍵署名の機能を必ず与えられます。 @@ -776,7 +771,7 @@ A7E6 0E7C 26F1 4BBC 69E0 D382 7633 46CA 665E B5CF ### UID {#UIDs} -UID (user ID、ユーザ ID)は、 +**UID** (user ID、ユーザ ID)とは、 鍵の所有者情報を表す UTF-8 文字列です。 公開鍵は必ず一つ以上の UID を有します。 公開鍵を表示する際、 UID も表示されます。 @@ -834,7 +829,7 @@ uid [ultimate] Alice (alice2021) ### 優先特徴リスト {#preference-list} -優先特徴リスト(preference list)は、 +**優先特徴リスト**(preference list)とは、 公開鍵(厳密には UID)が優先するサイファ、ハッシュ関数、 圧縮関数などの特徴のリストです。 公開鍵を扱う送信クライアントは @@ -910,7 +905,7 @@ GnuPG 2.2 以前から GnuPG 2.2 に秘密鍵を移行するには *注: GnuPG 2.3 から新しい秘密鍵保存形式が採用される見通しです。 本ガイドの一部の内容が将来に古くなる可能性があります。* -秘密鍵(private key または secret key)は +**秘密鍵**(private key または secret key)とは、 公開鍵の鍵データに該当する秘密の鍵データで、 公開鍵と合わせると鍵ペアを構成します。 @@ -938,7 +933,7 @@ ssb ed25519/CFABC5032E9CC2E8 2022-05-31 [S] [expires: 2023-05-31] ~~~ オプション `--with-keygrip` で -秘密鍵の鍵グリップ(keygrip)も表示させます。 +秘密鍵の**鍵グリップ**(keygrip)も表示させます。 鍵グリップは GnuPG 内部の秘密鍵の識別子で、 ` /private-keys-v1.d/ .key` のように秘密鍵のファイル名が鍵グリップに対応します。 @@ -1130,7 +1125,10 @@ $ gpg --export --armor alice -----BEGIN PGP PUBLIC KEY BLOCK----- glIXcCzcd9fsMoGs/wn8xhNmjGnzIMLDft93Vq0gtey8g9QPX154HNGH5OPOvCZU +hzenXcL/DwbMoFUH49GvoFS4W21ZwvAQ7u8UTi38HNSkaCWVzogZZQmKhuDvXX+v (中略) +Qwm3FBy/ecc2m3ZSXV9j5K+npp2xHx58MIrWnkp1RAx/sUMz9UXI4m4oISntuL4U +UDkqSw9LjgjLREDCtMReicGUmV2y9dKTGdKu97gu7bxOb0YMZlXccty3LatJBTEb Wwp/nSZg =prkJ -----END PGP PUBLIC KEY BLOCK----- @@ -1363,10 +1361,10 @@ OpenPGP には 3 種類のメッセージ署名があります。 #### 標準署名 {#standard-signatures} -標準署名(standard signature)は +**標準署名**(standard signature)は テキストまたはバイナリのメッセージによらず 任意のメッセージに使える署名で、 -ファイルの平文の後に付け加える署名方法です。 +メッセージの平文の後に付け加えられる署名です。 元のメッセージの復元に OpenPGP クライアントを必要とする形式で、 メッセージと署名が出力されます。 @@ -1394,17 +1392,18 @@ Hash: SHA512 Hello world! -----BEGIN PGP SIGNATURE----- -iHUEARYKAB0WIQRFLPUBbLlzlH+zIZuv7OLMt8ZOKwUCYstVWgAKCRCv7OLMt8ZO -K+87APwM+88+X7cLlQ27gm0Q8dvXviHIkkS/H9ybFfStdJn1gAD/SMeBEeoNZWS1 -TxwSN5iXFUECWnZ3vb0dSIOD5mSehA4= -=wLhi +3lhKTwni2JMMZYsLKgA8+tfS7sitY/JqXasU6NRdjQ953vhuO45XyaMgbXLCXlZ4 +(中略) +uWgHaSAbpVcXDd1nfsQrcGJoc/FV+hWCSlb8oOtAejofiwPwVNNJECXVDq6l6fqD +RRGmmHZrvNZzPvSxUosmw= +=1XPA -----END PGP SIGNATURE----- ~~~ -クリア署名(cleartext signature)は +**クリア署名**(cleartext signature)とは、 テキストメッセージに使える署名で、 -テキストメッセージの平文の後に署名を -[base64](#base64-encoding) 形式で付け加える署名方法です。 +メッセージの平文の後に [base64](#base64-encoding) 形式で +付け加えられる署名です。 以上の例に示すように、 OpenPGP クライアントを持っていなくても メッセージ(`Hello world!`)を読めるが、 OpenPGP 形式としてメッセージと署名が出力されます。 @@ -1425,10 +1424,10 @@ $ gpg [--output ] --clear-sign \ #### 分離署名 {#detached-signatures} -分離署名(detached signature)は +**分離署名**(detached signature)とは、 テキストまたはバイナリのメッセージによらず 任意のメッセージに使える署名で、 -署名を別のファイルに出力させる署名方法です。 +署名対象メッセージとは切り離された署名です。 受信者が OpenPGP クライアントを持っていなくても 元のメッセージファイルを問題なく扱うことができるが、 OpenPGP クライアントを持っている受信者が署名検証できます。 @@ -1502,11 +1501,11 @@ GnuPG 実行の戻り値に頼ることができません。 OpenPGP では公開鍵の完全性と認証を検証可能にするために 公開鍵内のデータが署名されます。 -このような署名は一般的に鍵署名(key signature)と呼ばれます。 -また、 OpenPGP の公開鍵は事実上の証明書(certificate)であり、 -鍵署名は保証(certification)とも呼ばれます。 +このような署名は一般的に**鍵署名**(key signature)と呼ばれます。 +また、 OpenPGP の公開鍵は証明書であるため、 +このような鍵署名は**保証**(certification)とも呼ばれます。 例えば、公開鍵内の UID や副鍵を -主鍵に結び付ける自己署名(self signature)があります。 +主鍵に結び付ける**自己署名**(self signature)があります。 他人の公開鍵への鍵署名という非自己署名もあります。 [鍵信用](#trust)が不十分な場合に、 @@ -1551,7 +1550,7 @@ $ gpg --local-user --sign-key [信用の輪](#trust-models)を積極的に利用しない限り、 他人の公開鍵をエクスポートしない方がいいでしょう。 他人の公開鍵を信用することを記録したい場合にエクスポートできない -ローカル署名(local signature)で鍵署名することを推奨します。 +**ローカル署名**(local signature)で鍵署名することを推奨します。 ~~~ $ gpg --local-user --lsign-key @@ -1588,12 +1587,12 @@ $ gpg --check-sigs [ ] ## Base64 符号化 {#base64-encoding} -Base64 符号化は、 binary-to-text 符号化の一種で、 +制御文字や印刷不可能文字を含むバイナリデータを許容しない通信経路 +(紙への印刷、電子メール、インターネット掲示板、メッセンジャーなど) +を使用するには、まずデータを印刷可能文字に変換する必要があります。 +**Base64 符号化**は、バイナリから印刷可能文字への符号化の一種で、 `A`--`Z`、 `a`--`z`、 `0`--`9`、 `+` と `/` の印刷可能文字 (計 64 文字)に変換する符号化方式です。 -Binary-to-text 符号化は、バイナリのデータを許容しない通信経路 -(紙への印刷、電子メール、インターネット掲示板、メッセンジャーなど) -での通信に必要です。 各文字は 6 ビットの値を表し、 各 3 バイト(24 ビット)のデータが 4 文字で表されます。 @@ -1608,7 +1607,7 @@ Base64 符号化されたデータは元のデータより | `Hello world` | 48 65 6c 6c 6f 20 77 6f 72 6c 64 | `SGVsbG8gd29ybGQ=` | | `Hello worl` | 48 65 6c 6c 6f 20 77 6f 72 6c | `SGVsbG8gd29ybA==` | -OpenPGP ではこの符号化を "ASCII armor" と呼ばれます。 +OpenPGP ではこの符号化を **ASCII armor** と呼ばれます。 OpenPGP の base64 符号化データは以下の構造です。 ただし、メタデータには完全性と認証がなく、 誰でもが簡単に捏造・改竄・削除できるため、信用すべきではありません。 @@ -1654,7 +1653,7 @@ jA0ECQMKFE/lM/98gpr/0kgB4aENgiZM5m7E1rzJjvFlVCysmotbughjfTUKHdM1 ## 鍵サーバ {#keyservers} -鍵サーバ(keyserver)は OpenPGP 利用者が +**鍵サーバ**(keyserver)は OpenPGP 利用者が 自分の公開鍵の配布に使用でき、鍵交換を促進するサーバです。 公開鍵をエクスポートして、鍵サーバにアップロードしたら、 他人がいつでも自由にその公開鍵を入手できます。 @@ -1706,7 +1705,7 @@ Parcimonie: OpenPGP では利用者が他の利用者の [公開鍵に署名](#key-signatures)することで、 -信用(trust)を示したり与えたりします。 +**信用**(trust)を示したり与えたりします。 他人の公開鍵を何かしらの方法で確認できた後に 自分の主鍵でその公開鍵に鍵署名することで、 「この公開鍵を信用します」という情報をその公開鍵に付加できます。 @@ -1730,11 +1729,11 @@ Debian 貢献者の公開鍵はその人の身元証明書らしきものとし 他人の公開鍵の信用度を評価できます。 OpenPGP では、信用の輪に関する以下の信用概念があります。 -- 所有者信用(owner trust または "trust"): +- **所有者信用**(owner trust または "trust"): 「この公開鍵の所有者は他の公開鍵をしっかり検証してから 鍵署名をする人だ」と信じる時に OpenPGP 利用者自身が 各公開鍵(所有者の検証能力)に与える信用。 -- 鍵信用(key trust または "validity"): +- **鍵信用**(key trust または "validity"): 「この公開鍵は間違いなくその人が支配するものだ」 「信用している人がこの公開鍵を信用している」などと信じる時、 鍵署名から公開鍵を信用できると確認できた時などに @@ -1742,8 +1741,9 @@ OpenPGP では、信用の輪に関する以下の信用概念があります。 ### 信用モデル {#trust-models} -信用の輪(web of trust)、直接信用(direct trust)などという -信用モデル(trust model)があります。 +**信用の輪**(web of trust)、 +**直接信用**(direct trust)などという +**信用モデル**(trust model)があります。 オプション `--trust-model` で信用モデルを指定します。 - 直接信用(`direct`): @@ -1766,7 +1766,8 @@ OpenPGP では、信用の輪に関する以下の信用概念があります。 不完全信用(marginal trust)という信用度は、 所有者信用の不完全な公開鍵が他人の公開鍵に署名した時に与えられます。 信用しない(never trust)という信用度も与えることも可能です。 -その他に、失効した、期限が切れた、信用不明などの信用度もあります。 +その他に、失効した(revoked)、期限が切れた(expired)、 +信用不明(unknown trust)などの信用度もあります。 | 信用度 | 識別子^\*1^ | 識別子^\*2^ | 識別子^\*3^ | 識別子^\*4^ | 意味・備考 | |:---:|:--:|:--:|:--:|:---:|:------| @@ -1890,8 +1891,8 @@ OpenPGP の秘密鍵はパスワードで保護されるが、 → ガイド: **暗号技術入門 § 自分の秘密鍵を自分で保管する** ---- [Markdown](../ja-md/alice2bob-ja-intro-cryptography-2.1.md#keep-custody-of-private-keys) -\| [HTML](../ja-html/alice2bob-ja-intro-cryptography-2.1.html#keep-custody-of-private-keys) +--- [Markdown](../ja-md/alice2bob-ja-intro-cryptography-2.2.md#keep-custody-of-private-keys) +\| [HTML](../ja-html/alice2bob-ja-intro-cryptography-2.2.html#keep-custody-of-private-keys) しかし、一部の OpenPGP クライアントは以上の秘密鍵保管原則を破ります。 典型的な例といえば、秘密鍵をサービス提供者のサーバにアップロードさせる @@ -2000,8 +2001,8 @@ OpenPGP メールの不便さと危険性が更に高まります。 → ガイド: **暗号技術入門 § 不便性や使用ミスによるセキュリティリスク** ---- [Markdown](../ja-md/alice2bob-ja-intro-cryptography-2.1.md#usage-issues) -\| [HTML](../ja-html/alice2bob-ja-intro-cryptography-2.1.html#usage-issues) +--- [Markdown](../ja-md/alice2bob-ja-intro-cryptography-2.2.md#usage-issues) +\| [HTML](../ja-html/alice2bob-ja-intro-cryptography-2.2.html#usage-issues) ## 鍵署名と信用の輪に関する問題 {#key-signing-and-web-of-trust-issues} @@ -3303,7 +3304,9 @@ Subject: ... D290tRvIZsNv7lKDVIl+OBa8eITgNGz61L0IbjdTd0MrfSeg+H1CUZIbbH+E6kq0 KSwc/5gZ1JcGBJqpDZFDqG6BD0PzcIlnHrUrtdPLlmM68TaBZHDZAFtfkBAM8Nwk +(中略) kixmj9H3/oRJPY3im7i6A1gJ3Gen2k0sp9IkGUy87WWfTyQxzt66TqZgrTMJ8fWg +368BJ3spUamFN+BtSp9q38HFQLc/tN2gvG+syYJo8Tp4Gld+MouNy+lDFO2RDDCF GHoGoe1J9Neaz8k= =GIwg -----END PGP MESSAGE----- @@ -3315,6 +3318,7 @@ b5oQ7/mx2rfWyzpzVOi4P3cQPZDvQsORh+D75CSI+izscPDvzciMAzxEfeoFyGM+ MYmr2E6c2p6hASpI5K3CzaNjmWii8fCK9OgaLXUmU5xSYHY93IaxZOSDzL5p7C8+ nTZKiiGm7srnc3iZnBNvQxODvlBG7BHYOejlRU1wVX2jB4kI7wBDnI/d/nA5/bS1 F9DiLRgdt/0aOMSu+h40Hk09tSlOJzS2pEu7L3BpLwaZTv5AbEnJtPkzlxEB2tdc +(中略) lkUwBTNG5MImOe724I8mvfVj9W9wVNdTvNIZpFpCEj/gayGkNHSw3RqOWglMm6UK PlsDnI5AjHxVAX0kjtE4xAREPNtQlhPWXQHKnaXfLCdZrqwUly2zPI1pF18oVr4h u+giH9YIMc7wLjZWkiMiCiOBDKqdQ71T8U9YZ20SwwrsVwx9m29S4CbjxWmvw/I6 @@ -3370,10 +3374,10 @@ J7h9kBxb/yFhkPcyUlMc |:--:|:---------:|:---------:|:---------:|:---------:| | 0x00 | バイナリメッセージ署名 (binary message signature) | メッセージ署名機能のある鍵 | バイナリメッセージ | 標準署名と分離署名のデフォルト。 | | 0x01 | テキストメッセージ署名 (text message signature) | メッセージ署名機能のある鍵 | CRLF 改行変換されたメッセージ | クリア署名に必ず使用される。 | -| 0x10 | 検証度不明の証明書保証 (generic certification) | 保証者の主鍵 | 保証対象 UID^\*2^ | デフォルトの非自己署名種類。 | -| 0x11 | 検証なしの証明書保証 (persona certification) | 保証者の主鍵 | 保証対象 UID^\*2^ | | -| 0x12 | 簡易検証済みの証明書保証 (casual certification) | 保証者の主鍵 | 保証対象 UID^\*2^ | | -| 0x13 | 確信検証済みの証明書保証 (positive certification) | 保証者の主鍵 | 保証対象 UID^\*2^ | 自己署名にも用いられる。 | +| 0x10 | 検証度不明の証明書保証 (generic certification) | 保証者の主鍵 | 主鍵の公開鍵データと保証対象 UID | デフォルトの非自己署名種類。 | +| 0x11 | 検証なしの証明書保証 (persona certification) | 保証者の主鍵 | 主鍵の公開鍵データと保証対象 UID | | +| 0x12 | 簡易検証済みの証明書保証 (casual certification) | 保証者の主鍵 | 主鍵の公開鍵データと保証対象 UID | | +| 0x13 | 確信検証済みの証明書保証 (positive certification) | 保証者の主鍵 | 主鍵の公開鍵データと保証対象 UID | 自己署名にも用いられる。 | | 0x18 | 副鍵の主鍵への結びつけ (subkey binding) | 結びつけ対象主鍵 | 主鍵と副鍵の公開鍵データ | | | 0x19 | 主鍵の副鍵への結びつけ (primary key binding) | 結びつけ対象副鍵 | 主鍵と副鍵の公開鍵データ | メッセージ署名機能のある副鍵だけに関する。 0x18 署名に埋め込まれる。 | | 0x20 | 鍵全体の失効 (key revocation) | 失効対象鍵自体または失効権限を与えられた鍵 | 失効対象主鍵の公開鍵データ | | @@ -3381,8 +3385,6 @@ J7h9kBxb/yFhkPcyUlMc | 0x30 | 証明書保証の失効 (certification revocation) | 保証発行鍵または失効権限を与えられた鍵 | 失効対象 UID | | - \*1: `--list-packets` が署名情報を表示する時に表示される。 -- \*2:署名者が UID を指定するが、 - ハッシュ化の対象について文書化されていない。 ## よくある OpenPGP データのパケット種類 {#common-packet-types} @@ -3485,8 +3487,8 @@ ISBN 0-262-24039-4 # アリスとボブ {#back} ガイド一覧に戻る ---- [Markdown](../ja-md/alice2bob-ja-preface-2.1.md#list) -\| [HTML](../ja-html/alice2bob-ja-preface-2.1.html#list) +--- [Markdown](../ja-md/alice2bob-ja-preface-2.2.md#list) +\| [HTML](../ja-html/alice2bob-ja-preface-2.2.html#list) ## 連絡先 {#back-contact} diff --git a/ja-md/alice2bob-ja-Tails-2.1.md b/ja-md/alice2bob-ja-Tails-2.2.md similarity index 94% rename from ja-md/alice2bob-ja-Tails-2.1.md rename to ja-md/alice2bob-ja-Tails-2.2.md index 651c43e..829edb9 100644 --- a/ja-md/alice2bob-ja-Tails-2.1.md +++ b/ja-md/alice2bob-ja-Tails-2.2.md @@ -4,15 +4,15 @@ アリスとボブ -バージョン: 2.1 +バージョン: 2.2 -本ガイドの最終更新: 2023-01-27 +本ガイドの最終更新: 2023-08-17 Tails 5.9 ガイド一覧に戻る ---- [Markdown](../ja-md/alice2bob-ja-preface-2.1.md#list) -\| [HTML](../ja-html/alice2bob-ja-preface-2.1.html#list) +--- [Markdown](../ja-md/alice2bob-ja-preface-2.2.md#list) +\| [HTML](../ja-html/alice2bob-ja-preface-2.2.html#list) *** @@ -48,8 +48,11 @@ Tails 5.9 1. [ホストデバイスの OS の回避](#ignore-host-device-OS) 2. [有害の恐れのあるファイルの扱い](#inspecting-malicious-files) +*注: Tails の公式サイト URL が 2023 年 7 月に変わりました。 +`https://tails.boum.org/` → `https://tails.net/`* + *注:本ガイドに記載した Tails ドキュメンテーション -(`https://tails.boum.org/doc/`...)への一部の外部リンクは、 +(`https://tails.net/doc/`...)への一部の外部リンクは、 Tails 内からもインターネットなしで閲覧できます。 "Applications" → "Tails" → "Tails documentation" の手順で Tails 内のドキュメンテーションを閲覧します。 @@ -63,21 +66,21 @@ Tails 5.8 リリース記事内の "Known issues" を参考にしてください → 外部資料: Tails 5.8 問題: -`https://tails.boum.org/news/version_5.8/index.en.html#issues` +`https://tails.net/news/version_5.8/index.en.html#issues` # Tails とは {#what-is-Tails} -Tails (テイルス)とは、 +**Tails** (テイルス)とは、 プライバシーと匿名性の保護に特化したデスクトップ OS です。 名称の由来は "The Amnesic Incognito Live System" の頭文字です。 -- **Amnesic**: +- Amnesic: ホストデバイス[^host-device]に何の情報や跡も残さない記憶喪失。 -- **Incognito**: +- Incognito: プライバシーと匿名性を保護。 -- **Live**: +- Live: 持ち運び可能な DVD または USB からすぐに起動。 -- **System**: +- System: OS[^OS]。 # 特徴 {#features} @@ -115,8 +118,8 @@ OS の唯一の特徴を最小限にします。 → ガイド: **Tor 匿名化ネットワーク** ---- [Markdown](../ja-md/alice2bob-ja-Tor-2.1.md) -\| [HTML](../ja-html/alice2bob-ja-Tor-2.1.html) +--- [Markdown](../ja-md/alice2bob-ja-Tor-2.2.md) +\| [HTML](../ja-html/alice2bob-ja-Tor-2.2.html) Tails はネットワークに接続する時に、 ホストデバイスのネットワークデバイスの @@ -128,17 +131,16 @@ MAC アドレス[^MAC-address]をデフォルトでごまかします。 その代わりに、ネットワークが不要な場合、 STFU 原則に則って、 ネットワークを無効化した上で Tails を起動させることができます。 -## セキュリティ {#security} +## FLOSS {#FLOSS} Tails は Debian (Linux)ベースの OS で、 FLOSS です。 -私有ソフトウェアの OS よりセキュリティが高くて -検証可能な Debian をベースに、 +私有ソフトウェアの OS より検証可能な Debian をベースに、 Tails は利用者のプライバシーと匿名性の保護に特化しています。 → ガイド: **デジタルセキュリティの概念 § FLOSS を使用する** ---- [Markdown](../ja-md/alice2bob-ja-security-concepts-2.1.md#floss) -\| [HTML](../ja-html/alice2bob-ja-security-concepts-2.1.html#floss) +--- [Markdown](../ja-md/alice2bob-ja-security-concepts-2.2.md#floss) +\| [HTML](../ja-html/alice2bob-ja-security-concepts-2.2.html#floss) Tails には様々なセキュリティ・プライバシーツールが用意されています。 @@ -223,7 +225,7 @@ Tails を起動させる度に復号化パスワードが求められます。 → 外部資料: 永久性ストレージ: -`https://tails.boum.org/doc/first_steps/persistence/` +`https://tails.net/doc/first_steps/persistence/` # 注意点と限界 {#warnings-and-limitations} @@ -272,7 +274,7 @@ Tails に含まれていない場合、その周辺機器が使えません。 もちろん、 DVD または USB から起動する機能も必要です。 → 外部資料: -`https://tails.boum.org/doc/about/requirements/` +`https://tails.net/doc/about/requirements/` ## Tor 以外のトラフィックの遮断 {#block-non-Tor} @@ -284,12 +286,12 @@ Tor 以外のほぼ全てのトラフィックの送受信を遮断します。 → ガイド: **Tor 匿名化ネットワーク § 注意点と限界** ---- [Markdown](../ja-md/alice2bob-ja-Tor-2.1.md#warnings-and-limitations) -\| [HTML](../ja-html/alice2bob-ja-Tor-2.1.html#warnings-and-limitations) +--- [Markdown](../ja-md/alice2bob-ja-Tor-2.2.md#warnings-and-limitations) +\| [HTML](../ja-html/alice2bob-ja-Tor-2.2.html#warnings-and-limitations) → 外部資料: Tor に関する注意点: -`https://tails.boum.org/doc/about/warnings/tor/` +`https://tails.net/doc/about/warnings/tor/` ## プライバシーや匿名性や秘匿性を保証しない {#no-guarantee} @@ -305,7 +307,7 @@ Tails はプライバシーや匿名性を保証しません。 → 外部資料: 個人情報の情報漏洩に関する注意点: -`https://tails.boum.org/doc/about/warnings/identity/` +`https://tails.net/doc/about/warnings/identity/` ## 永続性ストレージに関する注意 {#warning-about-persistence} @@ -318,7 +320,7 @@ Tails はプライバシーや匿名性を保証しません。 → 外部資料: 永久性ストレージに関する注意点: -`https://tails.boum.org/doc/first_steps/persistence/warnings/` +`https://tails.net/doc/first_steps/persistence/warnings/` ## Tails の使用を隠さない {#Tails-doesnt-hide-Tails-use} @@ -345,7 +347,7 @@ Tails はこのような攻撃から利用者を保護できません。 → 外部資料: 疑わしいデバイスを使用時のリスク軽減: -`https://tails.boum.org/doc/about/warnings/computer/` +`https://tails.net/doc/about/warnings/computer/` # 準備 {#prepare} @@ -368,7 +370,7 @@ Tails のダウンロード、検証またはインストールを行った場 Tails ダウンロードページは以下のリンクでアクセスします。 -`https://tails.boum.org/install/` +`https://tails.net/install/` ここから 3 種類の Tails イメージファイルをダウンロードできます。 @@ -391,7 +393,7 @@ Tails のオンラインドキュメンテーションに Tails の全ての PGP 公開鍵の情報が記載されています。 そのページに "Signing key" というセクションがあります。 -`https://tails.boum.org/doc/about/openpgp_keys/#index2h1` +`https://tails.net/doc/about/openpgp_keys/#index2h1` 公開鍵 ` ` (例: `tails-signing.key`)の指紋を照合し、 GnuPG の鍵輪に追加します。 @@ -517,11 +519,11 @@ USB または DVD が最優先となるよう設定しておき、電源を切 → 外部資料: Tails の起動(Mac 以外のパソコン): -`https://tails.boum.org/doc/first_steps/start/pc/` +`https://tails.net/doc/first_steps/start/pc/` → 外部資料: Tails の起動(Mac): -`https://tails.boum.org/doc/first_steps/start/mac/` +`https://tails.net/doc/first_steps/start/mac/` ## ウェルカムスクリーン {#Welcome-Screen} @@ -533,7 +535,7 @@ Tails の起動が完了する前に、ここでいくつかの設定を変更 → 外部資料: ウェルカムスクリーン: -`https://tails.boum.org/doc/first_steps/welcome_screen/` +`https://tails.net/doc/first_steps/welcome_screen/` ### ユニバーサルアクセス {#Welcome-Screen-accessibility} @@ -593,7 +595,7 @@ Tails の全ての振る舞いとセキュリティ対策を変えることが → 外部資料: ルート権限のパスワード: -`https://tails.boum.org/doc/first_steps/welcome_screen/administration_password/` +`https://tails.net/doc/first_steps/welcome_screen/administration_password/` #### MAC アドレスのランダム化 {#MAC-address} @@ -624,11 +626,11 @@ MAC アドレスのランダム化を無効化します。 → 外部資料: MAC アドレスのランダム化: -`https://tails.boum.org/doc/first_steps/welcome_screen/mac_spoofing/` +`https://tails.net/doc/first_steps/welcome_screen/mac_spoofing/` #### オフラインモード {#offline-mode} -オフラインモード(Offline Mode)では、 +**オフラインモード**(Offline Mode)では、 ホストデバイスのネットワークデバイスを無効化できます。 デバイスからの電波の放射を少なくし(STFU 原則)、 セキュリティを強化させるために、 @@ -638,30 +640,30 @@ MAC アドレスのランダム化: オフラインモードを有効化するには、 "Disable all networking" を選びます。 -#### 安全でないブラウザ {#Unsafe-Browser} +#### Unsafe Browser {#Unsafe-Browser} -安全でないブラウザ(Unsafe Browser)は、 +**Unsafe Browser** とは、 Tor の使用が不可能または不適切でない時に使用できるブラウザです。 インターネットアクセスの許可を得るために カプティブポータル[^captive-portal]でログインしたい場合、 ローカルのネットワーク上のプリンタや無線 LAN の管理をしたい場合などに、 -Tor ネットワークを使用しない「安全でないブラウザ」が必要です。 -このような場合、安全でないブラウザを有効化してください。 +Tor ネットワークを使用しない Unsafe Browser が必要です。 +このような場合、 Unsafe Browser を有効化してください。 -安全でないブラウザを使ってカプティブポータルでのログインに成功して -インターネットアクセスを得た後、安全でないブラウザを閉じてください。 +Unsafe Browser を使ってカプティブポータルでのログインに成功して +インターネットアクセスを得た後、 Unsafe Browser を閉じてください。 Tails が Tor 回線を構築しようとし、 Tor 回線の構築ができたら Tor Browser などが使えるようになります。 -間違えて安全でないブラウザでウェブ閲覧をしないよう注意してください。 +間違えて Unsafe Browser でウェブ閲覧をしないよう注意してください。 攻撃者が Tails 内の脆弱性を利用することで、 -安全でないブラウザを通じて Tails 利用者の IP アドレスを +Unsafe Browser を通じて Tails 利用者の IP アドレスを 抽出することがあり得ます。 例えば、攻撃者が Tails 利用者に Thunderbird の脆弱性を利用する メールで攻撃できるかもしれません。 -安全でないブラウザが不要な場合、無効化したままにしておいてください。 +Unsafe Browser が不要な場合、無効化したままにしておいてください。 -安全でないブラウザを有効化するには、 +Unsafe Browser を有効化するには、 "Enable the Unsafe Browser" を選びます。 ### Tails の起動を完了させる {#complete-launching-Tails} @@ -701,7 +703,7 @@ Tails の起動が完了したら、すぐに以下のものが見えるはず → 外部資料: Tails のデスクトップ: -`https://tails.boum.org/doc/first_steps/introduction_to_gnome_and_the_tails_desktop/` +`https://tails.net/doc/first_steps/introduction_to_gnome_and_the_tails_desktop/` ### アプリケーションメニュー {#application-menu} @@ -823,7 +825,7 @@ Tails は自動更新または手動更新の方法で更新できます。 → 外部資料: Tails の更新: -`https://tails.boum.org/doc/upgrade/` +`https://tails.net/doc/upgrade/` #### 自動更新 {#automatic-update} @@ -884,8 +886,8 @@ Tails には様々なソフトウェアが事前に用意されているが、 利用者は他のソフトウェアも使いたいかもしれません。 Tails は Debian ベースであるため、 -APT (Advanced Package Tool)でソフトウェアを管理します。 -APT で管理したソフトウェアをパッケージ(package)と呼ばれ、 +**APT** (Advanced Package Tool)でソフトウェアを管理します。 +APT で管理したソフトウェアを**パッケージ**(package)と呼ばれ、 パッケージファイルは `.deb` 識別子を持ちます。 ソフトウェアを追加するには[ルート権限](#root-password)が必要です。 @@ -916,7 +918,7 @@ Synaptic を以下のように開けます。 手動に入手する必要があるため困難です。 → 外部資料: -`https://tails.boum.org/doc/first_steps/additional_software/` +`https://tails.net/doc/first_steps/additional_software/` → 外部資料: `apt(8)` manpage @@ -942,7 +944,7 @@ Synaptic を以下のように開けます。 → 外部資料: 永久性ストレージの作成と設定: -`https://tails.boum.org/doc/first_steps/persistence/configure/` +`https://tails.net/doc/first_steps/persistence/configure/` ### 設定 {#config-persistence} @@ -971,7 +973,7 @@ Synaptic を以下のように開けます。 → 外部資料: 永久性ストレージの作成と設定: -`https://tails.boum.org/doc/first_steps/persistence/configure/` +`https://tails.net/doc/first_steps/persistence/configure/` ### 他の記憶装置へのバックアップ {#backup-persistence} @@ -1026,7 +1028,7 @@ Tails の内蔵バックアップ機能を用いてバックアップを実行 → 外部資料: 永久性ストレージのバックアップ: -`https://tails.boum.org/doc/first_steps/persistence/backup/` +`https://tails.net/doc/first_steps/persistence/backup/` ### 故障した Tails からの救助 {#rescue-persistence} @@ -1076,7 +1078,7 @@ Files に劣化している Tails の永続性ストレージが表示されな → 外部資料: 永久性ストレージの救助: -`https://tails.boum.org/doc/first_steps/persistence/rescue/` +`https://tails.net/doc/first_steps/persistence/rescue/` ### 削除 {#delete-persistence} @@ -1099,7 +1101,7 @@ Tails を再起動してから永続性ストレージを削除してくださ → 外部資料: 永久性ストレージの削除: -`https://tails.boum.org/doc/first_steps/persistence/delete/` +`https://tails.net/doc/first_steps/persistence/delete/` # 使用事例 {#use-cases} @@ -1128,7 +1130,7 @@ Tails が危殆化した恐れがある場合、 → 外部資料: 疑わしいデバイスを使用時のリスク軽減: -`https://tails.boum.org/doc/about/warnings/computer/` +`https://tails.net/doc/about/warnings/computer/` ## 有害の恐れのあるファイルの扱い {#inspecting-malicious-files} @@ -1203,8 +1205,8 @@ Windows キーボードの「スタート」キーに当てはまるキーです # アリスとボブ {#back} ガイド一覧に戻る ---- [Markdown](../ja-md/alice2bob-ja-preface-2.1.md#list) -\| [HTML](../ja-html/alice2bob-ja-preface-2.1.html#list) +--- [Markdown](../ja-md/alice2bob-ja-preface-2.2.md#list) +\| [HTML](../ja-html/alice2bob-ja-preface-2.2.html#list) ## 連絡先 {#back-contact} diff --git a/ja-md/alice2bob-ja-Tor-2.1.md b/ja-md/alice2bob-ja-Tor-2.2.md similarity index 96% rename from ja-md/alice2bob-ja-Tor-2.1.md rename to ja-md/alice2bob-ja-Tor-2.2.md index 0e2b7c1..990abed 100644 --- a/ja-md/alice2bob-ja-Tor-2.1.md +++ b/ja-md/alice2bob-ja-Tor-2.2.md @@ -4,15 +4,15 @@ アリスとボブ -バージョン: 2.1 +バージョン: 2.2 本ガイドの最終更新: 2021-12-29 OnionShare 2.4 \| Tor 0.4.6 ガイド一覧に戻る ---- [Markdown](../ja-md/alice2bob-ja-preface-2.1.md#list) -\| [HTML](../ja-html/alice2bob-ja-preface-2.1.html#list) +--- [Markdown](../ja-md/alice2bob-ja-preface-2.2.md#list) +\| [HTML](../ja-html/alice2bob-ja-preface-2.2.html#list) *** @@ -34,7 +34,7 @@ OnionShare 2.4 \| Tor 0.4.6 9. [悪質または危殆化したデバイス](#bad-device) 4. [アプリケーション](#applications) 1. [一般 Tor クライアント `tor`](#general-Tor-client) - 2. [APT Tor トランスポート](#APT-transport-Tor) + 2. [apt-transport-tor](#apt-transport-tor) 3. [OnionShare](#OnionShare) 4. [Tor Browser](#Tor-Browser) 5. [Torsocks](#Torsocks) @@ -65,7 +65,7 @@ OnionShare 2.4 \| Tor 0.4.6 # Tor とは {#what-is-Tor} -Tor (トーア)とは、通常(直接的接続)より高いプライバシー・匿名性で +**Tor** (トーア)とは、通常(直接的接続)より高いプライバシー・匿名性で インターネットを利用することを可能にする技術です。 "Tor" という単語は以下の 3 つの意味があります。 @@ -83,7 +83,7 @@ Tor は「オニオンルーティング」という暗号化方式を実装し 名称の由来は最初の名称 "The Onion Router" の頭文字です。 世界中において、 -約 6000--8000 の Tor ノード(中継点)[^Tor-nodes]と +約 6000--8000 の **Tor ノード**(中継点)[^Tor-nodes]と 約 250 万人の Tor 利用者が分散していて、 最も人気な匿名化ネットワークです。 使用するには登録や支払いが不要で、 @@ -101,7 +101,7 @@ Tor ノードの立ち上げに関しても同様で、 Tor クライアントはトラフィックを Tor ネットワークに中継させる前に、 自動的に無作為に 3 つのノードを選び[^guard-persistence]、 Tor ネットワークを通過する接続を成立させます。 -選ばれた 3 つのノードで構成される接続は「回線」(circuit)と呼ばれます。 +選ばれた 3 つのノードで構成される接続は**回線**(circuit)と呼ばれます。 トラフィックは Tor 回線を経由してから接続先に到着します。 各ノードの呼称と意味は以下のとおりです。 @@ -171,7 +171,7 @@ Tor を利用することで接続元側と接続先側による検閲と差別 IP アドレスに結び付けられたドメイン名(例: `torproject.org`)で クリアネット[^clearnet]上で運用するが、 IP アドレスを明かさないオニオンサービスで運用することができます。 -オニオンサービスはオニオンアドレス(`.onion` 識別子のあるアドレス) +**オニオンサービス**はオニオンアドレス(`.onion` 識別子のあるアドレス) を持ち、 Tor でしか接続できないサービスです。 オニオンサービスへの接続(オニオン接続)では、 @@ -318,8 +318,8 @@ BitTorrent の代わりに、例えば [OnionShare](#OnionShare) で → ガイド: **Tor Browser** ---- [Markdown](../ja-md/alice2bob-ja-Tor-Browser-2.1.md) -\| [HTML](../ja-html/alice2bob-ja-Tor-Browser-2.1.html) +--- [Markdown](../ja-md/alice2bob-ja-Tor-Browser-2.2.md) +\| [HTML](../ja-html/alice2bob-ja-Tor-Browser-2.2.html) ## 利用者の行動による情報漏洩 {#user-mistakes} @@ -377,8 +377,8 @@ Tor ブロッキングを回避したりしたい場合、 → ガイド: **Tor Browser § Tor ブロッキングの回避** ---- [Markdown](../ja-md/alice2bob-ja-Tor-Browser-2.1.md#Tor-blocking-circumvention) -\| [HTML](../ja-html/alice2bob-ja-Tor-Browser-2.1.html#Tor-blocking-circumvention) +--- [Markdown](../ja-md/alice2bob-ja-Tor-Browser-2.2.md#Tor-blocking-circumvention) +\| [HTML](../ja-html/alice2bob-ja-Tor-Browser-2.2.html#Tor-blocking-circumvention) ## Tor に対する攻撃 {#attacks-against-Tor} @@ -391,7 +391,7 @@ Tor ブロッキングを回避したりしたい場合、 保護してくれません。 Tor はトラフィックをできる限り速く中継しながら匿名化しようとする -**低レイテンシ**匿名化ネットワークでです。 +**低レイテンシ**匿名化ネットワークです。 トラフィックを一時的に持ち続ける 高レイテンシ匿名化ネットワークと異なって、 強度なインターネット監視に対して保護することができません。 @@ -400,7 +400,7 @@ Tor はトラフィックをできる限り速く中継しながら匿名化し -トラフィック指紋抽出(traffic fingerprinting)とは、 +**トラフィック指紋抽出**(traffic fingerprinting)とは、 トラフィックを解読しようとせず、 インターネット利用者のトラフィックの特徴を監視・解析することで、 利用者がアクセスしているサービス・内容を推測したり @@ -423,8 +423,8 @@ Tor や VPN などのようなトラフィックの暗号化は -トラフィック相関攻撃(traffic correlation attack)または -エンドツーエンド相関攻撃(end-to-end correlation attack)とは、 +**トラフィック相関攻撃**(traffic correlation attack)または +**エンドツーエンド相関攻撃**(end-to-end correlation attack)とは、 トラフィックを解読しようとせず、 対象者と接続先とのトラフィックを両側で観測・解析することで 対象者の身元を特定したり非匿名化したりする攻撃です。 @@ -444,7 +444,7 @@ Tor ノードだけによる攻撃について、 ### Sybil 攻撃 {#Sybil-attack} -Sybil 攻撃とは、 +**Sybil 攻撃**(Sybil attack)とは、 攻撃者が多数の仮名または匿名の身元を作成することで不当な影響力を入手し、 ネットワークの評判制度を転覆させる攻撃です。 @@ -488,7 +488,7 @@ Tor Project が開発・管理しているか 一方、 Tor エコシステムを構成する一部の 第三者アプリケーションは以下です。 -- **APT Tor トランスポート**: +- **apt-transport-tor**: APT (Advanced Package Tool)のための パッケージの匿名ダウンロードのトランスポート。 - **Bisq**: @@ -518,7 +518,7 @@ Tor Project が開発・管理しているか `https://securedrop.org/` - **Tails**: プライバシーと匿名性の保護に特化した持ち運び可能なデスクトップ OS。 - `https://tails.boum.org/` + `https://tails.net/` - 一部の暗号通貨ウォレット。 以下のセクションで一部のアプリケーションを説明します。 @@ -604,15 +604,15 @@ Tor Project の Debian リポジトリの追加を完了した後、 # apt install tor ~~~ -## APT Tor トランスポート {#APT-transport-Tor} +## apt-transport-tor {#apt-transport-tor} -APT Tor トランスポート(パッケージ名: `apt-transport-tor`)とは、 +**apt-transport-tor** とは、 APT のために開発されたリポジトリ情報と パッケージの匿名ダウンロードのトランスポートです。 APT でパッケージを管理する OS を使っていて、 Debian リポジトリが APT に設定されている場合、 -APT Tor トランスポートを以下のようにインストールします。 +apt-transport-tor を以下のようにインストールします。 ~~~ # apt install apt-transport-tor @@ -645,7 +645,7 @@ deb [signed-by=/etc/apt/trusted.gpg.d/deb.torproject.org-keyring.gpg] tor+http:/ ## OnionShare {#OnionShare} -OnionShare とは、 +**OnionShare** とは、 オニオンサービスを用いたファイル共有アプリケーションです。 以下の機能を持ちます。 @@ -679,12 +679,12 @@ Tor Browser を別のガイドで説明します。 → ガイド: **Tor Browser** ---- [Markdown](../ja-md/alice2bob-ja-Tor-Browser-2.1.md) -\| [HTML](../ja-html/alice2bob-ja-Tor-Browser-2.1.html) +--- [Markdown](../ja-md/alice2bob-ja-Tor-Browser-2.2.md) +\| [HTML](../ja-html/alice2bob-ja-Tor-Browser-2.2.html) ## Torsocks {#Torsocks} -Torsocks とは、 +**Torsocks** とは、 他のアプリケーションのトラフィックを SOCKS を用いて Tor ネットワーク経由にするラッパーコマンドです。 SOCKS に対応するアプリケーションを Tor 化してくれるコマンドです。 @@ -723,7 +723,7 @@ $ torsocks ssh user@host # Tor ブリッジ {#Tor-bridges} -ブリッジ(bridge)とは、 +**Tor ブリッジ**(Tor bridge)とは、 Tor 利用者の Tor ネットワークへの接続を支援する非公開 Tor ノードです。 公開 Tor ノードと同様に誰でもブリッジを立ち上げることができるが、 Tor ノードだとバレない限り、 @@ -776,8 +776,8 @@ Snowflake: → ガイド: **Tor Browser § Tor ブリッジの設定** ---- [Markdown](../ja-md/alice2bob-ja-Tor-Browser-2.1.md#configure-Tor-bridge) -\| [HTML](../ja-html/alice2bob-ja-Tor-Browser-2.1.html#configure-Tor-bridge) +--- [Markdown](../ja-md/alice2bob-ja-Tor-Browser-2.2.md#configure-Tor-bridge) +\| [HTML](../ja-html/alice2bob-ja-Tor-Browser-2.2.html#configure-Tor-bridge) ## ブリッジの追加 {#add-bridges} @@ -864,7 +864,7 @@ Tor と VPN の併用について説明します。 ## VPN {#VPN} -VPN (Virtual Private Network)とは、 +**VPN** (Virtual Private Network)とは、 公的ネットワーク(例:インターネット)に跨って、 ある私的(プライベート)ネットワークを拡張する技術です。 VPN は、 VPN 利用者と VPN 提供者との間で、 @@ -955,7 +955,7 @@ Tor と VPN を併用することで、 ### 接続元 → VPN → Tor → 接続先 {#Tor-over-VPN} -Tor over VPN (接続元 → VPN → Tor → 接続先)とは、 +**Tor over VPN** (接続元 → VPN → Tor → 接続先)とは、 VPN 接続を経由して Tor に接続する接続方法です。 ISP またはローカルネットワークを信用しない場合、 @@ -979,7 +979,7 @@ VPN の代わりに [Tor ブリッジ](#Tor-bridge)を利用すると、 ### 接続元 → Tor → VPN → 接続先 {#VPN-over-Tor} -VPN over Tor (接続元 → Tor → VPN → 接続先)とは、 +**VPN over Tor** (接続元 → Tor → VPN → 接続先)とは、 Tor を経由して VPN に接続する接続方法です。 この接続方法では、接続先側から見て @@ -1055,8 +1055,8 @@ Tor には無いまたは Tor の弱点を改善する機能・特徴があり # アリスとボブ {#back} ガイド一覧に戻る ---- [Markdown](../ja-md/alice2bob-ja-preface-2.1.md#list) -\| [HTML](../ja-html/alice2bob-ja-preface-2.1.html#list) +--- [Markdown](../ja-md/alice2bob-ja-preface-2.2.md#list) +\| [HTML](../ja-html/alice2bob-ja-preface-2.2.html#list) ## 連絡先 {#back-contact} diff --git a/ja-md/alice2bob-ja-Tor-Browser-2.1.md b/ja-md/alice2bob-ja-Tor-Browser-2.2.md similarity index 94% rename from ja-md/alice2bob-ja-Tor-Browser-2.1.md rename to ja-md/alice2bob-ja-Tor-Browser-2.2.md index 0d4c7bf..f5ab624 100644 --- a/ja-md/alice2bob-ja-Tor-Browser-2.1.md +++ b/ja-md/alice2bob-ja-Tor-Browser-2.2.md @@ -4,25 +4,26 @@ アリスとボブ -バージョン: 2.1 +バージョン: 2.2 -本ガイドの最終更新: 2023-01-27 +本ガイドの最終更新: 2023-08-17 Tor Browser 12.0 ガイド一覧に戻る ---- [Markdown](../ja-md/alice2bob-ja-preface-2.1.md#list) -\| [HTML](../ja-html/alice2bob-ja-preface-2.1.html#list) +--- [Markdown](../ja-md/alice2bob-ja-preface-2.2.md#list) +\| [HTML](../ja-html/alice2bob-ja-preface-2.2.html#list) *** 1. [Tor Browser とは](#what-is-Tor-Browser) 2. [特徴](#features) 3. [注意点と限界](#warnings-and-limitations) - 1. [Tor Browser のブラウザ指紋](#Tor-Browser-browser-fingerprint) - 2. [ビューポートの縦と横の長さの調整を控える](#dont-adjust-viewport) - 3. [セキュリティとプライバシーの意識は依然として必要](#security-and-privacy-awareness) - 4. [非匿名化につながる恐れのある行動・現象に注意](#beware-of-deanonymization) + 1. [Firefox ベースに関するセキュリティ問題](#Firefox-security-issues) + 2. [Tor Browser のブラウザ指紋](#Tor-Browser-browser-fingerprint) + 3. [ビューポートの縦と横の長さの調整を控える](#dont-adjust-viewport) + 4. [セキュリティとプライバシーの意識は依然として必要](#security-and-privacy-awareness) + 5. [非匿名化につながる恐れのある行動・現象に注意](#beware-of-deanonymization) 4. [準備](#prepare) 1. [ダウンロード](#download) 2. [検証](#verify) @@ -61,7 +62,7 @@ Tor Browser 12.0 # Tor Browser とは {#what-is-Tor-Browser} -Tor Browser とは、 +**Tor Browser** とは、 匿名性とプライバシー保護を目的に開発されたウェブブラウザです。 以下で構成されます。 @@ -111,8 +112,23 @@ Tor 自体はプライバシーや匿名性を保証しない一方、 → ガイド: **Tor 匿名化ネットワーク § 注意点と限界** ---- [Markdown](../ja-md/alice2bob-ja-Tor-2.1.md#warnings-and-limitations) -\| [HTML](../ja-html/alice2bob-ja-Tor-2.1.html#warnings-and-limitations) +--- [Markdown](../ja-md/alice2bob-ja-Tor-2.2.md#warnings-and-limitations) +\| [HTML](../ja-html/alice2bob-ja-Tor-2.2.html#warnings-and-limitations) + +## Firefox ベースに関するセキュリティ問題 {#Firefox-security-issues} + +Tor Browser は Firefox をベースにしているため、 +Firefox の多くのセキュリティ問題を受け継ぎます。 +Firefox のセキュリティ(エクスプロイト保護) +についての批判が指摘されています。 + +→ 外部資料: +Firefox のセキュリティ問題: +`https://madaidans-insecurities.github.io/firefox-chromium.html` + +→ 外部資料: +"Tor and its Discontents": +`https://medium.com/@thegrugq/tor-and-its-discontents-ef5164845908` ## Tor Browser のブラウザ指紋 {#Tor-Browser-browser-fingerprint} @@ -123,11 +139,11 @@ Firefox のブラウザ指紋に一部似ているものの、 他のブラウザのブラウザ指紋の真似をしたり 無作為にしたりしようとしません。 -ちなみに、 Tor Browser 11.0.3 (デスクトップ版)の +ちなみに、 Tor Browser 12.5 (デスクトップ版)の ユーザエージェント文字列は以下のようなもので、 Windows 上の Firefox に該当するユーザエージェント文字列です。 -`Mozilla/5.0 (Windows NT 10.0; rv:91.0) Gecko/20100101 Firefox/91.0` +`Mozilla/5.0 (Windows NT 10.0; rv:102.0) Gecko/20100101 Firefox/102.0` Tor Browser 利用者が Tor Browser の設定を変更すると、 ブラウザ指紋が Tor Browser の標準のブラウザ指紋から離れて、 @@ -138,12 +154,12 @@ Tor Browser 利用者が Tor Browser の設定を変更すると、 Tor Browser の機能の一つは、 ビューポートの縦と横の長さのレターボックス化です。 Tor Browser のウィンドウの縦と横の長さを問わず、 -ビューポート(ウェブページが表示される長方形)の縦と横の長さは +**ビューポート**(ウェブページが表示される長方形)の縦と横の長さは 200px × 100px の倍数に縮まります。 この機能はビューポートの縦と横の長さに基づく ブラウザ指紋唯一性を軽減する対策です。 -レターボックス化の機能のため +**レターボックス化**(letterboxing)の機能によって ビューポートの縦と横の長さは 200px × 100px の倍数に限られるが、 それでもビューポートの縦と横の長さの情報は 利用者の非匿名化につながる可能性が残ります。 @@ -171,7 +187,7 @@ Tor Browser のウィンドウの縦と横の長さの調整と - 良好なパスワードを選び、適切な多要素認証でアカウントを保護する。 - あらゆる通信(ウェブトラフィックやメールなど)を暗号で保護する。 - できる限り JavaScript[^malicious-JavaScript] を無効化する。 -- 代替検索エンジンを利用する。(例: DuckDuckGo、 searX) +- 代替検索エンジンを利用する。(例: DuckDuckGo、 searXNG) - リンクをクリックする時の HTTP referer 発信に注意し、 必要に応じて(URL のコピーペーストで)発信防止をする。 @@ -193,7 +209,7 @@ Tor Browser は技術面で匿名性を保護する対策をなるべく取っ - メタデータ(例:ファイル名、カメラの機種、位置情報、著者など) - 身元を特定する内容(例: PGP 公開鍵、顔や財産などが写っている写真) - 身元、場所、時間帯などを絞る内容(例:観光名所で撮った最近の写真) - - 文章の著者を絞る表現のスタイル(stylometry) + - 文章の著者を絞る手口となる表現スタイル(stylometry) - ウェブサイト訪問時の唯一性のある行動的情報の生成を できる限り避けるかごまかす。 - 訪問の時刻とその一連のパターン @@ -427,8 +443,8 @@ Tor Browser のユーザインターフェイスでは → ガイド: **Tor § Tor ブリッジ** ---- [Markdown](../ja-md/alice2bob-ja-Tor-2.1.md#Tor-bridges) -\| [HTML](../ja-html/alice2bob-ja-Tor-2.1.html#Tor-bridges) +--- [Markdown](../ja-md/alice2bob-ja-Tor-2.2.md#Tor-bridges) +\| [HTML](../ja-html/alice2bob-ja-Tor-2.2.html#Tor-bridges) ### プロキシとファイアウォール通過の設定 {#configure-advanced-connection} @@ -502,7 +518,7 @@ Safest 設定ではプライバシーと匿名性を損なう多くの機能が ## 非暗号化接続の停止 {#block-unencrypted-connections} -非暗号化接続(HTTP)でデータを送受信すると傍受される恐れがあります。 +**非暗号化接続**(HTTP)でデータを送受信すると傍受される恐れがあります。 また、非暗号化接続でデータの改竄やマルウェア注入も可能です。 HTTPS-Only という設定で、このような非暗号化接続の扱いを制御します。 @@ -543,7 +559,7 @@ Tor Browser は新たな更新があるか確認するが、 -Onion-Location とは、 +**Onion-Location** とは、 ウェブサイトが自分のオニオンアドレスを告知することで Tor 利用者にオニオン接続をしてもうらう機能です。 ウェブサイトは以下のいずれかの方法で @@ -678,7 +694,7 @@ Tor Browser が終了すると、 ## Canvas データ抽出 {#canvas-data-extraction} -Canvas 要素とは、 +**Canvas 要素**(canvas element)とは、 ウェブページに 2 次元ビットマップ画像を描くための HTML5 要素で、 HTML5 に導入されたものです。 Canvas 要素自体はあくまでコンテナだけです。 @@ -775,7 +791,7 @@ Safest の設定でアクセスした後に、 ## HTTP リファラ {#HTTP-referer} -HTTP リファラ(HTTP referer)は HTTP 要求ヘッダの属性で、 +**HTTP リファラ**(HTTP referer)は HTTP 要求ヘッダの属性で、 ウェブサイト訪問者があるウェブページを要求する時に ウェブサイトに送られるリンク元の URL を指します。 ウェブサイトはこの情報を入手することで @@ -852,29 +868,14 @@ CAPTCHA[^CAPTCHA] などの要求に遭いがちです。 - 検索エンジンが保存したキャッシュページ - ウェブアーカイブ - - Wayback Machine: + - **Wayback Machine**: `https://web.archive.org/` - 代替フロントエンド[^front-end] - - Bibliogram (Instagram の代替) - - 公式インスタンス: - `https://bibliogram.art/` - - ウェブサイト: - `https://git.sr.ht/~cadence/bibliogram/` - - Invidious (Youtube の代替) + - **Invidious** (Youtube の代替) - ウェブサイト: `https://invidious.io/` - インスタンス一覧: `https://github.com/iv-org/documentation/blob/master/invidious-instances.md` - - Nitter (Twitter の代替) - - 公式インスタンス: - `https://nitter.net/` - - インスタンス一覧: - `https://github.com/zedeus/nitter/wiki/instances` - - Teddit (Reddit の代替) - - 公式インスタンス: - `https://teddit.net/` - - インスタンス一覧: - `https://codeberg.org/teddit/teddit` Wayback のアーカイブナビゲータは JavaScript を要するが、 希望のアーカイブを閲覧する前に、 JavaScript を無効化して閲覧できます @@ -888,18 +889,23 @@ Wayback のアーカイブナビゲータは JavaScript を要するが、 大量監視を犯している Bing、 Facebook、 Google、 Yahoo などを避けて、 様々な代替検索エンジンを利用することを推奨します。 -- DuckDuckGo +- **Brave** + - クリアネット: + `https://search.brave.com/` + - オニオンサービス: + `https://search.brave4u7jddbv7cyviptqjc7jusxh72uik7zt6adtckl5f4nwy2v72qd.onion/` +- **DuckDuckGo** - クリアネット: `https://duckduckgo.com/` - オニオンサービス: `https://duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion/` -- searX - - プロジェクトのウェブサイト: - `https://searx.me/` - - インスタンス一覧(クリアネット): - `https://searx.space/` \ - - インスタンス一覧(オニオンサービス): +- **searXNG** + - ウェブサイト(クリアネット): + `https://searx.space/` + - ウェブサイト(オニオンサービス): `http://searxspbitokayvkhzhsnljde7rqmn7rvoga6e4waeub3h7ug3nghoad.onion/` +- **Whoogle** (Google 検索の代替フロントエンド) + - `https://github.com/benbusby/whoogle-search` 見つけた検索エンジンのブックマークを作成したり 検索エンジンを Tor Browser に追加すると良いでしょう。 @@ -960,8 +966,8 @@ Tor Browser のプライバシー機能(Firefox を変更するパッチ) # アリスとボブ {#back} ガイド一覧に戻る ---- [Markdown](../ja-md/alice2bob-ja-preface-2.1.md#list) -\| [HTML](../ja-html/alice2bob-ja-preface-2.1.html#list) +--- [Markdown](../ja-md/alice2bob-ja-preface-2.2.md#list) +\| [HTML](../ja-html/alice2bob-ja-preface-2.2.html#list) ## 連絡先 {#back-contact} diff --git a/ja-md/alice2bob-ja-external-resources-2.1.md b/ja-md/alice2bob-ja-external-resources-2.2.md similarity index 90% rename from ja-md/alice2bob-ja-external-resources-2.1.md rename to ja-md/alice2bob-ja-external-resources-2.2.md index 33cadbe..f4038d8 100644 --- a/ja-md/alice2bob-ja-external-resources-2.1.md +++ b/ja-md/alice2bob-ja-external-resources-2.2.md @@ -4,13 +4,13 @@ アリスとボブ -バージョン: 2.1 +バージョン: 2.2 -本ガイドの最終更新: 2023-01-27 +本ガイドの最終更新: 2023-08-17 ガイド一覧に戻る ---- [Markdown](../ja-md/alice2bob-ja-preface-2.1.md#list) -\| [HTML](../ja-html/alice2bob-ja-preface-2.1.html#list) +--- [Markdown](../ja-md/alice2bob-ja-preface-2.2.md#list) +\| [HTML](../ja-html/alice2bob-ja-preface-2.2.html#list) *** @@ -27,6 +27,10 @@ ## English {#English} +**Jameson Lopp, "Attack Vectors in Real Life: Being your own bank," 2020-09-03** \ +`https://invidious.snopyta.org/watch?v=eWbBnqRcIo0` \ +*内容:暗号通貨に関する損失・攻撃ベクトル* + **Buggedplanet.info** \ `https://buggedplanet.info` \ *内容: COMINT と SIGINT などに関連する監視技術、 @@ -68,6 +72,9 @@ **Marc Meillassoux, Mihaela Gladovic, "Nothing to Hide," 2017** \ `https://videocommons.org/w/6b43a28c-86ee-4681-8ab9-787ac140afc0` +**Madaidan's Insecurities** \ +`https://madaidans-insecurities.github.io/` + **grugq, "Operational PGP"** \ `https://gist.github.com/grugq/03167bed45e774551155` \ *注:聞き手が不明で、実用性が限られているが、 @@ -167,8 +174,8 @@ Youtube: `https://invidious.snopyta.org/channel/UCM--uemqoP45daIZG2-VpOA` \ **alternative-front-ends (代替フロントエンド一覧)** \ `https://github.com/mendel5/alternative-front-ends` -**PRISM Break** \ -`https://prism-break.org/` +**delightful** \ +`https://delightful.club/` **Privacy Tools** \ `https://privacytools.io/` \ @@ -228,14 +235,11 @@ RFC 4880: `https://datatracker.ietf.org/doc/html/rfc4880` `https://qubes-os.org/` \ `http://qubesosfasa4zl44o4tws22di6kepyzfeqv3tg4e3ztknltfxqrymdad.onion/` -**searX (メタ検索エンジン)** \ -`https://searx.me/` - **Session (メッセンジャー)** \ `https://getsession.org/` **Tails (持ち運び可能な OS)** \ -`https://tails.boum.org/` +`https://tails.net/` **Tor(匿名化ネットワーク)** \ `https://www.torproject.org/` \ @@ -258,9 +262,9 @@ RFC 4880: `https://datatracker.ietf.org/doc/html/rfc4880` **Autistici/Inventati (様々なサービス)** \ `https://www.autistici.org/` -**Bibliogram (Instagram の代替フロントエンド)** \ -公式インスタンス: `https://bibliogram.art/` \ -ウェブサイト: `https://git.sr.ht/~cadence/bibliogram/` +**Brave Search (検索エンジン)** \ +`https://search.brave.com/` \ +`https://search.brave4u7jddbv7cyviptqjc7jusxh72uik7zt6adtckl5f4nwy2v72qd.onion/` **BrowserLeaks (ブラウザ指紋テスト)** \ `https://browserleaks.com/` @@ -268,7 +272,7 @@ RFC 4880: `https://datatracker.ietf.org/doc/html/rfc4880` **CheckShortURL (短縮 URL の拡張)** \ `https://checkshorturl.com/` -**Codeberg (gitea インスタンス)** \ +**Codeberg (Forgejo インスタンス)** \ `https://codeberg.org/` **Dégooglisons Internet (様々なサービス)** \ @@ -292,12 +296,15 @@ RFC 4880: `https://datatracker.ietf.org/doc/html/rfc4880` **Just Delete Me (アカウント削除手順一覧)** \ `https://justdeleteme.xyz/` -**keys.openpgp.org (OpgnPGP 公開鍵サーバ)** \ +**keys.openpgp.org (OpenPGP 公開鍵サーバ)** \ `https://keys.openpgp.org/` \ `http://zkaan2xfbuxia2wpf7ofnkbz6r5zdbbvxbunvp5g2iebopbfc4iqmbad.onion/` +**Libreddit (Reddit の代替フロントエンド)** \ +`https://github.com/libreddit/libreddit/` + **Nitter (Twitter の代替フロントエンド)** \ -公式インスタンス: `https://nitter.net/` \ +ウェブサイト: `https://github.com/zedeus/nitter` \ インスタンス一覧: `https://github.com/zedeus/nitter/wiki/instances` **NoLog.cz (様々なサービス)** \ @@ -307,7 +314,7 @@ RFC 4880: `https://datatracker.ietf.org/doc/html/rfc4880` `https://riseup.net/` \ `http://vww6ybal4bd7szmgncyruucpgfkqahzddi37ktceo3ah7ngmcopnpyyd.onion/` -**searX (メタ検索エンジン)のインスタンス** \ +**searXNG (メタ検索エンジン)のインスタンス** \ `https://searx.space/` \ `http://searxspbitokayvkhzhsnljde7rqmn7rvoga6e4waeub3h7ug3nghoad.onion/` @@ -321,8 +328,7 @@ RFC 4880: `https://datatracker.ietf.org/doc/html/rfc4880` `https://sourcehut.org/` **Teddit (Reddit の代替フロントエンド)** \ -公式インスタンス: `https://teddit.net/` \ -インスタンス一覧: `https://codeberg.org/teddit/teddit` +`https://codeberg.org/teddit/teddit` **TorZillaPrint (ブラウザ指紋テスト)** \ `https://arkenfox.github.io/TZP/tzp.html` @@ -336,6 +342,12 @@ RFC 4880: `https://datatracker.ietf.org/doc/html/rfc4880` **Wayback Machine (ウェブアーカイブ)** \ `https://web.archive.org/` +**Whoogle (Google 検索の代替フロントエンド)** \ +`https://github.com/benbusby/whoogle-search` + +**Wikiless (Wikipedia の代替フロントエンド)** \ +`https://github.com/Metastem/wikiless` + # 市民社会組織 {#civil-society-orgs} **Access Now (INT)** \ @@ -385,8 +397,8 @@ RFC 4880: `https://datatracker.ietf.org/doc/html/rfc4880` # アリスとボブ {#back} ガイド一覧に戻る ---- [Markdown](../ja-md/alice2bob-ja-preface-2.1.md#list) -\| [HTML](../ja-html/alice2bob-ja-preface-2.1.html#list) +--- [Markdown](../ja-md/alice2bob-ja-preface-2.2.md#list) +\| [HTML](../ja-html/alice2bob-ja-preface-2.2.html#list) ## 連絡先 {#back-contact} diff --git a/ja-md/alice2bob-ja-glossary-2.1.md b/ja-md/alice2bob-ja-glossary-2.2.md similarity index 97% rename from ja-md/alice2bob-ja-glossary-2.1.md rename to ja-md/alice2bob-ja-glossary-2.2.md index 62dd2cf..e3bf984 100644 --- a/ja-md/alice2bob-ja-glossary-2.1.md +++ b/ja-md/alice2bob-ja-glossary-2.2.md @@ -4,13 +4,13 @@ アリスとボブ -バージョン: 2.1 +バージョン: 2.2 本ガイドの最終更新: 2022-02-28 ガイド一覧に戻る ---- [Markdown](../ja-md/alice2bob-ja-preface-2.1.md#list) -\| [HTML](../ja-html/alice2bob-ja-preface-2.1.html#list) +--- [Markdown](../ja-md/alice2bob-ja-preface-2.2.md#list) +\| [HTML](../ja-html/alice2bob-ja-preface-2.2.html#list) *** @@ -242,8 +242,8 @@ STFU # アリスとボブ {#back} ガイド一覧に戻る ---- [Markdown](../ja-md/alice2bob-ja-preface-2.1.md#list) -\| [HTML](../ja-html/alice2bob-ja-preface-2.1.html#list) +--- [Markdown](../ja-md/alice2bob-ja-preface-2.2.md#list) +\| [HTML](../ja-html/alice2bob-ja-preface-2.2.html#list) ## 連絡先 {#back-contact} diff --git a/ja-md/alice2bob-ja-intro-cryptography-2.1.md b/ja-md/alice2bob-ja-intro-cryptography-2.2.md similarity index 90% rename from ja-md/alice2bob-ja-intro-cryptography-2.1.md rename to ja-md/alice2bob-ja-intro-cryptography-2.2.md index 508acc6..0828b86 100644 --- a/ja-md/alice2bob-ja-intro-cryptography-2.1.md +++ b/ja-md/alice2bob-ja-intro-cryptography-2.2.md @@ -4,13 +4,13 @@ アリスとボブ -バージョン: 2.1 +バージョン: 2.2 本ガイドの最終更新: 2022-08-11 ガイド一覧に戻る ---- [Markdown](../ja-md/alice2bob-ja-preface-2.1.md#list) -\| [HTML](../ja-html/alice2bob-ja-preface-2.1.html#list) +--- [Markdown](../ja-md/alice2bob-ja-preface-2.2.md#list) +\| [HTML](../ja-html/alice2bob-ja-preface-2.2.html#list) *** @@ -37,7 +37,8 @@ # 暗号とは {#what-is-cryptography} -暗号とは、第三者や悪質な行動から情報と通信を保護する手法です。 +**暗号**(cryptography)とは、 +第三者や悪質な行動から情報と通信を保護する手法です。 デジタルデバイスを対象にした現代の暗号は 情報セキュリティ、計算科学、数学、物理学、 電気電子工学、通信工学などの分野を交差し、 @@ -106,8 +107,8 @@ → ガイド: **デジタルセキュリティの概念 § KISS:単純な対策を優先する** ---- [Markdown](../ja-md/alice2bob-ja-security-concepts-2.1.md#KISS) -\| [HTML](../ja-html/alice2bob-ja-security-concepts-2.1.html#KISS) +--- [Markdown](../ja-md/alice2bob-ja-security-concepts-2.2.md#KISS) +\| [HTML](../ja-html/alice2bob-ja-security-concepts-2.2.html#KISS) ## 暗号機能が提供するセキュリティ特性を理解する {#understand-security-properties} @@ -141,8 +142,8 @@ OpenPGP の署名や暗号化はメールの内容の保護に利用できるが → ガイド: **OpenPGP と GnuPG § メタデータをほぼ全く保護しない** ---- [Markdown](../ja-md/alice2bob-ja-OpenPGP-2.1.md#no-metadata-protection) -\| [HTML](../ja-html/alice2bob-ja-OpenPGP-2.1.html#no-metadata-protection) +--- [Markdown](../ja-md/alice2bob-ja-OpenPGP-2.2.md#no-metadata-protection) +\| [HTML](../ja-html/alice2bob-ja-OpenPGP-2.2.html#no-metadata-protection) 虚偽宣伝をするソフトウェアプロジェクトやサービス提供者もいるので、 セキュリティ特性をできる限り理解してから採用することを推奨します。 @@ -156,8 +157,8 @@ Zoom E2EE の虚偽宣伝: → ガイド: **デジタルセキュリティの概念 § 物事を疑わずに受け入れず、十分に検証する** ---- [Markdown](../ja-md/alice2bob-ja-security-concepts-2.1.md#verify) -\| [HTML](../ja-html/alice2bob-ja-security-concepts-2.1.html#verify) +--- [Markdown](../ja-md/alice2bob-ja-security-concepts-2.2.md#verify) +\| [HTML](../ja-html/alice2bob-ja-security-concepts-2.2.html#verify) ## 暗号技術の安全性を確認する {#verify} @@ -205,8 +206,8 @@ FLOSH (自由オープンソースハードウェア)は → ガイド: **デジタルセキュリティの概念 § FLOSS を使用する** ---- [Markdown](../ja-md/alice2bob-ja-security-concepts-2.1.md#FLOSS) -\| [HTML](../ja-html/alice2bob-ja-security-concepts-2.1.html#FLOSS) +--- [Markdown](../ja-md/alice2bob-ja-security-concepts-2.2.md#FLOSS) +\| [HTML](../ja-html/alice2bob-ja-security-concepts-2.2.html#FLOSS) 利用者全員がこの確認をしなければならないわけでなく、 専門者でない一般の利用者にとって確認作業が無理または困難でしょう。 @@ -244,7 +245,7 @@ FLOSH (自由オープンソースハードウェア)は ## 暗号解読 {#cryptanalysis} -暗号解読(cryptanalysis)とは、 +**暗号解読**(cryptanalysis)とは、 暗号のアルゴリズム上または実装上の弱点を探すことです。 秘密情報(例:鍵、パスワード、平文)を使用せずに 以下のようなことが攻撃者にとって主な目的です。 @@ -380,20 +381,20 @@ Session メッセンジャーのシードなどの長期鍵類はもちろん、 本セクションでは暗号の利用に役立つ暗号の要素について説明します。 まず、以下の用語を簡潔に説明します。 -暗号プリミティブ(cryptographic primitive)とは、 +**暗号プリミティブ**(cryptographic primitive)とは、 暗号プロトコルや暗号系の構築に用いられる基本要素です。 高度の信頼性がある暗号プリミティブはシステム構築に必要不可欠です。 -暗号アルゴリズム(cryptographic algorithm)とは、 +**暗号アルゴリズム**(cryptographic algorithm)とは、 ある暗号機能と実現するアルゴリズム(算法)です。 -暗号方式、暗号システムまたは暗号系(cryptosystem)とは、 +**暗号方式**、**暗号システム**または**暗号系**(cryptosystem)とは、 一連のセキュリティ特性を実現するために構築されたシステムで、 一連の暗号アルゴリズムを含むシステムです。 たいていは鍵生成、暗号化と復号化のアルゴリズム を含むシステムを指します。 -暗号プロトコル(cryptographic protocol)とは、 +**暗号プロトコル**(cryptographic protocol)とは、 暗号を用いてセキュリティ機能を実現する通信プロトコルです。 たいていは実際に通信に利用する暗号方式を指すが、 通信以外の使用事例にも役立つかもしれません。 @@ -403,9 +404,10 @@ Session メッセンジャーのシードなどの長期鍵類はもちろん、 他の要素を説明する前に、 まず公開鍵暗号を簡潔に説明しておきます。 -公開鍵暗号(public key cryptography) -または非対称暗号(asymmetric cryptography)とは、 -数学的に関係づけられた公開鍵と秘密鍵を用いた暗号です。 +**公開鍵暗号**(public key cryptography) +または**非対称暗号**(asymmetric cryptography)とは、 +数学的に関係づけられた**公開鍵**(public key)と +**秘密鍵**(private key)を用いた暗号です。 秘密鍵から公開鍵を簡単に導出できるが、 その逆が困難であるような数学的関係を有します。 公開鍵が使われることから「公開鍵暗号」の名称が由来し、 @@ -413,7 +415,7 @@ Session メッセンジャーのシードなどの長期鍵類はもちろん、 異なる鍵を使うことから「非対称暗号」の名称が由来します。 数学的に関係づけられた公開鍵と秘密鍵は -鍵ペアまたは鍵対(keypair)と呼びます。 +**鍵ペア**または**鍵対**(keypair)と呼ばれます。 公開鍵は、名称どおり、公開しても問題がありません。 公開鍵を持っている人は秘密鍵所有者宛に秘密を送ったり @@ -441,15 +443,17 @@ RSA 暗号: ## 暗号化 {#encryption} -暗号化(encryption)とは、 -鍵(公開鍵、パスワードなど)を用いてある情報を読めないようにすることで、 +**暗号化**(encryption)とは、 +秘密情報(例:鍵やパスワード)を用いて +([公開鍵暗号化](#public-key-encryption)の場合に公開鍵を(も)用いる) +ある情報を読めないように変換することで、 秘匿性を実現する手法です。 -暗号化された情報は「暗号文」(ciphertext)と呼ばれ、 -もとの情報は「平文」(ひらぶん、 plaintext) -または「明文」(cleartext)と呼ばれます。 -暗号化は、鍵を用いて平文を暗号文に変換する行為です。 -復号化(decryption)は暗号化の逆で、 -秘密の鍵(秘密鍵、パスワードなど)を用いて暗号文を平文に戻す行為です。 +暗号化された情報は**暗号文**(ciphertext)と呼ばれ、 +もとの情報は**平文**(ひらぶん、 plaintext) +または**明文**(cleartext)と呼ばれます。 +暗号化は、平文を暗号文に変換する行為です。 +**復号化**(decryption)は暗号化の逆で、 +秘密情報を用いて暗号文を平文に戻す行為です。 情報を読めないようにする対象は一般的には第三者(当事者以外)だけだが、 当事者(例えば情報を暗号化した人自身)も @@ -463,10 +467,10 @@ RSA 暗号: -対称鍵暗号化(symmetric encryption) -または共通鍵暗号化(common key encryption)とは、 -暗号化と復号化に共通する鍵(共通鍵)を用いた暗号化です。 -対称鍵暗号化アルゴリズムはサイファ(cipher)とも呼ばれます。 +**対称鍵暗号化**(symmetric encryption) +または**共通鍵暗号化**(common key encryption)とは、 +暗号化と復号化に共通する鍵(**共通鍵**)を用いた暗号化です。 +対称鍵暗号化アルゴリズムは**サイファ**(cipher)とも呼ばれます。 - ブロックサイファ(block cipher): ブロック単位(例: 128 ビット)の情報を読み込んで暗号化する。 @@ -495,8 +499,8 @@ RSA 暗号: #### 公開鍵暗号化 {#public-key-encryption} 暗号化と復号化に共通する鍵を用いた暗号化と異なり、 -公開鍵暗号化(public key encryption) -または非対称鍵暗号化(asymmetric encryption)とは、 +**公開鍵暗号化**(public key encryption) +または**非対称鍵暗号化**(asymmetric encryption)とは、 公開鍵を用いた暗号化のことです。 公開鍵で暗号化したメッセージを、 数学的に関係づけられた秘密鍵を用いて復号化します。 @@ -516,7 +520,7 @@ RSA 暗号: -ハイブリッド暗号化(hybrid encryption)とは、 +**ハイブリッド暗号化**(hybrid encryption)とは、 公開鍵暗号化と対称鍵暗号化を組み合わせた暗号化のことです。 公開鍵暗号化と対称鍵暗号化と異なり、ただの暗号化プリミティブではなく、 プリミティブを組み合わせた物です。 @@ -524,22 +528,22 @@ RSA 暗号: ハイブリッド暗号化は公開鍵暗号化と対称鍵暗号化の 両者のメリットを取り入れながらデメリットを排除しようとします。 対称鍵暗号化は公開鍵暗号化より高速で大量情報の暗号化に適している一方、 -公開鍵暗号化は安全なセッション鍵(session key)の共有に適しています。 +公開鍵暗号化は**セッション鍵**(session key)の共有に適しています。 公開鍵は長期的に使用できるデジタル身元みたいなものです。 ハイブリッド暗号化の一例は、 一通のメッセージだけに使うセッション鍵を生成してから公開鍵で暗号化し、 メッセージをセッション鍵とサイファで暗号化する仕組みです。 OpenPGP はこのようなハイブリッド暗号化を使います。 -他に、身元鍵(identity key)の役割を演じる公開鍵が危殆化されても +他に、**身元鍵**(identity key)の役割を演じる公開鍵が危殆化されても セッション鍵が危殆化されない[前方秘匿性](#forward-secrecy)のある 通信方式など、様々なハイブリッド暗号化もあります。 TLS と SSH もハイブリッド暗号化を使います。 → ガイド: **OpenPGP と GnuPG § 暗号化** ---- [Markdown](../ja-md/alice2bob-ja-OpenPGP-2.1.md#encryption) -\| [HTML](../ja-html/alice2bob-ja-OpenPGP-2.1.html#encryption) +--- [Markdown](../ja-md/alice2bob-ja-OpenPGP-2.2.md#encryption) +\| [HTML](../ja-html/alice2bob-ja-OpenPGP-2.2.html#encryption) ### 暗号化技術の種類 {#encryption-types} @@ -548,7 +552,7 @@ TLS と SSH もハイブリッド暗号化を使います。 #### 保管時の暗号化 {#encryption-at-rest} -保管時の暗号化(encryption at rest)とは、 +**保管時の暗号化**(encryption at rest)とは、 情報を保管する際の暗号化です。 暗号化ファイルシステムを利用したら、 ファイルシステムに保存する情報の暗号化・復号化が自動的です。 @@ -575,8 +579,8 @@ VeraCrypt (ファイルシステムの暗号化) #### 転送中の暗号化 {#encryption-in-transit} -転送中の暗号化(encryption in transit)または -トランスポート暗号化(transport encryption)とは、 +**転送中の暗号化**(encryption in transit)または +**トランスポート暗号化**(transport encryption)とは、 情報が転送中に秘匿性を保護するよう、送信者から受信者まで施す暗号化です。 例えば、 SSL/TLS は過去 10 年の間に徐々に採用され、 現在はほとんどのウェブサイトが TLS に対応しているため、 @@ -596,7 +600,8 @@ VeraCrypt (ファイルシステムの暗号化) #### エンドツーエンド暗号化 {#end-to-end-encryption} -エンドツーエンド暗号化(end-to-end encryption、 E2EE、 E2E 暗号化)とは、 +**エンドツーエンド暗号化**または +**E2EE**(end-to-end encryption)とは、 送信者と受信者で構成される当事者(エンドポイント)だけが鍵を持ち、 中間者や第三者による傍聴を防ぐ暗号化です。 単の転送中の暗号化と異なり、 @@ -609,11 +614,12 @@ Signal プロトコルまたはそれに類するプロトコルのメッセン ## ハッシュ化 {#hashing} -ハッシュ化(hashing)とは、 +**ハッシュ化**(hashing)とは、 任意長のメッセージ(原像、 pre-image)を 決定的に固定長の数値に写像する手法です。 -出力値はハッシュ値(hash)またはダイジェスト(digest)と呼ばれます。 -写像自体はハッシュ関数(hash function)と呼ばれます。 +出力値は**ハッシュ値**(hash)または +**ダイジェスト**(digest)と呼ばれます。 +写像自体は**ハッシュ関数**(hash function)と呼ばれます。 | メッセージ | SHA-256 ハッシュ値 | 備考 | |:---|:---:|:---:| @@ -626,25 +632,25 @@ Table: ハッシュ化のなだれ効果。 ハッシュ化は決定的な計算で、 同じメッセージに対して同じハッシュ値が得られます。 -しかし、ハッシュ化にはなだれ効果(avalanche effect)があり、 +しかし、ハッシュ化には**なだれ効果**(avalanche effect)があり、 メッセージが微小に変化してもハッシュ値が全く変わります。 可逆性のある暗号化・復号化と異なり、ハッシュ化は不可逆な変換で、 メッセージを復元する逆演算がありません。 -また、暗号に適した安全なハッシュ関数(暗号的ハッシュ関数、 -cryptographic hash function)に求められる性質は以下です。 +また、**暗号的ハッシュ関数**(cryptographic hash function) +という暗号に適した安全なハッシュ関数に求められる性質は以下です。 -- 決定性(determinism): +- **決定性**(determinism): 同じメッセージをハッシュ化したら同じハッシュ値を得ること。 -- 無作為性(randomness): +- **無作為性**(randomness): メッセージが極わずかでも変化したら全く違うハッシュ値を得ること。 -- 原像計算困難性(pre-image resistance): +- **原像計算困難性**(pre-image resistance): - 第 1 原像計算困難性: 与えられたハッシュ値を有するメッセージを探すことが困難であること。 - 第 2 原像計算困難性: 与えられたメッセージと同じハッシュ値を有する別のメッセージを 探すことが困難であること(弱衝突耐性)。 -- 衝突耐性(collision resistance): +- **衝突耐性**(collision resistance): 同じハッシュ値を有する異なるメッセージを 探し出すことが困難であること(強衝突耐性)。 @@ -699,13 +705,17 @@ alice.txt: OK ## 署名 {#signing} +*注:「署名」(名詞)は用法によって "signing" (行為)か +"signature" (物)を意味します。 +曖昧さ回避のために、本ガイドでは署名行為を「署名発行」と呼びます。* + -署名(signing)とは、 +暗号における**署名発行**(signing)または単に**署名**とは、 秘密鍵を用いてメッセージの完全性と認証を -検証可能にする証明の生成のことです。 +検証可能にする証明を生成・発行することです。 署名アルゴリズムが出力する検証のための情報は -署名(signature)と呼ばれます。 +**署名**(signature)と呼ばれます。 秘密鍵で署名されたメッセージと署名を、 数学的に関係づけられた公開鍵を用いて検証します。 @@ -734,7 +744,8 @@ alice.txt: OK ## メッセージ認証符号 {#MAC} -メッセージ認証符号(message authentication code、 MAC)とは、 +**メッセージ認証符号**または +**MAC** (message authentication code)とは、 共通鍵と任意長のメッセージを入力とするアルゴリズムで生成された、 メッセージを検証する際に使う情報です。 MAC はメッセージの完全性確認を可能にし、 @@ -771,7 +782,7 @@ MAC を生成した可能性が残ります。 署名と MAC について前述したため、 ここで検証について簡潔に説明します。 -暗号における検証(verification)とは、 +暗号における**検証**(verification)とは、 情報の完全性・出所や通信相手の身元などを確認することです。 与えられた情報(メッセージ、ハッシュ値、署名、公開鍵、 MAC、共通鍵など)から以下の結果が出ることが可能です。 @@ -782,14 +793,15 @@ MAC、共通鍵など)から以下の結果が出ることが可能です。 ## 疑似乱数生成 {#random-number-generation} -疑似乱数生成器(pseudo-random number generator、 PRNG)は、 +**疑似乱数生成器**または +**PRNG** (pseudo-random number generator)とは、 疑似乱数列を出力するアルゴリズムです。 -暗号的に安全な PRNG (cryptographically secure PRNG、 CSPRNG)は、 +**CSPRNG** (cryptographically secure PRNG、暗号的に安全な PRNG)は、 強力な秘密鍵、セッション鍵、[ソルト](#salt)、パスワードなど を生成するために不可欠な要素で、 暗号方式が多く CSPRNG を活用します。 -PRNG はシード値(seed)と呼ばれる乱数で +PRNG は**シード値**(seed)と呼ばれる乱数で 初期化されてから使用されます。 PRNG の出力は決定的で、 同じシード値を与えたら同じ数列が出力されます。 @@ -824,7 +836,7 @@ lenjiqlnfi ## 鍵交換 {#key-exchange} -鍵交換(key exchange)とは、 +**鍵交換**(key exchange)とは、 通信の当事者が秘密の共通鍵に合意する手法です。 非暗号化チャネル上で秘密情報や鍵を平文で送信すると、 @@ -846,7 +858,7 @@ lenjiqlnfi ### 前方秘匿性 {#forward-secrecy} -前方秘匿性(forward secrecy)は、 +**前方秘匿性**(forward secrecy)は、 鍵交換に使用した長期的な鍵(例:鍵ペア)が危殆化されても セッション鍵が危殆化されないという暗号化の仕組みです。 前方秘匿通信では各セッションに新しい鍵が生成・使用されるため、 @@ -859,7 +871,7 @@ lenjiqlnfi ## 鍵導出 {#key-derivation} -鍵導出(key derivation)とは、 +**鍵導出**(key derivation)とは、 秘密情報(パスワードまたは身元鍵など)を用いて、 特定の形式を満たす鍵、強力な鍵、複数の鍵などを導出することです。 以下の目的に使用されます。 @@ -877,7 +889,7 @@ lenjiqlnfi ハッシュ化を繰り返したりすることで、 同じ秘密情報から複数の鍵を導出。 -鍵導出は疑似乱数関数(pseudo-random function)を利用し、 +鍵導出は**疑似乱数関数**(pseudo-random function、 PRF)を利用し、 たいていは[ハッシュ関数](#hashing)または [ブロックサイファ](#symmetric-encryption)を 疑似乱数関数として利用します。 @@ -911,7 +923,7 @@ Table: ハッシュ値 = SHA256(パスワード+ソルト値) でのソルト化 - \*1:アカウントのパスワードをサーバ上に保存しない。 - \*2:実際には 32 ビットより長い値を使うべき。 -鍵導出にはソルト値(塩、 salt)という乱数が +鍵導出には**ソルト値**(塩、 salt)という乱数が 与えられることがあります。 秘密情報にソルト値を付加してからハッシュ化すると、 秘密情報が同じであっても毎回異なるハッシュ値が得られます。 @@ -936,12 +948,12 @@ Table: ハッシュ値 = SHA256(パスワード+ソルト値) でのソルト化 ### 鍵ストレッチング {#key-stretching} -鍵ストレッチング(key stretching)とは、 +**鍵ストレッチング**(key stretching)とは、 弱いかもしれない秘密情報(例:人間が発想したパスワード、短い鍵) から攻撃に耐性のある鍵を導出することです。 鍵ストレッチングではソルト値が導出された鍵と共に保管される一方、 -鍵強化(key strengthening)ではソルト値が破棄されます。 +**鍵強化**(key strengthening)ではソルト値が破棄されます。 鍵強化は弱いかもしれない秘密情報から鍵を導出するが、 二度と同じ秘密情報から同じ鍵を導出する必要がない用途にしか使えず、 一般のパスワード保護には適しません。 @@ -1018,8 +1030,8 @@ MITM 側に悪意がない限り MITM 攻撃として解釈されない。 # アリスとボブ {#back} ガイド一覧に戻る ---- [Markdown](../ja-md/alice2bob-ja-preface-2.1.md#list) -\| [HTML](../ja-html/alice2bob-ja-preface-2.1.html#list) +--- [Markdown](../ja-md/alice2bob-ja-preface-2.2.md#list) +\| [HTML](../ja-html/alice2bob-ja-preface-2.2.html#list) ## 連絡先 {#back-contact} diff --git a/ja-md/alice2bob-ja-preface-2.1.md b/ja-md/alice2bob-ja-preface-2.2.md similarity index 67% rename from ja-md/alice2bob-ja-preface-2.1.md rename to ja-md/alice2bob-ja-preface-2.2.md index c7a3d3f..23d59bd 100644 --- a/ja-md/alice2bob-ja-preface-2.1.md +++ b/ja-md/alice2bob-ja-preface-2.2.md @@ -4,13 +4,13 @@ アリスとボブ -バージョン: 2.1 +バージョン: 2.2 本ガイドの最終更新: 2022-08-12 ガイド一覧に戻る ---- [Markdown](../ja-md/alice2bob-ja-preface-2.1.md#list) -\| [HTML](../ja-html/alice2bob-ja-preface-2.1.html#list) +--- [Markdown](../ja-md/alice2bob-ja-preface-2.2.md#list) +\| [HTML](../ja-html/alice2bob-ja-preface-2.2.html#list) *** @@ -37,55 +37,55 @@ # ガイド一覧 {#list} - **序文** \ - --- [Markdown](../ja-md/alice2bob-ja-preface-2.1.md) - \| [HTML](../ja-html/alice2bob-ja-preface-2.1.html) + --- [Markdown](../ja-md/alice2bob-ja-preface-2.2.md) + \| [HTML](../ja-html/alice2bob-ja-preface-2.2.html) \ (最終更新: 2022-08-12) - **デジタルセキュリティの概念** \ - --- [Markdown](../ja-md/alice2bob-ja-security-concepts-2.1.md) - \| [HTML](../ja-html/alice2bob-ja-security-concepts-2.1.html) + --- [Markdown](../ja-md/alice2bob-ja-security-concepts-2.2.md) + \| [HTML](../ja-html/alice2bob-ja-security-concepts-2.2.html) \ - (最終更新: 2022-02-28) + (最終更新: 2023-08-17) - **セキュリティ計画** \ - --- [Markdown](../ja-md/alice2bob-ja-security-plan-2.1.md) - \| [HTML](../ja-html/alice2bob-ja-security-plan-2.1.html) + --- [Markdown](../ja-md/alice2bob-ja-security-plan-2.2.md) + \| [HTML](../ja-html/alice2bob-ja-security-plan-2.2.html) \ (最終更新: 2021-12-29 (原文更新: 2021-02-02)) - **Tor 匿名化ネットワーク** \ - --- [Markdown](../ja-md/alice2bob-ja-Tor-2.1.md) - \| [HTML](../ja-html/alice2bob-ja-Tor-2.1.html) + --- [Markdown](../ja-md/alice2bob-ja-Tor-2.2.md) + \| [HTML](../ja-html/alice2bob-ja-Tor-2.2.html) \ (最終更新: 2021-12-29) - **Tor Browser** \ - --- [Markdown](../ja-md/alice2bob-ja-Tor-Browser-2.1.md) - \| [HTML](../ja-html/alice2bob-ja-Tor-Browser-2.1.html) + --- [Markdown](../ja-md/alice2bob-ja-Tor-Browser-2.2.md) + \| [HTML](../ja-html/alice2bob-ja-Tor-Browser-2.2.html) \ - (最終更新: 2023-01-27) + (最終更新: 2023-08-17) - **Tails を用いた自由かつ匿名コンピューティング** \ - --- [Markdown](../ja-md/alice2bob-ja-Tails-2.1.md) - \| [HTML](../ja-html/alice2bob-ja-Tails-2.1.html) + --- [Markdown](../ja-md/alice2bob-ja-Tails-2.2.md) + \| [HTML](../ja-html/alice2bob-ja-Tails-2.2.html) \ - (最終更新: 2023-01-27) + (最終更新: 2023-08-17) - **暗号技術入門** \ - --- [Markdown](../ja-md/alice2bob-ja-intro-cryptography-2.1.md) - \| [HTML](../ja-html/alice2bob-ja-intro-cryptography-2.1.html) + --- [Markdown](../ja-md/alice2bob-ja-intro-cryptography-2.2.md) + \| [HTML](../ja-html/alice2bob-ja-intro-cryptography-2.2.html) \ (最終更新: 2022-08-11) - **OpenPGP と GnuPG** \ - --- [Markdown](../ja-md/alice2bob-ja-OpenPGP-2.1.md) - \| [HTML](../ja-html/alice2bob-ja-OpenPGP-2.1.html) + --- [Markdown](../ja-md/alice2bob-ja-OpenPGP-2.2.md) + \| [HTML](../ja-html/alice2bob-ja-OpenPGP-2.2.html) \ - (最終更新: 2023-02-20) + (最終更新: 2023-08-17) - **用語集** \ - --- [Markdown](../ja-md/alice2bob-ja-glossary-2.1.md) - \| [HTML](../ja-html/alice2bob-ja-glossary-2.1.html) + --- [Markdown](../ja-md/alice2bob-ja-glossary-2.2.md) + \| [HTML](../ja-html/alice2bob-ja-glossary-2.2.html) \ (最終更新: 2022-02-28) - **外部資料** \ - --- [Markdown](../ja-md/alice2bob-ja-external-resources-2.1.md) - \| [HTML](../ja-html/alice2bob-ja-external-resources-2.1.html) + --- [Markdown](../ja-md/alice2bob-ja-external-resources-2.2.md) + \| [HTML](../ja-html/alice2bob-ja-external-resources-2.2.html) \ - (最終更新: 2023-01-27) + (最終更新: 2023-08-17) *** @@ -93,8 +93,8 @@ # アリスとボブ {#back} ガイド一覧に戻る ---- [Markdown](../ja-md/alice2bob-ja-preface-2.1.md#list) -\| [HTML](../ja-html/alice2bob-ja-preface-2.1.html#list) +--- [Markdown](../ja-md/alice2bob-ja-preface-2.2.md#list) +\| [HTML](../ja-html/alice2bob-ja-preface-2.2.html#list) ## 連絡先 {#back-contact} diff --git a/ja-md/alice2bob-ja-security-concepts-2.1.md b/ja-md/alice2bob-ja-security-concepts-2.2.md similarity index 92% rename from ja-md/alice2bob-ja-security-concepts-2.1.md rename to ja-md/alice2bob-ja-security-concepts-2.2.md index 1c99aa9..62eed93 100644 --- a/ja-md/alice2bob-ja-security-concepts-2.1.md +++ b/ja-md/alice2bob-ja-security-concepts-2.2.md @@ -4,13 +4,13 @@ アリスとボブ -バージョン: 2.1 +バージョン: 2.2 -本ガイドの最終更新: 2022-02-28 +本ガイドの最終更新: 2023-08-17 ガイド一覧に戻る ---- [Markdown](../ja-md/alice2bob-ja-preface-2.1.md#list) -\| [HTML](../ja-html/alice2bob-ja-preface-2.1.html#list) +--- [Markdown](../ja-md/alice2bob-ja-preface-2.2.md#list) +\| [HTML](../ja-html/alice2bob-ja-preface-2.2.html#list) *** @@ -21,7 +21,7 @@ 4. [事前対策を徹底する](#proactive) 5. [STFU:情報を不要に明かさない](#STFU) 6. [他人がセンシティブ情報を保護してくれることを信用しない](#dont-trust-anyone) - 7. [全ての情報と通信を効果的な技術で保護する](#protect) + 7. [全ての情報と通信を効果的な措置で保護する](#protect) 8. [記録した情報を最低限にし、不要な情報を削除する](#minimization) 9. [自宅からリスクの高い活動をしない](#dont-work-from-home) 10. [物と情報を活動または身元ごとに区分する](#compartmentalization) @@ -56,8 +56,8 @@ → ガイド: **セキュリティ計画** ---- [Markdown](../ja-md/alice2bob-ja-security-plan-2.1.md) -\| [HTML](../ja-html/alice2bob-ja-security-plan-2.1.html) +--- [Markdown](../ja-md/alice2bob-ja-security-plan-2.2.md) +\| [HTML](../ja-html/alice2bob-ja-security-plan-2.2.html) ## 最弱点から対策を始める {#weakest-link} @@ -78,13 +78,14 @@ セキュリティ対策の維持と見直しが疎かになりがちです。 できる限りセキュリティ対策を単純にしておくことをおすすめします。 -これは KISS[^KISS] 原則と呼ばれることが多いです。 +これは **KISS**[^KISS] と呼ばれることが多いです。 単純かつローテクな対策のいくつかの例を下にあげます。 - デバイスの電源を完全に切る。 - デバイスを持ち歩かない。 -- マイク、カメラ、無線、スピーカーなどを物理的に取り除くか無効化する。 +- マイク、カメラ、無線、スピーカー、移動検出センサなどを + 物理的に取り除くか無効化する。 - 森林の中や他の監視されていない場所で打ち合わせ、共同作業、 懇親会などを行う。 @@ -105,14 +106,14 @@ ## STFU:情報を不要に明かさない {#STFU} センシティブ情報[^sensitive]を漏らすと、該当する活動や対策の失敗、 -または当事者(場合によって回りの人も)に対する危険や個人情報窃盗 -につながる恐れがあります。 +または当事者(場合によって回りの人も)に対する危険につながる +恐れがあります。 関係者の同意を得ていない限り、 センシティブ情報を不要に明かすことを控えましょう。 特に、知る必要がある人以外の前で秘密情報を口にすることを避けましょう。 知る必要のある人でない限り、もちろん家族や親友にも内緒です。 -これは STFU[^STFU] と呼ばれ、重要性の高い原則です。 +これは **STFU**[^STFU] と呼ばれ、重要な原則です。 原則として全ての情報をセンシティブ情報として扱うべきです。 ただし、必要に迫られた場合、必要な情報だけを安全な手段で共有すると @@ -160,32 +161,29 @@ 信用しない他人とやりとりすることが多く、 その時に自分のセンシティブ情報を明かしてしまう恐れがあります。 -必要がある時に親友や弁護など信用できる人に +必要がある時に親友や弁護士など信用できる人に 情報を明かしても大丈夫かもしれないが、 他人にセンシティブ情報を容易に明かすことを避けましょう。 どの情報をどの人にどの目的で明かしたらいいかをよく考えた上で 行動すべきです。 -## 全ての情報と通信を効果的な技術で保護する {#protect} +## 全ての情報と通信を効果的な措置で保護する {#protect} プライバシーポリシーや他人の約束に頼ってはいけないことを示唆しました。 -人は強要、詐欺、働きかけなどに応じて -センシティブ情報を明かしてしまいます。 -それに加えて、仮に誰も信用しなくても、 法的保護に頼ってはいけません。 -例えば、不法侵入の法律のある管区にさえ +例えば、不法侵入を法律上犯罪化している管区にさえ 自宅が泥棒に入れられる可能性があります。 また、自宅が火事になってしまう可能性も考えなければなりません。 法的保護や方針や約束は脆弱なものです。 -情報と通信を保護するためには効果的な技術的手段が不可欠です。 +情報と通信を保護するためには効果的な技術的・物理的措置が不可欠です。 情報の破損、損失、改竄、漏洩、身元特定、不正アクセス、傍受、詐欺などを おそらく未然防止したいでしょう。 -デジタルセキュリティにおける技術的手法の例をいくつかあげます。 +デジタルセキュリティにおける技術的・物理的措置の例をいくつかあげます。 - 情報、通信、ファイルシステムなどを暗号化する。 - 強いパスワードや多要素認証[^MFA]で情報やアカウントを保護する。 -- 情報、通信、デバイスなどを隠匿する。 +- 情報、通信、デバイスなどの存在や外見や位置を隠匿する。 - 錠、金庫などを用いて物理的アクセスを制御する。 ## 記録した情報を最低限にし、不要な情報を削除する {#minimization} @@ -214,8 +212,8 @@ Tails では、ユーザが意図的に保存した情報以外の情報が → ガイド: **Tails での自由かつ匿名コンピューティング** ---- [Markdown](../ja-md/alice2bob-ja-Tails-2.1.md) -\| [HTML](../ja-html/alice2bob-ja-Tails-2.1.html) +--- [Markdown](../ja-md/alice2bob-ja-Tails-2.2.md) +\| [HTML](../ja-html/alice2bob-ja-Tails-2.2.html) デジタル情報を簡易削除するだけで完全に消去されず、 記憶装置に残ってしまいます。 @@ -251,13 +249,14 @@ Tails では、ユーザが意図的に保存した情報以外の情報が 日常生活のために利用する物と情報を センシティブな活動に使用しないことは重要です。 -日常生活用と活動用を区分に入れ、区分間の汚染を極力避けましょう。 +日常生活用と活動用を区分に入れ、 +区分間をわたる交差汚染を極力避けましょう。 更に、日常生活に使う家族用、仕事用などのアカウント、 連絡先、デバイスなども別の区分に入れるといいでしょう。 できる限り区分すべきかもしれない物と情報といえば、 別名、アカウント、連絡先、デバイス、ソフトウェア、インターネット接続、 -道具、知人・ソーシャルグラフ、スタイル、活動拠点など +道具、人間関係(知人・ソーシャルグラフ)、スタイル、活動拠点など 多数の例があります。 一部の物と情報(例えば変更できない身体)は区分が無理かもしれないが、 物と情報を区分すればするほど日常生活と活動との繋がりの @@ -288,7 +287,7 @@ Tails では、ユーザが意図的に保存した情報以外の情報が ## FLOSS を使用する {#FLOSS} -FLOSS (自由オープンソースソフトウェア)とは、 +**FLOSS** (自由オープンソースソフトウェア)とは、 ソースコードが開示され、 利用・コンパイル・頒布・変更ともが自由なソフトウェアです。 自由ソフトウェアとオープンソースソフトウェアを含む総称で、 @@ -312,7 +311,6 @@ FLOSS はソフトウェアの検証を可能にするため、 OS とアプリケーションを検証された FLOSS に取り替えると セキュリティ向上になるでしょう。 -- PRISM Break: `https://prism-break.org/` - Privacy Tools: `https://privacy-tools.io/` - switching.software: `https://swiso.org/` @@ -327,9 +325,13 @@ FLOSS が市民社会にとってのセキュリティ利益になるために 監査を依頼することがあるが、 ほとんどのソフトウェアは監査されていません。 +→ 外部資料: +Linux のセキュリティ問題: +`https://madaidans-insecurities.github.io/linux.html` + ## 対策の点検と見直しを定期的に行う {#security-review} -セキュリティはツールの導入または購入ではなく、プロセスです。 +セキュリティはツールの導入または購入ではなく、継続するプロセスです。 対策を導入しただけで終わりません。 例え VPN や暗号化を使い始めても、それだけでは不十分です。 @@ -350,25 +352,25 @@ FLOSS が市民社会にとってのセキュリティ利益になるために → ガイド: **セキュリティ計画** ---- [Markdown](../ja-md/alice2bob-ja-security-plan-2.1.md) -\| [HTML](../ja-html/alice2bob-ja-security-plan-2.1.html) +--- [Markdown](../ja-md/alice2bob-ja-security-plan-2.2.md) +\| [HTML](../ja-html/alice2bob-ja-security-plan-2.2.html) # 攻撃ベクトルと攻撃対象領域 {#attack-surface} では、デジタルセキュリティにおいて実際に何を保護する必要があるか? 本セクションでは具体例を紹介します。 -ただし、全ての点をここであげたと思わないでください。 +ただし、全ての点をここであげると思わないでください。 また、どうやってこれらの点を攻撃に利用したり保護したりできるかを 自分で考えてください。 -攻撃ベクトル(attack vector)とは、 +**攻撃ベクトル**(attack vector)とは、 攻撃者が対象者に害を与えるために利用できるまたは利用した 特定の弱点(経路、手法、シナリオ、場所など)のことです。 攻撃者が対象者の領域に侵入する場合を指すことが多いが、 対象者の領域に対する監視や情報収集など受動的な攻撃も 範囲内だと考えられます。 -攻撃対象領域(attack surface)とは、 +**攻撃対象領域**(attack surface)とは、 攻撃ベクトルの集合のことです。 攻撃対象領域が広ければ広いほど攻撃されやすくなるため、 セキュリティの観点では最小限にすることが望ましいです。 @@ -403,7 +405,7 @@ FLOSS が市民社会にとってのセキュリティ利益になるために 物質で表現した情報は有限の質量を有します。 一般的には光の速度より遥かに遅く移動し、希少性を有し、複製が難しいです。 したがって、センシティブ情報をアナログまたはデジタルの記録・通信から -遠ざけるメリットがあります。 +遠ざけることにはメリットがあります。 ## ネットワーク通信 {#network-communication} @@ -416,7 +418,7 @@ FLOSS が市民社会にとってのセキュリティ利益になるために TCP/IP モデルまたは -インターネット・プロトコル・スィート(internet protocol suite)とは、 +**インターネット・プロトコル・スィート**(internet protocol suite)とは、 インターネット(TCP/IP)開発中に 1970 年代頃に考案された 4 階層のプロトコルモデルです。 ネットワーキング開発によく用いられているモデルです。 @@ -430,7 +432,8 @@ TCP/IP モデルまたは ### OSI モデル {#OSI-model} -OSI モデルとは、多様な通信システムの標準化と相互利用可能性を目的に +**OSI モデル**とは、 +多様な通信システムの標準化と相互利用可能性を目的に 1980 年代に考案された 7 階層の概念モデルです。 TCP/IP モデルに似ている階層モデルだが、 インターネットより一般化したモデルです。 @@ -447,7 +450,7 @@ TCP/IP モデルに似ている階層モデルだが、 ### "Layer 8" {#layer-8} -OSI モデルから拡張し、いわゆる「第 8 層」("layer 8") +OSI モデルから拡張し、いわゆる「**第 8 層**」("layer 8") に言及されることがよくあります。 人によって第 8 層の見解が異なるが、 第 8 層とはアプリケーションとの相互作用をするユーザ @@ -526,7 +529,8 @@ PCI Express などのインターフェイス、 ここで携帯電話・スマートフォンによくある問題について説明します。 -ベースバンドプロセッサ(baseband processor)略してベースバンドとは、 +**ベースバンドプロセッサ**(baseband processor) +略して**ベースバンド**とは、 携帯電話など移動体通信ネットワークに接続できるデバイスの中に内蔵し、 送受信データと基底帯域(ベースバンド)信号との間の 生成・復元を行う装置です。 @@ -584,8 +588,8 @@ Replicant が Samsung Galaxy ベースバンドにバックドアを発覚・封 # アリスとボブ {#back} ガイド一覧に戻る ---- [Markdown](../ja-md/alice2bob-ja-preface-2.1.md#list) -\| [HTML](../ja-html/alice2bob-ja-preface-2.1.html#list) +--- [Markdown](../ja-md/alice2bob-ja-preface-2.2.md#list) +\| [HTML](../ja-html/alice2bob-ja-preface-2.2.html#list) ## 連絡先 {#back-contact} diff --git a/ja-md/alice2bob-ja-security-plan-2.1.md b/ja-md/alice2bob-ja-security-plan-2.2.md similarity index 91% rename from ja-md/alice2bob-ja-security-plan-2.1.md rename to ja-md/alice2bob-ja-security-plan-2.2.md index 5795f08..1ed45bd 100644 --- a/ja-md/alice2bob-ja-security-plan-2.1.md +++ b/ja-md/alice2bob-ja-security-plan-2.2.md @@ -4,13 +4,13 @@ アリスとボブ -バージョン: 2.1 +バージョン: 2.2 本ガイドの最終更新: 2021-12-29 (原文更新: 2021-02-02) ガイド一覧に戻る ---- [Markdown](../ja-md/alice2bob-ja-preface-2.1.md#list) -\| [HTML](../ja-html/alice2bob-ja-preface-2.1.html#list) +--- [Markdown](../ja-md/alice2bob-ja-preface-2.2.md#list) +\| [HTML](../ja-html/alice2bob-ja-preface-2.2.html#list) *** @@ -41,12 +41,12 @@ 自分が立ち向かう脅威とその対抗方法の理解で始まります。 コンピュータセキュリティにおいて、 -脅威(threat)[^threat]とはデータを守る対策を -弱体化させる恐れがある可能な事象です。 +**脅威**(threat)[^threat]とは、 +データを守る対策を弱体化させる恐れがある可能な事象です。 何を誰から守る必要があるかを決意したら、 脅威に対抗できるようになります。 これはセキュリティ計画のプロセスで、 -脅威モデル(threat modeling)[^threat-model]と呼ばれます。 +**脅威モデリング**(threat modeling)[^threat-model]と呼ばれます。 本ガイドは、自分のデジタル情報のためのセキュリティ計画を作成して、 どの対策が最適かを決める方法を教えます。 @@ -57,19 +57,20 @@ **守るに値する何を持っているか?** -- 財産(asset)[^asset]といえば、 +- **財産**(asset)[^asset]といえば、 宝石類、電子製品、金融書類、パスポート、写真など を含む可能性があります。 **誰または何からそれを守りたいか?** -- 敵といえば、泥棒、ルームメイト、来客などを含む可能性があります。 +- **敵**(adversary)[^adversary]といえば、泥棒、ルームメイト、 + 来客などを含む可能性があります。 **それを守る必要がある公算はどの程度あるか?** -- 近所周辺の泥棒の経歴は? +- 近所周辺の不法侵入の経歴は? ルームメイト・来客はどこまで信用できるか? - 敵の能力はどの程度か? + 敵の**能力**(capability)[^capability]はどの程度か? 考慮すべきリスクは何か? **失敗した場合の影響はどれくらい悪いか?** @@ -113,28 +114,28 @@ ## 守るに値する何を持っているか? {#assets} -財産[^asset]とは大切で保護したい物です。 +財産[^asset]とは、大切で保護したい物です。 デジタルセキュリティにおいては、財産といえば情報です。 例えば、電子メール、連絡先、メッセージ、位置、ファイルなどは 財産[^asset]でしょう。 デバイスも財産でしょう。 -*財産をリストアップしましょう: +財産をリストアップしましょう: 保存しているデータ[^data]、保存場所、それにアクセスできる人、 -何が他人によるアクセスを防止しているかなど。* +何が他人によるアクセスを防止しているかなど。 ## 誰または何からそれを守りたいか? {#threats} この質問を答えるには、 誰が自分または自分の情報を狙うかを特定することが重要です。 自分の財産を脅かす[^threat]人や存在物は -敵(adversary)[^adversary]と呼ばれます。 +敵[^adversary]と呼ばれます。 あり得る敵の例は、上司、元配偶者、商売の競争相手、政府機関、 公共ネットワーク上のハッカーなどです。 -**敵、または自分の財産を入手しようとしたいかもしれない人を +敵、または自分の財産を入手しようとしたいかもしれない人を リストアップしましょう。 -このリストには個人、政府機関、企業などが含まれるかもしれません。** +このリストには個人、政府機関、企業などが含まれるかもしれません。 敵と状況によっては、セキュリティ計画を終えた後、 このリストを破壊した方がいいかもしれません。 @@ -161,8 +162,8 @@ 自分の非暗号化通信を納受できます。 政府機関はより強い能力を有するでしょう。 -**敵が自分のプライベートなデータで -何がしたいかもしれないかをリストアップしましょう。** +敵が自分のプライベートなデータで +何がしたいかもしれないかをリストアップしましょう。 ## それを守る必要がある公算はどの程度あるか? {#likelihood} @@ -171,7 +172,7 @@ 影響を無視したら、発生可能性の高い無害のリスクを過大評価する一方、 ありそうにない重大なリスクを過小評価してしまいます。* -リスク(risk)[^risk-assessment]とは、 +**リスク**(risk)[^risk-assessment]とは、 ある特定の財産に対する特定の脅威が実際に発生する公算です。 敵の能力と強く関連します。 移動体通信提供者が自分の全てのデータにアクセスできるとしても、 @@ -188,15 +189,15 @@ 発生公算を問わず容認できないことがあります。 一方、リスクが高くてもある脅威を問題視しない人もいます。 -**どの脅威を重要視し、 +どの脅威を重要視し、 どの脅威がありそうにないか無害すぎる(または対抗が無理な)ため -心配するほどではないだろうかをリストアップしましょう。** +心配するほどではないだろうかをリストアップしましょう。 ## 可能な影響を防ごうとするためにどれくらい苦労する意志があるか? {#security-cost} セキュリティには完璧な選択肢はありません。 同じ優先順位、懸念、資源へのアクセスなどを持つ人はいないでしょう。 -自分のリスク評価(risk assessment)[^risk-assessment]は、 +自分の**リスク評価**(risk assessment)[^risk-assessment]は、 利便性、コストとプライバシーのバランスを取った 自分にとって適切な戦略を計画できるよう支えてくれます。 @@ -205,10 +206,10 @@ 暗号化メールなどによってその裁判に関連する通信を保護するために より苦労する意志があるでしょう。 -**自分の唯一の脅威を軽減するために +自分の唯一の脅威を軽減するために 自分が利用できる選択肢をリストアップしましょう。 金銭的な制約、技術的な制約または社会的な制約がある場合、 -それも書きましょう。** +それも書きましょう。 # 定期的な習慣としてのセキュリティ計画 {#regular-practice} @@ -255,7 +256,7 @@ リスク評価を行うことは、どの脅威を重要視し、 どの脅威がありそうにないか無害すぎる(または対策が無理な)ため 心配に値しないだろうかを決めることです。 -脅威モデルを参照。 +脅威モデリングを参照。 [^threat]: 脅威(threat): コンピュータセキュリティにおいて、データを守る対策を @@ -271,7 +272,7 @@ どの人が自分のデータを手に入れたいだろうか、何を得たいだろうか、 そしてどのようにそれを得るだろうかに集中すべきです。 防止計画に対象にする可能な脅威のセットを考え出すことは -脅威モデルまたはリスク評価と呼ばれます。 +脅威モデリングまたはリスク評価と呼ばれます。 *** @@ -279,8 +280,8 @@ # アリスとボブ {#back} ガイド一覧に戻る ---- [Markdown](../ja-md/alice2bob-ja-preface-2.1.md#list) -\| [HTML](../ja-html/alice2bob-ja-preface-2.1.html#list) +--- [Markdown](../ja-md/alice2bob-ja-preface-2.2.md#list) +\| [HTML](../ja-html/alice2bob-ja-preface-2.2.html#list) ## 連絡先 {#back-contact} diff --git a/verify.md b/verify.md index f5d2a5c..48568dd 100644 --- a/verify.md +++ b/verify.md @@ -9,8 +9,8 @@ - [ウェブサイト上](alice2bob.asc) - [鍵サーバ(クリアネット)](https://keys.openpgp.org/search?q=1D3E313C4DB2B3E08271FC4889BB4CBB9DBE7F6D) - [鍵サーバ(オニオン)](http://zkaan2xfbuxia2wpf7ofnkbz6r5zdbbvxbunvp5g2iebopbfc4iqmbad.onion/search?q=1D3E313C4DB2B3E08271FC4889BB4CBB9DBE7F6D) -- [SHA256 の PGP 署名](alice2bob-SHA256-2.1.sig) -- [SHA256 チェックサム](alice2bob-SHA256-2.1) +- [SHA256 の PGP 署名](alice2bob-SHA256-2.2.sig) +- [SHA256 チェックサム](alice2bob-SHA256-2.2) 誰でも本シリーズを編集して頒布できることを意識してください。 入手したファイルを開いたり内容を信頼する前に、 @@ -56,7 +56,7 @@ $ gpg -k 1D3E313C4DB2B3E08271FC4889BB4CBB9DBE7F6D SHA256 チェックサムファイルを署名ファイルで検証します。 ~~~ -$ gpg --verify alice2bob-SHA256-2.1.sig alice2bob-SHA256-2.1 +$ gpg --verify alice2bob-SHA256-2.2.sig alice2bob-SHA256-2.2 ~~~ `Good signature from "alice2bob"`... @@ -68,7 +68,7 @@ $ gpg --verify alice2bob-SHA256-2.1.sig alice2bob-SHA256-2.1 最後に、入手したファイルを SHA256 チェックサムで検証します。 ~~~ -$ sha256sum --check --ignore-missing alice2bob-SHA256-2.1 +$ sha256sum --check --ignore-missing alice2bob-SHA256-2.2 ~~~ `OK` の表示が出たら、ファイルが破損・改竄されていない @@ -79,7 +79,7 @@ SHA256 チェックサムファイル内のファィル名から ディレクトリを削除する必要があります。 ~~~ -$ cat alice2bob-SHA256-2.1 \ +$ cat alice2bob-SHA256-2.2 \ | sed -e 's/ .*\// /' \ | sha256sum --check --ignore-missing ~~~
注: GnuPG を中心に OpenPGP を説明します。他の OpenPGP クライアントには GnuPG と異なる動作、オプション、デフォルトなどがあります。
OpenPGP
OpenPGP とは
-OpenPGP (オープン PGP)は、公開鍵暗号方式の技術仕様です。 1991 年に開発された “Pretty Good Privacy” (PGP)というソフトウェアから由来したものです。主に電子メールの暗号化に使われているが、ファイル暗号化、データの完全性検証などという使用事例もあります。
+OpenPGP (オープン PGP)とは、公開鍵暗号方式の技術仕様です。 1991 年に開発された “Pretty Good Privacy” (PGP)というソフトウェアから由来したものです。主に電子メールの暗号化に使われているが、ファイル暗号化、データの完全性検証などという使用事例もあります。
PGP 開発当初の 1991 年、アメリカ連邦政府が暗号を「軍需品」として輸出禁止をしていたが、開発者 Phil Zimmermann は合衆国憲法修正第一条(言論と出版の自由)を創造的に活用することで輸出禁止を法的迂回しました。 PGP のソースコードを書籍1として出版して国外拡散に成功しました。一時的に PGP の国内版と国際版が平行に開発されていたが、 1999 年にアメリカ連邦政府が PGP 輸出を一部の国を除いて認めた後に国際版の開発が終了しました。
→ 外部資料: “Why I Wrote PGP” (1991): https://www.philzimmermann.com/EN/essays/WhyIWrotePGP.html
Zimmermann が暗号に関するオープン標準の重要性を意識したことを契機に、 1997 年、 OpenPGP という技術仕様は Internet Engineering Task Force (IETF)に提案されました。一部の PGP 暗号アルゴリズムにライセンスや特許等の懸念があったため、法的妨害のないアルゴリズムだけを採用した “Unencumbered PGP” という当初の名称があったが、 “OpenPGP” という名称で提案されました。 1998 年に IETF が提案を受け入れ、現在も広く使われています。
@@ -198,9 +198,9 @@概要
利用者ができる操作は OpenPGP クライアント次第で、柔軟さを欠けているクライアントがあるが、本セクションでは OpenPGP の特徴を説明します。
暗号技術入門を希望する読者は、以下のガイドを参照してください。
-→ ガイド:暗号技術入門 — Markdown | HTML
+→ ガイド:暗号技術入門 — Markdown | HTML
利用者が公開鍵・秘密鍵を自分で保管・管理できる
-他の多くの暗号系と異なり、 OpenPGP では利用者が公開鍵・秘密鍵を自分で保管・管理できます。利用者が自由に鍵を生成・追加・編集・削除・共有などをします。鍵の配布は利用者自身または鍵サーバ(keyserver)経由で行われ、他人の公開鍵は自動的に信用されず、利用者自身の判断または信用度計算で信用の可否が決まります。多くの OpenPGP クライアントでは、秘密鍵は利用者のデバイスだけに保管され、セキュリティ向上のためにオフラインデバイスに保管できます。
+他の多くの暗号系と異なり、 OpenPGP では利用者が公開鍵・秘密鍵を自分で保管・管理できます。利用者が自由に鍵を生成・追加・編集・削除・共有などをします。鍵の配布は利用者自身または鍵サーバ(keyserver)経由で行われ、他人の公開鍵は自動的に信用されず、利用者自身の判断または信用度計算で信用の可否が決まります。多くの OpenPGP クライアントでは、秘密鍵は利用者のデバイスだけに保管され、セキュリティ向上のためにオフラインデバイスに保管できます。
ハイブリッド暗号系
OpenPGP はハイブリッド暗号系です。暗号文のセッション鍵は受信者の公開鍵かパスワードで暗号化されます。署名で完全性検証や認証を提供する保管時の暗号化と E2EE (エンドツーエンド暗号化)3を可能にします。
@@ -230,7 +230,7 @@→ 外部資料: GnuPG フロントエンド一覧: https://gnupg.org/software/swlist.html
GnuPG
GnuPG とは
-GnuPG (GNU Privacy Guard)は、 PGP の FLOSS 代用として 1997 年に初めてリリースされた OpenPGP 準拠ソフトウェアです。 CLI (コマンドラインインターフェイス)のソフトウェアだが、 GnuPG に対応している様々な GUI フロントエンドも存在します。
+GnuPG (GNU Privacy Guard)とは、 PGP の FLOSS 代用として 1997 年に初めてリリースされた OpenPGP 準拠ソフトウェアです。 CLI (コマンドラインインターフェイス)のソフトウェアだが、 GnuPG に対応している様々な GUI フロントエンドも存在します。
GnuPG では自由自在に CLI で暗号化や署名などの操作ができ、利用者に強力な暗号技術と鍵の支配を提供します。
準備
ダウンロード
@@ -247,8 +247,8 @@# apt install gnupg
Windows と Mac を対象にした専用ソフトウェアもあります。
-
-
検証
入手した GnuPG が安全で、実際に GnuPG がリリースしたインストールファイルだと検証することが重要です。検証方法は以下の手順で行います。
@@ -298,7 +298,8 @@ $ gpg --import <key-file>設定
GnuPG のホームディレクトリ(home directory)に以下のデータが保存されます。ホームディレクトリはたいてい ~/.gnupg/
だが、 OS によって異なります。本ガイドではホームディレクトリを <GNUPGHOME>
と示します。
-
-