Protonホームページ

OpenPGPの秘密鍵をProton Mailにインポートする

閲覧中
4 分
カテゴリー
暗号化と鍵

Proton Mailを使用すると、既存のOpenPGP秘密鍵(またはシークレットキー)を、暗号化されたエコシステムにインポートできます。これにより、それらの鍵を引き続き使用してメールの署名や復号化を行うことができます。

セキュリティおよび互換性の理由から、インポートする鍵はProtonが規定する最小要件を満たしている必要があります。

お客様の鍵が最小要件を満たしている場合は、直接インポートできます。
鍵が最小要件を満たしていない場合は、アップロードを試みた後にエラー画面が表示されます。このエラー画面では、鍵が拒否された理由が説明されます。鍵をインポートできるように修正するためのガイドを用意しています。

  1. OpenPGP鍵をProton Mailにインポートする方法
  2. OpenPGP鍵を修正する方法

OpenPGP鍵をProton Mailにインポートする方法

  1. Proton MailウェブアプリでProtonアカウントにログインします
  2. 設定 → すべての設定 → 暗号化と鍵メールの暗号鍵 をクリックします。
  3. 該当する鍵に関連付けられているメールアドレスを選択し、 鍵を生成と表示されているドロップダウンメニューをクリックして、 鍵をインポートをクリックします。

完了です!これでProton Mailでお客様のOpenPGP秘密鍵を使用できるようになります。

OpenPGP鍵を修正する方法

鍵が当社の要件を満たしていない場合、インポートすることはできません。

ここでは、鍵が拒否される最も一般的なシナリオを紹介し、その解決方法を説明します。

始める前に

Proton Mailにアップロードするためにお客様のOpenPGP秘密鍵を修正する必要がある場合、始める前に以下の2つのステップを実行する必要があります。

  1. GnuPGをダウンロードしてセットアップし、鍵をインポートします
  2. OpenPGP鍵を修正する前に、バックアップを作成します

GnuPGのセットアップと鍵のインポート

このガイドでは、インポートする秘密鍵を修正するためにGnuPG(GNU Privacy Guard)ツールを使用します。
GnuPGがインストールされていない場合は、 https://gnupg.org/download/(新しいウィンドウ) でお使いのデバイス用のアプリを見つけてください。

Proton Mailにインポートする鍵がGnuPGにまだインポートされていない場合は、次のコマンドを使用してインポートする必要があります。

gpg --import 

以下の操作の大部分は、次に基づく対話型コマンドを使用します

gpg --edit-key

GnuPGのドキュメントを読む(新しいウィンドウ)

重要:鍵を修正する前にバックアップを作成してください

インポートしようとしている秘密鍵がProton以外のアプリでも使用されている場合は、 変更する前に必ずその鍵のバックアップコピーを作成してください。

すでに秘密鍵をGnuPGにインポートしている場合は、次のコマンドを使用してバックアップを作成できます。

gpg --armor --export-secret-keys  > backup-key.asc

後で、次のコマンドを使用して元の鍵を再インポートできます。

gpg --import backup-key.asc

秘密鍵が拒否された理由

  1. 鍵に有効期限が設定されている 
  2. 鍵のユーザー情報が正しくない
  3. 鍵に暗号化サブキーがない
  4. 鍵がサポートされていないアルゴリズムを使用している

鍵に有効期限が設定されている

これが意味すること

OpenPGP鍵(およびサブキー)には有効期限を設定でき、有効期限が切れると、すべてのOpenPGP準拠ライブラリでそれらの鍵が拒否されます。

このOpenPGP鍵を使用してProton Mailで常にメールを受信できるようにするため、インポートするすべての鍵に有効期限が設定されていないことを要件としています。

有効期限が設定された鍵をインポートしようとすると、拒否されます。

解決方法

  1. GnuPGを開き、次のコマンドを実行して鍵に有効期限が設定されているか確認します:
gpg --list-keys 

「ユーザーID」は、鍵に関連付けられているメールアドレスです。

表示される出力は以下のようになります:

