图解SSL和加密解密-原理篇
1.SSL原理
?????Secure Sockets Layer(安全的套接字層)位于TCP/IP協議與各種應用層協議之間,為數據通訊提供安全支持。用于保障在Internet上數據傳輸之安全,利用數據加密技術,可確保數據在網絡上之傳輸過程中不會被截取及竊聽。
?
2.SSL的會話過程
????????????SSL會話主要分為三步:
????????????????????1.客戶端向服務器端索要并驗正證書;
????????????????????2.雙方協商生成“會話密鑰”;對成密鑰
? ? ? ? ? ? ? ? ? ? 3.雙方采用“會話密鑰”進行加密通信;??
3.加密算法和協議
3.1 對稱加密??
?????加密和解密使用同一個密鑰
常見的加密算法:
?????DES、3DES、AES、Blowfish、Twofish、IDEA、RC6、CAST5
特性:
????1、加密、解密使用同一個密鑰;
????2、將原始數據分割成為固定大小的塊,逐個進行加密;??
缺陷:
?????1、密鑰過多;
?????2、密鑰分發困難;??
?
3.2 公鑰加密
????????????密鑰分為公鑰與私鑰
公鑰:從私鑰中提取產生;可公開給所有人;
私鑰:通過工具創建,使用者自己留存,必須保證其私密性;
?
特點:用公鑰加密的數據,只能使用與之配對兒的私鑰解密;反之亦然;?
用途:
?數字簽名:主要在于讓接收方確認發送方的身份;
?密鑰交換:發送方用對方公鑰加密一個對稱密鑰,并發送給對方;
?數據加密:
?
3.3 ?單向加密
????提取數據指紋(特征碼);只能加密,不能解密;
常見算法:md5、sha1
?
特性:定長輸出、雪崩效應;
功能:完整性;
?
?3.4?密鑰交換?
????IKE(Internet Key Exchange互聯網密鑰交換)
?1.公鑰加密?
?2.DH(Deffie-Hellman地獄男爵)?
?
?
4.PKI
????PKI是Public Key Infrastructure的首字母縮寫,翻譯過來就是公鑰基礎設施;PKI是一種遵循標準的利用公鑰加密技術為電子商務的開展提供一套安全基礎平臺的技術和規范
?
公鑰基礎設施主要包含以下四個:
?簽證機構:CA
?注冊機構:RA
?證書吊銷列表:CRL
?證書存取庫
5.openssl命令
?
?openssl有眾多子命令,基本可分為三類:
?????????????1.標準命令
?????????????2.消息摘要命令(dgst子命令)
?????????????3.加密命令(enc子命令)?
5.1 對稱加密
| 1 2 | 加密:~]#?openssl?enc?-e?-des3?-a?-salt?-in?fstab?-out?fstab.ciphertext 解密:~]#?openssl?enc?-d?-des3?-a?-salt?-out?fstab?-in?fstab.ciphertext |
5.2 單向加密
| 1 | ????????~]#?openssl?dgst?-md5?/PATH/TO/SOMEFILE |
?5.3?生成用戶密碼
| 1 | ?????????~]#?openssl?passwd?-1?-salt?$(openssl?rand?-hex?5) |
?5.4?生成隨機數
| 1 2 | ????????~]#?openssl?rand?-hex?NUM???? ????????~]#?openssl?rand?-base64?NUM |
?5.5 公鑰加密
| 1 2 | 生成私鑰:~]#?(umask?077;?openssl?genrsa?-out?/PATH/TO/PRIVATE_KEY_FILE?NUM_BITS) 提取公鑰:~]#?openssl?rsa?-in?/PATH/FROM/PRIVATE_KEY_FILE?-pubout ? |
6.構建私有CA
(以下詳細命令參考http://ch666.blog.51cto.com/10870222/1761516)
1.在CA的服務器上生成私鑰
| 1 | [root@ch?sysroot]#?(umask?077;openssl?genrsa?-out?/etc/pki/CA/private/cakey.pem?4096) |
2.生成自簽證書
| 1 2 3 4 5 6 7 8 9 | [root@ch?sysroot]#?openssl?req?-new?-x509?-key?/etc/pki/CA/private/cakey.pem?-out?/etc/pki/CA/cacert.pem?-days?365? |
3.為CA提供所需的目錄及文件
| 1 2 3 | [root@ch?sysroot]#?mkdir??-pv??/etc/pki/CA/{certs,crl,newcerts} [root@ch?sysroot]#?touch??/etc/pki/CA/{serial,index.txt} ? [root@ch?sysroot]#?echo??01?>?/etc/pki/CA/serial ? 以上步驟是在CA服務器端操作 ? ? http服務器向CA請求簽署證書 a.主機生成私鑰 ? b.生成證書簽署請求 ? c.將請求通過可靠方式發送給CA服務器 ? 以上操作是在http服務器端操作 ? 4.在CA主機上簽署證書 ? 5.查看證書中的信息 (1)客戶端獲取要吊銷的證書的serial (2)CA服務器根據客戶提交的serial和subject信息,對比其與本機數據庫index.txt中存儲的是否一致 (3)CA服務器吊銷證書 (4)生成吊銷證書的吊銷編號(僅在第一次吊銷證書時執行) (5)更新證書吊銷列表 查看crl文件 |
?
?
?
總結
以上是生活随笔為你收集整理的图解SSL和加密解密-原理篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SSL与OpenSSL介绍
- 下一篇: linux iptables原理详解及使