深入淺出 PGP (Pretty Good Privacy) 公私鑰格式
No Comments

更新於 2025-09-27 23:32:33

簡單介紹

何謂 PGP?簡言之,就是一款可以方便使用者進行加密、簽署驗證的一個應用。

主要功能涵蓋但不限於:

  1. 用於 Email 或任何通訊軟體,加密傳輸任何機密訊息、檔案。
  2. 建立校驗機制,保證軟體、檔案不被修改。
  3. 對文件實施電子簽名,作為一種身份驗證(簽章)的概念。

PGP 運作原理

首先,要使用 PGP,必須先生成一組公鑰、私鑰。何謂公鑰、私鑰?公鑰,全名公開金鑰,簡單來說就是一個特製的鑰匙,可以放心的散播、外流沒有關係,反之,私鑰就是不可以外洩的機密鑰匙。

假如,Bob 要傳送一個機密訊息給 Alice,它就要把公鑰告訴 Alice,Alice 用那個公鑰把訊息加密後,再把加密後的訊息傳給 Bob,Bob 能用他持有的私鑰進行解密。

相當於,Bob 寄送了一個帶有鎖頭的盒子給 Alice,Alice 收到後,把機密裝在盒子裡,並關上盒子(上鎖),一旦鎖上,連 Alice 也無法打開盒子,因為 Alice 沒有鑰匙,只有 Bob 擁有鑰匙打開盒子。之後 Alice 再把已經裝了機密訊息並鎖上的盒子寄回給 Bob,Bob 收到後,能夠用 Bob 擁有的私鑰解開鎖頭,打開盒子,拿到裡面的機密訊息。

這就是所謂的「非對稱加密」,這裡就不細說原理了,有興趣的讀者可以搜尋一下「RSA」等相關算法。

PGP Key Server(金鑰伺服器)

一旦擁有屬於自己的 PGP 金鑰對後,你就可以把自己的公開金鑰上傳到網路上,有一些專門的伺服器就是用來存放這些公開金鑰的,例如我下面列出的這些網站,Ubuntu 的金鑰伺服器、MIT 的金鑰伺服器等。

這些伺服器都是開放給任何人使用的,你可以把你的公鑰上傳,別人就能透過搜尋你的 Email 找到你上傳的公鑰。

下圖就是搜尋到我上傳的公鑰,身份為 Weil Jimmer <me@weils.net>

如何生成 PGP 金鑰

您可以透過網路上的一些免費軟體來生成金鑰對,例如我做的一個線上生成金鑰的工具。進入網頁後,填入名字 (Name)、電子郵件 (Email)、密碼 (Password),然後按下最左邊的生成金鑰按鈕 (Generate Keypair) 即可。

或是使用其他工具也能生成,我在 Windows 上是安裝 Kleopatra。

公鑰範例

下面這一串亂碼就是生成的「公開金鑰」(Public Key)。

通常由 -----BEGIN PGP PUBLIC KEY BLOCK----------END PGP PUBLIC KEY BLOCK----- 包裹住。

這一段金鑰必須完整一字不漏的上傳到公開的金鑰伺服器,或是分享給寄件者的。這樣他們才能用你的公鑰加密機密訊息傳給你。

-----BEGIN PGP PUBLIC KEY BLOCK-----

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
Lm9yZyPFkGMOMeVyD7ajCtH3nPwAJ1ABYNC4dd017xWEqlzIApsMFiEExKFq
MWLE1byhQ3LI0CPP3POB6JMAACgrEADFJe3O8HDmOXNqS3nlJZm2dvp0jGk3
mOsHW/EIbjMF2upF+1I5pAgKAkm5Bq4wi1MctazEzqjNyqjBl/YFPId9VLls
Gy6Yknw0LgHuaFdDJgrDv2xe5IxUajJ4JZJUBVgIooFVlDxOgGQa/nIbAvBi
KTztUAvKq/zs/dYqCNVp/hnDqsOtsu5LXhQuNylOIrVEwY5V2je4gsTQ1P4u
L+LuHfKCQ62pgwOezciZZqKZU2pqt8nXk/QSetP+gKais7HuNPpNI137Tb8W
ez4h+YAvxUi6Dzw4GhIPEdnQyLcRUj6/NDkPQk5xcCmuEJdP+C8omUapJYNi
e63INod4JK0vi838HzNTMYEjqyD12cGr6dH9jOawQ2RwWlCfobxnbadjHiDE
gANwTWsSfeMCteyh7Qobr+2GNVcGaO5ksb5b3gIUsntzPdheJaJjlKvDQ+ru
sKwbn/9+NsNy67dx6hCpjak6GigjcO85JXueFyywo+O+sTWCYFr1AwLL7y6r
JXRn06pU0vN21/Q9fMkh1lb+s6jkgfcI9F6u2b/HNfUpAP95F92ZjhQnz4t/
LoDwQb/l+Qv+Bj3mpVqHkxHLBrlS/49eKnQ1jU7j6dp3Ric6Xi+SypiShMjq
5s4ZEIti4d7LoyscfyWKWb7dL2AGUNafHdgmn7Ih3C4QARt6US7vig==
=mU5T
-----END PGP PUBLIC KEY BLOCK-----

