HOME


キーロガーがあるPCでも安全に暗号化する(暗号化専用GnuPGを作る)

2003/6/13

キー入力やクリップボードの内容を監視されているかもしれないPCで、安全にファイルを暗号化するにはどうすればいいだろうか。EDCodyは暗号化と復号に同じ鍵を使う「共通鍵暗号」のソフトウェアなので、キーロガーがあるPCでは安全に使えない。また、パスワード生成ツールから鍵をコピーする場合、クリップボードが監視されていると、安全に使えない。

ここでは公開鍵暗号ソフトウェアであるGnuPGを使って、キーロガーや監視ソフトがあるPCでも、安全に暗号化する方法を解説する。この方法には、次のような利点がある。

本稿は、PGPを使ったことがない人が、自分だけのためにGnuPGを導入する場合について説明している。
GnuPGは各種UNIX系OS(Mac OSXを含む)、Windows 95/98/Me/NT/2000/XPで利用できるが、ここではWindows PCに対象を限っている。


用意するPC


WinPTのダウンロード

本稿では、秘密鍵-公開鍵ペアの作成と、暗号化したファイルなどの復号のために、フリーソフトであるWinPTを使用する。WinPTは、GnuPGのグラフィカルなフロントエンドであり、暗号化と復号自体はGnuPGが行う。

WinPTの公式サイト:http://winpt.sourceforge.net/
GnuPGの公式サイト:http://www.gnupg.org/

  1. http://winpt.sourceforge.net/en/download.phpを表示する。

  2. "WinPT - Windows Privacy Tools complete package"の"1.0rc2 (2nd release candidate)"(2003年5月の時点で最新)をクリックする。

  3. "SourceForge"という「オープンソースソフトのためのフリースペース」のサイトが表示される。

  4. Downloadの列から、適当なサイトのものをクリックする。

  5. 保存先を指定すると、ダウンロードが開始される。
    ダウンロードされるファイルは、2003年5月の時点では"winpt-install-1_0rc2.exe"である。


WinPTのインストール

WinPTを、あなたの自宅にあるPCにインストールする。

  1. WinPTのパッケージファイルをダブルクリックすると、インストールが開始される。

  2. 言語の選択。最初は[Deutsch](ドイツ語)が選択されている。

    普通は[English]を選択すればいいだろう。


  3. インストールの開始画面。


  4. ライセンス画面。Gnu一般公有使用許諾書であり、フリーソフトであることを示す。


  5. インストール先の指定。デフォルトでよい。


  6. インストールするコンポーネントの選択。[Add-ons]や[E-Mail Plugins]には、あなたに必要ないものが含まれていると予想されるが、デフォルトのままで特に問題はない。


  7. スタートメニューに作成するフォルダー名の指定。デフォルトでよい。


  8. ショートカットの作成と、PC起動時にWinPTを実行するかどうかの指定。デフォルトでよいが、私は[Startup options]の2つはオフにした。


  9. ファイルタイプの関連付けなどの設定。デフォルトでよい。[Select the folder in which you want to store your key pairs]は、秘密鍵と公開鍵を保存する場所なので、メモしておくとよい。[Install]をクリック。


  10. インストール中画面が表示される。


  11. インストール完了画面。このまま[Finish]をクリック。


  12. GPGのキーリングにおかしいところがある...というダイアログが表示されるが、これは、まだ秘密鍵・公開鍵が作られていないためで、問題はない。[はい]をクリック。


  13. [Have WinPT to generate a key pair](WinPTに秘密鍵・公開鍵ペアを作らせる)を選択し、[OK]をクリック。



  14. 秘密鍵・公開鍵ペアを作成するためのダイアログ。



    [Key type]と[Subkey size in]はデフォルトのままでよい。



    [User]と[Email]の項目はまったく架空のものでよい。架空の情報を入力しても、GnuPGの動作には何の影響もない。本稿で説明するGnuPGの用途は、他人と暗号化メールをやりとりすることではない。自分自身が匿名性と安全性をもって暗号化するのが目的だからだ。また、[Comment]は空白でよい。

    [Key]は鍵の有効期限を指定する項目。デフォルトの空白のままでよい。空白は「有効期限=無期限」を示す。

    [Passphrase]には、復号のときに必要なパスフレーズを入力する。[Repeat]にも同じパスフレーズを入力する。これは忘れないように。パスフレーズとは、相当に長かったり空白を含んだりしてもよいパスワードという意味だ。

    [Start]をクリックすると、鍵の生成中を示すウィンドウが表示される。完了するまで数分間かかるかもしれない。

  15. 鍵が生成されたことを示すダイアログ。[OK]をクリック。


  16. 作成した秘密鍵と公開鍵をバックアップしたほうがよいというダイアログ。デフォルトでは、秘密鍵と公開鍵は、それぞれsecring.gpgとpubring.gpgというファイル名でマイ ドキュメントフォルダにバックアップされる。あとの手順でpubring.gpgファイルを使うので、バックアップすること。[はい]をクリック。


  17. 公開鍵のバックアップ先を指定する。


  18. 秘密鍵のバックアップ先を指定する。


  19. Key Managerウィンドウが表示される。作成した鍵がリストアップされている。

