在現代社會,互聯網已經滲透到人們平常生活的方方面面,娛樂、經濟、社會關係等都離不開互聯網的幫助。在這個背景下,互聯網安全就顯得十分重要,沒有提供足夠的安全保障,人們是不會如此依賴它的。幸運的是,在大牛們的努力下,很早之前就有一套安全體系來保障互聯網信息的傳遞。下面咱們一塊兒來了解一下這套體系。html
首先咱們須要瞭解一下加密相關的知識,加密能夠分爲對稱加密和非對稱加密。二者的主要區別就是是否使用同一個祕鑰,對稱加密須要用同一個祕鑰。非對稱加密不須要用同一個祕鑰,而是須要兩個祕鑰:公開密鑰(publickey)和私有密鑰(privatekey),而且加密密鑰和解密密鑰是成對出現的。git
對稱加密算法的特色是算法公開、計算量小、加密速度快、加密效率高。對稱加密有不少種算法,因爲它效率很高,因此被普遍使用在不少加密協議的核心當中。不足之處是,交易雙方都使用一樣鑰匙,安全性得不到保證。常見的對稱加密有 DES、AES 等。web
非對稱加密使用一對「私鑰-公鑰」,用私鑰加密的內容只有對應公鑰才能解開,反之亦然。非對稱加密有如下特性:算法
非對稱加密不須要共享同一份祕鑰,安全性要比對稱加密高,但因爲算法強度比對稱加密複雜,加解密的速度比對稱加解密的速度要慢。常見的非對稱加密有 RSA、ESA、ECC 等。apache
除了加密算法,摘要算法在互聯網安全體系中也扮演了重要的角色。摘要算法有如下特性:瀏覽器
基於以上特性,咱們通常使用摘要算法來校驗原始內容是否被篡改。常見的摘要算法有 MD五、SHA 等。安全
Tips: 摘要算法不能算做加密算法,加密算法須要使用祕鑰加解密,但摘要算法沒法根據結果反推出內容。另外 MD5 目前也不算安全了,例如彩虹表攻擊。服務器
假設甲公司要給乙公司發送一份機密的文件,那麼此次傳輸須要確保如下幾點:網絡
對稱加密須要用同一份祕鑰,這一份祕鑰的約定就有被中途截獲的可能。所以能夠採用非對稱加密算法加密對稱祕鑰的方式來加密內容,也就是用乙的公鑰加密對稱祕鑰,並用這個對稱祕鑰加密文件內容。socket
假設這份文件被黑客截獲,可是黑客沒有乙的私鑰沒法解出對稱祕鑰,也就沒法解密文件內容。可是這裏有個風險,雖然黑客沒法解密文件內容,但他能夠本身生成一份祕鑰並用乙的公鑰加密,再用這份祕鑰加密一份僞造的文件發給乙,這種狀況下乙收到的就是被篡改的文件。
上面提到乙有可能收到被篡改的文件,這個問題能夠用數字簽名的方式解決,數字簽名就是用摘要算法提取出源文件的摘要並用私鑰進行加密後的內容。針對上面那個問題,甲在發送文件時再附帶上源文件的數字簽名。若是被黑客截取到加密後的文件和數字簽名,黑客即便使用甲的公鑰解出了文件摘要,因爲摘要算法的特性黑客也沒法還原出原始內容。但乙能夠解密出文件內容再用一樣的摘要算法提取出摘要來和數字簽名裏的摘要進行比對,摘要一致則說明文件沒有被篡改過。
到目前爲止還有一個風險就是乙沒法肯定本身用的公鑰就是甲提供的,若是黑客乙手裏的甲的公鑰替換成本身的並用本身的私鑰生成數字簽名,那麼乙仍是會受到被篡改的文件。
數字證書的出現就是爲了解決上述提到的問題,數字證書是一個經證書受權中心數字簽名的包含公開密鑰擁有者信息以及公開密鑰的文件。
數字證書裏通常會包含公鑰、公鑰擁有者名稱、CA 的數字簽名、有效期、受權中心名稱、證書序列號等信息。
數字證書如何確保列出的用戶就是公鑰的擁有者呢?關鍵點是 CA 的數字簽名,CA會用本身的私鑰將證書內容的摘要進行加密。由於 CA 的公鑰是公開的,任何人均可以用公鑰解密出 CA 的數字簽名的摘要,再用一樣的摘要算法提取出證書的摘要和解密 CA 數字簽名後的摘要比對,一致則說明這個證書沒有被篡改過,能夠信任。
PKI(Public Key Infrastructure)翻譯過來就是公鑰基礎設施,能夠理解爲利用公鑰技術爲網絡應用提供加密和數字簽名等密碼服務以及必需的密鑰和證書管理體系。它是一個提供安全服務的基礎設施,PKI 技術是信息安全技術的核心,同時也是電子商務的關鍵和基礎技術。
PKI 既不是一個協議,也不是一個軟件,它是一個標準,在這個標準之下發展出的爲了實現安全基礎服務目的的技術統稱爲 PKI。
PKI是一個標準,它包括一些基本的組件,不一樣的組件提供不一樣的服務,主要由一下幾個組件組成:
數字簽名和數字證書是兩個不一樣的概念,理解的關鍵點是數字簽名是內容提供方用本身的私鑰對內容摘要(MD五、SHA)非對稱加密,而數字證書的關鍵是 CA 用本身的私鑰對證書內容的摘要非對稱加密從而確保證書內的用戶合法擁有證書裏列出的公鑰。
理解了這兩個概念後再回頭去看前面例子裏的流程就很清楚了,後面有空再說明下 https 祕鑰協商的過程~
轉載請註明出處,有任何疑問均可聯繫我,歡迎探討。
www.enkichen.com/2016/04/12/…
my.oschina.net/dyyweb/blog…
www.ruanyifeng.com/blog/2011/0…
最後作個推廣,歡迎關注公衆號 MrPeakTech,我從這裏學到不少,推薦給你們,共同進步~