早期的加密技術是二戰時期的轉輪機,其原理是将包含實際内容的明文字元按照含有特定順序的密碼本進行移位後變為亂碼的密文。而解密是則仍是按照密碼本的順序進行反向解密。
網絡安全的三個關鍵目标:
機密性:不能被破解。
完整性:保證接受者接受到的是原始資料,而不是網絡問題或黑客攻擊造成資料不完整或更改。
可用性:使用的加密算法實際可行,而不是紙上談兵的。
加密方法:
對稱 加 密:
非對稱加密:
單向 加 密:
對稱加密:
并不是對資料的所有内容進行加密,而是先将資料進行分組,然後分組加密。
在發送密文時需要對資料進行異或運算。
算法: des:很多年前就被破解,因為隻有56位。
3des:将資料進行3遍des加密。
aes:進階加密标準。128、256、512位加密算法。des的更新版本。
非對稱加密:
當傳輸雙方需要傳遞密鑰時,首選需要對會話進行非對稱加密以用來傳遞密鑰。
它是使用數學函數(費馬小定理、歐拉定理)來實作的,完全不同于對稱加密。
加密算法:
dh:密鑰交換算法。
rsa
dss
ess
特點:
私鑰加密的資料隻能使用與之配對的 公鑰解密。
公鑰加密的資料隻能使用與之配對的 私鑰解密。
與對稱加密相比,其性能低于其1000倍。
功能:
身份驗證:隻要公鑰能夠解開,那麼一定是私鑰持有者加密發送的資料。
機 密 性:隻會用來加密密碼。
密鑰交換:隻用來前期交換密鑰
缺點:
性能差。
不能保證資料的完整性。
解決方法是:使用單向加密提取特征碼。
身份驗證有缺陷:伺服器發送公鑰時被黑客惡意篡改後再使用公鑰加密發送給用戶端的情況
其解決方法是:使用浏覽器内置的第三方公信機構證書
單向加密:
僅支援從明文→密文。
提取資料的特征碼:雜湊演算法、雜湊演算法。
雪崩效應:資料的微小變化會引起特征碼的巨大變化。
定長輸出:特征碼的長度是一定的。
md5(128)、sha1(160)、sha256)、sha512
資料完整性:發送方會使用自己的私鑰将特征加密後發送給伺服器。
第三放證書頒發機構(ca):
證書頒發機構的設定類似于dns的分布式,會在各個地方設定辦事處。
在進行證書申請時,會使用u盤等裝置進行拷貝,防止中間篡改。
但是證書的使用費很高。
網絡内部可以自建ca,然後再給其他人頒發證書。
ssl:
網景公司研發的協定,就是在通信子網(傳輸層向下)與資源子網(應用層)之間補了半層。
雖然使用的http協定但是與其未加密的傳輸有本質的差別。ssl1、ssl2、ssl3.
http:80/tcp https:443/tcp
ftp :21/tcp ftps:
smtp:25/tcp smtps:465/tcp
pop3:110/tcp pops :995/tcp
starttls: 根據使用者的請求來确定是否對内容進行加密,即一個端口上跑2中服務。
tls:
https(ssl)會話建立過程:
1、由于是基于證書的連接配接。是以,
首先用戶端發送hello到伺服器,然後伺服器給予用戶端hello響應。
這一步雙方也協商好了共同使用的加密類型。
2、伺服器端把證書發送給用戶端,用戶端完成身份驗證。
(在某些網銀交易場景下,用戶端也需要發送證書到伺服器端。)
3、用戶端在完成驗證後,會生成一次性密鑰發送給伺服器。
4、伺服器接受到用戶端密鑰後,可以拿着密鑰加密網頁。
openssl:
libcrypto:加密、解密的庫
libssl :實作ssl
指令使用:
單向加密的特征碼提取指令:
生成私鑰:
從私鑰中提取公鑰:
申請證書步驟:
自建ca:
自建ca首先需要自己生成密鑰,然後由自己為自己簽好證書後才能為别人簽證。
這個過程類似于開公司,老闆為自己可一個章,然後任命自己為ceo後,使用自己的章準許。
ca伺服器為别人簽證:
用戶端專用測試工具
數字證書:x.509v3,這是比較流行的版本
版本号(version)
序列号():證書本身在ca中惟一辨別;
簽名算法标志
發行者名稱
有效期:
證書主體名稱:(組織(主機),個人),這個名稱必須和浏覽器中的位址一樣。
如果使用ip通路,則會報錯說不是一個主體。
證書主體公鑰資訊:最重要。
發行商惟一标志
證書主體的惟一标志
擴充:
簽名:證書頒發架構的簽名。、