SSL(安全套接层)是为网络通讯提供安全及数据完整性的一种安全协议,TLS(SSL的继承版本)与SSL在传输层对网络连接进行加密。
SSL用以保障在数据传输的安全利用数据加密技术,可确保数据在网络上之传输过程中不会被窃取和监听。
功能:机密性,认证,完整性,重放保护
两阶段协议,分为握手阶段和应用阶段
握手阶段(协商阶段):客户端和服务器端认证对方身份(依赖于PKI体系,利用数字证书进行身份认证),并协商通信中使用的安全参数、密码套件以及主密钥。后续通信使用的所有密钥都是通过MasterSecret生成。
应用阶段:在握手阶段完成后进入,在应用阶段通信双方使用握手阶段协商好的密钥进行安全通信
OpenSSL
OpenSSL:是ssl的开源项目
三个组件:
openssl: 多用途的命令行工具,包openssl
libcrypto: 加密算法库,包openssl-libs
libssl:加密模块应用库,实现了ssl及tls,包nss
openssl命令:
两种运行模式:交互模式和批处理模式
对称加密:openssl enc -e
openssl enc -e -des3 -a -salt -intestfile -out testfile.cipher//-a表示base64编码,-salt加盐添加杂质更安全,
对称解密:openssl enc -d
openssl enc -d -des3 -a -salt –in testfile.cipher -outtestf