HMAC简介

article/2025/9/23 4:52:56

本期主要给大家简单介绍一下消息认证码中的HMAC

而HMAC就是其中的一种

HMAC的完整中文名称是:密钥相关的哈希运算消息认证码

它是由Hugo KrawezykMihir BellareRen Canetti等人

 

1996年提出的一种基于Hash函数和密钥进行消息认证的方法,

它作为RFC2104被公布,

 并在IPSec和其他网络协议(如SSL)中得以广泛应用,现在已经成为事实上的Internet安全标准。它可以与任何迭代散列函数捆绑使用。

目前主要应用在服务器对访问者进行鉴权认证流程中。

可能有些同学就会有疑问

这个HMAC为什么会被提出来?

是MAC的产生有什么缺陷么?

                   

下面来简单介绍一下HMAC规范出现的原因

HMAC规范的设计是由于存在对将密钥与hash函数相结合的更简单机制的攻击。

换言之就是有些将密钥和hash函数结合使用产生MAC的算法容易被攻击。

而这种生成消息认证码的方法就像炸弹一样,

可能随时都会给企业和社会带来危险

例如,有些同学在想

消息验证码可不可以这样实现:

消息验证码等于对密钥和消息字符串连接的hash值

MAC = H ( key| message )

但是,这种方法有一个严重的缺陷

对于大多数散列函数,

很容易在不知道密钥的情况下将数据附加到消息中并获得另一个有效的 MAC

(“长度扩展攻击”)

可能又有同学想到另一种方法,

使用 MAC = H ( message | key附加密钥),

但会遇到这样一个问题,

攻击者可以在未加密的散列函数中找到与MAC 中存在冲突的hash值。

于是又有同学说可以使用

MAC = H ( key| message| key ) 更好,

但有信息安全方面的论文提出了这种方法的漏洞,

即使使用两个不同的密钥也是如此。

基于上述问题,

Mihir BellareRan CanettiHugo Krawczyk 在他们的论文中

提出了HMAC 结构的定义和分析

H 是一个密码散列函数

m是要认证的消息

K是密钥

K '是从密钥K派生的块大小的密钥;通过向右填充 0 直到块大小,或者通过先散列到小于或等于块大小,然后向右填充零

‖ 表示连接

⊕ 表示按位异或(XOR)

opad是块的外部填充,由值 0x5c 的重复字节组成,是一段十六进制常量

ipad是块的内部填充,由值 0x36 的重复字节组成,也是一段十六进制常量

下面来看看对HMAC的具体实现

首先对密钥进行规范化,转为K‘,

比如初始密钥如果不足64位,那就填充到64位变为K‘

如果超过64位,

通过hash函数转为64位的K‘

然后将K‘与ipad进行异或,

这样就可以在一定程度上隐藏密钥信息

之后对进行异或的值进行hash运算得到文本二

另一方面

我们可以看到K‘还与opad进行异或得到文本一

这也是为了隐藏密钥的信息

之后将文本一、文本二和消息进行拼接

并进行hash运算

这样就得到了我们想要的消息认证码

大致了解了HMAC的算法

再来给大家介绍一下HMAC的安全性

HMAC 的加密强度取决于所使用的密钥的大小。

针对 HMAC 的最常见攻击是暴力破解密钥。

还记得2019年获得未来科学大奖的王小云教授么?

她所在团队在2009年在不使用相关密钥的情况下

HMAC-MD5 进行了差分攻击

结果是可以在297次方次查询内

以百分之八十七的概率

区分使用md5算法加密的HMAC

而这也推动了HMAC使用其他更安全的hash函数

在2011年在RFC6151标准中总结了HMAC-md5的安全注意事项

其中提到“ HMAC-MD5 的攻击在用作消息验证码时似乎并不表明存在实际漏洞,

但对于新的协议设计,不应包含具有 HMAC-MD5 的密码套件


http://chatgpt.dhexx.cn/article/9p1OgSe5.shtml

相关文章

【AUTOSAR】:功能安全(HSM与HOST的配置)

HSM vHSM启动Reference DocumentsvHSM启动流程SWC请求加密服务的流程AutoSar 4.3系统中的安全模块示例,请求加密流程Reference DocumentsDavinciCfg配置job的Key关联:可以关联多个Element1、CSM的job和自身的CsmKeys关联,1:12、CSM的CsmKeys和CrypIf的CryIfKeys关联,1:13…

鉴源实验室 | 基于信息安全HSM固件的ECU间安全通讯

作者 | Ted 上海控安革路工作室资深技术顾问 来源 | 鉴源实验室 01 Autosar SecOC标准 随着智能网联汽车的蓬勃发展,尤其是辅助及自动驾驶技术的提高,新一代电子电气架构对车身网络通讯信息安全提出了新的要求。整车中越来越多的零部件在直接或者间接…

层次状态机-HSM应用解析

在上一面文章中分析了HSM的核心代码,本文章主要是对HSM的应用解析,以相机拍照为例子,对状态和事件的调用,实现拍照、查看照片、切换拍照模式、低电量关机等功能。 一、状态和事件 这个例子里面用了四种事件、六个状态&#xff0…

HSM加密机 (分级密钥管理)

参考自 三级密钥体制示意图 主密钥用于加密密钥交换密钥和数据密钥作本地存储;密钥交换密钥用于加密数据密钥作网络传输;数据密钥用于对数据进行加解密。 三级密钥体制说明 1. 第一层,LMK为本地主密钥,,它是存放在HSM机内的&…

英飞凌 AURIX 系列单片机的HSM详解(4)——Tricore核与HSM核之间的通信方法