私鑰範例

而私鑰通常由 -----BEGIN PGP PRIVATE KEY BLOCK----------END PGP PRIVATE KEY BLOCK----- 夾住。長得像是如下:

-----BEGIN PGP PRIVATE KEY BLOCK-----

xcaGBGjX8iYBEADH6fWdMoFXmTsd4B9fUAqrBy0p/rcCbfxJKLnzA1G2q3Po
JuKLquWd6wRvDokuAK7drlA5wrG6o1cWQ2rBfyyyj1sJsNvlCLjD4jMbrF9J
/H2f4xoi14lWxNPHcM5PjXIMRCgjxAqr4cK/pK0xGK7lAPlfv6Nc1Jk1SvI3
JlKvIO7zbMeQDEYiDom9s39+/IHCIYUnhFMW0sJ0sSbGai1JswvrJQkusauw
Fn/vNqxwk66ZEjT7W2LWmJVMlu4mLgROv/3A/y/4+X16xmgDVqzcsGeGsZjM
8wIMg6Ji22C6zccnYbZOlYqrDEvlUVm4ji/CelaUFn/AFeSHCLOiL048F5rP
yan1iM16vaFCA1IGH9+6G/n0MyxN6ZChGTzIf0c3IBeMzUyQgIJ4oIdnwXt3
Ag8shGDzXK95s9PRBfNtWv15nxKRn/0uE6O3XIPD588/HgnWgfXZS6VBT3+8
H/wslCd9uxsckMz5xOW4majn9Uz5IeCVb+3f6z2uJ9v4AQcD7oE4l3TqTO0O
PN3ELPPpSQaJdJw57iCDo9Ie4Ui1VpEf2KuCtNVXFVHs0dXMex24qB4TQ/21
22aNQ0t/Do9WZPcjekE0BJuZVx1OmbWsbNcoQpbUQqn0CX0xzx1j9j9VsAmt
yOzIlF4/NoKVOxLTNkp3iTmzEQ7o4XWZ8Jhe3QARAQAB/gkDCC8GKd0iGfhs
4AAAAAAAAAAAAAAAAAAAAAC/xkSE/3vHCCF7rUZXHtuTNdEfKx6pNlRaPtEK
i0MeDD/OFnNaYFdsqTydDLyl7RNX92Zd9+5eHdqpFceEoefE6eHPtFNMNe0N
civHRZSsBsll9qvpZznvAuBmu7rghtRPtn5/ds9jEH87LiklLS7/o0DDMEK7
h1Vj80zKfRRNubHK8Ic2tlOV0D7k9h4iLu+hU8ub8NY9gVP2Pf9DEjheGDek
7JUjNc5R8rUKYOc5CZjT6uWgfNfGXmVb5nXkpysU3Wpb1HAR7VGl1SkICQCA
+MpJo4y54iiSgh0/iaikZNUCKZWOw/1XSukOZ4wfw2gJwcI6/h5h64xw7/w1
Z8GNDwzV00PxuiYNOQZ02H35YKyd18zV/atltolYuQxRbxcSsRvN+qehBET5
DBhDWYGXsX44ISVzj4tf5lyvCTy4HQTMIIf/IW6nL9dypG4KiIBbitpSWnz0
eeHq4QMMF6QAtZc3NtgcS/lzvc4IJSAnwLxCSw7vr5Ej6qXCqqYBkKELh8/W
pG5dgakfBWm46+tCtwt1cpkDYBDuRye4AKtcu7mtvXvs65cI9Z0aQctDZ92F
sk5jYffjhplPhMBnJsvnKHjGLxBPNMMFFHstx/kYS4rTlU5pw5Kx+6DSIyxL
H2xy1b/SjcRzKifYFcLN0WUANHI5JsQ4abOLGUh85ZY2mGMFJR4NsCMxsbwa
qWcy60ln1LWGrysC7VSluohGt6h5TZHxUEuXTUAAT/rKzUhCCCCM3fIi0Y7B
33cDx7geDTxdP/7wGQ+eKuXNFRc7duAEv1tVTUwwEqQz8Js+bl+yXGMge01E
x8+0x+jwXJ4eY/R8HXlUfZCbjfX3aB7xE2iwhiunVFq59bF3SZUtnB+dWyR8
1iwrx3uQlXo1i3MApEv6AC4rPByd0di7mtC0gCgMQE1+g6tL/xy0hmsZTNCV
jB6c+TkCNYtSIoMy0jQ56N5L081PIUgoVpXOE5hvnoIcewfeB/kcv3bpG+pq
IFMsPVc/WBMbBWIVYODWZ6q10QqChJAcMnYk3h03idP9rvaHQDPbleXqQtiI
17/z/MFyk2Pv3GuOdvZjia1MFCM45IHPYXtcO/yl9ndn1Iqk3337b2Hl9mbM
s1PiJ2hd9Yq9IOau33Eagnp80Cf8dT6PzGJKPcx4vGwD8gsCYFIolBBDtLll
wWDd/WzPU1sQRittZvRzaxVo5c8gytn0SCqJ+UVaAluzbRNVAmra8oyM9i4Y
wkDroNMCg6vBkQnAWhBuukphLNYDCu4pdklmYYj4eYcdpa0Jqc/oIjqaJhyh
PqXJszETlgWJKiA2OhLS9kDtxzc33V6J24z6Kz4EhopMXH6hEWVk6i+nrzFG
QmHLu5I8GFRjC1WOXP5Wiz7RYLOpK6SGu9CoKhgIlkjdI/+7he4IF/TexPKV
GPD1+AbGYhcRrCae8XEFznmfIhVhL6geIee+gOCzFBEaiCE/RerYdEOW2gkp
L8iEIsuQyseOdxE4elPpyNTGEuAmGiNYXWGlZKa5WUvNvM055Cj5FB5Qvbm9
0Q9FEL97yzEqZ00v/fzUOPe3znZvK3Ly6x1KTLoZIMlJy1XL9biMq/D8xIXE
Qg1GIKnENOXsxwD+7r5BoTJvSRuaUFFHhmKAMjmtyj4y3ND+7DYyem2y3P2+
ZnWYufSERO+5Ob7jUoQm32o6+NV82RnGGcHN7LRDTpf49SM1MfmPlLmfH96u
03h5W0b8MdcMClfTON48Mg8bDbXNF0FsaWNlIDxhbGljZUB3ZWlscy5uZXQ+
wsHRBBMBCgCFBYJo1/ImAwsJBwkQ0CPP3POB6JNFFAAAAAAAHAAgc2FsdEBu
b3RhdGlvbnMub3BlbnBncGpzLm9yZ0wBcSWol4qDh6Vcmn3S8rOX5rXlpbgu
eYxqxPZOMppVBRUKCA4MBBYAAgECGQECmwMCHgEWIQTEoWoxYsTVvKFDcsjQ
I8/c84HokwAAJ0IP/0XnrqmbdWomQMWVa87B4zRRXK579xXx2+Ev2GqAOIOG
rXjrHPL/bi57f0FwAlX6Sz3O05WLbOnbAgKx1ZKwi88hnPSyM0pNAOrB7sbr
N/L7rMuWI6MdGA1es3QryDdNnNMLWP6coiAUlX8Xg7F1j9T0lTkoh4JdMbJq
mjlsYSsZ3TIYgl9KKItoleK0x6SKPNILTSwIPRezWewQifBA961qM0X1RjTO
8+KLEEwvbVXfBZiW0TdiLw9yN97iBS0qfAolYyIms/Uy9JsWbyLj0ptr9Fbp
bfUm90oifs96SYLrTIUiwqsSao1QQ9u8RUZSDFbkleOBWT+fuIi4H6iwQwI9
Pbu9jJI5hULeYZqUQM6K/RR/C9Iw1kRE4T9O/ePXvst7cvpMNcBGjSU056cd
1Qg0rYbrUyHTgydnwRvX2dhYzf49sjjnCwiFOcgmyWx2CIMSGJZRbaWtWci+
R8vE2GxhCULbrk+N+kYCuHpereduLO6GxNFWZa/4vkk1wbdn6WLULDafdpWM
cBxrTu0VyurOpfplaBC4f6OWwyBZ9dxtUF1OblfpXDxIsUWXLEL7J1FnfvAe
djCnIIAo61DNsBbne8mGV8VrOsBLhlF1ceP4FChtbXUhl2XVWV+zXRXZ0yyZ
21Punsn3LUFHuyj4edpNoPzpuSR6J0A70V12GJhGx8aGBGjX8iYBEADD7UZc
PKCqqQz/bYPlqM2qNzuhXtuXpI/+BB/e2jsEqxK5xOq1Qri4BfVucqowDcqo
DTJ7JxcOJgOs6rcEsNX5v3qG9WDy1W6i9z+7E5pNY+xIkfT58T5haTpFCjtb
sQL5FzLlrLiuvXadqvt2UIPqqo9ZyJD9F7r5XydQK0QJ+GrcZTZKMY6vj+RP
sTIlc/HSXbKFE/+ecwdx7TcjhDI+gPEwn0Zd+2lPeghcsTCpMeqST5aLYAEO
rht1dTFbRdkQsMeWyFBAcKbjZC6Z6Gf7E/xC79juZb/6HNCZ9yuevigPkwqZ
P19987vf/+YCbN8eVn5U6KZTgYwaPYCR54VIDyeOmMa58PIH+luCIom3d15i
8uPYCcNo+KO09t9ZUDfhM3jjq6DSGvw1vGMur7LydF1eKUs0WaiOj3qjXAka
6bG35bmhCBhQ/msRt3ulMArjo5yDjtZFcXeQKMDsAiZk/ZLRjBsZ4j+RfkJN
zTfwklMnaIm7eLvUZcnagWqfZnOoU8L+3ewHJZ/gwevG7UMS6iQGBFb4kCFd
lEjoX/8+6i5dDskXkrVPwu63lwT8hczrR6DunnmM2rRJsi/zf7DfA0SFn6hD
tDPJ1j/l+rjemY8vTZPAfnT/ROyQP2k3W4+a4zsKXXgE3jkq+ORoS8HR+44M
oDan+EQ8/nIAM9o/kwARAQAB/gkDCJmaCRzaQs+r4AAAAAAAAAAAAAAAAAAA
AADhQTqE2XyFgbyLbWlt00qvQrI/XUZT9sX1vuUDcAdirQ6ehQtqhv4CB+zw
1Y3iMbNsDDVZAjcSG5Js4nQewYwCzTXSYwb3fGXZ1bN6ZYOusBpffYPudnYX
yfIB5lTPJufdtKst28hgAA5VDSzrKBiA3uV/yf3lUKWyZFLU54Yhg67NEHKq
fSeqqZHR5gQp1XJKztCjB2pHmzyqmOLFl4MO9io6Z/mLfBqpFI7aBxcIiXpg
p3DA2ulCI1PuDs4DCgABEhDSlr71pS7Oh30vn9C4qXVM5j8AaVXGeXclWwAr
GgZzHtEk1hEENQ8a3mg8snqhhr2IjlhQXw8XXCijXMmuvPmNdWF8+YyAAG5i
0uaC6v1pLlAv4n/oxX8Wo4ZcHb5GbczZkP1pNPO0aSZtF1dCuCelhFHZIdtm
e/Q9iLhG8lC5llXWx+0p5m7wHuVeR+xkDwAMRJym5Nv5pHdQnjiu8RzM4+Wo
TOlWGB8Y5KNNlyWVoS6SXXGkoXIFaLUkI2+Xf2wwKzRS5+7V3IJNjk2LXxlm
lGPoo8yZNLnq4hUreZbuF3bkIMLBP/0GXBQUKOI7mNJHR587rRQEtUxyWwok
E3b3W5ns4tJGVL+yG1ZT+0RfhZxBo9Ex393E4GDYvuH/qdvMERx1S8TgYyU4
7JHzvo0IDVzPmZldsSRxDFDVBt7GMmZ1xol/DUWvCwUMmmoAHZBRaKFf68tw
11weWROJHy2cJZmcwgHXRauNrl6aDuduCYoNq1NiZlgx8+W4NwQxmCAD52uj
unDxf3XCkTfcaUWPoCQZQXVp4SkEgxYsrXdLkaaKww7dBVtpoByBV/E48Swm
wQqaD8rhIQhN73ecas3fPTHIMOfAkjBNBryK6rN4FaOWk/dLZ+JkQvThy1JJ
6widRT+8ZkryeMtcahRihGtYP5X8ROCxJHgsE9hYqFjadZng1IBScAzJU7lS
geKyia4pk4DfC0ADFSh14ClNcq3flErLl9Pyq7T8Rgj6BXNJbv9OYl73TNbB
CzTRqAYRTgBKnbwFezW3iUXmrNFwNWndwWrV31DuCJwThnwKK40Ybq3CS2/C
S5UvE97cxYL7dYigWxto4jY9OI5/QyO4PEhDYsUAPzsFzzVzc2oAtfgEehSF
bV8qYKXL1+dfGQnOe+uBspt31TYfyA6HAP/+lz2gI+3pef09HXO81anJo+mb
bqjelyhCjLoawxOhYHNen9f3c2VI1MWzVa35Y/WDxnadIdCKY6rfzJRz6OKg
2ys26fPpZVkz0VH++lMwk+QG8zbrjDfuLIQ1TG/X6audXzQivEsldkTJoN0m
0tyGThvTiTe+qpod620SN57jIqWy0+1RwyvVdwXJok0d9kowBmjcoe9SOBU3
PgTEkXwYKtDfvVF62ejAwgjY/iPZfe3SqcgY6vsTTtHSrSZs2Zky75yA8vhw
0IHz6r842fuJlZbPbQ73k1h8Cl0r0A2e21/8yl1xlC4EVG3tCkUmG24Xi8RW
wlp6FvoRtsqD0leeVP0dOOHejqOq7dJ00pJATN/lE03aheGq7/RxzJEcAezF
sjO62RjaN2/tlf5ubAONxH9fAE7zO067DVIlxAuNK8uSZJ90UyoXvHS84BKw
Rl+rNzzYs08gGpkNkrjyOzAEH+xZ0S1BFhxJnju+nK/PX3TaofulQtnipmzc
ClvPFwgKIyuuJnWCcLxAC0twrnagtWh49v6Sy+D3rmqR7V9/feENIOwCiRty
ELwpY8zCwbwEGAEKAHAFgmjX8iYJENAjz9zzgeiTRRQAAAAAABwAIHNhbHRA
bm90YXRpb25zLm9wZW5wZ3Bqcy5vcmcjxZBjDjHlcg+2owrR95z8ACdQAWDQ
uHXdNe8VhKpcyAKbDBYhBMShajFixNW8oUNyyNAjz9zzgeiTAAAoKxAAxSXt
zvBw5jlzakt55SWZtnb6dIxpN5jrB1vxCG4zBdrqRftSOaQICgJJuQauMItT
HLWsxM6ozcqowZf2BTyHfVS5bBsumJJ8NC4B7mhXQyYKw79sXuSMVGoyeCWS
VAVYCKKBVZQ8ToBkGv5yGwLwYik87VALyqv87P3WKgjVaf4Zw6rDrbLuS14U
LjcpTiK1RMGOVdo3uILE0NT+Li/i7h3ygkOtqYMDns3ImWaimVNqarfJ15P0
EnrT/oCmorOx7jT6TSNd+02/Fns+IfmAL8VIug88OBoSDxHZ0Mi3EVI+vzQ5
D0JOcXAprhCXT/gvKJlGqSWDYnutyDaHeCStL4vN/B8zUzGBI6sg9dnBq+nR
/YzmsENkcFpQn6G8Z22nYx4gxIADcE1rEn3jArXsoe0KG6/thjVXBmjuZLG+
W94CFLJ7cz3YXiWiY5Srw0Pq7rCsG5//fjbDcuu3ceoQqY2pOhooI3DvOSV7
nhcssKPjvrE1gmBa9QMCy+8uqyV0Z9OqVNLzdtf0PXzJIdZW/rOo5IH3CPRe
rtm/xzX1KQD/eRfdmY4UJ8+Lfy6A8EG/5fkL/gY95qVah5MRywa5Uv+PXip0
NY1O4+nad0YnOl4vksqYkoTI6ubOGRCLYuHey6MrHH8lilm+3S9gBlDWnx3Y
Jp+yIdwuEAEbelEu74o=
=h6Cl
-----END PGP PRIVATE KEY BLOCK-----

