基于密码技术的身份认证——基于非对称密码体制的身份认证

2024-01-26 19:44

本文主要是介绍基于密码技术的身份认证——基于非对称密码体制的身份认证,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

符号说明:

A→B:表示通信实体A向通信实体B发送消息;

Ek(x):表示用认证双方共享的密钥K对x进行加密;

Text1,Text2,……,Text n属于可选项;

||:表示比特链接;

RA:表示A生成的一次性随机数;

TNA:表示由A生成的时间戳或序列号;

KAB:通信实体A与通信实体B的共享密钥;

Kprt:可信第三方私钥;

Kprt:可信第三方公钥。

基于非对称密码体系的身份认证有两种主要的实现思路:一种是验证方A发出一个明文挑战信息

(例如,随机数)给被验证方B;B在收到挑战信息后,用自己的私钥对明文信息进行加密,并发

送给A;A收到加密信息后,利用B的公钥对加密信息进行解密。如果解密得到的挑战信息与之前发

送给B的挑战信息相同,则可以确定B身份的合法性。另一种是在认证开始时,A将挑战信息利用利

用B的公钥加密并发送给B;B再利用自己的私钥进行解密,获得挑战信息的内容,并将其返回给

A;A可以根据收到的挑战信息的正确性来确定B身份的合法性。

以下给出一个简化的公钥密码体制的身份认证协议:

A→B:EB(RA||A)

B→A:EA(RA||RB)

A→B:EB(RB)

在该协议中,A首先生成一个随机数RA,并联合自己的身份信息,利用B的公钥加密后发送给B;B

收到消息后,利用自己的私钥进行解密,得到RA,并生成另一个随机数RB,利用A的公钥对RA和

RB进行加密并发送给A;A收到消息后,利用自己的私钥进行解密,得到RA和RB,如果RA与之前

发送给B的相同,则承认B身份的合法性,并在利用B的公钥对RB进行加密发送给B;B收到消息

后,解密验证其正确性,如果通过验证,则承认A身份的合法性,完成整个双向认证的过程。

以上协议存在一个明显的漏洞,可通过如下方式进行攻击:

第一次运行该协议:

A→I:EI(RA||A)

第二次运行该协议:

I→B:EB(RA||A)

B→I:EA(RA||RB)

I→A:EA(RA||RB)

A→I:EI(RB)

I→B:EB(RB)

从以上过程可以看出,攻击者I通过解密第一条消息,第五条消息获取认证所需要的随机数RA和

RB,第四条消息则是第三条消息的重放。上述协议运行完毕,B认为他与A共享秘密RB,实际上则

是与I共享,I假冒A成功,攻击有效。

对以上方式进行改进:在原协议第二条消息中加入B的身份标识。这样A收到该消息后,发现标识

与声称者身份不一致,即知道收到了攻击者的攻击。

如果在认证的基础上还需要建立一个秘密的共享会话密钥,可通过多种不同的方式实现,以下是一

个典型的协议:

A→B:RA

B→A:RB||EA(KS)||SB(A||RA||RB||EA(KS))

A→B:SA(B||RB)

这里E(x)是使用x的公开密钥进行加密,S(x)是使用x的私有密钥进行签名。

协议执行过程描述如下:

A发送给B一个随机数;B收到A发送的消息后,B选择会话密钥KS,用A的公开密钥加密,连同签

名发送给A;当A收到第二条消息后,用自己的私钥解密得到会话密钥KS,并用B的公开密钥验证

签名,随后A发送使用私有密钥签名的随机数RB;当B收到该消息后,他知道A收到了第二条消

息,并且只有A能够发出第三条消息。

如果认证双方都不知道对方的公开密钥,这时往往需要一个可信的第三方T保存并为他们提供公开

密钥。以下给出一个简单的存在第三方的公钥密码认证协议,称为Denning-Sacco认证协议:

A→T:A||B

T→A:ST(B||EB)||ST(A||EA)

A→B:EB(SA(KAB||TA))||ST(B||EB)||ST(A||EA)

