證書鏈-Digital Certificates

基礎(chǔ)知識

在介紹證書鏈之前,需要首先了解一下非對稱加密以及電子證書相關(guān)的基礎(chǔ)概念节预。關(guān)于這部分仅财,我也一直有些困惑狈究,直到看了阮一峰老師的博客,才對證書有個比較清晰的認(rèn)知盏求。參考:http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html

看完阮老師的博客抖锥,一定對道格冒充鮑勃,然后將自己的公鑰發(fā)送給蘇珊那部分很困惑碎罚。后面就對這部分知識展開說一下磅废。

證書 & CA

證書

首先,我們看看在wikipedia上對證書的定義荆烈,In cryptography, a public key certificate (also known as a digital certificate or identity certificate) is an electronic document used to prove ownership of a public key.拯勉。可以這么說憔购,證書是用來認(rèn)證公鑰持有者的身份的電子文檔宫峦,防止第三方進行冒充。一個證書中包含了公鑰玫鸟、持有者信息导绷、證明證書內(nèi)容有效的簽名以及證書有效期,還有一些其他額外信息鞋邑。

CA

我們用證書來認(rèn)證公鑰持有者的身份诵次,那證書是怎么來的呢?又該怎么認(rèn)證證書呢枚碗?這涉及到一個稱之為PKI(Public key certificate)的規(guī)范體系逾一,包含了數(shù)字證書,公鑰管理以及驗證等技術(shù)肮雨,詳細可以參考:https://en.wikipedia.org/wiki/Public_key_certificate 遵堵,我們這里只是簡單介紹一下概念。在阮老師的文章中怨规,提到證書要由證書中心(Certificate authority陌宿,簡稱CA)簽發(fā)的,同樣參考Wikipedia上的概念波丰,In cryptography, a certificate authority or certification authority (CA) is an entity that issues digital certificates. (https://en.wikipedia.org/wiki/Certificate_authority) 壳坪,簡單來說,CA就是簽發(fā)電子證書的實體掰烟。

Signing & Verification

證書的簽發(fā)(Signing)和認(rèn)證(Verification)的過程:

DF5C6075-E8BE-4E8E-99A5-97C9ADC8C7B7.png

這兩個過程也是基于公鑰與私鑰的爽蝴,簽發(fā)和認(rèn)證的過程跟傳輸信息過程中的加密解密過程非常類似沐批。簽名密文(Signature)是一個重要憑證,Signature與簽發(fā)人的公鑰一同傳輸蝎亚,可以避免中間人在獲取證書時對證書內(nèi)容的篡改九孩。參考:http://blog.torchz.net/security/2014/12/23/security-ca-chain-of-trust.html

簽發(fā)證書的步驟

  1. Signing階段发框,首先撰寫證書的元信息:簽發(fā)人(Issuer)躺彬、地址、簽發(fā)時間梅惯、過期失效等宪拥;當(dāng)然,這些信息中還包含證書持有者(owner)的基本信息个唧,例如owner的DN(DNS Name江解,即證書生效的域名),owner的公鑰等基本信息徙歼。
  2. 通過通用的Hash算法將信息摘要提取出來犁河;
  3. Hash摘要通過Issuer(CA)私鑰進行非對稱加密,生成一個簽名密文魄梯;
  4. 將簽名密文attach到文件證書上桨螺,使之變成一個簽名過的證書。

驗證證書的步驟

  1. Verification階段酿秸,瀏覽器獲得之前簽發(fā)的證書灭翔;
  2. 將其解壓后分別獲得“元數(shù)據(jù)”和“簽名密文”;
  3. 將同樣的Hash算法應(yīng)用到“元數(shù)據(jù)”獲取摘要辣苏;
  4. 將密文通過Issuer(CA)的公鑰(非對稱算法争群,私鑰加密印机,公鑰解密)解密獲得同樣的摘要值饲梭。
  5. 比對兩個摘要苛白,如果匹配,則說明這個證書是被CA驗證過合法證書退客,里面的公鑰等信息是可信的骏融。

在Verification階段,解密Signature獲得摘要需要通過簽發(fā)者(Issuer)的公鑰萌狂,又該如何獲得這個公鑰档玻,同時確保這個公鑰是有效的呢?就是下面的證書鏈的內(nèi)容

證書鏈

實例

在Chrome上任意打開一個支持HTTPS的網(wǎng)站茫藏,例如 https://www.baidu.com/ 误趴,我們會發(fā)現(xiàn)在地址欄的左側(cè)有個綠色的小鎖,點擊這個小鎖务傲,然后就可以查看這個網(wǎng)站的證書信息冤留。打開baidu碧囊,查看證書信息如下:

Screen Shot 2016-02-23 at 4.04.05 PM.png

我們繼續(xù)探究baidu使用的HTTPS證書,除了HTTPS使用的 baidu.com 證書纤怒,向上還有兩級證書,證書有3類:

  1. end-user :baidu.com 包含用來加密傳輸數(shù)據(jù)的公鑰的證書天通,是HTTPS中使用的證書
  2. intermediates:CA用來認(rèn)證公鑰持有者身份的證書泊窘,即確認(rèn)HTTPS使用的end-user證書是屬于baidu.com的證書。這類intermediates證書甚至可以有很多級像寒。
  3. root:用來認(rèn)證intermediates證書是合法證書的證書烘豹。

簡單來說,end-user證書上面幾級證書都是為了保證end-user證書未被篡改诺祸,保證是CA簽發(fā)的合法證書携悯,進而保證end-user證書中的公鑰未被篡改。

