加密應用(GPG)

96
資訊加密實務篇 [email protected] V1.2.5 2012/12/24

description

主要介紹 GPG 的應用:文件與郵件的加解密及簽章。順帶一提 SSH Tunnel 的應用。

Transcript of 加密應用(GPG)

Page 1: 加密應用(GPG)

資訊加密實務篇

[email protected]/12/24

Page 2: 加密應用(GPG)

•甚麼是 PGP

•認識 GnuPG

•取得 GnuPG

•管理 GnuPG Keys

•文件加密與解密

•文件簽名與驗證

•郵件簽名與加密

•用 SSH 封裝非加密連線

Page 3: 加密應用(GPG)

甚麼是 PGP

Page 4: 加密應用(GPG)

•甚麼是 PGP•PGP 的功能•PGP 重要里程•PGP 授權模式

Page 5: 加密應用(GPG)

GPG是 Pretty Good Privacy的縮寫。

為 PGP公司的加密及簽名工具套件,可以讓電子郵件或檔案具有保密功能的程式。

PGP技術目前被廣泛應用在加密標準當中,且同時被整合到多種企業電腦系統之中。

甚麼是 PGP

Page 6: 加密應用(GPG)

PGP利用公鑰密碼學為基礎,使用商業版權的 IDEA演算法,並集成了有商業版權的PGPdisk工具。有別於開源的 GPG( GnuPG)。

PGP 的功能

Page 7: 加密應用(GPG)

其原理是利用 PGP產生一對鑰匙:•一把是私人鑰匙•一把是公開鑰匙當要傳送一封保密信或檔案給對方時,首先必須先取得對方的公鑰,並加入自己的公鑰匙環中,接下來利用對方的公鑰將信件加密後再傳給對方。當對方收到加密的信件後,對方必須利用相對的私鑰來解密。

PGP 的功能

Page 8: 加密應用(GPG)

PGP亦提供 PGP專屬簽名。其目的通常是當要公開傳送訊息時,希望讓別人知道這訊息確實是由作者所發出。一旦加上專屬簽名後,任何人只要更改訊息本身或簽名的話, PGP都能偵測出此篇文章已被更動,並非是原作者之成品。

PGP 的功能

Page 9: 加密應用(GPG)

Philip R. Zimmermann是 PGP的主要開發者。•他在志願者的幫助下,突破政府的禁止,於 1991年將 PGP在網際網路上免費發布。•公元 2000年, PGP 7.0.3釋出,專門提供給個人及freeware用戶; PGP 7.0.4釋出給企業用戶。•公元 2002年,新成立 PGP Corporation從 Network Associates手中購回 PGP產品及智慧產權。•公元 2006年, PGP Corporation為 PGP加密平台發布增強版本的應用程式。

PGP 重要里程

Page 10: 加密應用(GPG)

PGP的授權模式主要分三種 :•PGP Subscription License (PGP一年訂閱授權 )

•PGP Perpetual License (PGP長期無保固授權 )

•PGP Software Insurance License (PGP軟體升級保固授權 )

PGP 授權模式

Page 11: 加密應用(GPG)

PGP Subscription License(PGP一年訂閱授權 )

PGP一年訂閱授權提供在訂閱期間 (通常是一年 )購買者使用 PGP產品之權利。購買 PGP一年訂閱授權之消費者可使用及享有最新版 PGP軟體更新(Update)和升級 (Upgrades)。更新是小幅度的改進;升級是大規模的改版,提供全新的功能。

PGP 授權模式

Page 12: 加密應用(GPG)

PGP Perpetual License(PGP長期無保固授權 )

PGP長期無保固授權之購買者永久使用 PGP產品之權利,但 PGP Perpetual License期間不提供任何更新 (Update)、升級 (Upgrades)或更換最新版本服務。 PGP長期無保固授權之購買者若想得到最新的更新、升級,則必須另加升級保固授權 (Upgrade Insurance License)。

PGP 授權模式

Page 13: 加密應用(GPG)

PGP Software Insurance License(PGP軟體升級保固授權 )

PGP軟體升級保固授權提供購買者在升級保固期間享有更新 (Update)及升級 (Upgrades)之權利,有效時間是一年。

PGP 授權模式

Page 14: 加密應用(GPG)

認識 GnuPG

Page 15: 加密應用(GPG)

•甚麼是 GnuPG•GnuPG 支援的演算法

Page 16: 加密應用(GPG)

GnuPG( GNU Privacy Guard)簡稱 GPG。是一個基於 PGP的以 GNU通用公共許可證釋出的開放源碼軟體,用於加密、及相關鑰匙對生成。

GPG完全符合 IETF正在進行標準化的 OpenPGP協議RFC4880,可用於替代符合相同協議的 PGP。

現時有兩組分支 version 1.*.* 與 version 2.*.*, 後者增加了對 S/MIME的支持。

GPG是自由軟體基金會 GNU軟體項目。 GPG軟體發佈於 GPLv3下。

甚麼是 GPG

Page 17: 加密應用(GPG)

