說得直白點,數(shù)字證書(Digital Certificate)即通過對通信雙方(比如瀏覽器和服務(wù)器)之間傳輸?shù)臄?shù)據(jù)進行加密以達到安全通信的目的。除了加密功能外,數(shù)字證書還用于身份認證,即數(shù)字證書就像是居民身份證一樣,能夠向別人證明“你確是你”。

一點點理論基礎(chǔ)

我們都知道,HTTP協(xié)議對數(shù)據(jù)采用明文傳輸,瀏覽器和服務(wù)器之間的所有數(shù)據(jù)傳輸都赤裸裸地暴露在互聯(lián)網(wǎng)上,包括你在登陸某個網(wǎng)站時輸入的密碼。為了解決這個問題,前人發(fā)明了對數(shù)據(jù)進行加密傳輸?shù)腍TTPS協(xié)議,該協(xié)議又建立在SSL/TLS協(xié)議之上。SSL/TLS位于HTTPS與TCP協(xié)議之間,是實現(xiàn)數(shù)據(jù)加密的核心協(xié)議,其本質(zhì)上講是對TCP協(xié)議的一層封裝。由此可見,SSL/TLS其實不止可以用于HTTP,任何采用TCP協(xié)議的數(shù)據(jù)通信都可以采用SSL/TLS進行傳輸,比如FTP。只是就當(dāng)前而言,SSL/TLS最為廣泛的應(yīng)用在于HTTPS。

在計算機密碼學(xué)里,存在著對稱加密和非對稱加密兩種加密方式,對稱加密即通信雙方均使用相同的密鑰,如果Alice要將密文發(fā)給Bob,那么她首先需要將密鑰發(fā)給Bob,那么問題來了——密鑰又通過什么方式能夠安全地發(fā)給Bob?為了解決這個問題,出現(xiàn)了非對稱加密算法,即加密采用一個密鑰,解密采用另一個密鑰,兩個密鑰組成一個密鑰對,由一個密鑰加密的數(shù)據(jù)只能由密鑰對中另一個密鑰才能解密,最典型的非對稱加密算法非RSA莫屬。RSA是目前最有影響力的公鑰加密算法,該算法基于一個十分簡單的數(shù)論事實:將兩個大素數(shù)相乘十分容易,但那時想要對其乘積進行因式分解卻極其困難,因此可以將乘積公開作為加密密鑰,即公鑰(Public Key),而兩個大素數(shù)組合成私鑰(Private Key)。公鑰是可發(fā)布的供任何人使用,私鑰則為自己所有,供解密之用。SSL/TLS便使用了非對稱加密。

網(wǎng)友評論