私鑰通常都有密碼保護,並且建議需要密碼保護,不然任何人取得後,都能解密機密訊息。

如果私鑰帶有密碼的話,在解密訊息時,需要輸入密碼才能解密,可以多一層保障。

PGP 金鑰包含的資訊介紹

通常生成的公鑰裡面會夾帶一些資訊:像是 金鑰 ID、Email、姓名、使用的加密方法、用途等。

這是解碼上面的範例後,得到的結果:

[Main-Key]

    Key ID: d023cfdcf381e893
    Fingerprint: c4a16a3162c4d5bca14372c8d023cfdcf381e893
    Algorithm: RSA 4096-bit
    Not-Before: Sat Sep 27 2025 22:18:14 GMT+0800 (台北標準時間)
    Not-After: Never
    Key Usage: Certify, Sign

[User-ID]

    Alice <alice@weils.net>
    Not-Before: Sat Sep 27 2025 22:18:14 GMT+0800 (台北標準時間)
    Not-After: Never

    [Self-Certification]

        Issuer Key ID: d023cfdcf381e893
        Issuer Fingerprint: c4a16a3162c4d5bca14372c8d023cfdcf381e893
        Created: Sat Sep 27 2025 22:18:14 GMT+0800 (台北標準時間)
        Expired: Never
        Key Usage: Certify, Sign

