1. 程式人生 > >系統安全之數據的加密和解密、CA的介紹、SSL或TLS協議簡介及握手過程

系統安全之數據的加密和解密、CA的介紹、SSL或TLS協議簡介及握手過程

網絡運維

網絡通信需要安全
所謂的網絡通信就是進程與進程之間的通信
然而進程的通信一般可以分成兩類:1、同一主機之間的進程通信
2、不同主機之間的進程通信

同一主機之間的通信有這些:管道、命名管道、消息隊列、信號量、共享內核

管道:用於有親緣關系(附屬關系、父子關系等)的進程間通信

命名管道:以用於無關進程之間的數據交換

消息隊列:存放在內核中的消息的鏈接表,由QID進行標識

信號量:是一個計數器;用於實現進程間的互斥與同步

共享內核:指兩個及以上的進程或線程共享一個給定的內存存儲區域

不同主機之間的通信有這些:套接字,Socket,IP:PORT,進程地址標識,即:一個套接字就是指某個特定主機上的特定應用程序;
套接字又可以分為3種:1、流套接字
2、數據報套接字
3、原始套接字


流套接字:ocket_Stream,基於TCP協議通信的套接字


數據報套接字:Socket_Dgram,基於UDP協議通信的套接字


原始套接字:裸套接字,Socket_Raw,基於更底層的協議(如:IP)通信的套接字;


安全實現的目標:
機密性:confidenciality,保證數據信息不泄露;
完整性:integrity,保證數據信息不被篡改;
可用性:availability,保證數據信息的內在價值;

威脅安全的行為:
威脅機密性的攻擊行為:竊聽,嗅探,通信量分析;
威脅完整性的攻擊行為:篡改,偽裝,重放,否認;
威脅可用性的攻擊行為:拒絕服務(DoS),分布式拒絕服務(DDoS);



安全解決方案:技術與服務
技術:加密和解密

加密和解密有兩種方法:1、傳統的:置換加密、替換加密

2、現代的:塊加密


服務: 用於抵禦攻擊而提供的為了實現上述安全目標而特別設計的安全服務;
1、 身份認證;
2、訪問控制;

加密方案:
因素:1、加密算法和協議;
2、加密密鑰


加密算法和協議有:1、對稱加密算法:加密和解密使用同一密鑰

2、公鑰加密算法(非對稱加密算法):

3、單向加密算法(Hash加密算法,數據指紋算法);

4、認證協議;


加密算法的應用:
1.通信雙方互相交換各自的證書,並到信任的CA進行證書有效性認證;
2.如果證書認證有有效,發送方使用某種協商好的對稱加密算法進行數據加密;對加密後的數據進行特征值抽取;再用自己的私鑰加密抽取出來的特征值,以證明數據來源可靠性;發送方利用接收方的公鑰加密對稱加密算法的密鑰;
3.接收方在收到數據報文之後,先用自己的私鑰解密對稱加密算法的密鑰;然後用發送方的公鑰解密被加密的特征值,以證明數據來源可靠;再利用相同的單向加密算法計算數據的特征值,比較兩個特征值,以證明數據完整性;再用對稱密鑰解密加密的數據即可;

以CA為核心生成的一套安全架構體系:
PKI:Public Key Infrastructure,公鑰基礎設施;其包含的內容:
1.簽證機構:CA
2.註冊機構:RA
3.證書吊銷列表:CRL
4.證書存儲庫:CR

國際標準化組織(ISO)定義了證書的結構和認證標準:X.509協議標準:
證書的組成包括:
證書的版本號;
證書的序列號;
有效期限;
簽發算法的ID;
簽發CA的名稱;
主體的名稱;
主體的公鑰;
主體唯一標識符;
發證者的唯一標識符;
發證者的數字簽名;
擴展信息;

CA如何發揮作用?
1.通信雙方互相交換證書;
2.雙方驗證證書的真偽;
3.雙方協商加密算法;
4.用CA頒發的公鑰解密證書的中CA的簽名,能解密說明證書來源可靠;
5.用CA的加密算法加密證書,並取得特征值;與解密出來的特征值進行比較,如果相同,說明證書完整性有保證;
6.檢查證書的有效期是否合法,如果在有效期內,則證書可用;
7.檢查證書的主體名稱和此次通信的目標是否能夠對應;
8.檢查證書是否被吊銷;

能夠實現上述安全加密功能的協議:
SSL:Security Socket Layer,安全套接字層;
1994年,Netscape(網景)公司最先聲明並實施;
SSL V1.0
SSL V2.0
SSL V3.0

TLS:Transport Layer Security,傳輸層安全協議;
IETF:Internet Engineering Task Force,互聯網工程項目小組;
1999年提出TLS V1.0
2006年提出TLS V1.1
2008年提出TLS V1.2草案,添加了橢圓曲線加密算法;

分層設計方案:
1.最底層:規定了基礎算法的原語的實現;包括:AES, md5, sha,...
2.向上一層:各種算法的基本實現;
3.再向上一層:各種算法組合實現的半成品;
4.最高層:用各種組件拼裝而成的各種成品密碼學協議軟件;

SSL/TLS的handshake的四個階段:
1.客戶端向服務器索要證書並驗證證書;
發送Client Hello的消息,此消息主要內容:
支持的協議的版本,如:SSL v3.0或TLS v1.2;
客戶端生成一個隨機數,稍後用於生成回話密鑰;
支持的加密算法,如:DES,3DES,AES,RSA,....
支持的壓縮算法,如:gzip,bzip2,deflate,...

2.雙方協商生成會話密鑰:
發送Server Hello消息,此消息主要內容:
確認使用的協議的版本,如:TLS v1.2
服務器也生成一個隨機數,稍後用於生成會話密鑰;
確認加密算法和壓縮算法;
服務器的證書;

3.雙方采用以及生成的會話密鑰進行安全加密的數據通信:
客戶端驗證服務器證書,在確認無誤後,取出其中的服務器公鑰;
驗證服務器證書的步驟:
驗證發證機構(CA);
驗證證書的完整性;
驗證證書的持有者信息;
驗證證書的有效期;
驗證CA的吊銷列表中是否有此證書;
客戶端發送信息給服務器端;
客戶端再次生成一個隨機數,用於公鑰加密;
編碼格式的變更通知,表示以後的信息都將采用雙方已經協商好的加密算法和壓縮算法;
客戶端握手結束;

服務器收到客戶端發送來的第三個隨機數(Pre_Master_key),計算生成此次會話用到的會話密鑰,向客戶端發送相關信息;
編碼格式的變更通知,表示以後的信息都將采用雙方已經協商好的加密算法和壓縮算法;
服務器端握手結束;

4.雙方互相結束通信:




















































系統安全之數據的加密和解密、CA的介紹、SSL或TLS協議簡介及握手過程