本系列的其它几篇文章: 《英飞凌 AURIX 系列单片机的HSM详解(1)——何为HSM》 《英飞凌 AURIX 系列单片机的HSM详解(2)——与HSM相关的UCB和寄存器》 《英飞凌 AURIX 系列单片机的HSM详解(3)—…

层次状态机-HSM代码解析

有限状态机在学习和工作中经常能够遇到,前面的文章也有使用到。但是对于层次状态机网上的学习资源却很少,导致一直不理解这个工作机制,后面偶然在GitHub看到一篇文章,深入学习后发现层次状态机太实用了,如果将其在项目…

车规级安全芯片HSM、SE等:

目录 1、相关标准 2、汽车安全芯片应用 3、安全芯片供应商 4、安全芯片测试 5、针对控制器的安全测试 给学习做个总结,写的不对处希望大家指出。 说明:关于汽车安全中可以使用SE安全单元针对外部通信的安全形式,可以是内嵌HSM硬件安全模…

Infineon TC3XX的 通过HSM 实现Secure Debug

AURIX™ 调试接口保护- 内部开关概览 Gate1: 通过OCDS模块控制TriCoreTM 调试访问接口; Gate2: 通过DMU模块控制TriCoreTM 调试访问接口; Gate3和Gate4: HSM直接控制。控制Host CPU的访问并且也可以支持禁用HSM自身的调试功能。 AURIX™ 挑战应答机制-…

汽车信息安全系列-3.TI HSM笔记(更新中)

HSE 相对于 SHE 主要多了独立的CPU 并且支持非对称算法 HSM 架构的安全目标: 安全启动,安全运行,安全debug,算法加速 HSM 架构有以下feature: 防火墙保护 独立CPU,保护efuse和密匙并且给其他内核提供认证和解密服务 安全Boot ROM 建立可信任硬件和外部软件镜像加解密…

hsm加密机

1.三级密钥体制示意图: 1. 主密钥用于加密密钥交换密钥和数据密钥作本地存储; 2. 密钥交换密钥用于加密数据密钥作网络传输; 3. 数据密钥用于对数据进行加解密。 2.三级密钥体制 3.三级密钥体制说明 第一层,LMK为本地主密钥,&…

HSM和AsyncChannel介绍

HSM(hierarchical state machine, 层次状态机)和AsyncChannel是Android Java Framework中两个重要的类。 这两个类的作用如下。 HSM在传统状态机对所有状态都一视同仁的基础上做了一些改变,使得状态和状态之间有了层级关系。HSM中的状态层级关系与Java中父子类的派生和继承关…

英飞凌 AURIX 系列单片机的HSM详解(2)——与HSM相关的UCB和寄存器

本系列的其它几篇文章: 《英飞凌 AURIX 系列单片机的HSM详解(1)——何为HSM》 《英飞凌 AURIX 系列单片机的HSM详解(3)——开发方法》 《英飞凌 AURIX 系列单片机的HSM详解(4)——Tricore核与H…

英飞凌 AURIX 系列单片机的HSM详解(3)——开发方法

本系列的其它几篇文章: 《英飞凌 AURIX 系列单片机的HSM详解(1)——何为HSM》 《英飞凌 AURIX 系列单片机的HSM详解(2)——与HSM相关的UCB和寄存器》 《英飞凌 AURIX 系列单片机的HSM详解(4)—…

HSM硬件加密机国密标准解读

HSM全称硬件安全模块,是数据安全领域的关键硬件设备,是公钥基础设施的一部分。本文从国密0054出发,概要分析了HSM也就是通常说的服务器密码机需要遵循的国密相关标准,以及与等保的关系。 一、信息系统密钥应用的基本要求 1、总体…

HSM和TEE

本文摘自牛咖网文章 HSM和TEE HSM为其他应用程序提供密钥管理和加密功能。 TEE还提供让应用程序(或应用程序的安全相关部分)在其隔离环境中执行的功能。 常规执行环境 (REE)是TEE社区中的术语,用于表示设备中特定TEE之外的所有内容。 HSM如何…

满足AUTOSAR基础软件要求的硬件安全模块(HSM)加密运算

随着软件日益复杂,并且车载系统和传感器数量稳步增加,车内系统的通讯成几何增长,必须加强密码保护。这种保护可以通过经典的实时汽车开放系统架构(AUTOSAR)来实现。即便在资源稀缺的情况下,安装合适固件的硬…

硬件安全模块- HSM

目录 一、什么是硬件安全模块 二、HSM是如何工作的 三、HSM的应用 公钥基础设施(Public Key Infrastructure - PKI) 卡支付系统(Card Payment HSM) 安全套接字协议(Secure Sockets Layer - SSL) 车载…

鉴源实验室丨HSM技术浅述

作者 | 徐奕华 上海控安可信软件创新研究院汽车网络安全组 来源 | 鉴源实验室 引言:2023年5月初,工业和信息化部装备工业一司组织全国汽车标准化技术委员会开展《汽车整车信息安全技术要求》等四项强制性国家标准的制修订[1]。这意味着车辆信息安全管理…

英飞凌 AURIX 系列单片机的HSM详解(1)——何为HSM

本系列的其它几篇文章: 《英飞凌 AURIX 系列单片机的HSM详解(2)——与HSM相关的UCB和寄存器》 《英飞凌 AURIX 系列单片机的HSM详解(3)——开发方法》 《英飞凌 AURIX 系列单片机的HSM详解(4)—…

硬件安全模块(HSM)

一、什么是HSM 说起信息安全和加解密,我们很容易会在脑海中浮现出锁和钥匙。那我们来想象一个场景: 假设一位父亲有三个儿子,他给每个儿子各买了一台掌上游戏机。为避免他们沉迷游戏,父亲把每台游戏机都锁到一个小盒子里。盒子归…