密码学基础-身份认证

密码学基础-身份认证

概述

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

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

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

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

非对称加密体系依赖于一对密钥。其中一个为私钥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 认证体系,在第三方认证机构下增强身份认证,避免中间人攻击。
    (感谢点赞或收藏,持续更新)
相关推荐
应长天20 小时前
密码学(斯坦福)
密码学
Turbo正则2 天前
量子计算基础概念以及八大分支
密码学·量子计算
网安INF12 天前
公钥加密与签名算法计算详解(含计算题例子)
网络·算法·网络安全·密码学
电院工程师13 天前
基于机器学习的侧信道分析(MLSCA)Python实现(带测试)
人工智能·python·嵌入式硬件·安全·机器学习·密码学
电院工程师15 天前
SM3算法C语言实现(无第三方库,带测试)
c语言·算法·安全·密码学
小七mod16 天前
【BTC】密码学原理
web3·区块链·密码学·比特币·btc·肖臻·北大区块链
电院工程师22 天前
轻量级密码算法PRESENT的C语言实现(无第三方库)
c语言·算法·安全·密码学
电院工程师22 天前
轻量级密码算法CHAM的python实现
python·嵌入式硬件·算法·安全·密码学
电院工程师23 天前
SM3算法Python实现(无第三方库)
开发语言·python·算法·安全·密码学
网安INF23 天前
SHA-1算法详解:原理、特点与应用
java·算法·密码学