1,550 瀏覽數

PKI

PKI(Public Key Infrastructure)
PKI 是一種新的安全技術,它由公開密鑰密碼技術,數位證書,證書發放機構 (CA:Certification Authority) 和公開密鑰的安全策略等基本成分共同組成的.我們先對密鑰密碼技術,數位證書,證書發放機構 (CA) 等來說明.

Random Number

為了產生 Key 系統必須要能隨機的產生亂碼,才能讓每次產生的 Key 值皆不同, Linux 會依據當時 mouse 的移動 keyboard 鍵值 disk I/O 運作,來決定 Random Number,而這值會存放在 /dev/random 或 /dev/urandom.

One Way Hashes

One Way Hashes 主要會產生一組固定長度字串(fingerprint or message digests),這組字串用來比對原資料是否遭到修改,它的特性如下

  1. 原資料輸入長度為可變
  2. 輸出的 fingerprint 為固定長度
  3. 當資料任何 byte 改變時, fingerprint 也會變的完全不同
  4. 我們無法依據 fingerprint 來回推成原資料,這也是為什麼稱為 One Way hash(單方向的資料運算,函數多對一的特性)

既然無法回推成原資料,那怎知資料是否正確, One Way hash 會再將資料再做一次 One Way hash 然後直接比對 fingerprint 是否一樣.md2,md5,mdc2,rmd160,sha,sha1,haval,crc-32 皆是採用 One Way hash

Linux 提供 passwd (md5),md5sum [ –check] , openssl , gpg , tripwire ,rpm -V 等工具來產生 fingerprint

Symmetric Algorithms (對稱式)

所謂的對稱式加密就是加密以及解密都是使用同一支鑰匙(single Key)

其中最典型的為 DES(Data Encryption Standard) 演算法.
它使用的祕鑰長度為 56 bits (但每 8 bits 加上一個奇同位檢查,最後會形成 64 bits 的祕鑰),但這種方式鑰匙必須妥善保存,鑰匙的傳送無法透過網路,因為很容易遭有心人的擷取DES,3DES,Blowfish,RC2,RC4,RC5,IDEA,CAST5 皆是採用對稱式加密來運作

Linux 提供 gpg(3DES,CAST5,Blowfish),openssl 等工具來產生鑰匙(single Key)

Asymmetric (Public Key) Algorithms (非對稱式)或稱公鑰密碼演算法

