Description:
GunPG 是遵照 Public
所授權的自由軟體 ( Free Software ) ,GunPG 為 PGP ( Pretty Good Pravacy )
商用加密應用軟體所延伸出的一套 PGP 的自由軟體,GunPG 利用公鑰 ( Public Key ) 來加密以及私鑰 ( Private
Key ) 來簽章的應用,GunPG 大部份應用在 E-mail 上的密文交換,也會使用在一般檔案或文件的加密。GunPG
除了加密應用外也可用在身份的認證及檔案傳送的完整性確認,在這一個部份的應用是透過 Private Key
的簽章讓接收者可確保來源是正確無誤,於資訊安全的角度來看,Private Key 簽章能滿足:真確性( Integrity )鑑別性(
Authentication )不可否認性( Non-repudiation )另外 Public Key 的加密則滿足了:機密性(
Confidentiality ),因此 PGP 的應用在今日網路世界看來有著極為重要的地位。
Environment :
硬體:i386 PC
Intel P3 500
記憶體網卡:512M RAM +
3Com 網卡
作業系統: 6.2
Release
Setp
1.
安
裝 GunPG 及產生出 Key Pair
#cd
/usr/ports/security/gunpg
# 安裝 GunPG
#make
install clean
#
gpg --gen-key
# 產生一對 key pair 也就是( public/private key )
gpg () 1.4.6;
Copyright (C) 2006 Free Software Foundation, Inc.
This program comes
with ABSOLUTELY NO WARRANTY.
This is free
software, and you are welcome to redistribute it
under certain
conditions. See the file COPYING for details.
請選擇妳要使用的金鑰種類:
(1) DSA 和 Elgamal (預設)
(2) DSA (僅能簽署用)
(5) RSA (僅能簽署用)
妳要選哪一個?1
DSA 金鑰對會有 1024 位元長.
ELG-E 金鑰的長度可能介於
1024 位元和 4096 位元之間.
妳想要用多大的金鑰尺寸?
(2048)
妳所要求的金鑰尺寸是 2048 位元
請指定這把金鑰的有效期限是多久.
0 = 金鑰不會過期
= 金鑰在 n 天後會過期
w = 金鑰在 n 週後會過期
m = 金鑰在 n 月後會過期
y = 金鑰在 n 年後會過期
金鑰的有效期限是多久? (0)
金鑰完全不會過期
以上正確嗎? (y/N)y
妳需要一個使用者 ID
來辨識妳的金鑰; 這個軟體會用真實姓名,
註釋和電子郵件地址組合成使用者 ID
如下:
"Ke-Huan Lin (Jedi) "
真實姓名:John Lin
電子郵件地址: john@ntut.idv.tw
註釋:john
妳選擇了這個使用者 ID:
"John Lin (john) "
變更姓名(N), 註釋(C),
電子郵件地址(E)或確定(O)/退出(Q)?o
妳需要一個密語來保護妳的私鑰.
我們需要產生大量的隨機位元組.
這個時候妳可以多做一些事情
(像是敲打鍵盤, 移動滑鼠,
讀寫硬碟之類的)
這會讓隨機數字產生器有更多的機會獲得夠
多的亂數.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++...++++++++++.+++++.+++++..++++++++++++++++++++.+++++.++++++++++.++++++++++......+++++
我們需要產生大量的隨機位元組.
這個時候妳可以多做一些事情
(像是敲打鍵盤, 移動滑鼠,
讀寫硬碟之類的)
這會讓隨機數字產生器有更多的機會獲得夠
多的亂數.
+++++.....+++++....++++++++++++++++++++++++++++++++++++++++...++++++++++....++++++++++++++++++++++++++++++++++++++++.+++++++++++++++.+++++..+++++..+++++...+++++.+++++..+++++>+++++.+++++>...+++++>.+++++................>.+++++.....<..+++++...........>..+++++..........<+++++.........>+++++...........................+++++^^^^
gpg: 金鑰 41F10E54
已被標記成徹底信任了
公鑰和私鑰已經被建立及簽署了.
gpg: 正在檢查信任資料庫
gpg: 3 個勉強信任以及 1
個完全信任是 PGP 信任模型的最小需求
gpg: 深度:
0 有效: 1
已簽署: 0 信任: 0-, 0q, 0n, 0m, 0f, 1u
pub
1024D/41F10E54 2007-08-13
#
41F10E54 是 key ID
金鑰指紋 = 4FE6 XXXX XXXX 2645 XXXX XXXX EE27 XXXX XXXX 0E54
uid
john Lin (john)
sub
2048g/18A974B5 2007-08-13
Setp 2.
gpg 的常用指令
#
gpg --list-keys
# 查看金鑰清單
/root/.gnupg/pubring.gpg
------------------------
pub
1024D/41F10E54 2007-08-13
uid
john Lin (john)
sub
2048g/18A974B5 2007-08-13
#
gpg --list-sigs
# 查看簽名清單
/root/.gnupg/pubring.gpg
------------------------
pub
1024D/41F10E54 2007-08-13
uid
John Lin (john)
sig
3
41F10E54 2007-08-13 John Lin (john)
sub
2048g/18A974B5 2007-08-13
sig
41F10E54 2007-08-13 John Lin (john)
#
gpg --export --output public.asc --export john@ntut.idv.tw
# 匯出 Public
Key 以 ASCII 格式且副檔名為 .asc
# gpg --export-secret-key -a "User Name" > private.asc # 匯出 Private Key 以 ASCII 格式
# gpg --allow-secret-key-import --import private.asc # 匯入 Private Key
#
gpg --import jack.asc
# 將別人的
Public Key 匯入
gpg: 金鑰 5EC2284A: 公鑰 "Jack
Chen " 已被匯入
gpg: 總共被處理的數量: 1
gpg:
已匯入: 1
#
gpg --output test.txt.gpg --encrypt --recipient jack@gmail.com
test.txt
# 用
jack@gmail.com 的 Public Key 將 test.txt 檔案加密,且轉存為
test.txt.gpg
#
gpg --output test.txt.sig --sign --recipient john@ntut.idv.tw test.txt # 用 john@ntut.idv.tw 自己的 Private Key 將檔案
test.txt 簽名,且存為
test.txt.sig
#
gpg --output test.txt.gpg --encrypt --sign --recipient jack@gmail.com
test.txt
# 同時加密及簽名,用本機
john@ntut.idv.tw 的 Private key 簽名後再用接受者 jack@gmail.com 的 Public Key
加密
# gpg --output test2.txt.gpg --encrypt --sign --recipient john@ntut.idv.tw test.txt #
用本機 User 測試,用 john@ntut.idv.tw 的 Public Key 加密及 john@ntut.idv.tw 的 Private Key 簽名
妳需要用密語來解開下列使用者的
私鑰: "John Lin (john) "
1024 位元長的 DSA 金鑰, ID 41F10E54, 建立於 2007-08-13
# gpg --output test2.txt --decrypt test2.txt.gpg #
解密以及驗證簽名,在本機有 john@ntut.idv.tw 的 Private Key 所以可以解開 test2.txt.gpg 檔到 test2.txt
妳需要用密語來解開下列使用者的
私鑰: "John Lin (john) "
2048 位元長的 ELG-E 金鑰, ID 18A974B5, 建立於 2007-08-13 (主要金鑰 ID 41F10E54)
gpg: 已用 2048 位元長的 ELG-E 金鑰, ID 18A974B5, 建立於 2007-08-13 加密了
"John Lin (john) "
gpg: 由 一 8/13 18:12:29 2007 CST 建立的簽章, 使用 DSA 金鑰 ID 41F10E54
gpg: 完好的簽章來自於 "John Lin (john) "
# cat test2.txt # 查看還原後的檔
This is secret txt file
# gpg --keyserver keyserver.pgp.net --keyserver-options honor-http-proxy
--send-key john@ntut.idv.tw #
傳送金鑰到金鑰伺服器
# gpg --keyserver keyserver.pgp.net--keyserver-options honor-http-proxy
--search-keys jack@gmail.com #
從金鑰伺服器取得鑰匙
# gpg --delete-key ID #
刪除一把 Public Key
# gpg --delete-secret-key ID #
刪除一把 Private Key
Setp 3.
gpg 互動命令編輯模式
# gpg --edit-key jack@gmail.com #
進入互動編輯模式,須指定一個 User
gpg (GnuPG) 1.4.6; Copyright (C) 2006 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.
pub 1024D/5EC2284A 建立於: 2007-08-13 過期:
永遠不過期 用法: SC
信任:
未知
有效性: 未知
sub 2048R/CACAE6BE 建立於: 2007-08-13 過期:
永遠不過期 用法: SEA
[ 未知 ] (1). Jack Chen
指令>fpr # 查看主鑰指紋
pub 1024D/5EC2284A 2007-08-13 Jack Chen
主鑰指紋: 4FE6 XXXX XXXX 2645 XXXX XXXX EE27 XXXX XXXX 0E54
指令>help # 查看可用指令
quit
離開這個選單
save
儲存並離開
help
顯示這份線上說明
fpr
顯示金鑰指紋
list
列出金鑰和使用者 ID
uid
使用者 ID 選了 N
key
選擇次鑰 N
check 檢查簽章
sign
簽署所選的使用者 ID [* 請參見底下有關的註解]
lsign
僅在本地簽署所選的使用者 ID
tsign
用信任簽章來簽署所選的使用者 ID
nrsign
用不可撤銷的簽章來簽署所選的使用者 ID
deluid 刪除所選的使用者 ID
delkey 刪除所選的次鑰
delsig 從所選的使用者 ID
中刪除簽章
pref
列出偏好 (專家模式)
showpref 列出偏好 (囉唆模式)
trust 更改主觀信任
revsig 從所選的使用者 ID
上撤銷簽章
enable 啟用金鑰
disable 禁用金鑰
showphoto 顯示所選的照片 ID
clean
compact unusable user IDs and remove unusable signatures from key
minimize compact unusable user IDs and
remove all signatures from key
* 這個 `sign' 指令也可以在前面加上一個 `l' 字母, 來表示本地簽章 (lsign),
加上 `t' 的話就是信任簽章 (tsign), 加上 `nr' 的話就是不可撤銷簽章
(nrsign), 當然也可以任意組合這些選項 (像是 ltsign, tnrsign 等等.).
指令>check # 檢察簽章
uid Jack Chen
sig!3 5EC2284A 2007-08-13 [自我簽章]
指令>trust # 更改主觀信任
pub 1024D/5EC2284A 建立於: 2007-08-13 過期: 永遠不過期 用法: SC
信任: 未知 有效性: 未知
sub 2048R/CACAE6BE 建立於: 2007-08-13 過期: 永遠不過期 用法: SEA
[ 未知 ] (1). Jack Chen
請判斷妳有多信任這位使用者確實驗證其他使用者的金鑰
(像是查對身份證, 或從不同的來源檢查指紋等...)的能力
1 = 我不知道或不想說
2 = 我*不*信任
3 = 我勉強信任
4 = 我完全信任
5 = 我徹底信任
m = 回到主選單
妳的決定是甚麼?4
pub 1024D/5EC2284A 建立於: 2007-08-13 過期: 永遠不過期 用法: SC
信任: 完全 有效性: 未知
sub 2048R/CACAE6BE 建立於: 2007-08-13 過期: 永遠不過期 用法: SEA
[ 未知 ] (1). Jack Chen
請注意顯示出來的金鑰有效性不需要更正,
除非妳重新執行程式.
指令>save # 儲存後離開
#man gpg # 可查詢到更多的 gpg 使用方式
My Public Key:
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.6 (FreeBSD)
mQGiBEbBKS8RBAC0WiV9aigX+CKF3W0vQBe9tC3sQij96vL4Bm5bUi4zhEBEN3u2
uwdHJeBKu244ldzZBLHlb6gKMVi2Jp9uThwB0RdGO2SC+v+Apst2jFOYYD73kADm
7veDyaCR1IOmgpCCMPjP3639b841HlP9LFuHr/+kQFOjCHwASuQmwScdTwCgtXMb
6R91gc2O9toJBqX/3RWuwr0D/RBIXKMddgG1FmTWGyy3WCU3zHnfZbozsufki3ME
jNahoYtIttu4sToybJOU1tf8XJq+OxUNCgJzdHSl+pujG6v2qJ8/mJRMZXMaqFI8
VUIkyDPgO2F8dBwSFiTQz6Qt+Dbfx6L1dnP/2Y1iLGlVA6aGxGB3OaylYf/LUlyV
hMhjA/9e0peIEmTc0LYTnQK5/ukBfjMZN6Jm8EjWWtVcXz0Cou6E1xg22SegF+Em
U6hrEe/3wEph+ACvW23XMskliCOnGjqXdbfDnavQ8z+a6ca3nu1Y73zPvTvgt3vM
XWWl81fMERrgUF9nVwJjCcQkYe0vUVUsN77KnhPdzT2LalKGM7QnU2hpaC1XZWkg
TGluICg0d2VpKSA8NHdlaS50d0BnbWFpbC5jb20+iGAEExECACAFAkbBKS8CGwMG
CwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRAkWkXMZZrJfLuMAKCyQlkFCdrAzkhc
f8Gn50S4Cb77rwCgqkeMvosX/H8ncUvqbfBLAjjz6Lq5Ag0ERsEphRAIAK487wFJ
pi/UP96A2Uzm6QLICWDIA3/pa/dUJBMRUD/WgPOYZXY6M4QsQW92y4zmurEKRdC0
mow4XstCMyGXcbOZQ4vpL/GcAV/DHZlPAQzeTTYZttzGiCq7QPRqOJ9cch6yem1D
1t4KgrQTldcBJhyi4OpT2bYZJKAxKU4B0vCkjXEF2ofvHQHuuWemI8/s6hDx0DHC
3r3xh8Tto+i4lYR4nS1cIL/PzEaFTzeQR5LbL8jNS/okxNOKjEEYTWh+SLxcPA2l
AnZa5Nq41mLQyai3VZoYmfiD/768pzaP1SOYGua8FhH9ZZZGDmUoLVwT0w7ysoCz
EIt3tGxC6hHiwZcABAsIAICNIK+HHsp/MehCZYLqhaLhEZpURWuQmWoC1xgCQiIc
DXQPD7Bs2FMK5eocYzGEZMY57dWThvDBUY7d3co4hIlOY/umvi8498APekz0BgAf
TRuHxrNxrr8FPwbXAeFamC0UQAiGH5yF9Gny6dgZ5+yObbm+Vyf8ov4tpz8IsEkn
5L6MEldzPDwtDErZC47EttMdUEnLBXmQMcqy3QKOrfX2M94ThXXLirS5qD7MVM+l
cWD4k91qYnOFRx1+HE/0oqJwk2TC0bGyecq26DA/zvl+P5fHiG0j08H6fMS2FXrf
Fpe+5J3lrJ02KnIVSaQJG3FV9GAB/crYxauSi+RXcNWISQQYEQIACQUCRsEphQIb
DAAKCRAkWkXMZZrJfLmxAJ9QehtIUA7igZX65OhsF3o9YNWdIACdF6HVjymnmHkh
ZQuI8T4MVoSd6po=
=KSeM
-----END PGP PUBLIC KEY BLOCK-----
阅读(3423) | 评论(0) | 转发(0) |