密码学基础-身份认证

密码学基础-身份认证

概述

书信的亲笔签名;公文、证书的印章起到了核准、认证的功能。

如前文密码学基础-数据加密所述,信息安全少不了身份认证的话题。只有认证了信息的来源,我们才能知道这条信息是否是正确的,合法的,安全可用的。

非对称加密技术实现身份认证

上节提到的非对称加密技术不仅可以用于实现实现机密性保护,还可以用于身份认证。

非对称加密体系依赖于一对密钥。其中一个为私钥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 认证体系,在第三方认证机构下增强身份认证,避免中间人攻击。
    (感谢点赞或收藏,持续更新)
相关推荐
Long._.L20 小时前
OpenSSL实验
网络·密码学
让我们一起加油好吗1 天前
【数学】数论干货(疑似密码学基础)
c语言·visualstudio·密码学
weixin_387002152 天前
Openssl之SM2加解密命令
安全·ubuntu·密码学·ssl·命令模式
Zoe Din5 天前
【图像加密解密】空间混沌序列的图像加密解密算法复现(含相关性检验)【Matlab完整源码 2期】
图像处理·密码学
青云交15 天前
Java 大视界 -- 深度洞察 Java 大数据安全多方计算的前沿趋势与应用革新(52)
java·大数据·密码学·安全多方计算·分布式计算·医疗数据·技术融合
Power++15 天前
【BUUCTF逆向题】[2019红帽杯]easyRE
c语言·c++·python·网络安全·系统安全·密码学
Power++16 天前
【BUUCTF逆向题】[MRCTF2020]Transform
python·算法·系统安全·密码学·代码复审
Hhyao21 天前
2024第十五届蓝桥杯网安赛道省赛题目--cc(CyberChef)/crypto
蓝桥杯·密码学