第8章 KGpg:データの署名と暗号化

目次

8.1. 署名と暗号化
8.2. 新しい鍵ペアの生成
8.3. 公開鍵のエクスポート
8.4. 他のユーザの公開鍵のインポート
8.5. 鍵サーバダイアログ
8.6. データの暗号化
8.7. 詳細情報

GnuPG用のグラフィカルユーザインタフェースであるKGpgを使用して、データの署名や暗号化を行うことができます。このプログラムは、必要なすべての鍵の生成と管理に役立ちます。また、そのエディタ機能を使用してファイルの迅速な作成と暗号化を行うか、パネル内にあるアプレットを使用して、ドラッグアンドドロップ形式で暗号化または復号化を行うことができます。電子メールプログラム(KontactまたはEvolution)のような他のプログラムは、鍵データにアクセスして、署名済みまたは暗号化済みの内容を処理します。以降のセクションでは、KGpgを使用した署名と暗号化に必要な手順を説明します。

  1. 新しい鍵ペアの生成

  2. 公開鍵のエクスポート

  3. 他のユーザの公開鍵のインポート

  4. データの暗号化

8.1. 署名と暗号化

署名

署名とは、電子署名をメールまたはソフトウェアに添付して、その発行者が正しいことを証明するものです。誰かがユーザ自身の名前を使ってメールを作成することを防ぎ、ユーザ自身と受信者の両方を保護するために、メールに署名する必要があります。署名によって、受信したメールの送信者を簡単に確認し、正当なメールと悪意のあるメールを見分けられます。

ソフトウェア開発者はソフトウェアに署名して、整合性を確認できます。非公式のサーバからのソフトウェアを所有している場合でも、パッケージを署名で検証できます。

暗号化

他者から保護する必要がある機密情報を所有していることがあります。暗号化によって、データを変換して他者が読めないようにすることができます。これは、内部情報のほか従業員のプライバシーを保護する必要がある企業にとって特に重要です。

8.2. 新しい鍵ペアの生成

暗号化済みメッセージを他のユーザとの間で交換するには、最初に自分専用の鍵ペアを生成します。その1つである公開鍵(公開キー)は、通信相手に対して配布するものであり、通信相手はファイルや電子メールメッセージを送信する前に、公開鍵を使用してそれらを暗号化します。鍵ペアのもう一方は、秘密鍵(秘密キー)です。これは、暗号化済みの内容を復号化する目的で使用されます。

[Important]秘密鍵と公開鍵

秘密鍵にアクセスするのはそれを所有しているユーザだけです。秘密鍵のデータにアクセスすることを他のユーザに許可しないでください。

秘密鍵はパスフレーズによって保護されています。パスフレーズは慎重に選択してください。辞書から用語を選択せずに、アルファベット文字とそれ以外の文字を混合して使用してください。

新しいペアを作成するには、次の手順に従います。

  1. KGpgはメインメニューから起動するか、またはAlt+F2を押して、「kgpg」と入力します。プログラムを初めて起動すると、設定手順を支援するウィザードが表示されます。鍵の作成が要求される時点まで、アシスタントの指示に従って進みます。

  2. [鍵]+[鍵ペアの生成]の順に選択します。

    図8.1 KGpg:鍵の作成

    KGpg:鍵の作成

  3. 名前と電子メールアドレス、そして必要に応じて、コメントを入力します。デフォルト設定が適当でない場合は、鍵の有効期限、サイズ、および使用する暗号化アルゴリズムも設定します。

  4. 標準的な鍵を生成するには、[OK]を押して設定を確認します。[OK]をクリックすると、再度パスフレーズを入力するように促すダイアログが表示されます。パスフレーズによって秘密鍵を保護します。選択したパスワードの相対強度が測定され、[Password strength meter]に表示されます。鍵ペアが生成されます。これにはしばらく時間がかかります。

    [Note]エキスパートモード

    上級ユーザの場合は、[エキスパートモード]を使用して追加のオプションを指定します。これによってターミナルウィンドウが表示され、生成する鍵のタイプ、鍵のサイズ(ビット数)、有効期限を設定できます。名前と電子メールアドレスを入力したら、秘密鍵を保護するパスフレーズの入力を促されます。

  5. 鍵の生成が終了した後、概要が表示されます。証明書取り消しを保存、印刷して、保存場所に保管します。パスフレーズを忘れた場合に、パスフレーズの取り消しのためにこの証明書が必要になります。[OK]をクリックして確定した後、KGpgのメインウィンドウが表示され、作業は終了です。

    図8.2 KGpgメインウィンドウ: 鍵の管理

    KGpgメインウィンドウ: 鍵の管理