$ gpg --list-keys key.import.test@example.proton.me
sec rsa3072 2022-09-21 [SC] [expires: 2024-09-20]
C931E2A00A01EE4604049A4EA9C08446B1B88861
uid Import key guide
ssb rsa3072 2022-09-21 [E] [expires: 2024-09-20]

ここでは、プライマリー鍵と暗号化サブキーの両方に有効期限が「2024-09-20」と設定されていることがわかります。
Proton Mailにインポートするには、鍵を編集して有効期限をなしにする必要があります。

2. 鍵を編集するには、次のコマンドを実行します:

gpg --edit-key 

GnuPGが対話モードに入ります。各サブキーを確認し、その有効期限を編集する必要があります。次のコマンドを使用してサブキーを選択できます:

key 

そして、次のコマンドを使用して、有効期限を なし に設定します:

expire 0

3. 次のコマンドを使用して保存します:

save

上記の例の鍵の場合、トランスクリプト全体は次のようになります。

$ gpg --edit-key key.import.test@example.proton.megpg> key 0gpg> expire 0gpg> key 1gpg> expire 0gpg> save

4. 次のコマンドを使用して、お客様の鍵の有効期限を確認します:

gpg --list-keys 

表示される出力は、次のようになります:

$ gpg --list-keys key.import.test@example.proton.me
pub rsa3072 2022-09-21 [SC]
C931E2A00A01EE4604049A4EA9C08446B1B88861
uid [ultimate] Import key guide
sub rsa3072 2022-09-21 [E]

ご覧のように、有効期限が表示されていたセクションが空欄になっています。

5. これで、次のコマンドを使用してGnuPGから鍵をエクスポートできます:

gpg --armor --export-secret-keys  > exported-key.asc

6. これで、新しくエクスポートした鍵をProton Mailにインポートできます

鍵のユーザー情報が正しくないか、複数のユーザー情報が存在します

これが意味すること

OpenPGPの鍵は、指定されたメールアドレスを持つ1つ以上のユーザー情報に関連付けることができます。
一部のProtonサービスでは、このユーザー情報を使用して特定のメールアドレスの鍵を検索します。
お客様の鍵が意図したアドレスに関連付けられ、誤ったアドレスに関連付けられるのを防ぐため、Protonでは、インポートされるすべての鍵に、その鍵のインポート先であるProtonアカウントと同じメールアドレスを使用する単一のユーザーIDが含まれている必要があります。

複数のProton Mailアドレスをお持ちの場合は、 正しい鍵を正しいアドレスにインポートしていることをご確認ください。

このエラーは、アドレスに複数のユーザー情報(そのうちの1つが、鍵のインポート先であるProton Mailアドレスに関連付けられている場合があります)がある場合にも発生する可能性があります。この場合、Protonは外部アドレス(Proton Mail以外のアドレス)の所有者 によって鍵が作成されたことを確認できないため、Protonでは他のユーザー情報を削除する必要があります。

解決方法

  1. GnuPGを開き、お客様の鍵にどのユーザー情報が関連付けられているかを確認します。インポートダイアログに表示されるフィンガープリントを使用して、鍵を選択できます。これは、次のコマンドを実行してアクセスできます:
gpg --list-keys 

表示される出力は、次のようになります:

$ gpg --list-keys 5980f1c63aeb7534f36c3c669b838c4a93779a09
pub rsa3072 2022-10-11 [SC]
5980F1C63AEB7534F36C3C669B838C4A93779A09
uid [ultimate] Some identity
sub rsa3072 2022-10-11 [E]

ここでは、鍵にProtonで処理されないメールアドレスに関連付けられたユーザー情報があることがわかります。

2. 次のコマンドを実行して、鍵を編集します:

gpg --edit-key 

次に、次のコマンドを使用して新しいユーザー情報を作成します:

adduid

名前とメールアドレスを指定します(メールアドレスは、鍵のインポート先となるProton Mailアドレスである必要があります)。

これで、お客様の鍵に複数のユーザー情報が存在する可能性があります。続行するには、お客様のProton Mailアドレスに関連付けられていないユーザー情報を削除する必要があります。