[Sub-Key]

    Key ID: 5c560e520ccfc542
    Fingerprint: 2a7c0cd288b68ae30d6a508b5c560e520ccfc542
    Algorithm: RSA 4096-bit
    Not-Before: Sat Sep 27 2025 22:18:14 GMT+0800 (台北標準時間)
    Not-After: Never
    Key Usage: Encrypt-Communicate, Encrypt-Files

    [Binding-Signature]

        Issuer Key ID: d023cfdcf381e893
        Issuer Fingerprint: c4a16a3162c4d5bca14372c8d023cfdcf381e893
        Created: Sat Sep 27 2025 22:18:14 GMT+0800 (台北標準時間)
        Expired: Never
        Key Usage: Encrypt-Communicate, Encrypt-Files

PGP 公鑰除了包含姓名、電子郵件、加密所用的資訊外,還帶有過期時間等內容。其結構並不單純只是使用者資訊和 RSA 加密所用的 e 或 N 。

PGP 公鑰的基礎結構

不論是私鑰或公鑰都會帶有可以被解碼的公開資訊。結構如下:

主金鑰 (Main Key)
   ├─使用者 (User ID)
   │  ├─使用者自簽章 (Self-Certification)
   │  ├─其他使用者簽章 (Other-Certification)
   │  └─撤銷簽章 (Revocation-Certification)
   └─子金鑰 (Sub Key)
      ├─綁定簽章 (Binding-Signature)
      └─撤銷簽章 (Revocation-Signature)