GnuPG支持的演算法:公鑰演算: RSA, RSA-E, RSA-S, ELG-E, DSA對稱加密: 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH信息摘要: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224壓縮:不壓縮 , ZIP, ZLIB, BZIP2

GnuPG支援的演算法

Page 18: 加密應用(GPG)

取得 GnuPG

Page 19: 加密應用(GPG)

目前大部分的主流 Linux發行版本均已內建GnuPG軟體及工具。如需自行編譯或升級,也可以到 GnuPG的官方網站下載:http://www.gnupg.org

取得 GnuPG

Page 20: 加密應用(GPG)

此外,也有人將 GnuPG移植到 MS Windows平台上運行。其中 Gpg4win計畫就是 Windows版本的GnuPG。 Gpg4win整合了若干非常好用的前端介面,便於使用者安裝及操作。大家可以到 Gpg4win的官方網站下載:http://www.gpg4win.org

取得 GnuPG

Page 21: 加密應用(GPG)

管理 GnuPG Keys

Page 22: 加密應用(GPG)

•產生 GnuPG Key•備份 GnuPG Key•匯出 GnuPG Key•上傳 GnuPG Key 至 Key Server•匯入 GnuPG Key•註銷 GnuPG Key

Page 23: 加密應用(GPG)

gpg --key-gen

產生 GnuPG Key

Page 24: 加密應用(GPG)

輸入名字、 email及建立密碼

產生 GnuPG Key

Page 25: 加密應用(GPG)

移動滑鼠或敲擊鍵盤等操作

產生 GnuPG Key

Page 26: 加密應用(GPG)

稍侯… 直到成功產生 Key (ID)

產生 GnuPG Key

Page 27: 加密應用(GPG)

檢查私鑰及公鑰(請留意 KeyID)

產生 GnuPG Key

Page 28: 加密應用(GPG)

編輯私鑰並臨時修改密語

備份 GnuPG Key

Page 29: 加密應用(GPG)

輸入新密語 (兩次 )并退出

備份 GnuPG Key

Page 30: 加密應用(GPG)

輸出公鑰及私鑰至備份檔案

備份 GnuPG Key

Page 31: 加密應用(GPG)

重新編輯私鑰並重設原密語

備份 GnuPG Key

Page 32: 加密應用(GPG)

將輸出結果存於輸出檔案*再複製給需要傳送加密文件給您或需要驗證您的簽名的相關人員

匯出 GnuPG Key

Page 33: 加密應用(GPG)

方法一:直接上傳至 keyserver

上傳 GnuPG Key至 Key Server

Page 34: 加密應用(GPG)

方法二:先輸出並複製公鑰內容

上傳 GnuPG Key至 Key Server

Page 35: 加密應用(GPG)

然後貼至 server網頁並提交

上傳 GnuPG Key至 Key Server

Page 36: 加密應用(GPG)

再確認成功上傳

上傳 GnuPG Key至 Key Server

Page 37: 加密應用(GPG)

方法一:從 keyserver匯入 KeyID

匯入 GnuPG Key

Page 38: 加密應用(GPG)

方法二:從 keyserver搜尋並匯入

匯入 GnuPG Key

Page 39: 加密應用(GPG)

方法三:從檔案匯入

匯入 GnuPG Key

Page 40: 加密應用(GPG)

檢查公鑰清單

匯入 GnuPG Key

Page 41: 加密應用(GPG)

查看公鑰指紋

匯入 GnuPG Key

Page 42: 加密應用(GPG)

編輯並設定信任程度

匯入 GnuPG Key

Page 43: 加密應用(GPG)

編輯並設定信任程度

匯入 GnuPG Key

Page 44: 加密應用(GPG)

指定 KeyID並說明原因

註銷 GnuPG Key

Page 45: 加密應用(GPG)

確認註銷憑證成功產生

註銷 GnuPG Key

Page 46: 加密應用(GPG)

註銷己方憑證、至 keyserver註銷、及刪除

註銷 GnuPG Key

Page 47: 加密應用(GPG)

註銷他方憑證:

方法一:從 keyserver匯入註銷憑證

註銷 GnuPG Key

Page 48: 加密應用(GPG)

方法二:從檔案匯入註銷憑證

註銷 GnuPG Key

Page 49: 加密應用(GPG)

確認憑證及刪除

註銷 GnuPG Key

Page 50: 加密應用(GPG)

文件加密與解密

Page 51: 加密應用(GPG)

•為文件設定密碼保護•對文件作加密處理•對文件作解密處理

Page 52: 加密應用(GPG)

用 gpg以密碼方式加密文件

為文件設定密碼保護

Page 53: 加密應用(GPG)

文件被加密為 .gpg結尾的文件

為文件設定密碼保護

Page 54: 加密應用(GPG)

用 gpg解密以密碼方式加密的文件

為文件設定密碼保護

Page 55: 加密應用(GPG)

傳送文件之前先取得並確認接收者的 KeyID

對文件作加密處理

Page 56: 加密應用(GPG)

以接收者的 KeyID來進行文件加密處理

對文件作加密處理

Page 57: 加密應用(GPG)