メインウィンドウには、キーリングに含まれている自分の鍵とインポート済みの他のユーザの鍵が表示されます。GnuPGは高度な実装技術によって鍵ペアを実装するので、各ユーザ名に対して複数のサブキーが表示されますが、この章ではこれについては無視します。詳細情報(鍵の有効期限、作成日、IDなど)以外に、メインウィンドウには各鍵の信頼度が色分けされて表示されます。白は信頼度が不明で、青は信頼度が高いことを示します。詳細については、8.4.2項 「鍵の信頼レベル」を参照してください。

[Note]KGpgアイコンとメインウィンドウ

後のセッションでKGpgを起動すると、小さな錠前アイコンのみがシステムトレイに表示されます。KGpgのメインウィンドウをデスクトップに表示するには、そのアイコンをクリックします。

8.3. 公開鍵のエクスポート

鍵ペアを生成した後で、公開鍵を他のユーザが利用できるようにします。その結果、他のユーザが自分(鍵生成者)にメッセージやファイルを送信する前に、その公開鍵を使用して暗号化または署名できるようになります。たとえば、ユーザtuxに対するメッセージを暗号化する場合、tuxの公開鍵を使用して暗号化します。tuxはこの秘密鍵を使用してメッセージを復号化します。tuxがメッセージを送信する場合、相手先の公開鍵を使用して暗号化し、相手先の秘密鍵を使用して復号化します。

公開鍵を他のユーザが利用できるようにするには、[鍵]+[公開鍵をエクスポート]の順に選択します。ダイアログが表示され、4つのオプションが表示されます。

電子メール

公開鍵は、選択した受信者へ電子メールで送信できます。このオプションを選択し、[OK]をクリックしてその選択結果を確定した場合は、デフォルトのメールプログラムで新しい電子メールを作成するためのダイアログが開きます。受信者を入力し、[送信]をクリックします。受信者は、生成された鍵を受信し、その後は、暗号化された内容を鍵生成者へ送信することができます。

クリップボード

鍵生成者は自分の公開鍵の操作を続ける前に、その公開鍵をクリップボードに書き込んでおくことができます。

デフォルト鍵サーバ

自分の公開鍵を幅広いユーザが利用できるようにするには、インターネット上に存在する鍵サーバのいずれかにその鍵をエクスポートします。詳細については、8.5項 「鍵サーバダイアログ」を参照してください。

ファイル

自分の鍵を電子メールで送信する代わりに、データメディア上のファイルとしてその鍵を配布することもできます。このオプションをクリックし、ファイルのパスと名前をデフォルト値のままにするか変更を加えるかして、[OK]をクリックします。

8.4. 他のユーザの公開鍵のインポート

ファイルの形で(たとえば、電子メールへの添付物として)鍵を受け取った場合、[鍵をインポート]を使用してその鍵を自分の鍵束に統合し、その送信者との間で暗号化された通信を行う場合にその鍵を使用します。通信先のユーザが公開サーバに公開鍵を保存している場合は、そこから公開鍵をインポートすることもできます。詳細については、8.5項 「鍵サーバダイアログ」を参照してください。この手順は、すでに説明した、鍵をエクスポートする手順に似ています。

8.4.1. 鍵への署名

