前文我們了解了隧道技術GRE VPN相關技術,回顧請參考https://www.cnblogs.com/qiuhom-1874/p/16538625.html;今天來聊一聊有關加密和相關安全的東西;
我們知道GRE VPN最大的缺點就是它不加密,這意味著我們走GRE隧道的資料在互聯網上都是明文的,這很不安全;那什么是加密呢?
加密技術簡介

明文:所謂明文就是指需要被隱蔽的訊息;即我們在互聯網上傳輸的原始資料;
密文:密文是指把明文變換形成的隱蔽形式;即明文通過演算法加密后形成的訊息;
加密:加密是指把明文轉化成密文的程序;
解密:解密是指把密文還原成明文的程序;
密鑰:密鑰是指在加密或解密的演算法中輸入的引數;
加密演算法總的分兩大類,對稱加密演算法和非對稱加密演算法;
對稱加密

提示:對稱加密演算法最大的特點就是加密和解密使用的都是相同密鑰;這意味著只要有人獲取了密鑰對應密文就能被解開;這種加密的方式優點是速度快,密文緊湊;所謂密文緊湊是指形成的密文和明文大小相差無幾;缺點是管理密鑰復雜;適合用于大量資料的加密傳送;

提示:如上圖所示,A和B通信,首先要實作協商出用于加解密的密鑰來,然后才可正常通信;因為加密和解密都是用的同一密鑰;這樣一來對稱加密保存密碼會很多,如果需要和100個人同時發送訊息,那么在本端就需要100個密鑰;
常用的對稱加密演算法

提示:推薦使用AES;
非對稱加密

提示:非對稱加密的特點是加密、解密使用的不同密鑰(分別是公鑰和私鑰);公鑰和私鑰是成對出現,加解密規則是公鑰加密私鑰解密,私鑰加密公鑰解密;這種非對稱加密的缺點是加解密速度很慢,密文不緊湊(即加密后的檔案相對源檔案要大);優點的密鑰管理起來簡單;適合用于數字簽名;

提示:如上圖所示,A和B通信,首先他倆會生成各自的公鑰和私鑰,然后各自交換公鑰(交換公鑰對程序后面聊);A和B都有對方的公鑰后,A發給B的資訊會用B的公鑰來加密,同理B發給A的資訊會用A的公鑰來加密,然后發送給對方,對方收到密文后,用自己的私鑰來解密,從而拿到對方發送的原始資料,完成加密通信的目的;這種加解密的方式管理密鑰就很簡單,只需要各自管理好自己的私鑰就好,想要和誰通信把公鑰發送給對方即可;相比對稱加密的方式要簡單太多;
常用的非對稱加密演算法

對稱加密和非對稱加密結合
通過上述我們了解了對稱加密和非對稱加密的優缺點以及加解密程序,不管是對稱加密還是非對稱加密都有對應的缺點,那我們把兩種方式結合起來是不是會彌補一些缺點呢?在實際使用中,通信雙方通常會使用公鑰密碼學來交換密鑰素材,雙方最終計算出密鑰,然后用對稱密碼學來加密實際的資料,兩者配合使用就保證了加密速度和安全性;

提示:AB雙方通過交換公鑰來確認對方的身份,然后拿對方的公鑰來加密發送用什么演算法,長度,等等密鑰素材,然后對方收到密鑰素材后,然后算出一個密碼來(這個密碼用于對稱加密的密鑰,當然協商程序是雙方都會把自己支持的加密演算法、程度等等條件發送給對方,然后根據對方發送到密鑰素材來選擇適當的演算法、長度等密鑰素材計算出一個密鑰來,然后發送給對方);對方收到密鑰后,然后拿這個密鑰先用對稱加密演算法將要發送的資訊加密,得到的密文,然后發送給對方;對方收到密文后用剛才計算出來的密鑰解密,拿到對方發送的原始資料;簡單講就是通過公鑰來加密發送密鑰素材,計算出對稱加密的密鑰,然后再根據這個密鑰來加解密明文,從而完成加密通信;
什么是PKI?PKI是Pubilc key infrastructure的縮寫,公鑰基礎架構;通過公鑰技術與數字證書保證資訊安全的體系;該體系主要由公鑰加密技術、數字證書、CA、RA等共同組成;該體系能夠實作資訊的機密性、完整性和身份驗證,不可否認性;
上述的對稱加密和非對稱加密的結合只是完成了PKI體系中的機密性,接下來我們來了完整性;
公鑰加密技術
非對稱加密也叫公鑰加密,是pki的基礎;
公鑰加密的特點
1、公鑰和私鑰是成對生成,互不相同,可以相互加解密;
2、根據一個密鑰無法推算出另一個密鑰;
3、公鑰公開,私鑰保密(只有自己才知道)
公鑰加密技術根據實作的功能不同,可以分為資料加密和數字簽名;所謂資料加密就是我們上面聊的發送方使用接收方的公鑰加密資料;接收方使用自己的私鑰來解密資料,資料加密主要保證了資料的機密性;數字簽名(Digital Signature),發送方使用私鑰對資訊摘要資訊進行加密的一個程序,程序中所得到的密文及稱為簽名資訊;發送方將簽名資訊與原始資料發送給接收方;接收方對原始資料進行摘要計算,得出的值和簽名資訊對比,保證資料的完整性、身份驗證和不可否認性;
資訊摘要
什么是資訊摘要?
資訊摘要又名單向散列函式,哈希(hash),主要作用是給予任意大小的資料,得出一個固定長度的值,類似人的指紋、DNA;該技術有一個份額特點是不可逆、具有雪崩效應;所謂雪崩效應是指只要有細微的改變都會影響哈希后的結果(結果差異非常大);主要用于驗證資料是否被篡改,校驗資料的完整性;

