不安全網路中的資料安全傳輸利器 GnuPG(下)

2021-09-04 22:14:39 字數 3095 閱讀 5745

3  gnupg使用例項

1.使用gpg收發資料

下面詳細介紹如何使用gpg收發資料,主要會涉及到資料交換的兩種方式:

 數字簽名傳輸(signed data):傳送者使用私鑰對資料加密,接收者使用公鑰對資料解密。

 資料加密傳輸(encrypted data):傳送者使用公鑰對資料加密,接收者使用私鑰對資料解密。

(1)數字簽名傳輸

傳送者使用私鑰對資料進行簽名,接收者擁有傳送者的公鑰,對之信任並使用它驗證接收資料的完整性。對資料進行簽名的最簡單的方法是使用clearsign命令,這將使gpg建立乙個易讀的簽名,很適於傳送email。具體命令及執**況如下,參見圖14:

#gpg --clearsign mymessage.txt

圖14  對檔案tansmit.txt生成簽名(transmit.txt.asc)

從圖14中可以看到:輸入密碼後,就將生成乙個擴充套件名為.asc的新檔案,這裡就是transmit.txt.asc。這個檔案包含了transmit.txt檔案的原始內容以及簽名資訊(參見圖15):

圖15  檔案transmit.txt.asc的內容

當接收者收到包含上述簽名的資訊或檔案時,他可以使用傳送者的公鑰來驗證資訊的完整性,具體命令及執**況如下,參見圖16:

#gpg --verify transmit.txt.asc

圖16  驗證數字簽名的完整性

(2)資料加密傳輸

第2種傳輸方式的目的是為了只讓個別人看到傳送資訊傳送者使用其公鑰對檔案或資料進行加密,接收者使用傳送者的私鑰對接收資料進行解密。加密命令包含兩個部分,一部分指定接收者的email,另一部分指定要加密的檔案。具體命令如前面所述的加密和解密的流程完全一致,這裡不再贅述,這裡只給出乙個加密後的transmit.txt檔案的示例,如圖17所示。在網路中傳輸時,即算該檔案為***或者其他使用者截獲到,沒有私鑰,該使用者也無法對該檔案進行識別,因而具有很高的安全性。

圖17  加密後的transmit.txt檔案

#gpg –r < uid > --encrypt -s< file >

那麼,在使用-d選項來解密該檔案時,將會出現如圖18所示的情況,該圖的白色部分給出了對簽名的檢驗情況:

圖18  解密過程中檢驗數字簽名

2.使用gpg驗證rpm包

一旦學會使用rpm,很容易安裝好它們就不管了,並且忘記了安全性問題。破解者可能會在網路上發布的rpm中植入病毒或***。rpm命令包括了檢查rpm完整性的方法,它同樣使用的是gpg。它也可以驗證程式包,甚至驗證乙個檔案的內容。

該系統的關鍵是fedora core gpg金鑰。它們應預設安裝為/etc/gpg/rpm-gpg/rpm-gpg-key.*。接著,匯入gpg公共金鑰。例如,如果從安裝cd或***匯入,應該用下面的命令匯入/var/lib/rpm /pubkeys檔案:

# rpm --import /media/disk/rpm-gpg-key

(1)驗證程式包

# rpm -k kernel-2.6.15-1.2054_fc5.src.rpm

kernel-2.6.15-1.2054_fc5.src.rpm: (shal) dsa sha1 md5 gpg ok

該命令對照宣告的加密方案(包括gpg)來驗證核心源rpm的完整性。

(2)驗證檔案

如果懷疑某個命令執行不正常,可以對照此rpm資料庫檢查該命令。以mount命令為例。用下面的命令能檢查mount的完整性:

# rpm -vf /bin/mount

如果看不到任何輸出,該命令還和原來安裝時一樣。

如果有人篡改了mount命令,會生成下面的輸出:

# rpm -vf /bin/mount

s.5 t /bin/mount

該命令將檢查/bin/mount的9個屬性。如果見到表1中的乙個字母,說明檔案在某一方面不同於原始檔案。上面的例子說明檔案大小、md5校驗和以及檔案修改時間有變化。