他のファイルと同様に、鍵に署名して、その鍵の正当性と整合性を保証することもできます。インポート済みの鍵が、所有者として明示されている個人に所属していることが確かな場合は、その鍵に自分が署名することにより、その鍵の正当性を自分が信頼していると表明することができます。

[Important]信頼の連鎖の確立

暗号化された通信がセキュア(安全)であるのは、配布されている公開鍵を、指定されたユーザに積極的に関連付けている場合だけです。それらの鍵を互いにチェックし、署名することは、信頼の連鎖の確立につながります。このような理由があるため、個人的に確認した鍵にのみ署名するようにしてください。

鍵を使用する前に、鍵に署名しておく必要があります。

手順8.1 鍵の署名

  1. [Key Management (鍵の管理)]ウィンドウの鍵リストから、署名する鍵を選択します。

  2. [鍵]+[鍵に署名]の順に選択します。

  3. 続いて表示されるダイアログで、署名に使用する秘密鍵を指定します。署名する前に、その鍵の正当性を確認するよう注意する警告が表示されます。ドロップダウンリストから、通信相手の鍵であることを入念にチェックしたことを確認します。

  4. [続ける]をクリックして、次の手順でパスフレーズを入力します。パスフレーズの入力によって、自身の秘密鍵でその鍵を署名したことになります。署名した鍵が、信頼列に緑で表示されます。

他のユーザは、自分への公開鍵を使用することにより、その署名をチェックできます。

8.4.2. 鍵の信頼レベル

通常、ユーザがその鍵を信頼しているかどうか、承認された所有者が実際にその鍵を使用していると考えているかどうかについて、使用しているプログラムによる確認が行われます。これはメッセージを復号化する、または署名を確認する必要があるたびに行われます。これを防ぐには、新しくインポートした鍵の信頼レベルを編集します。鍵を信頼し、特定の信頼度を設定するには、次の手順に従います。

  1. 鍵を右クリックし、[Key Properties (鍵のプロパティ)]を選択します。

  2. [Owner Trust (所有者の信頼)]ドロップダウンリストから、信頼度を調整します。この値はこの鍵の所有者をどの程度信頼しているのかを示し、署名された鍵の識別情報を正しく検証します。

  3. [プロパティ]ダイアログを閉じます。信頼度を[Fully]または[Ultimately]に設定すると、信頼列に鍵が青で表示されます。

信頼レベルがより低ければ、鍵が署名された真の身元を確認する鍵の署名者をより信頼していないことを意味します。署名者の身元が完全にわかっている場合もありますが、署名者が鍵に署名する前に他者の身元を十分に確認していない場合も考えられます。信頼レベルによって、KGpgの自動処理が発生することはありません。

8.5. 鍵サーバダイアログ

インターネットベースの鍵サーバのいくつかは、多くのユーザの公開鍵を提供しています。多くのユーザとの間で暗号化された通信を実施するには、それらのサーバを使用して、公開鍵を配布します。この目的を果たすには、公開鍵をそれらのサーバのいずれかにエクスポートします。同様に、KGpgを使用して、特定のユーザに対応する鍵を保持しているそれらのサーバのいずれかを検索すること、またはサーバからそれらのユーザの公開鍵をインポートすることができます。[ファイル]+[鍵サーバダイアログ]の順に選択して、鍵サーバダイアログを開きます。

8.5.1. 鍵サーバからの鍵のインポート

[鍵サーバ]ダイアログの[インポート]タブを通して、インターネットベースの鍵サーバのいずれかから公開鍵をインポートします。構成済みの鍵サーバのいずれかを選択し、検索文字列(通信相手の電子メールアドレス)または検索する鍵のIDを入力します。[検索]をクリックすると、使用中のシステムがインターネットに接続し、指定された鍵サーバから、指定に一致する鍵を検索します。

図8.3 鍵をインポートするための検索画面

鍵をインポートするための検索画面

