將此篇文章跟 Facebook 上的朋友分享將此篇文章跟 Plurk 上的朋友分享將此篇文章跟 Twitter 上的朋友分享列印轉寄
2019/2/19

資料傳輸過程風險多 金鑰管理實踐身分驗證

善用信任網路機制 開源GPG輕鬆加解密

吳惠麟
本文將先說明資料傳輸機制,因為不想被第三者得知,所以必須搭配密碼加以保護,因此將講解對稱式與非對稱式密碼。最後,再簡單介紹開放原始碼界的訊息加密、驗證程式GPG,然後依據前面所講的理論來進行加密解密的實際操作。


在加密的過程中,可能會遇到信任度不足的問題,如圖10所示。


▲圖10 出現信任度不足的問題。


這是因為GPG採用的是信任網路機制,必須有相關的人給A的公開金鑰背書,好讓該公開金鑰是可被信任的。此時,B可利用圖10中的主鑰指紋的資訊,與A進行確認。確認為A的公開金鑰後,可利用「gpg --edit-key “USER ID”」指令來信任此公開金鑰,執行如圖11所示。


▲圖11 信任此公開金鑰。


之後,重新執行「gpg -e -r "USER ID" test.txt」,就不會再出現信任度不足的訊息,並且會產生檔名為「test.txt.gpg」的加密檔。之後,再將此加密後的檔案傳遞給A。

A在取得此加密檔後,利用相對應的私有金鑰解密,即可正常地解開此加密檔,執行結果如圖12所示。


▲圖12 利用對應的私有金鑰解密,即可解開加密檔。


接著,繼續說明GPG在電子簽章的應用。假設A要傳遞加密過後的檔案給B,並且B在取得A的加密檔後,須驗證檔案確實為A加密後再解開A所加密的檔案。

首先,A先以自已的私有金鑰簽名並加密欲傳遞給B的檔案,加密後的檔名為「test.sign」,之後再將此檔傳遞給B,執行結果如圖13所示。


▲圖13 A以私有金鑰簽名並加密欲傳遞給B的檔案。


當B取得A的加密檔後,就可以「gpg --verify test.sign」指令來驗證該檔案是否真的是由A所簽署。驗證確認後,接著使用「gpg --output test.sign.txt --decrypt test.sign」指令,利用A的公開金鑰來解開A所加密的檔案,並將解開後的資訊儲存在「test.sign.txt」檔案內,整個過程如圖14所示。


▲圖14 先驗證再解密,最後解開檔案。


<本文作者:吳惠麟,多年資安經驗,喜好利用開源碼建構相關解決方案,著有「資訊安全原理與實驗」等書。>
這篇文章讓你覺得滿意不滿意
送出
留言
顯示暱稱:
留言內容:
送出