表1  驗證檔案的錯誤輸出

輸出 錯誤原因

s 檔案大小不匹配

m 模式(不同的許可權和檔案型別)

5 md5校驗和錯誤

l 符號鏈結不正確

d 裝置號錯誤

u 使用者所有權被修改

g 組所有權被修改

t 檔案修改時間不匹配

? 不可讀的檔案

c 配置檔案標誌

在某些情況下,測試失敗不是問題。比如,如果修改了/etc/inittab檔案,就會看到乙個像是驗證失敗的結果:

# rpm -vf /etc/inittab

s.5 t c /etc/inittab

但這個失敗也許不表示存在問題。例如,我是在修改了此配置檔案中的initdefault變數後得到這個結果的。也就是說,檔案大小(s)和校驗和(5)發生變化是因為修改了檔案的內容,檔案修改時間(t)自然也不同於在計算機上安裝fedora core的時間。

4  gnupg使用技巧

在使用gnupg的過程中,需要注意如下幾個問題:

 需要根據實際的應用來確定生成金鑰的演算法、金鑰的長度以及金鑰的有效期限;

 需要使用者通過互動移動滑鼠、鍵盤來保證生成的金鑰對的隨機性;否則,極有可能被***破解;

 公鑰的安全性問題是gnupg安全的核心,乙個成熟的加密體系必然要有乙個成熟的金鑰管理機制配套。公鑰體制的提出就是為了解決傳統加密體系的金鑰分配難保密的缺點。比如網路***們常用的手段之一就是「監聽」,如果金鑰是通過網路傳送就太危險了。對gnupg來說公鑰本來就要公開,就沒有防監聽的問題。但公鑰的發布中仍然存在安全性問題,例如公鑰的被篡改,這可能是公鑰密碼體系中最大的漏洞,因為大多數新手不能很快發現這一點。你必須確信你拿到的公鑰屬於它看上去屬於的那個人。

 私鑰的保密也是決定性的。相對公匙而言,私鑰不存在被篡改的問題,但存在洩露的問題。gnupg的辦法是讓使用者為隨機生成的rsa私鑰指定乙個口令。只有通過給出口令才能將私鑰釋放出來使用,用口令加密私鑰的方法保密程度和gnupg本身是一樣的。所以私鑰的安全性問題實際上首先是對使用者口令的保密。當然私鑰檔案本身失密也很危險,因為破譯者所需要的只是用窮舉法試探出你的口令了,雖說很困難但畢竟是損失了一層安全性。在這裡只用簡單地記住一點,要像任何隱私一樣保藏你的私鑰,不要讓任何人有機會接觸到它。

 在實際的使用過程中,使用者可以將gnupg軟體靈活地運用到網路資料傳輸,包括電子郵件傳送,ftp檔案傳送等各個應用領域。

不安全網路中的資料安全傳輸利器 GnuPG(上)

不安全網路中的資料安全傳輸利器 gnupg 李洋1 gnupg簡介 隨著網路與計算機技術的發展,資料儲存與資料交換的安全性 完整性和一致性已經變得越來越重要。如何保證在不安全的網路上傳輸資料的安全性成為網路資訊保安界研究的熱點和經典問題。本文將通過具體的加解密例項向使用者來介紹一種linux下的基於...

不安全網路中的資料安全傳輸利器 GnuPG(下)

3 gnupg使用例項 1 使用gpg收發資料 下面詳細介紹如何使用gpg收發資料,主要會涉及到資料交換的兩種方式 數字簽名傳輸 signed data 傳送者使用私鑰對資料加密,接收者使用公鑰對資料解密。資料加密傳輸 encrypted data 傳送者使用公鑰對資料加密,接收者使用私鑰對資料解密...

安全漏洞 不安全的cookie傳輸

漏洞危害 1 使用者名稱和密碼儲存在cookie中,易被竊取,且密碼可被還原成明文資訊 2 會話cookie不包含secure屬性,因此注入站點的惡意指令碼可能訪問此cookie,並竊取它的值。任何儲存在會話令牌中的資訊都可能被竊取,並在後續攻擊中用於身份盜竊或使用者偽裝。防護建議 1 敏感資料如非...