提示:如上圖所示發送方給接收方發送一份檔案,接收方怎么知道發送方發送的檔案和自己接受的檔案內容是否相同呢?是否沒有被篡改呢?此時發送方會公布發送的檔案的hash,然后接收方收到檔案后,對檔案做hash得到的字串和發送方公布的hash值相同,那么就說明接收方收到的檔案沒有被篡改;反之接收方接收到檔案和發送發送的檔案不一樣;
常用的資訊摘要演算法

數字簽名流程

提示:數字簽名就是發送方將要發送的明文通過資訊摘要演算法將對應檔案的資訊摘要提取出來,然后再用自己的私鑰將其加密就形成了數字簽名;發送方發送原始明文時會將數字證書一起發送給對方,對方收到A發送到密文,會用A的公鑰解密,然后拿到明文資訊和摘要資訊,然后接收方用相同的摘要演算法對明文進行摘要資訊提取,然后和A發送到摘要資訊進行對比,如果一樣,則說明對應明文是完整的,同時也說明該資訊是A發送的,驗證的對方的身份和不可否認性(只有A的公鑰可以解開A的私鑰加密后的資訊);
公鑰技術的規模應用難題
如何解決公鑰對傳播問題?我們怎么將自己的公鑰告訴別人呢?我們拿到一個公鑰怎么來驗證其真實性呢?我們怎么知道拿到對方的公鑰就一定是我們通信的對方呢?會不會是存在中間人呢?
由于上述的種種問題,證書由此誕生;證書主要用于保證密鑰的合法性;證書的主體可以使用戶、計算機、服務等;證書格式遵循x509;證書包含了使用者的公鑰值;使用者的表示資訊;有效期;頒發者的標識資訊和頒發者的數字簽名資訊;數字證書由權威公正的第三方機構即CA簽發;
CA的作用
CA是Certificate Authority的縮寫,證書頒發機構;它的核心功能就是頒發和管理數字證書;除此之外,它還處理證書申請,發放證書,更新證書,接收最終用戶數字證書的查詢、撤銷;產生和發布數字證書吊銷串列(CRL);數字證書歸檔;如果把證書類比身份證,那么CA就是公安局;
證書頒發程序

提示:首先由用戶想RA提出證書申請,RA確認用戶的資訊等;然后由RA提交申請資訊到CA;CA將頒發的證書發送給RA,RA將證書傳給用戶;這個流程很簡單和我們辦理身份證類似;我們在派出所照完身份證,然后有派出所將資訊傳到公安局,最后身份證送到派出所,然后我們到派出所領取;有關Linux搭建CA的教程可以參考https://www.cnblogs.com/qiuhom-1874/p/12237944.html;
PKI協議
SSL:Secure Sockets Layer,安全套接層,主要用于認證用戶和服務器,確保資料發送到正確的客戶機和服務器;加密資料防止資料中途被竊取;維護資料的完整性,確保資料在傳輸程序中不被改變;
HTTPS:Hypertext Transfer Protocol Secure,使用SSL來實作的http;
IPSec:Internet Protocol Security,目前主流的VNP解決方案;
作者:Linux-1874 出處:https://www.cnblogs.com/qiuhom-1874/ 本文著作權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利.轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/501731.html
標籤:其他