非對偁式加密會使用兩把公與私鑰 (Public/Private Key), public key 會當成加密用, Private key 就會當解密用. RSA(以 RSA 的創始人Rivest,Shamir,Adelman 為命名 ),就是用 Asymmetric Encryption (非對稱式),RSA 既能用加密(Asymmetric Encryption I )又能用在數位簽名(Asymmetric Encryption II ),是目前提出的公鑰演算法中最容易理解和實現的.它的運作方式可分為下面幾種:

  1. Asymmetric Encryption I (非對稱式加密 I )

    • 接收端 會產生兩把鑰匙 (Public/Private Key), Public Key(P) 會發佈給其他人來使用,而 Private Key (S) 則自己保存
    • 傳送端 傳送端會使用 (P) 將資訊 M 來加密, 並將經過加密的資料 P(M) 傳送出去
    • 接收端 接收端就可以用私鑰來解密 M=S(P(M)) 這種方式傳送者無法確定接收者的真假
  2. Asymmetric Encryption II (非對稱式加密 II )也就是數位簽證(Digital Signatures)的方式 它主要用在身份的確認,其方法類似 Asymmetric Encryption I 會使用兩把公與私鑰 (Public/Private Key),  它的運作方式不同於 Asymmetric Encryption I,Private key 會當成加密用而 Public key 就會當解密用,方法如下.

    • 傳送端 產生兩把鑰匙 (Public/Private Key), Public Key(P) 會發佈給其他人來使用,而 Private Key (S) 則自己保存.傳送端使用自己產生的 Private key (S) 將資訊 M 來加密, 並將經過加密的資料 S(M) 傳送出去
    • 接收端 接收端就可以用傳送者的公鑰來解密 M=P(S(M)) 這種方式的接收者可以確定傳送者,但傳送者無法得知接收者是否由其他人冒充.所以產生下面這兩種方法.
  3. Combined Signature and Encryption 但它的運作方式結合 Asymmetric Encryption I 與 Asymmetric Encryption II

    • 傳送端 傳送端/接收端都會產生兩把鑰匙 (Public/Private Key), Public Key(P) ,Public Key(P) 會發佈給其他人來使用,而 Private Key (S) 則自己保存.
      傳送端會先用自己產生 Private key 加密,然後再用接收端的 Public key 加密.並將經過加密兩次的資料傳送出去
    • 接收端 接收端會先用產生的 Private key 解密,然後再用傳送端的 Public key 解密,就能得到資料.這樣雙方就可以確認彼此,但資料的真實性還是無法獲得保障所以產生下面的方式.
  4. Detached Signatures 方法同 Asymmetric Encryption II ,但傳送者會先用 MD5 將資料產生 fingerprint 並傳送給接收者,接收只就可以依據此一 fingerprint 來判斷資料是否遭到修改.
    DSA (Digital Signature Algorithm) 使用 Detached Signatures(數字簽證演算法),用作數字簽證標準的一部分)這種方式只能用於數字簽證,無法用在加密中,DSA 採用的 One Way Hash 為 SHA.
     
    簡易的數位簽章方式如下
    甲為傳送端:

    1. 甲準備好要傳送的數字信息(明文)。
    2. 甲對數字信息進行哈希(hash)運算,得到一個信息摘要。
    3. 甲用自己的私鑰(PK)對信息摘要進行加密得到甲的數字簽名,並將其附在數字信息上。

    乙為接收端:

    1. 乙用甲的公鑰(PK)對甲的數字簽名進行解密,得到信息摘要。
    2. 乙用相同的 hash 算法對收到的明文再進行一次 hash 運算,得到一個新的信息摘要。
    3. 乙將收到的信息摘要和新產生的信息摘要進行比較,如果一致,說明收到的信息沒有被修改過。

    而完整的數位簽證(Digital Signatures) 的應用方式如下
     
    現有持証人甲向持証人乙傳送數字信息,為了保証信息傳送的真實性、完整性和不可否認性,需要對要傳送的信息進行數字加密和數字簽名,其傳送過程如下:

    1. 甲準備好要傳送的數字信息(明文)。
    2. 甲對數字信息進行哈希(hash)運算,得到一個信息摘要。
    3. 甲用自己的私鑰(PK)對信息摘要進行加密得到甲的數字簽名,並將其附在數字信息上。
    4. 甲隨機產生一個加密密鑰(DES密鑰),並用此密鑰對要發送的信息進行加密,形成密文。
    5. 甲用乙的公鑰(PK)對剛才隨機產生的加密密鑰進行加密,將加密的DES密鑰連同密文一起傳送給乙。
    6. 乙收到甲傳送過來的密文和加過密的DES密鑰,先用自己的私鑰(SK)對加密的DES密鑰進行解密,得到DES密鑰。
    7. 乙然用DES密鑰對收到的密文進行解密,得到明文的數字信息,然將DES密鑰拋棄(即DES密鑰作廢)。
    8. 乙用甲的公鑰(PK)對甲的數字簽名進行解密,得到信息摘要。
    9. 乙用相同的hash算法對收到的明文再進行一次hash運算,得到一個新的信息摘要。
    10. 乙將收到的信息摘要和新產生的信息摘要進行比較,如果一致,說明收到的信息沒有被修改過。

    但這種方式缺少公正性,很容易被第三者在中間假冒,所以需要公正的第三者來處理,這就是下面要說的 CA.

CA(Certification Authority)

憑證主要是用由三項東西組成的,如下

  • 第一部分是要申請的憑證內容
  • 第二部分是 Public Key
  • 第三部分將剛才的內容(第一二部分)經過 on way hash(如:MD5 , SHA1..)再用他 Root CA 的 Private Key 加密所到的訊息摘要 (Digest Hash) . 這可確定在傳送過程資料不會遭到修改.

關於 CA 請參考 CA(Certificate Authority)

6 個網友的想法 “PKI

  1. 自動參照通知: 安全性 | Benjr.tw

  2. 自動參照通知: RHEL 5 – VPN | Benjr.tw

  3. 自動參照通知: WSCP – windows Secure copy | Benjr.tw

  4. 自動參照通知: Amazon 雲端服務(二) – EC2 | Benjr.tw

  5. 自動參照通知: PAM-初解 | Benjr.tw

  6. 自動參照通知: SSL | Benjr.tw

發表迴響