證書鏈

CA組織

除了end-user之外筷笨,證書被分為root Certificates和intermediates Certificates憔鬼。相應(yīng)地,CA也分了兩種類型:root CAs 和 intermediates CAs胃夏。首先轴或,CA的組織結(jié)構(gòu)是一個樹結(jié)構(gòu),一個root CAs下面包含多個intermediates CAs仰禀,而intermediates又可以包含多個intermediates CAs照雁。root CAs 和 intermediates CAs都可以頒發(fā)證書給用戶,頒發(fā)的證書分別是root Certificates和intermediates Certificates答恶,最終用戶用來認(rèn)證公鑰的證書則被稱為end-user Certificates饺蚊。

Screen Shot 2016-05-06 at 6.15.06 PM.png

end-user certificates & intermediates certificates

我們使用end-user certificates來確保加密傳輸數(shù)據(jù)的公鑰(public key)不被篡改,而又如何確保end-user certificates的合法性呢悬嗓?這個認(rèn)證過程跟公鑰的認(rèn)證過程類似污呼,首先獲取頒布end-user certificates的CA的證書,然后驗證end-user certificates的signature烫扼。一般來說曙求,root CAs不會直接頒布end-user certificates的,而是授權(quán)給多個二級CA映企,而二級CA又可以授權(quán)給多個三級CA悟狱,這些中間的CA就是intermediates CAs,它們才會頒布end-user certificates堰氓。

但是intermediates certificates的可靠性又如何保證呢挤渐?這就是涉及到證書鏈,Certificate Chain 双絮,鏈?zhǔn)较蛏向炞C證書浴麻,直到Root Certificates得问,如下圖:

AF142477-662D-4314-89EF-FD0AF5D6C2F7.png

root certificates

那Root Certificates又是如何來的呢?根據(jù) https://support.dnsimple.com/articles/what-is-ssl-certificate-chain/ 這篇文章的說法软免,除了可以下載安裝之外宫纬,device(例如瀏覽器,操作系統(tǒng))都會內(nèi)置一些root certificates膏萧,稱之為trusted root certificates漓骚,https://support.apple.com/en-us/HT202858 ,在Apple的官網(wǎng)上可以看到這個列表榛泛,有各個操作版本直接內(nèi)置的Root Certificates蝌蹂。

最后一個問題,為什么需要證書鏈這么麻煩的流程曹锨?Root CA為什么不直接版本證書孤个,而是要搞那么多中間層級呢?找了一下沛简,godaddy官方給了一個答案齐鲤,為了確保root certificates的絕對安全性,https://sg.godaddy.com/en/help/what-is-an-intermediate-certificate-868 覆享,將根證書隔離地越嚴(yán)格越好佳遂。

其他

了解了這個證書體系之后,才明白為什么百度/google這種公司也需要向第三方購買簽名證書了撒顿,自簽root證書推廣起來非常困難丑罪,這也導(dǎo)致目前的證書市場基本上被 Symantec(VeriSign/GeoTrust) / Comodo / GoDaddy 壟斷。百度使用的是Versign凤壁,google使用的是GeoTrust吩屹。目前HTTPS的推廣已經(jīng)不可避免,也已經(jīng)有一些公益組織開始提供免費拧抖、自動化煤搜、開放的證書簽發(fā)服務(wù),例如:Let's Encrypt 唧席。詳細使用可以參考奇舞周刊的這篇文章擦盾,Let's Encrypt,免費好用的 HTTPS 證書 淌哟。

最后迹卢,對于Mac中各種各樣的證書,可以通過Keychain Access來管理查看徒仓。在Keychain Access對某個證書執(zhí)行Evaluate腐碱,就能得到證書鏈信息,如下:

Screen Shot 2016-05-06 at 5.16.02 PM.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末掉弛,一起剝皮案震驚了整個濱河市症见,隨后出現(xiàn)的幾起案子喂走,更是在濱河造成了極大的恐慌,老刑警劉巖谋作,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件芋肠,死亡現(xiàn)場離奇詭異,居然都是意外死亡遵蚜,警方通過查閱死者的電腦和手機业栅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谬晕,“玉大人,你說我怎么就攤上這事携取≡芮” “怎么了?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵雷滋,是天一觀的道長不撑。 經(jīng)常有香客問我,道長晤斩,這世上最難降的妖魔是什么焕檬? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮澳泵,結(jié)果婚禮上实愚,老公的妹妹穿的比我還像新娘。我一直安慰自己兔辅,他們只是感情好腊敲,可當(dāng)我...
    茶點故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著维苔,像睡著了一般碰辅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上介时,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天没宾,我揣著相機與錄音,去河邊找鬼沸柔。 笑死循衰,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的勉失。 我是一名探鬼主播羹蚣,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼乱凿!你這毒婦竟也來了顽素?” 一聲冷哼從身側(cè)響起咽弦,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎胁出,沒想到半個月后型型,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡全蝶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年闹蒜,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片抑淫。...
    茶點故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡绷落,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出始苇,到底是詐尸還是另有隱情砌烁,我是刑警寧澤,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布催式,位于F島的核電站函喉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏荣月。R本人自食惡果不足惜管呵,卻給世界環(huán)境...
    茶點故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望哺窄。 院中可真熱鬧捐下,春花似錦、人聲如沸堂氯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽咽白。三九已至啤握,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間晶框,已是汗流浹背排抬。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留授段,地道東北人蹲蒲。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像侵贵,于是被迫代替她去往敵國和親届搁。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內(nèi)容