說得直白點(diǎn),數(shù)字證書(Digital Certificate)即通過對通信雙方(比如瀏覽器和服務(wù)器)之間傳輸?shù)臄?shù)據(jù)進(jìn)行加密以達(dá)到安全通信的目的。除了加密功能外,數(shù)字證書還用于身份認(rèn)證,即數(shù)字證書就像是居民身份證一樣,能夠向別人證明“你確是你”。
一點(diǎn)點(diǎn)理論基礎(chǔ)
我們都知道,HTTP協(xié)議對數(shù)據(jù)采用明文傳輸,瀏覽器和服務(wù)器之間的所有數(shù)據(jù)傳輸都赤裸裸地暴露在互聯(lián)網(wǎng)上,包括你在登陸某個網(wǎng)站時輸入的密碼。為了解決這個問題,前人發(fā)明了對數(shù)據(jù)進(jìn)行加密傳輸?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進(jìn)行傳輸,比如FTP。只是就當(dāng)前而言,SSL/TLS最為廣泛的應(yīng)用在于HTTPS。
在計算機(jī)密碼學(xué)里,存在著對稱加密和非對稱加密兩種加密方式,對稱加密即通信雙方均使用相同的密鑰,如果Alice要將密文發(fā)給Bob,那么她首先需要將密鑰發(fā)給Bob,那么問題來了——密鑰又通過什么方式能夠安全地發(fā)給Bob?為了解決這個問題,出現(xiàn)了非對稱加密算法,即加密采用一個密鑰,解密采用另一個密鑰,兩個密鑰組成一個密鑰對,由一個密鑰加密的數(shù)據(jù)只能由密鑰對中另一個密鑰才能解密,最典型的非對稱加密算法非RSA莫屬。RSA是目前最有影響力的公鑰加密算法,該算法基于一個十分簡單的數(shù)論事實:將兩個大素數(shù)相乘十分容易,但那時想要對其乘積進(jìn)行因式分解卻極其困難,因此可以將乘積公開作為加密密鑰,即公鑰(Public Key),而兩個大素數(shù)組合成私鑰(Private Key)。公鑰是可發(fā)布的供任何人使用,私鑰則為自己所有,供解密之用。SSL/TLS便使用了非對稱加密。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26