以上でWinPTのインストールと、鍵ペアの作成は終了である。


だれかとPGPを使ったやりとりを始めるときは、そのための鍵ペアを新しく作ること。そのときは、[User]と[Email]に正しい情報を入力しなければならない。


WinPTのテスト

WinPTが正しくインストールされたかをテストする。

暗号化のテスト

テストに使うファイルを用意する。何か意味のある文章が入力された、winpt-test.txtというファイルを例とする。

  1. タスクトレイで、WinPTのアイコン()を右クリックし、[File Manager]を選択する。

  2. File Managerウィンドウに、ファイルをドラッグアンドドロップする。

  3. File Managerウィンドウに、winpttest.txtファイルがリストアップされる。winpt-test.txtを右クリックし、[Encrypt]を選択する。

    WinPTのFile Managerを表示せず、次の操作を行ってもよい。
    エクスプローラやデスクトップ上でtest.gpgファイルを右クリックし、[WinPT]-[Encrypt]を選択する。

  4. File Encryptウィンドウが表示される。暗号化に使う公開鍵を選択する(本稿の操作どおりなら、選択肢は1つしかない)。
    [OK]をクリックする。

    winpttest.txtと同じ場所に、winpt-test.txt.gpgファイルが作成される。テキストエディタなどで開き、読めないものになっているか確認すること。

復号のテスト

  1. winpttest.txtファイルの名前を、winpttest.txt.old(例)に変えておく。

  2. WinPTのFile Managerウィンドウに、winpt-test.txt.gpgファイルをドラッグアンドドロップする。

  3. File Managerウィンドウに、winpt-test.txt.gpgファイルがリストアップされる。うまくいかない場合は、File Managerウィンドウを閉じ、開き直してからドラッグアンドドロップする。

  4. winpttest.txt.gpgを右クリックし、[Decrypt]を選択する。

    WinPTのFile Managerを表示せず、次の操作を行ってもよい。
    エクスプローラやデスクトップ上でwinpt-test.txt.gpgファイルを右クリックし、[Decrypt/verify](または[WinPT]-[Decrypt/verify])を選択する。

  5. 表示されたダイアログに、秘密鍵のパスフレーズを入力する。
    [OK]をクリックする。

    winpt-test.txtファイルが復号されているので、内容を確認すること。



暗号化専用GnuPGパッケージの作成

  1. 任意の名前のフォルダを新規に作る。

  2. 作成したフォルダに、以下のファイルをコピーする。

  3. 上記2つのファイルを圧縮ファイルにまとめる。

これで、暗号化専用GnuPGの完成である。このファイルを、ここでは例としてencgpg.zipファイルと呼ぶ。