Gpg不能解開別人的加密文件

對文件作解密處理

Page 58: 加密應用(GPG)

解開傳送給自己的加密文件

對文件作解密處理

Page 59: 加密應用(GPG)

查看被解密文件

對文件作解密處理

Page 60: 加密應用(GPG)

文件簽名與驗證

Page 61: 加密應用(GPG)

•對文件作簽名•驗證文件簽名

Page 62: 加密應用(GPG)

對文件作明碼簽名並附於同一檔案內

*需有私鑰

對文件作簽名

Page 63: 加密應用(GPG)

確認簽名生成

對文件作簽名

Page 64: 加密應用(GPG)

對文件作明碼簽名並附於另一檔案內

*需輸入私鑰密語

對文件作簽名

Page 65: 加密應用(GPG)

確認簽名生成

對文件作簽名

Page 66: 加密應用(GPG)

同時對文件作加密與簽名處理

對文件作簽名

Page 67: 加密應用(GPG)

驗證附於同一文件的簽名

驗證文件簽名

Page 68: 加密應用(GPG)

驗證附於另一文件的簽名

驗證文件簽名

Page 69: 加密應用(GPG)

同時解密與驗證簽名

*需私鑰密語

驗證文件簽名

Page 70: 加密應用(GPG)

郵件簽名與加密

Page 71: 加密應用(GPG)

•對郵件作簽名•對郵件作加密•驗證與解密郵件

Page 72: 加密應用(GPG)

*以 Evolution郵件程式來說明

* Evolution將直接使用鑰匙圈中的金鑰

對郵件作簽名

Page 73: 加密應用(GPG)

在 OpenSuSE中啟動 Evolution

對郵件作簽名

Page 74: 加密應用(GPG)

按“新增”按鈕撰寫新郵件

對郵件作簽名

Page 75: 加密應用(GPG)

在發送郵件之前,

點選“安全性”->“GPG加簽”

對郵件作簽名

Page 76: 加密應用(GPG)

按下“傳送”按鈕

對郵件作簽名

Page 77: 加密應用(GPG)

輸入私鑰密語

對郵件作簽名

Page 78: 加密應用(GPG)

在發送郵件之前,

點選“安全性”->“PGP加密”

對郵件作加密

Page 79: 加密應用(GPG)

同時做簽名與加密

對郵件作加密

Page 80: 加密應用(GPG)

按下“傳送”鍵之後輸入私鑰密語

對郵件作加密

Page 81: 加密應用(GPG)

按下“ Get Mail”按鈕來收信

驗證與解密郵件

Page 82: 加密應用(GPG)

如果是第一次使用,需要為Evolution設定一個密語

驗證與解密郵件

Page 83: 加密應用(GPG)

展開簽名郵件就可驗證簽名*如果簽名有效但無法驗證寄件者,可能需要調整信任程度

驗證與解密郵件

Page 84: 加密應用(GPG)

重新驗證簽名

驗證與解密郵件

Page 85: 加密應用(GPG)

打開已加密郵件*在輸入私鑰密語之前無法察看內容

驗證與解密郵件

Page 86: 加密應用(GPG)

輸入私鑰密語

驗證與解密郵件

Page 87: 加密應用(GPG)

查看完成解密郵件,確認加密狀態

驗證與解密郵件

Page 88: 加密應用(GPG)

打開已加密及已簽名郵件*在輸入私鑰密語之前無法察看內容

驗證與解密郵件

Page 89: 加密應用(GPG)

輸入私鑰密語

驗證與解密郵件

Page 90: 加密應用(GPG)

查看完成解密郵件,確認簽名與加密狀態

驗證與解密郵件

Page 91: 加密應用(GPG)

•憑證申請書的 email欄位必須要與信箱一致•需要轉換為 PKCS12格式openssl pkcs12 -export -inkey myname.key -in myname.crt -out myname.pkcs12

•Outlook Express需將 CA Cert匯入至“受信任的根憑證發行者”

S/MIME注意事項

Page 92: 加密應用(GPG)

用 SSH 封裝非加密連線

Page 93: 加密應用(GPG)

方法一, 在本地端開一個 port 然後透過 tunnel 連線遠端服務:  ssh -L 10110:4.3.2.1:110 4.3.2.1

用 SSH 封裝非加密連線

Page 94: 加密應用(GPG)

方法二, 在遠端開一個 port 然後透過 tunnel 連線回本地端服務: ssh -R 10110:1.2.3.4:110 4.3.2.1

用 SSH 封裝非加密連線

Page 95: 加密應用(GPG)

方法三, 在本地端開一個 port 然後透過 tunnel 連線第三方主機的服務 ( 離開 tunnel 的連線沒有加密 ) : ssh -L 10110:10.0.0.1:110 4.3.2.1

用 SSH 封裝非加密連線

Page 96: 加密應用(GPG)

注意:tunnel 入口只允許 localhost 連線

解決方法:設定 GatewayPorts yes 於/etc/ssh/sshd_config (server 端 )/etc/ssh/ssh_config (client 端 )

用 SSH 封裝非加密連線