网络信息安全主要问题
- 防篡改:通过消息摘要和加密验证数据完整性
- 防窃听:使用会话密钥加密数据
- 防冒充:通过数字证书验证服务器身份
算法
非对称加密
主要算法有:
- RSA: 基于大素数分解的难题,是目前最广泛使用的非对称加密算法
- DSA(数字签名算法): 用于数字签名,基于离散对数问题
- ECC(椭圆曲线加密): 椭圆曲线加密算法,具有较高的安全性和较快的处理速度
- DH(Diffie-Hellman): 用于安全密钥交换。
算法特征:
- 秘钥分为公钥和私钥
- 公钥加密后只能用私钥解密,私钥加密后只能用公钥解密
- 效率比较低
- 公钥可以发送给所有人,私钥只能自己拥有
非对称性加密的特点导致其作用可以分为两个用途:
- 加密:使用公钥加密发送,使用私钥解密
- 签名:使用私钥签名,使用公钥验签
对称性加密
主要算法有:
- DES(Data Encryption Standard): 数据加密标准,速度较快,适用于加密大量数据的场合
- 3DES(Triple DES): 是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高
- AES(Advanced Encryption Standard): 高级加密标准,是下一代的加密算法标准,速度快,安全级别高,支持128、192、256位密钥的加密
- Blowfish:
算法特征:
- 加解密使用同一个秘钥
- 加解密速度快,适合大数据量加解密
- 密钥传输的过程不安全,且容易被破解
摘要算法
主要算法有:
- MD5(Message Digest Algorithm 5): 是一种广泛使用的消息摘要算法。它将输入数据生成一个128位的摘要值,通常以32位十六进制表示
- SHA(Secure Hash Algorithm): SHA 系列包括 SHA-1、SHA-256、SHA-384 和 SHA-512 等,摘要长度从160位到512位不等。相比 MD5,SHA 更安全,但计算速度稍慢
- MAC(Message Authentication Code): 是一种基于密钥的消息认证码算法。它结合了 MD 和 SHA 的特性,并通过密钥增强了安全性
算法特征:
- 将任意长度的消息通过单向哈希函数转换为固定长度的摘要值的技术
签名算法
常用算法:
- MD5withRSA
- SHA1withRSA
- SHA256withRSA
- SHA1withDSA
- SHA256withDSA
- SHA512withDSA
- ECDSA
验证方式:
- 发送方使用摘要算法对数据生成摘要后再用私钥加密生成签名,将数据和签名一起发送
- 接收方收到数据后使用摘要算法生成摘要,再用公钥对签名进行解密后得到的摘要和前面生成的摘要对比
协议
SSL/TLS
TLS是SSL的后继版本,ssl分为1.0,2.0,3.0,目前都已弃用。tls分为1.0,1.1,1.2,1.3,1.0和1.1已经弃用,1.2是目前主要用的,1.3是最新版本
TLS流程详解
第一次握手:Clint hello
客户端向服务器发送Client Hello消息,包含以下内容:
- 支持的TLS版本:客户端支持的TLS协议版本列表。
- 随机数:客户端生成的随机数,用于后续密钥生成。
- 加密套件:客户端支持的加密算法组合。
- 扩展信息:如支持的压缩方法、Session Ticket等。
第二次握手:Server Hello
服务器响应Server Hello消息,包含以下内容:
- 选择的TLS版本:服务器选择的TLS协议版本。
- 随机数:服务器生成的随机数,用于后续密钥生成。
- 加密套件:服务器选择的加密算法组合。
- 数字证书:服务器的数字证书,用于验证服务器身份。
服务器可能还会发送Certificate Request,要求客户端提供证书(双向认证场景)。
第三次握手:密钥交换与验证
客户端和服务器协商生成会话密钥:
- 客户端验证证书:客户端校验服务器的数字证书是否可信。
- 发送预主密钥:客户端生成一个Pre-Master Key,用服务器的公钥加密后发送给服务器。
- 生成会话密钥:双方基于客户端随机数、服务器随机数和预主密钥生成会话密钥。
- Change Cipher Spec:客户端通知服务器,后续通信将使用会话密钥加密。
- 加密握手消息:客户端发送加密的握手摘要,验证握手过程是否被篡改。
第四次握手:服务器确认
服务器完成最后的验证:
- Change Cipher Spec:服务器通知客户端,后续通信将使用会话密钥加密。
- 加密握手消息:服务器发送加密的握手摘要,验证握手过程是否被篡改。
会话复用
为了提高性能,TLS支持会话复用:
- Session ID:客户端和服务器通过会话ID标识并重用之前的会话密钥。
- Session Ticket:服务器生成加密的会话票据,客户端保存并在后续连接中使用
HTTPS
https和http比就是在tcp上面加了一层tls加密,这样在网络上传输的数据就不会被窃听

CA证书
CA证书(Certificate Authority Certificate)是由证书颁发机构(CA)签发的数字身份凭证,主要用于证明实体身份及其公钥的合法性。它在公钥基础设施(PKI)中起着核心作用,通过数字签名和加密技术,确保数据传输的真实性、机密性和完整性
CA证书的功能
- 身份认证:CA通过验证申请者的身份(如域名所有权、企业资质)来确保其合法性
- 数据加密:CA证书通过SSL/TLS协议构建端到端加密通道,保护数据在传输过程中的安全
- 数字签名:用于对软件或应用程序的代码进行数字签名,防止软件在传输过程中被篡改
- 证书管理:CA负责管理证书的生命周期,包括证书的吊销、更新和撤销列表
CA证书的类型
- SSL证书:用于加密Web服务器与客户端之间的数据传输,广泛应用于HTTPS网站中
- 代码签名证书:确保软件的完整性和来源,防止恶意篡改
- 电子邮件证书:用于保护电子邮件通信,提供加密和身份验证
- IP证书:为IP地址实现HTTPS功能,适用于公网IP
如何申请CA证书
申请CA证书的流程通常包括以下步骤:
- 生成证书签名请求(CSR):申请者使用工具生成CSR和私钥
- 提交申请:将CSR提交给CA进行验证
- 验证身份:CA对申请者的身份进行验证
- 颁发证书:通过验证后,CA生成并颁发数字证书
CA证书在现代网络安全中扮演着重要角色,确保了在线交易和信息传输的安全性