暗号化のテスト

  1. PC(B)にc:\gnupgフォルダを作り、encgpg.zipファイルの中身を解凍する。

    encgpg.zipを解凍する先は、c:\gnupgフォルダでなければならない。それ以外の場所でgpg.exeを動作させるには、レジストリの編集が必要になる。

  2. 適当なファイルをc:\gnupgフォルダにコピーする。何か意味のある文章が入力された、test.txtというファイルを例とする。

  3. コマンドプロンプトを表示する。プロンプトの現在のドライブ名がC以外なら、次のように実行する。

    >c:

  4. コマンドプロンプトで、次のように実行する。

    >cd c:\gnupg

  5. コマンドプロンプトで、次のように実行する。-eは暗号化、-r meは、meというユーザーIDの公開鍵(WinPTで作った、あなた自身の鍵)を使用するというオプションである。

    C:\gnupg>gpg -e -r me test.txt
    (以下はメッセージ。この公開鍵には何の信用もないと警告しているが、自分自身が作ったものなのでかまわない)
    gpg: keyring `c:/gnupg\secring.gpg' created
    gpg: c:/gnupg\trustdb.gpg: trustdb created
    gpg: 4A5DE4E1: There is no indication that this key really belongs to the owner 1792g/4A5DE4E1 2003-05-22 "me "
    Primary key fingerprint: 9093 FE6A 3501 3177 E5C3 5D7F 7F2E 5410 E4FF 70A3
    Subkey fingerprint: 896F D226 985F B2F3 1857 3B83 12B5 E071 4A5D E4E1

    It is NOT certain that the key belongs to the person named
    in the user ID. If you *really* know what you are doing,
    you may answer the next question with yes

    Use this key anyway? yes("yes"と入力する)
    gpg: NOTE: you should run 'diskperf -y' to enable the disk statistics(このメッセージが表示されるかもしれないが、気にする必要はない)

    C:\gnupg>

    暗号化されたファイル"test.gpg"が作成される。このファイルを開くと、暗号化されているのがわかるだろう。
    secring.gpg、trustdb.gpg、ramdom_seedの3つのファイルも自動的に作られているが、これはGnuPG自身に必要なファイルで、ユーザーのファイルを暗号化したものではない。


復号のテスト

text.gpgファイルをPC(A)に移動し、WinPTで復号できるか確認する。

  1. タスクトレイで、WinPTのアイコン()を右クリックし、[File Manager]を選択する。

  2. WinPTのFile Managerウィンドウにtest.gpgファイルをドラッグアンドドロップし、test.gpgを右クリックして[Decrypt]を選択する。

    WinPTのFile Managerを表示せず、次の操作を行ってもよい。
    エクスプローラやデスクトップ上でtest.gpgファイルを右クリックし、[Decrypt/verify]を選択する。

  3. 表示されたダイアログに、保存先を指定する。

  4. 表示されたダイアログに、秘密鍵のパスフレーズを入力し、[OK]をクリックする。

    復号されたファイルが作成されているので、内容を確認すること。

以上で「暗号化専用GnuPGセット」の完成である。
自己解凍アーカイブも作っておくとよいだろう。

実際に使用する状況では、暗号化前のファイルを完全に削除するために、データ抹消ソフトも用意しておくとよい。 この手順を行わず、普通の削除しか行わないと、暗号化前のファイルを復元され、内容を知られる危険性がある。


参照
フリーのデータ抹消ツール


実際の利用法(例)

暗号化専用GnuPGパッケージ(+データ抹消ツール)を、自分のWebサイトからダウンロードできるようにしておく。

暗号化

  1. 暗号化専用GnuPGパッケージをダウンロードする。

  2. c:\gnupgフォルダを作り、暗号化専用GnuPGパッケージの中身を解凍する。

  3. 暗号化したいファイルをc:\gnupgフォルダにコピーする。

  4. コマンドプロンプトで、次のように実行する。

    >cd c:\gnupg

  5. コマンドプロンプトで、次のように実行する。-eは暗号化、-r meは、meという相手(つまり、自分自身)の公開鍵を使用するというオプションである。

    C:\gnupg>gpg -e -r me 暗号化するファイル
    (以下はメッセージ。この公開鍵には何の信用もないと警告しているが、自分自身が作ったものなのでかまわない)
    gpg: keyring `c:/gnupg\secring.gpg' created
    gpg: c:/gnupg\trustdb.gpg: trustdb created
    gpg: 4A5DE4E1: There is no indication that this key really belongs to the owner 1792g/4A5DE4E1 2003-05-22 "me "
    Primary key fingerprint: 9093 FE6A 3501 3177 E5C3 5D7F 7F2E 5410 E4FF 70A3
    Subkey fingerprint: 896F D226 985F B2F3 1857 3B83 12B5 E071 4A5D E4E1

    It is NOT certain that the key belongs to the person named
    in the user ID. If you *really* know what you are doing,
    you may answer the next question with yes

    Use this key anyway? yes("yes"と入力する)
    gpg: NOTE: you should run 'diskperf -y' to enable the disk statistics(このメッセージが表示されるかもしれないが、気にする必要はない)

    C:\gnupg>

    c:\gnupgフォルダに、暗号化されたファイルが作成されている。

  6. 暗号化したファイルを、メール送信やアップロードなどで、目的の場所に送る。

  7. 暗号化前のファイルを、データ抹消ツールで完全に削除する(もう不要ならc:\gnupgフォルダ全体を削除する)。暗号化前のファイルがどのように作られたかに応じて、Windowsのディスククリーンアップなどを実行したあと、削除済みファイルの抹消も実行したほうがいいかもしれない。

復号

上記の「復号のテスト」で説明した手順と同じ。

補足

暗号化するファイルが、自分でタイプして作ったものだったら、キーロガーに記録されてしまう。暗号化専用GnuPGは、そういうファイルのためには使えない。用途は、各自考えてもらいたい。


関連トピック

暗号基本用語集

暗号利用を補完するためのセキュリティ対策 超基本編

リンク集の「暗号についての解説」


Copyright (C) Cybernetic Survival Network. All Rights Reserved.