MAC and HMAC

news/2024/11/25 22:26:21/


MAC


简介:通过密钥+算法生成digest(也叫MAC),传送给服务器

消息认证码(带密钥的Hash函数):密码学中,通信实体双方使用的一种验证机制,保证消息数据完整性的一种工具。

安全性依赖于Hash函数,故也称带密钥的Hash函数。消息认证码是基于密钥和消息摘要【hash】所获得的一个值,可用于数据源发认证和完整性校验。

 

1. 发送者通过MAC算法计算出消息的MAC值,并和消息一起发给收信者

2. 收信者用同样的MAC算法计算收到的消息的MAC值,并对比两者。

 



HMAC


简介:通过密钥+算法(必须是hash算法,sha-1, md5 ..)生成digest (MAC), 传送给服务器认证。
在服务器认证的使用过程中,消息往往就是 nonce 。

介绍:

Hash-based message authentication code,利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。

a specific construction for calculating a message authentication code (MAC) involving a cryptographic hash function in combination with a secret cryptographic key. As with any MAC, it may be used to simultaneously verify both the data integrity and the authenticity of a message.【主要是为了能让人对对方身份正确性和消息有效性进行验证,与消息摘要的最大不同,就是有签名密钥!】

方法:

HMAC(K,m) = H((K ⊕ opad) ∥ H((K ⊕ ipad) ∥ m))

 

【opad重复0x36,ipad重复0x5C】

通过两次hash两个不同的key来生成。 还没有发现有任何的方法来产生碰撞。

步骤:

First-Hash: H(Ko XOR Ipad || (data to auth))

Second-Hash: H(Ko XOR Opad || First-Hash)

1. 字符含义

  H 代表所采用的HASH算法(如SHA-256) 

  K 代表认证密码

  B 代表H中所处理的块大小,这个大小是处理块大小,而不是输出hash的大小 【SHA-1和SHA-256 B = 64,SHA-384和SHA-512 B = 128 】

  Ko 代表HASH算法的密文 【在密钥K后面添加0来创建一个字长为B的字符串。(例如,如果K的字长是20字节,B=64字节,则K后会加入44个零字节0x00) 

  Opad 用0x5a重复B次 
  Ipad 用0x36重复B次

2. Ko与ipad做异或运算。

3. 将数据流text填充至第2步的结果字符串中

4. 用H作用于第3步生成的数据流。 

5. Ko与opad做异或运算。

6. 再将第4步的结果填充进第5步的结果中。 

7. 用H作用于第6步生成的数据流,输出最终结果 

 

应用:

HMAC的一个典型应用是用在“挑战/响应”(Challenge/Response)身份认证中

 

 

1. 客户端向服务器发出一个验证请求

2. 服务器接到此请求后生成一个随机数并通过网络传输给客户端(此为挑战)

3. 客户端将收到的随机数提供给ePass,由ePass使用该随机数存储在ePass中的密钥进行HMAC-MD5运算并得到一个结果作为认证证据传给服务器(此为响应)。

4. 与此同时,服务器也使用该随机数存储在服务器数据库中的该客户密钥进行HMAC-MD5运算,如果服务器的运算结果与客户端传回的响应结果相同,则认为客户端是一个合法用户 

 

安全性:

HMAC算法更象是一种加密算法,它引入了密钥,其安全性已经不完全依赖于所使用的HASH算法

 

1. 使用的密钥是双方事先约定的,第三方不可能知道。能够得到的信息只有作为“挑战”的随机数和作为“响应”的HMAC结果,无法根据这两个数据推算出密钥。由于不知道密钥,所以无法仿造出一致的响应。

2. HMAC与一般的加密重要的区别在于它具有“瞬时”性,即认证只在当时有效





http://www.ppmy.cn/news/738698.html

相关文章

MAC地址厂商查询网址

MAC地址厂商查询网址: https://regauth.standards.ieee.org/standards-ra-web/pub/view.html#registries 在该网站中可以将MAC厂商对应表下载到本地。

Mac-Charles

Charles是什么 Charles工具 HTTP代理服务器,HTTP监视器 Charles可以当作一个代理服务器 当浏览器链接这个代理服务器的时候 Charles会监控浏览器发出和接收的所有数据(reques,response,HTTP Headers(cookies和cash)) 反转代理器 Charles主要功能、 1.SSL代理 2…

商用车线控底盘需求文档

一、 概述 商用车线控底盘主要用于接收智能驾驶域控制器(控制器ADU)的请求指令,完成ADU 对驱动、制动、档位转向、驻车声光等部分的指令控制,从而实现智能驾驶功。 即 ADU 可通过 CAN 通讯的方式以特定周期和指令控制 一台车的线控…

培训小程序首页开发

目录 1 定义变量2 欢迎语搭建3 分类导航搭建4 搭建底部导航总结 我们本篇来开发一下我们小程序的首页,先看一下原型 1 定义变量 因为我们首页展示的分类信息,现在分类信息已经存到了数据源里,我们要通过变量读取出来。 先打开我们创建的自…

OPPO A72刷root获取magisk权限OPPO A72 root教程

OPPO A72 这个手机是MTK机型 搭载天玑720双模5G芯片 官方暂时未开通深度测试 简单来说只能通过第三方解锁BL 支持强解锁BL 支持安卓10和安卓11获取ROOT权限 也就是magisk。目前联发科的处理器都可以强解锁BL,原理是写入破解的BL数据分区,并且禁用dm效验…

OPPO Reno7 Pro刷root强解锁BL刷面具Magisk框架 OPPO reno7pro免深度测试 root教程

OPPO Reno7 Pro 这个手机是MTK机型 搭载天玑1200Max双模5G芯片 官方暂时未开通深度测试 简单来说只能通过第三方解锁BL 高通的Reno7不适合 支持强解锁BL 支持安卓10和安卓11获取ROOT权限 也就是magisk。目前联发科的处理器都可以强解锁BL,原理是写入破解的BL数据…

慢查询日志

一、慢查询日志简介 MysQL的慢查询日志是MySQL提供的一种日志记录,他用来记录在MysQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。可以由它来查看哪些SQL超出了我们最大忍耐时间值。 二、…

OPPO K9 Pro刷root强解锁BL刷面具Magisk框架 oppo k9pro root教程

OPPO K9 Pro 这个手机是MTK机型 搭载天玑1200双模5G芯片 官方暂时未开通深度测试 简单来说只能通过第三方解锁BL 支持强解锁BL 支持安卓10和安卓11获取ROOT权限 也就是magisk。目前联发科的处理器都可以强解锁BL,原理是写入破解的BL数据分区,并且禁用dm…