A首先把自己和B的用户标识发送给T,说明自己想与B进行身份验证;T则用自己的私钥ST分别对

A和B的公钥EA,EB加密后发送给A;A用自己的私钥解密第二条消息得到B的公钥;A向B传送随

机会话密钥KAB,时间标记TA(都用A自己私钥签名并用B的公钥加密)以及两个T的私钥加过密

的A,B双方的公开密钥。B用私钥解密A的消息,然后用A的公钥验证签名,以确信时间标记仍有

效。

Denning-Sacco认证协议存在缺陷:当与A一起完成协议后,B能够伪装成A。实现步骤如下:

B→T:B||C

T→B:ST(C||EC)||ST(B||EB)

B(A)→C:EC(SA(K||TA))||ST(C||EC)||ST(A||EA)

B将以前从A那里接收的会话密钥和时间标记的签名用C的公钥加密,并将A和C的证书一起发给

C。C用私钥解密A的消息,然后用A的公钥验证签名。检查并确信时间标记仍有效。此时,C现在

认为正在与A交谈,B成功地欺骗了C。在时间标记截止前,B可以欺骗任何人。

对Denning-Sacco认证协议进行改进,改进方案是在第三步的加密消息内加上名字即可:

EB(SA(A||B||K||TA))||ST(A||EA)||ST(B||EB)

这一步清楚地表明是A和B在通信,B不能对C重放以前的消息。

基于非对称密码体制单向认证协议实现更加简单,仅需要A计算信息的摘要,然后用自己的私钥对

该信息摘要进行签名,再将原消息,消息签名以及自己的证书一起用B的公钥加密后发送给B。该

协议是接收方对发送方的认证,发送方对接收方的单向认证过程与该过程类似。

使用公钥方式进行身份认证时需要事先知道对方的公钥,从安全性,使用方便性和可管理性出发,

通常需要可信第三方分发公钥,并且一旦出现问题也需要权威中间机构进行仲裁。在实际的网络环

境中,一般依赖公钥基础设施(PKI)来实现公钥的管理和分发。

这篇关于基于密码技术的身份认证——基于非对称密码体制的身份认证的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/647867

相关文章

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

系统架构设计师: 信息安全技术

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师: 信息安全技术前言信息安全的基本要素:信息安全的范围:安全措施的目标:访问控制技术要素:访问控制包括:等保

【Kubernetes】K8s 的安全框架和用户认证

K8s 的安全框架和用户认证 1.Kubernetes 的安全框架1.1 认证:Authentication1.2 鉴权:Authorization1.3 准入控制:Admission Control 2.Kubernetes 的用户认证2.1 Kubernetes 的用户认证方式2.2 配置 Kubernetes 集群使用密码认证 Kubernetes 作为一个分布式的虚拟

前端技术(七)——less 教程

一、less简介 1. less是什么? less是一种动态样式语言,属于css预处理器的范畴,它扩展了CSS语言,增加了变量、Mixin、函数等特性,使CSS 更易维护和扩展LESS 既可以在 客户端 上运行 ,也可以借助Node.js在服务端运行。 less的中文官网:https://lesscss.cn/ 2. less编译工具 koala 官网 http://koala-app.

Spring的设计⽬标——《Spring技术内幕》

读《Spring技术内幕》第二版,计文柯著。 如果我们要简要地描述Spring的设计⽬标,可以这么说,Spring为开发者提供的是⼀个⼀站式的轻量级应⽤开发框架(平台)。 作为平台,Spring抽象了我们在 许多应⽤开发中遇到的共性问题;同时,作为⼀个轻量级的应⽤开发框架,Spring和传统的J2EE开发相⽐,有其⾃⾝的特点。 通过这些⾃⾝的特点,Spring充分体现了它的设计理念:在

java线程深度解析(六)——线程池技术

http://blog.csdn.net/Daybreak1209/article/details/51382604 一种最为简单的线程创建和回收的方法: [html]  view plain copy new Thread(new Runnable(){                @Override               public voi