運維學習之加密和解密
運維學習之加密與解密:
眾所周知,在網絡的世界裏不存在絕對的安全性。各種釣魚網站,病毒等等危害著我們的網
絡環境。所以,作為一個運維人員,在我們利用網絡進行通信時,保證通信的機密性、完整性、可用性是必要的。
我們的日常生活中有以下三點威脅網絡安全的行為:
1.威脅機密性的攻擊行為,它的途徑是竊聽、嗅探、掃描和通信量分析
2.威脅完整性的攻擊行為,它的途徑是更改、偽裝、重放、否認
3.威脅可用性的攻擊行為,它的途徑是拒絕服務
為應對以上問題,我們在技術和服務兩方面提出了解決方案:
從技術上我們使用加密和解密的技術來保證網絡通信的安全性。其中加密算法又分為傳統加密算法和現代加密算法;在服務方面我們提出了身份認證和訪問控制機制來解決安全問題。
下面我們來學習了解一下基本的加密算法:
1.對稱加密算法:其特點是加密和解密使用同一密鑰,優缺點比較明顯。
優點是:每對通信主機都需要保有一套相同的密鑰,用於加密和解密,將原始的數據、 分割成固定大的塊,逐個加密;加密和解密速度比較快;
缺點是:加密解密所需要保有的密鑰數量過多,密鑰分發過於困難
其主流的加密算法有:DES:Data Encryption Standard,數據加密標準
56位的密鑰,64位塊,逢8不加密
3DES:三輪DES加密,用了兩個密鑰:首先,使用第一個密鑰加密數據,然後使用第二個密鑰將加密後的數據解密你,然後再利用第一個密鑰再次加密
AES:Advanced Encryption Standad,高級加密標準;
AES128bit,AES192bit,AES256bit
2.公鑰加密算法:
這個算法的特點是:
1.使用密鑰對進行加密和解密;使用私鑰加密的數據,必須使用從中抽取的公解
密;使用公鑰加密,必須使用與之相對的私鑰才能加密;私鑰:通過特定的工具創建生成,由使用者自己留存,務必保證其私密性;公鑰:從私鑰中提取生成,公鑰給所有人使用:public key
2.密鑰長度都比較常規,加密之後的數據的安全等級會比較高
缺陷是:
1.加密數據的時候,消耗的系統資源和時間都較多,很少用來加密大批量的數據
它的用途是:
數字簽名:數字指紋
主要用於讓接收方確認發送方的身份;使用發送方的私鑰加密數據,到了接收方之後,使用發送方的公鑰解密數據;
密鑰交換:
發送數據的一方使用接收方的公鑰加密對稱密鑰,把加密後的對稱密鑰發給對方
數據加密:通常用於加密小數據;
3,單項加密算法:只能進行加密解密
特性:
1.定長輸出:
2.雪崩效應
功能:保證數據的完整性
常用的算法:
md5:Messsge Digest Version 5,信息摘要算法的第5版
128bit定長輸出
sha系列:
sha-1:160bit定長輸出,Secure Hash Algorithm
加密算法的聯合應用:
1.首先,通信雙方互相交換證書,並到信任到的CA進行證書驗證;
2.發送方使用某種堆成加密算法對數據進行加密;對加密後的數據使用單項加密計算其特征值;放送方再用自己的私鑰加密其特征值,以證明數據來源的可靠
3.放送方世玉接收方的證書加密對稱密鑰
4.接收方在收到數據之後,先使用自己的私鑰解密對稱密鑰,使用放送方的公鑰解密特征值,再使用相同的單向加密算法,重新結算加密數據的特征值;比較兩個特征值;如果特征值一致,則表明數據完整;再用解密出來的對稱密鑰你解密出原始數據
證書裏面主要包括:
擁有者的名稱
擁有者所提交的公鑰
有效期
證書的版本號
證書的序列號
簽發算法ID
簽發CA的名稱
主題名稱
證書的簽證機構:CA
註冊機構:RA
證書吊銷列表:CRL
整數存取庫:CAB,Cerification Access Base
CA是如何發揮其作用的:
1.通信雙方交換證書
2.雙方協商加密算法
3.雙方驗證整數的真偽
4.用CA的公鑰解密證書中CA的簽名,能解密說名整數的來源可靠
5.用通用的加密算法加密證書,取得特征值;與解密出來的特征值比較,如果相同,說明證書完整性可靠
6.檢查證書的有效期是否在合法時間範圍,如果過期則證書不被認可
7.檢查證書的主體名稱和此次通信的目標是否能夠對應
SSL:Secure Socket Layer,安全的套接字層;
1994年,Netscape公司最先發明並實施
TLS:Tranport Layer Scurity,傳輸層安全協議
IETF:互聯網工程項目小組
TLS V1.0
TLS V1.1,2006
TLS V1.2草案 2008,將橢圓曲線加密算法引入TLS;
分層設計:
1.最底層:基礎算法的原語的實現;AES,md5,sha……
2.向上一層:各種算法的基本實現
3再向上一層:各種算法組合實現的半成品
4.最高層:用各種組件拼裝而成的各種成品密碼學協議軟甲
SSL/TLS的handshake握手的四個階段
1.客戶端向服務器索要整數並驗證證書
Client Hello發送的信息內容:
支持的協議的版本,
客戶端生成一個隨機數,稍後用戶生成會話密鑰
然後互相討論各自支持的加密算法,AES,DES,RSA……
可能協商各自所支持的壓縮算法
2.雙方協商生成會話密鑰
Server hello發送的信息內容
確認使用的加密協議的信息內容
服務器生成一個隨機數,稍後用於生成會話密鑰
確認加密算法及壓縮算法
3.雙方采用已經生成的會話密鑰進行安全加密的通信
客戶端驗證服務器證書,確認無誤之後取出公鑰;
驗證服務器證書需要驗證下述內容:
驗證發證機構(CA)
驗證證書的完整性
去驗證證書的持有者信息
驗證證書的有效期
驗證證書的吊銷列表
客戶端要發送一些信息給服務器
一個隨機數用於服務器上的公鑰加密
編碼格式變更的通知,表示隨後的信息隨後的信息用雙方已經協商好的加密算法和密鑰進行加密發送
客戶端握手結束;
4.雙方互相通告握手結束的信息
服務器會收到客戶端發送來的此次握手階段額第三個隨機數;計算生成本次會話所用到的會話密鑰,向客戶端發送相關信息
編碼變更通知,表示隨後的信息都將用雙方已經協商好的加密算法和密鑰進行加密發送
服務器端握手結束
SSL handshake
運維學習之加密和解密