鍵サーバに対する検索が成功した場合、取得したすべてのサーバエントリからなるリストが新しいウィンドウ内で表示されます。鍵束に含めたい鍵を選択し、[インポート]をクリックします。メッセージが表示されたら[OK]をクリックして確認し、[閉じる]をクリックして鍵サーバダイアログを閉じます。これで、インポート済みの鍵は、[鍵マネージャ]のメインウィンドウ内にある概要の中で表示され、使用可能になります。

8.5.2. 鍵サーバへの鍵のエクスポート

鍵を、インターネット上で自由にアクセス可能な鍵サーバのいずれかにエクスポートするには、[鍵サーバ]ダイアログの[エクスポート]タブを選択します。2つのドロップダウンメニューを使って、エクスポート先のサーバと、エクスポートする鍵を指定します。次に、[エクスポート]を使用して、エクスポートを開始します。

図8.4 鍵サーバへの鍵のエクスポート

鍵サーバへの鍵のエクスポート

8.6. データの暗号化

鍵ペアの作成後、公開鍵をエクスポートし、他のユーザの公開鍵をインポートしたら、暗号化された電子メールを送受信できます。KMailでのこれらのオプションの使用方法については、5.2.5項 「電子メールの署名と暗号化」を参照してください。

KGpgには、テキストを暗号化する機能もあります。統合エディタを開くには、[ファイル]+[エディタを開く]の順に選択します。

8.6.1. ファイリマネージャからの暗号化と復号化

KGpgはDolphinやKonquerorなどのファイルマネージャに統合することもできます。通常、PGP暗号化ファイルはサフィックスascで指定されます。ファイルマネージャ内でファイルを暗号化または復号化する方法に関するオプションは複数あります。

ファイルの暗号化

ファイルマネージャ内でファイルを暗号化するには、ファイルを右クリックして、[アクション]+[ファイルの暗号化]の順に選択します。ダイアログで信頼された鍵のいずれかを選択します。ダイアログで[OK]をクリックした後、arcサフィックスの付いた新しいファイルが同じディレクトリに作成されます。

オンザフライでのファイルの復号化

暗号化されたファイルをすぐにすぐに復号化するには、ファイルを右クリックして、[KGpgで開く]を選択します。元のファイル名がすでに存在する場合は、ファイル名の付け方または上書きするかどうかを確認するダイアログボックスが開きます。KGpgからパスワードと秘密鍵を入力するように求められ、復号化したファイルが同じディレクトリに保存されます。

エディタを使用した復号化

暗号化したファイルをエディタで復号化するには、ファイルマネージャでファイルを右クリックし、[アクション]+[復号されたファイルを表示]の順に選択します。

8.6.2. KGpgのエディタ

暗号化する内容を外部エディタで作成し、上記のいずれかの方法でファイルを暗号化する代わりに、KGpgの内蔵エディタを使用することができます。エディタを開くには、[ファイル]+[エディタを開く]の順に選択します。エディタ内で該当するテキストを入力し(またはクリップボードまたはファイルからエディタにコピーし)、[暗号化]をクリックします。次に、使用する鍵を選択し、暗号化の手順を完了させます。ファイルを復号化するには、[復号化]を使用し、秘密鍵に関連付けられているパスワードを入力します。

署名の生成と確認は、エディタから直接暗号化するのと同様に簡単です。[署名]+[鍵の生成]に進み、ファイルダイアログから署名するファイルを選択します。使用する秘密鍵を選択し、それに関連付けられているパスワードを入力します。KGpgから、署名の生成に成功したことが通知されます。単純に[署名 / 確認]をクリックする方法で、エディタからファイルに署名することもできます。署名済みファイルを確認するには、[署名]+[署名の検証]に進み、次のダイアログで検証対象のファイルを選択します。選択内容を確認したら、KGpgが署名を確認し、処理結果を報告します。もう1つの方法として、署名済みのファイルをエディタにロードし、[署名/検証]をクリックすることもできます。

8.7. 詳細情報

暗号化手法に関する詳細な背景情報については、「http://www.gnupg.org/documentation/index.en.html」に記載されているGnuPGプロジェクトページを参照してください。