3. 次のコマンドを使用して、削除したい他のユーザー情報を選択します:

uid 

次のコマンドを使用して削除します:

deluid

4. 次のコマンドを使用して変更を保存します:

save

上記の例の鍵の場合、トランスクリプト全体は次のようになります:

$ gpg --edit-key 5980f1c63aeb7534f36c3c669b838c4a93779a09...
gpg> adduid
Real name: Import test
Email address: key.import.test@example.proton.me
Comment:...
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O

sec rsa3072/9B838C4A93779A09
created: 2022-10-11 expires: never usage: SC
trust: ultimate validity: ultimate
ssb rsa3072/07FE974BC493DC08
created: 2022-10-11 expires: never usage: E
[ultimate] (1) Some identity
[ unknown] (2). Import test
gpg> uid 1
...
gpg> deluid
Really remove this user ID? (y/N) y
...
gpg> save

5. 次のコマンドを使用して、お客様の鍵のユーザー情報を確認します:

gpg --list-keys 

表示される出力は、次のようになります:

$gpg --list-keys 5980f1c63aeb7534f36c3c669b838c4a93779a09
...
pub rsa3072 2022-10-11 [SC]
5980F1C63AEB7534F36C3C669B838C4A93779A09
uid [ultimate] Import test
sub rsa3072 2022-10-11 [E]

ご覧のように、鍵に関連付けられているユーザー情報は1つだけであり、そのユーザー情報は単一のProton Mailアドレスにリンクされています。

6. 次のコマンドを使用してGnuPGから鍵をエクスポートします:

gpg --armor --export-secret-keys  > exported-key.asc

7. これで、新しくエクスポートした鍵をProton Mailにインポートできます

お客様の鍵に暗号化用サブキーがありません

これが意味すること

Proton Mailユーザーが暗号化メールを受信できるように、Protonサービスでは、すべてのアドレス鍵がデータを暗号化できることを前提としています。 そのため、インポートされる鍵には暗号化を実行できるサブキーが少なくとも1つ含まれている必要があります(一部のサブキーは署名にのみ使用できます)。

解決方法

  1. GnuPGを開き、次のコマンドを実行してインポートしようとしている鍵のサブキーを確認します:
gpg --list-keys 

表示される出力は、次のようになります:

$ gpg --list-keys key.import.test@example.proton.me
pub rsa3072 2022-09-21 [SC]
C931E2A00A01EE4604049A4EA9C08446B1B88861
uid [ultimate] Import key guide

この例では、鍵には署名と認証(Certify)機能を持つサブキーが1つ([SC]とマークされています)しかありません。暗号化機能を持つサブキー([E]とマークされます)はありません。

2. 次のコマンドを使用して、編集する鍵を選択します:

gpg --edit-key 

次のコマンドを使用して新しいサブキーを追加します:

addkey

暗号化アルゴリズムを選択してください。ProtonはRSA(暗号化のみ)またはECC(暗号化のみ)のみをサポートしています。

RSAサブキーのサイズを選択してください。Protonでは2048ビット以上である必要があります。

有効期限の日付を選択してください。Protonでは0(有効期限なし)にする必要があります。

3. 新規サブキーを確認し、次のコマンドで変更を保存します:

save

全体のログは以下のようになります:

$ gpg --edit-key key.import.test@example.proton.me
gpg> addkey
Please select what kind of key you want:
(3) DSA (sign only)
(4) RSA (sign only)
(5) Elgamal (encrypt only)
(6) RSA (encrypt only)
(14) Existing key from card
Your selection? 6
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (3072)
Requested keysize is 3072 bits
Please specify how long the key should be valid.
0 = key does not expire
= key expires in n days
w = key expires in n weeks
m = key expires in n months
y = key expires in n years
Key is valid for? (0) 0
Key does not expire at all
Is this correct? (y/N) y
Really create? (y/N) y
gpg> save

4. 次のコマンドでお使いの鍵のユーザー情報を確認します:

gpg --list-keys 
gpg --list-keys key.import.test@example.proton.me
pub rsa3072 2022-09-21 [SC]
C931E2A00A01EE4604049A4EA9C08446B1B88861
uid [ultimate] Import key guide
sub rsa3072 2022-10-11 [E]

ご覧のように、鍵に暗号化機能を持つサブキーが含まれるようになりました。

5. 次のコマンドでGnuPGから鍵をエクスポートします:

gpg --armor --export-secret-keys  > exported-key.asc

6. これで、新しくエクスポートした鍵をProton Mailにインポートできます

お使いの鍵はサポートされていないアルゴリズムを使用しています

これが意味すること

OpenPGP鍵はさまざまな暗号化アルゴリズムをサポートできますが、その一部は、メールを保護するために十分な安全性があるとProtonがみなしていないものです。

他のユーザーのセキュリティ低下を防ぎ 、受信したメッセージがProton Mailユーザーによって復号化できることを確実にするため、Protonは強度の低いアルゴリズムや古いアルゴリズム を使用している鍵を拒否します。

以下の非対称暗号アルゴリズムは、Protonではサポートされて いません

  • 2048ビット未満のRSA鍵
  • ElGamal
  • x25519、およびNISTのP-256、P-384、P-521以外の楕円曲線暗号(ECC)鍵
  • DSA

また、インポートする鍵が共通鍵暗号として AES-256 、ハッシュ関数としてSHA-256、圧縮機能としてZLIBのサポートを示している必要があります。

解決方法

  1. 次のコマンドを使用して、各鍵で使用されているアルゴリズムを確認します:
gpg --list-keys 

以下のような出力が表示されます:

$ gpg --list-keys key.import.test@example.proton.me
sec dsa2048 2022-09-21 [SC] [expires: 2024-09-20]
C931E2A00A01EE4604049A4EA9C08446B1B88861
uid Import key guide
ssb elg2048 2022-09-21 [E] [expires: 2024-09-20]

ここでは、プライマリー鍵( SC(新しいウィンドウ) 機能がマークされているもの)がDSA鍵であり、暗号化サブキーがElGamal鍵です。

プライマリー鍵(証明(certify)機能を持つ鍵)が古い、または強度の低いアルゴリズムを使用している場合、その鍵をインポートすることはできません。

2a. Proton Mailウェブアプリのアカウント設定から直接、または次のコマンドでGnuPGを使用して、新規鍵を生成できます:

gpg --generate-key

2b. プライマリー鍵がサポートされているアルゴリズムを使用していても、サブキーのいずれかが古い、または強度の低いアルゴリズムを使用している場合は、次のコマンドを使用してそのサブキーを削除し(必要に応じて新規サブキーを生成)できます:

gpg --edit-key 

次のコマンドで、サポートされていないアルゴリズムを使用しているサブキーを選択してください:

key 

(プロンプトに表示される)サブキーのインデックスを「n」に指定します。

その後、次のコマンドで削除します:

delkey

暗号化サブキーがなくなった場合は、次のコマンドで新規サブキーを生成できます:

addkey

3. 次のコマンドで変更を確認します:

save

全体のログは以下のようになります:

$ gpg --edit-key test@gpg.example.proton.me
...
sec rsa3072/BC93CFA50EFCDAF0
created: 2022-11-04 expires: never usage: SC
trust: ultimate validity: ultimate
ssb elg2048/CEB2A2B7DB363D99
created: 2022-11-04 expires: never usage: E
[ultimate] (1). teststes
gpg> key 1
gpg> delkey
...
gpg> addkey
...
sec rsa3072/BC93CFA50EFCDAF0
created: 2022-11-04 expires: never usage: SC
trust: ultimate validity: ultimate
ssb rsa2048/E910A70D5E1E5FC8
created: 2022-11-04 expires: never usage: E
[ultimate] (1). teststes
gpg> save



4. 次のコマンドでGnuPGから鍵をエクスポートします:

gpg --armor --export-secret-keys  > exported-key.asc

5. これで、新しくエクスポートされた鍵をProton Mailにインポートできます