原則上一個 PGP 公鑰,可以包含無數個使用者,不一定一個公鑰只能有一個 Email,可以有很多個 User ID 都綁定到同個公鑰上。

使用者 ID

每個使用者 ID 都由它下面的簽章來認證,也就是 Self-Sign 的部分,也可以由其他使用者認證,你如果有多個聯絡人,而且把那些聯絡人的公鑰設定為信任,那麼由那些聯絡人(簽章)保證的公鑰 User ID 就是有效的。

在通常情況下,只有自簽章(由主金鑰所簽發)的證書是有效的。所以即便其他人保證簽名,但不受信任網允許的話,仍然不可信。

如果這個身份(Name、Email)不再使用了,你也可以使用主金鑰去簽發一個撤銷簽章(Revocation-Certification),完全不用擔心一旦換了 Email 怎麼辦?

當然,如果撤銷了身份 ID,必須要把撤銷後的公鑰上傳到公開的 PGP 金鑰伺服器,向全世界宣告該公鑰上的身份 ID 不再有效。

子金鑰 (Sub-Key)

在 PGP 中,還有所謂的子金鑰隱藏在其中,通常建立 PGP 公鑰都會有至少有兩把鑰匙,其中一把是主金鑰,另一把是子金鑰。

主金鑰負責簽發身份 ID,以及簽發子金鑰,用於將子金鑰關聯到主金鑰上。像是一個群組管理員的概念。就像使用者 ID 一樣,主金鑰可以簽發無數個子金鑰,並把每個子金鑰關聯到主金鑰上。

