密码学基础-身份认证
概述
书信的亲笔签名;公文、证书的印章起到了核准、认证的功能。
如前文密码学基础-数据加密所述,信息安全少不了身份认证的话题。只有认证了信息的来源,我们才能知道这条信息是否是正确的,合法的,安全可用的。
非对称加密技术实现身份认证
上节提到的非对称加密技术不仅可以用于实现实现机密性保护,还可以用于身份认证。
非对称加密体系依赖于一对密钥。其中一个为私钥private key,只有自己知道;另一个为公钥public key,可以分享给其他人。
- 用于机密性保护时,使用公钥进行加密,并且只能通过对应的私钥进行解密。
- 用于身份认证时,使用私钥对一段数据进行签名(对一段数据进行加密,比如对一段消息的 hash 做签名),对应的公钥进行签名认证(解密)。
这种认证方式,需要确保数据接收方的公钥一定与数据发送方的私钥进行匹配。即通信双方约定的这对私钥-公钥要正常。否则可能发生中间人攻击,导致安全风险。上节提到的 ECDSA、RSA 非对称加密算法均可以用于这种身份认证机制。
中间人攻击
中间人攻击是对私钥-公钥认证体系的一种安全威胁。其基本原理如下:
- 中间人截获了数据发送方要发给数据接收方的公钥1。
- 中间人生成自己的私钥-公钥对,即私钥2、公钥2。
- 中间人把自己的公钥2发送给数据接收方,伪装成正经的公钥1
- 这样中间人就可以冒充合法的通信双方,使用公钥1破解数据发送方的数据,使用私钥2对数据进行签名,冒名顶替合法的数据发送方,给数据接收方发送数据。
基于 CA 系统的身份认证
为了避免中间人攻击。实际的通信系统会建立 CA 认证。CA 的身份认证系统中,除了数据发送方、数据接收方,还有一个第三方的认证机构,称为 CA。
就像警察局一样,CA是负责管理证书(颁发、续期、吊销)的权威机构,是一个可信的第三方。很多城市都有自己的网络 CA 认证服务器,这通常不被普通的用户感知到,他们是通信代理商自动部署的。
让我们来看以下,CA 系统如何避免中间人攻击。
- 首先数据发送方向 CA 认证中心注册自己的公钥信息。CA 认证中心用自己的私钥签名公钥以及数据发送方的信息,生成对应的证书。以百度作为数据发送方为例:
证书中的内容包括:
- 数据接收方从 CA 中心申请一个根证书,内部含可信的CA中心认证证书。
- 数据发送方对 CA 证书+公钥进行签名,并发送给数据接收方
- 数据接收方拿到 CA 证书+公钥+签名后,先验证签名,然后上报 CA 证书+公钥到CA认证中心
- CA 认证中心对公钥、CA 证书进行确认。以此判断此公钥的确来自已经在 CA 中心注册的、名字信息合法的数据发送方。
总之,第三方校验机构(CA认证中心)的私钥-公钥对,来增强通信双方的身份认证。这将在下面的 TLS 连接中详细了解。
总结
- 身份认证技术确保数据来源于可信合法的数据发送方。
- 可以基于非对称加密算法,如 ECDSA、RSA来对数据进行签名,实现身份认证。
- 简单的非对称加密算法实现的身份认证技术可能存在中间人攻击,可以通过 CA 认证体系,在第三方认证机构下增强身份认证,避免中间人攻击。
(感谢点赞或收藏,持续更新)