文件建立目的:
因近期與廠商之間的通訊有使用安全加密系統,期讓資訊技術人員更進一步了解使用中的PGP以及非對稱式金鑰架構,以免作業程序流於機械化,而導致特殊狀況發生時無法排除問題。
為方便快速閱讀,文件內容僅做最簡略說明,如需要更詳細說明請翻閱參考文獻。
文件內容:
1-1 傳統式加密簡述
1-2 公開金鑰加密簡介
1-3 PGP簡介
參考書籍:
書 名:網路安全精要 ─ 應用與標準
原著者:William Stallings
譯 者:蔡文能、蔡義雄
出版社:台灣培生教育出版股份有限公司
代 理:天瓏資訊圖書有限公司
more..
文件建立:資訊管理部 李長懋
1-1 .傳統式加密簡述
惡意破解的幾種基本型態:
主動式攻擊:
偽裝 ─ B電腦假冒成A電腦發送訊息。
重送 ─ 資料備擷取後,連續重送而產生未經許可的效果。
竄改 ─ 擷取傳遞之訊息,修改後送出。
阻絕服務 ─ 封鎖、癱瘓目的主機、目的通訊設備將所有訊息指向特定終點。
被動式攻擊:
訊息內容釋出 ─ 窺探資料傳輸中的內容
網路流量分析 ─ 當內容加密之後,以分析流量的方式解開無法得知的內容。
傳統加密系統五大元素:
1. 明文 ─ 預保護的原始文件、檔案。
2. 加密演算法 ─ 利用秘密金鑰以各種算試排列、替換明文,以進行加密。
3. 秘密鑰匙 ─ 加解密中的主要觀現資訊。
4. 密文 ─ 加密過後的文件、檔案。
5. 解密演算法 ─ 利用秘密金鑰以及演算法將密文反推還原為明文。
加密 1 + 2 + 3 = 4
解密 4 +5 + 3 = 1
傳統加密演算法種類:
標準資料加密演算法(Data Encryption Standaed) 簡稱DES
三次DES加密演算法 (Triple DEA) 簡稱3DES、TDEA
國際資料機密演算法(International Data Encryption Algorithm)簡稱IDEA
Blowfish加密演算法
RC5加密演算法
CAST-128演算法
傳統演算法 金鑰長度 應用方面
DES 56位元 SET、Kerberos
Triple DES 112 or 168位元 PGP、S/MIME
IDEA 128位元 PGP
Blowfish 小於448的不定位元數
RC5 小於2048的不定位元數
CAST-128 40 ~ 128位元 PGP
1-1. 公開金鑰加密之功能及運作
由於目前公司之PGP、SSL、個人憑證為非對稱式金鑰,非對稱式金鑰加密法類似於傳統加密法,也是有演算法以及金鑰,不同的是除加密之外,另有驗證功能,利用雜湊函數產生雜湊值作為指紋,輔以加密演算法以保護、驗證資料來源正確性。
雜湊函數 認證值的長度 可處理訊息長度 處理區塊單位
MD5 128 bits ∞ 512 bits
SHA-1 160 bits 264 – 1 bits 512 bits
RIPEMD-160 160 bits ∞ 512 bits
加密、憑證:
非對稱式金鑰有兩把鑰匙,又稱金鑰組,金鑰組有兩把金鑰,一把為「公開金鑰」,另一把為「私密金鑰」,使用之前接收者需要先匯入對方的公開金鑰於自己的加解密程式內。
一般來說,私密金鑰用於解密,公開金鑰用於加密,以下先利用AB兩位使用者互相通訊為範例:
※A使用者送出訊息與B使用者 ( 功能:憑證 )
1. A使用者利用雜湊函數(例如SHA-1)對送出的明文演算而產生雜湊值
2. 將雜湊值以A使用者之私密金鑰加密後產生密文,將密文附加於明文之中。
3. 壓縮後,將含有認證密文的文件送出給B使用者
4. B使用者接收到此文件
5. B使用者必須以A使用者之公開金鑰 對附加於文件中的密文以取得雜湊值,並自行以雜湊函數對明文件演算。
6. 若解開密文所得到的雜湊值與自行對明文演算出的雜湊值相等,代表文件確實由A使用者所傳送。
PS:訊息遞送中仍可被窺探,但若被修改,則加密程式會警告收件者所收之訊息驗證錯誤。
※ A使用者送出訊息與B使用者 ( 功能:加密 )
1. A使用者將明文壓縮。
2. 產生一個128位元的亂數為連線會期金鑰 (Session Key)。
3. 利用傳統加密法(演算法可能為CAST-128、IDEA、3DES ) 與 通訊金鑰將明文加密。
4. 利用B使用者的公開金鑰以對通訊金鑰加密後,將加密的金鑰加入密文內,再送與B使用者。
5. B使用者利用自己的私密金鑰將附加於密文內的通訊金鑰解開,以取得通訊金鑰。
6. 再利用通訊金鑰將密文解回明文。
PS:換言之,以公開金鑰架構對文件加密,於遞送中的訊息是已經過兩層的加密程序的文件。
※ A使用者送出訊息與B使用者 (功能:加密 + 驗證 )
1. 先利用A使用者的私密金鑰對明文簽章 (詳細過程請參考上方 驗證程序說明 )。
2. 再利用連線會期金鑰對已簽章的訊息加密 (詳細過程請參考 加密程序說明 的1 ~ 3。
3. 再利用B使用者的公開金鑰,對連線會期金鑰加密後,附於訊息中送出 ( 本步驟為 加密程序說明的第4步驟 )。
公開金鑰管理:Key Ring ( For PGP )
由於一位使用者可能會與多位接收者通訊,因此不可避免的會擁有多把公開金鑰,加上必須保護公開金鑰不被竄改,因此PGP提供一資料結構以及一些會用到的選項以區分各金鑰的保存、管理、使用,將其看做一存放金鑰的容器即可,至於此一容器的資料結構不在此份說明範圍內 ( 書上也沒說 ^_^||| )。
金鑰信任 (Trust) 的使用:
雖然PGP不包含任何建立憑證使用者的設定,也不對建立信任做設定,但提供信任功能,結合對公開金鑰信任,並且可利用信任資訊。
公開金鑰環裡的每個項目就是一個公開金鑰,每個項目結合的是金鑰的合法欄位,進而指出PGP的信任範圍,在此範圍內,確定項目是使用者的正確公開金鑰。信任度越高,則此使用者的ID與金鑰的約束力越強。
( 最後一句話我前後幾頁翻了半天還是看不懂,哪些是屬於ID與金鑰之間的約束力?如果有知道的人拜託請告訴我 ~~@_@~~)
金鑰信任範圍由PGP制定,且與金鑰環建立者所收集的已簽署憑證簽章結合在一起,然後,給個簽章都會跟一個簽章信任欄位在一起,以指出PGP使用者對簽章者的所簽章憑證的公開金鑰之信任度。
由參考書籍中描述此文的後段看來,此項功能似乎與有使用金鑰伺服器才有關係,並且其後內容也描述的有些抽象,因此本段僅列出上列確定之關係以及基本觀念,實作應用部分等待有人了解此架構或是本人研究清楚後再行補上。
Posted by 椰子殼