每個子金鑰都由它之下的綁定簽名(Binding-Signature)所保證合法性。每個綁定簽名的簽發者通常是主金鑰。

為何需要那麼多子金鑰?

在 PGP 中,每個金鑰都有不同的職權,像是主金鑰只擁有簽發能力,不允許用於檔案加密、通訊加密。

你可以為每個子金鑰 (Sub-Key) 設計不同的用途。

在 RFC 4880 中規定了金鑰的用途:


0x01 - This key may be used to certify other keys.
0x02 - This key may be used to sign data.
0x04 - This key may be used to encrypt communications.
0x08 - This key may be used to encrypt storage.
0x10 - The private component of this key may have been split by a secret-sharing mechanism.
0x20 - This key may be used for authentication.
0x80 - The private component of this key may be in the possession of more than one person.

主金鑰擁有的職權為 (0x01) 負責簽發其他金鑰。而通常子金鑰都是用來加密用途 (0x04、0x08)。

在這種設計中,你可以定期地撤銷子金鑰,或添加其他子金鑰用於其他用途,例如認證 (x020) SSH 等。

撤銷簽名 Revocation-Certification

前面提到過,可以自由的撤銷子金鑰、使用者ID,具體如何進行的呢?

其實非常簡單,只需要用主金鑰在 User-ID 或 Sub-Key 建立一個撤銷簽名,這樣就可以讓該 User-ID 或 Sub-Key 不再視為有效。

