給未來的裕翔
先很快講一下md5sum
對任意檔案md5sum filename可以跑出一串固定長度的亂碼
這就是one-way hase
非加密, 只是拿來驗證用
接著介紹symmetric加密
symmetric的意思就是加密解密都用同一把key
那問題來了, 怎麼安全的把key傳給對方
萬一中間被誰拿到這把key
不就誰都可以解我加密過的東西了?
於是產生了asymmetric加密
asymmetric加密就是產生兩把key, private key和public key
用其中任一把解另一把加密的資料
舉例來說, 現在有兩個角色, client和server
當client對server請求https服務時
server會產生private key和public key, 簡稱server-pri & server-pub
server接著傳server-pub給client
然後client自己有把session key
利用server-pub把自己的session-key加密變成server-pub(session-key)
傳給server後, server利用server-pri解server-pub(session-key)
這樣依然有個問題
一開始client怎麼知道它請求服務的對象, 就是真正的server?
於是我們需要公正的第三方, CA
有了CA之後, 真正的sever為了要請公正的CA證明自己是真的server
填一張CSR(Certificate Service Request)給CA
裡面包含
1. Server info
2. Server pub
加上CA自己的
3. CA info
4. Expiration
然後CA對這四個資訊進行onw-way hash得到一個叫fingerprint的東東
利用CA自己的private key, 簡稱CA-pri, 來對它加密成CA-pri(fingerprint)
剛才的四個資訊+CA-pri(fingerprint)合稱D.C.(digital certificate)
回傳給server
之後, 如果有client跟server請求https服務
server就回傳給它一個D.C.(數位憑證)
那client對D.C.裡面的四個資訊進行one-way hash得到自己算的fingerprint
再使用隨處可得的CA的public key, 簡稱CA-pub
來解D.C.裡面的CA-pri(fingerprint)
比較兩個fingerprint
如果一樣, 就表示"server不但自稱就是我要找的它, CA也說就是它"
這樣就可以相信"我要找的它"
以上, 上課聽了兩次, 這次終於把它記下來了^^
屁了一堆, 接著講解怎麼操作
由於跟真的CA申請憑證要錢的, 不過就是承認我嘛......
所以我要自己當CA
到/etc/pki/tls/misc, 裡面有個叫CA的script
首先, 我要扮演server的角色, 跟CA申請一個CSR(certificate service request)
./CA -newreq
自己填需要的資料吧~ 中間會需要建server的passphrase, 要給(理由我忘了)
會產生newkey.pem(server的private key)
和newreq.pem(含有1. Server info, 2. Server pub)
我要為自己建立一個偽CA公司^^
./CA -newca
照舊, 自己填需要的資料, 這也需要建一個CA的passphrase
搞定後, 會多出一個/etc/pki/CA資料夾, 這就是我的偽CA公司^^
再來, 身為一個CA公司, 我當然要同意server跟我申請的CSR囉
操作位置依然是在/etc/pki/tls/misc
./CA -sign
它會對newreq.pem產生newcert.pem, 這就是D.C.(數位憑證)了
目前先到這裡, 因為老師也只講到這裡
註記: 老師說只要扯到private key就需要一個passphrase
註記: 一定要./CA -xxx, 不能/etc/pki/tls/misc/CA -xxx
因為CA script裡面用到很多相對位置
根據執行CA script所在位置的相對位置, 所以預設是在/etc/pki/tls/misc/底下執行
那我們就別耍酷/etc/pki/tls/misc/CA -xxx
報告完畢, 未來的裕翔一定會很感謝我^^
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment