一、對稱加密算法
1.特點
加密密鑰==解密密鑰
2,加密方法
2.1流密碼
(1)同步流密碼
指加密時每一次加密一位或一個字節的明文
同步性 無錯誤傳遞性 主動攻擊性
音頻/視頻數據提供版權保護
(2)自同步流密碼
自同步流密碼是一種有記憶變換的密碼。每一個密鑰與已產生的固定數量的密文位有關,*密鑰由已生成的密文決定*
自同步行 錯誤傳遞有限性 主動攻擊性 明文擴散性
代表:RC4、SEAL
2.2 分組密碼
指加密時將明文分成固定長度的組,用同一密鑰和算法對每一塊加密,輸出也是固定的長度的,*常用於網絡加密*
DES
ESede、3DES、Triple DES
AES
TEA
PBE
2.2.1電子密碼本模式
EBC:每次加密均產生獨立的密文分組,每組的加密結果不會對其他分組產生影響
缺點:
不能隱藏明文的模式,如果明文重複,對應的密文也會重複
優點:
易於理解,便於實現並行操作,沒
有誤差傳遞問題
用途:
適用於加密密鑰,隨機數等短數據,如DES
CBC:加密前需要先與前面的密文進行異或(XOR)操作後在加密
優點:
只要選擇不同的初始向量(即不同的異或指)即使產生重複的信息也不會產生相同的密文,無法破解還原
缺點:
不利於並行計算,一旦出錯,則會將
錯誤無限放大
用途:
計算機產生檢測數據完整性的消息認證碼MAC
CFB:密文反饋模式
OFB:輸出反饋模式
CTR:計數器模式
二、非對稱加密體系
1介紹
非對稱加密分爲兩個密鑰,一個公開,一個保密。公開的密鑰稱爲++公鑰++,保密的密鑰稱爲++私鑰++
甲方(發送方)用私鑰加密數據向乙方發送數據,乙方(接收方)接收到數據後使用公鑰
解密數據。
乙方(發送方)用公鑰加密數據向甲方發送數據,甲方(接收方)接收到數據後使用私鑰
解密數據。
非對稱密碼算法的安全性完全依賴於基於計算複雜度的難題,例如RSA源於整數因子分解問題
三、散列函數
1前言
在講到對稱密碼體質的流密碼實現方式時,曾經提到過對於信息完整性驗證需要其他技術來支持,這種技術就是散列函數提供的信息認證技術
2 特點
散列函數,也叫做"哈希函數","信息摘要函數","單向函數或者湊雜函數"
作用:
用於驗證數據的完整性的重要技術
消息認證流程:
3 特性
(1)消息長度不受限制
(2)對於給定消息,其散列值很容易計算
(3)如果兩個散列值不相同,則這兩個散列值的原始輸入消息也不同,這個特性使得散列函數具有"確定性"的結果
(4)散列函數運算"不可逆"
(5)抗弱碰撞性,防止被僞造
(6)任意兩個不同的消息散列值"一定不同"
例子:
MD ——————> 信息摘要算法
SHA ——————>安全散列算法
MAC ——————>消息認證碼算法
四、數字簽名
1.介紹
散列函數保證數據內容的完整性,數字簽名用來確保數據來源的可認證性和發送行爲的不可否認性
2.簽名者和簽名算法概念
簽名者:
執行數字簽名的實體成
簽名算法:
簽名過程中所使用的算法
驗證算法:
驗證簽名真僞的算法
流程:
發送者通過網絡將信息連同其數字簽名一起發送給接受者,接受者在得到消息及其數字簽名後,可以通過驗證算法,來識別簽名者和驗證簽名的真僞
其中:
RSA,是最常用的簽名算法
DSA,算法是典型的數字簽名算法,雖然其本身不具備數據加密和解密的功能
數字簽名滿足一下三個基本要求:
(1)簽名者任何時候都無法否認自己曾經簽發的數字簽名
(2)信息接受者能夠驗證和確認收到的數字簽名,但任何人無法僞造信息發送者的數字簽名
(3)簽名真僞發生爭議是,可以通過仲裁機構進行仲裁
數字簽名認證流程:
例如:
假設甲方擁有私鑰,並且甲方將公鑰發佈給乙方;當甲方作爲消息的發送方時,甲方使用私鑰對消息做簽名處理,然後將消息加密後連同
數字簽名發送給乙方。乙方使用已獲得的公鑰對接收到的加密消息做解密處理,然後使用公鑰
安全係數要求比較高的企業會使用雙向認證,即使用兩套公私鑰
五、網絡安全協議解析
1.相應的概念
客戶端和服務器的聯接,實質上都是聯接服務器的"IP地址"和"開放端口"
POST:
客戶端提交數據給服務器
GET:
客戶端獲取服務器的數據
HTTPS協議:
https = http + ssl/tls
socket通信:
socket = tcp/udp = http/ftp
2.不同協議對應抓包工具
(http/https):
fidder/charels
(Socket,tcp):
wireshark/sniffer
(防止代理):
小米wifi+wpe
3.安卓手動抓包方式
adb shell tcpdump -p -vv -s 0 -w /sdcard/capture.pcap //開始抓包
Ctrl+c //結束抓包
adb pull /sdcard/capture.pcap
//導出文件
4.Http,Https
Http訪問過程:
由於HTTP請求C/S之間沒有任何的身份確認過程,是極不安全的
HTTPS訪問過程
第一步:對傳輸的信息進行加密,服務器和客戶端雙方共享一個密鑰,這也就是之前所研究的對稱加密
第二步:更改繁瑣的對稱加密方式,改用公鑰和私鑰來實現傳輸,即非對稱加密
第三步:非對稱加密的缺陷在於黑客可以通過不安全傳輸過程中獲取公鑰,即 ④中服務器發送的私鑰加密信息也有可能被黑客通過公鑰解密,因此,
可以採取對稱加密和非對稱加密結合的方式進行安全傳輸
若採取上述的加密方式,存在兩個個問題,
(1)客戶端獲取如何獲取公鑰,(2)客戶端如何確認服務器的正確性
下面就來解決這兩個問題
(1)目前普遍採用獲取公鑰的方式是,客戶端通過申購服務器(已被第三方認證過的)的"SSL"或者"TSL"證書
(2)客戶端獲取到證書後,馬上通過訪問證書相關的信息,來進行確認
最後通過這些實現了HTTPS的安全傳輸