關於GnuPG的subkey(子密鑰)的使用

網絡上關於GnuPG的博客都沒有提到一個關鍵的東西 ------ 「子密鑰」!可是,子密鑰倒是GnuPG的最重要、最關鍵、最核心!c#


在GnuPG裏,平常的加密和簽名,使用子密鑰;主密鑰並不是用來平常加密和簽名。安全

使用到主密鑰的場景,比較特殊,有哪些呢?下面是debian社區的說法:網絡

· when you sign someone else's key or revoke an existing signature,加密

· when you add a new UID or mark an existing UID as primary,博客

· when you create a new subkey,it

· when you revoke an existing UID or subkey,io

· when you change the preferences (e.g., with setpref) on a UID,社區

· when you change the expiration date on your master key or any of its subkey, orast

· when you revoke or generate a revocation certificate for the complete key.date

(Because each of these operation is done by adding a new self- or revocation signatures from the private master key.)

(關於主密鑰對,pub + sec的使用,我會再寫文章介紹)

 

另外,說明一下;一個主密鑰,能夠綁定若干個子密鑰;這些子密鑰有的具有加密功能,有的具有簽名功能。

 

好比個人密鑰是這樣:

gpg>

pub 2048R/6EB6C991 created: 2016-11-24 expires: 2017-02-22 usage: SC

trust: ultimate validity: ultimate

sub 2048R/8B5EC34E created: 2016-11-24 expires: 2017-02-02 usage: E

sub 2048g/3F1F2211 created: 2016-11-28 expires: 2016-12-19 usage: E

sub 2048g/E423A188 created: 2016-11-28 expires: 2016-12-19 usage: E

sub 2048D/A9B67F16 created: 2016-12-01 expires: 2016-12-08 usage: S

sub 2048R/A03B3497 created: 2016-12-01 expires: 2016-12-08 usage: S

sub 1024D/A0C43169 created: 2016-12-01 expires: 2016-12-08 usage: S

[ultimate] (1). virtual <164820658@qq.com>

gpg>

其中有六個子密鑰,其中三個能夠用來加密,三個能夠用來簽名。

gpg命令對於「導出密鑰」有三個選項:

  1. --export-key;
  2. --export-secret-key;
  3. --export-secret-subkey;

 

主密鑰要嚴格保密,主密鑰的私鑰更加嚴格保密保密再保密!

--export-key,導出公鑰(主公鑰 --- pub,所有子公鑰 --- sub);

--export-secret-keys,導出私鑰(主私鑰 --- sec,所有子私鑰 --- ssb);

這個選項導出的東西,應該找個地方藏起來,好比加密U盤、保險箱、保險庫、有軍隊把守必須生物識別的嚴密機構!

 

--export-secret-subkeys,使用本身的私鑰的正確的作法,僅僅導出所有子私鑰!固然,仍是要加密(而且驗證簽名)傳輸到其餘電腦上,再導入。

 

示例以下:

加密簽名後解密驗證簽名:

ps:

重要的提示,sec#,這裏有一個符號#, 標識主私鑰不在這個電腦上(它應該已經被放在一個極其、極端、極度安全的地方了)。

相關文章
相關標籤/搜索