数据传输安全要满足的要求:
- 发送方能够确定消息只有预期的接收方可以解密(不保证第三方无法获得,但保证第三方无法解密)
- 接收方可以确定消息是由谁发送的(接收方可以确定消息的发送方)
- 接收方可以确定消息在途中没有被篡改过(必须确认消息的完整性)
加密和认证
- 加密是将数据资料加密,使别人即使获取加密数据,也无法获取正确的资料内容,重点在于数据的安全性
通常发送者使用自己的私钥进行加密,接收者使用发送者的公钥进行解密
- 认证是是确定数据的真实发送方,使别人无法伪造或冒充,重点在于用户的真实性
公钥算法和私钥算法
- 摘要算法(散列,无需密钥)
一般有MD5(128位)和SHA1(160位),不可逆
- 对称加密算法(DES,AES)
又称 对称加密算法,因为这种算法解密密钥和加密密钥是相同的。也正因为同一密钥既用于加密又用于解密,所以这个密钥是不能公开的
但是密钥不能手把手交给对方
- 非对称加密算法(RSA,DSA)
这种算法加密和解密的密钥不一样,一个是公钥,另一个是私钥,安全性最高,但加解密速度慢,通常比对称加密算法慢1-2个数量级
利用的是两个大质数相乘十分容易,而对其乘积进行因素分解十分困难。这样就可以将乘积作为密钥了
这个乘积为N值,根据两个大质数选择e和生成d,删掉两个大质数。这样(N,e)为公钥,(N,d)为私钥
公钥无法破解出私钥。由于非对称加密的密钥生成麻烦,所以无法做到一次一密,而且其加密速度很慢,无法对大量数据加密
因此最常用的使用场景就是数字签名和密码传输,用作数字签名时使用私钥加密,公钥解密;用作加密解密时,使用公钥加密,私钥解密。
大部分情况都使用对称加密,而对称加密的密钥交换时使用非对称加密来保护密钥的安全
公钥和私钥(密钥对)
记住这句:公钥加密,私钥解密;私钥签名,公钥验签。
必须实现如下目的:
- 发送方将数据加密,在数据传输过程中不能被别人看到真实数据内容
- 接收方能确定数据是发送方发送的数据,不是别人冒充
意义和作用:
- 公钥:是公布出去给别人用的,可以被很多人获取。用来加密和验签
-
私钥:只能自己持有,并且不可以被其他人知道,用来解密和签名
关系:
- 一个公钥对应一个私钥
- 密钥对中,让大家都知道的是公钥,自己知道是私钥
- 用公钥加密的数据只有对应的私钥可以解密
- 用私钥加密的数据只有对应的公钥可以解密
- 如果用其中一个密钥加密数据,则只有对应的那个密钥才能解密
- 如果用其中一个密钥可以解密数据,则该数据必然由对应密钥进行加密(最后两个类似当且仅当,充分必要条件)
CA证书:
证书主要内容:
- 电子签证机关的信息
- 公钥用户信息
- 公钥
- 权威机构的签字
- 有效期
证书原理:
证书作用:
根证书:
根证书是CA认证中心给自己颁发的证书,是信任链的起始点。安装根证书意味着对这个CA认证中心的信任。
使用证书验证需要先验证该证书的真伪,这样会构成一条证书链,证书链由根证书终结
根证书是一份特殊的证书,它的签发者是它本身,下载根证书就表明您对该根证书以下所签发的证书都表示信任,
而技术上则是建立起一个验证证书信息的链条,证书的验证追溯至根证书即为结束。
所以说用户在使用自己的数字证书之前必须先下载根证书。