安全编程基础
目录
- 数据加密
- 数字签名
- 哈希算法
- 数字签名
- PKI体系
- 加密通信
一.数据加密
分类:
对称加密,非对称加密
对称加密
构成:明文,算法,密钥
知识点:
- 算法有 DES,AES
- 密钥只有一个
- 私钥不能暴露
非对称加密
构成:明文,算法,私钥,公钥
知识点
- 私钥和公钥都可以被用作加密或者解密
- 私钥加密的明文必须用对应的公钥解密
- 公钥加密的明文必须用对于的私钥解密
- 双密钥加密算法有RSA等
- 公钥是公开的,私钥是保密的
- 任何人可以把自己的信息通过公钥和算法加密,只有公钥方才能解开密文
二.数字签名
概念:
用于标记数字文件拥有者,创造者,分发者身份的字符串。
内容:
验证方提供的公钥
三.PKI
概念
PKI全称公钥基础设施。是使用非对称加密理论,提供数字签名,加密,数字证书等服务的体系,一般包括权威认证机构(CA),数字证书库,密钥备份及恢复系统,证书作废系统,应用接口(API)等
四.哈希算法
概念:
哈希算法是一种从任意数据中创建固定长度摘要信息的办法,对于不同的数据,产生的信息是唯一的。常见的哈希算法包括MD5,SHA-1等
五.加密通信
1.SSL协议
概念
SSL是网景公司开发的位于TCP与HTTP之间的透明安全协议,可以把HTTP包数据以非对称加密的形式往返于与浏览器和站点之间,从而避免被第三方非法获取。
组成:
上层协议包括SSL握手协议,更改密码规格协议,警报协议
下次协议包括SSL记录协议
2.TLS协议
建立于SSL v3.0之上的兼容协议,它们的主要区别在于加密算法上
3.加密通信的流程
- 输入HTTPS协议的网址
- 服务器向浏览器返回证书
- 验证证书的合法性
- 浏览器使用证书中的公钥加密一个随机对称密钥,并将加密后的没有和使用没有加密后的请求URL发送给服务器
- 服务器用私钥解密随机对称密钥,并用获取的密钥解密加密的请求URL
- 服务器把用户请求的网页用密钥加密,并返回给用户
- 用户用密钥解密服务器发来的网页数据,并将其显示出来