如果要讓整個主金鑰撤銷怎麼辦?一樣通過主金鑰發布緊急的撤銷聲明,加在主金鑰的簽名區即可。

當然也必須要把這個聲明傳到公開的金鑰伺服器,這樣其他人也能透過專用的軟體去更新他們自己電腦儲存的金鑰。

金鑰被撤銷,在 RFC 4880 甚至還規定了一些理由,可以附加在撤銷簽名的聲明中,像是:沒有理由、金鑰外洩了等,或是自訂理由附在裡面。

 0  - No reason specified (key revocations or cert revocations)
 1  - Key is superseded (key revocations)
 2  - Key material has been compromised (key revocations)
 3  - Key is retired and no longer used (key revocations)
 32 - User ID information is no longer valid (cert revocations)

有效期

不論是 User-ID 或 Sub-Key 都能設定一個過期的時間,像是指定 bob@email.com 這個身份只能使用一年,然後其他身份是永久的。

通常金鑰 (Key) 本身是不包括期限的,不論是主金鑰還是次金鑰,都是由它的簽名帶給他的期限,也就是所謂的期限其實是可以修改的。

而 User-ID 下的 Self-Cert 規定了主金鑰的使用期限,只要延長了自簽章的期限,主金鑰的期限就會跟著增加。

而子金鑰 (Sub-Key) 則是由綁定簽名決定有效期,當然這些都是可以修改的。重複簽發綁定簽名就能替換掉原本的子金鑰期限。

總結:

PGP 作為一個隱私保障的工具,是非常好的傳輸機密訊息的一個方式。不僅可以生成只有本人才能驗證的專屬憑證外,也能建立信任網路,簽發其他人的公鑰,使其他人的公鑰也受信任。

一些人可能以為 PGP 只能針對單個身份驗證其實是錯誤的,PGP 允許多使用者驗證,甚至允許同時使用兩個公鑰加密,使得寄送者、收件者都能解密該機密訊息。

通過釋放自己的公鑰到有一定名氣的公鑰伺服器,可以建立起與陌生人的安全加密通訊的環境。

By Weil Jimmer


This entry was posted in General, Privacy, Tools By Weil Jimmer.

About Weil Jimmer

Hi! Everyone! My name is Weil Jimmer. This is my personal blog. I'm a webmaster of this site. I hope the site will be popular. Now, Let's go! Enjoy gaining more knowledge.
More Details About Me : https://weils.net/profile.php


Leave a message.

Only the first 10 comment will show.