信息安全工程师教程学习笔记之HMAC

信息安全工程师 责任编辑:长颈鹿 2016-07-08

添加老师微信

备考咨询

加我微信

摘要:全国计算机技术与软件专业技术资格(水平)考试,这门新开的信息安全工程师分属该考试“信息系统”专业,位处中级资格。官方教材《信息安全工程师教程》及考试大纲于7月1日出版,希赛小编整理了信息安全工程师教程学习笔记之HMAC,供大家参考学习。

    >>>>>信息安全工程师在线辅导 

   

      >>>>>信息安全工程师培训视频

      全国计算机技术与软件专业技术资格(水平)考试,这门新开的信息安全工程师分属该考试“信息系统”专业,位处中级资格。教材《信息安全工程师教程》及考试大纲于7月1日出版,希赛小编整理了信息安全工程师教程学习笔记之HMAC,供大家参考学习。

      HMAC是密钥相关的哈希运算消息认证码(Hash-based Message Authentication Code),HMAC运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。

      运算作用

      (1)验证TPM接受的授权数据和认证数据;

      (2)确认TPM接受到的命令请求是已授权的请求,并且,命令在传送的过程中没有被改动过。

      定义HMAC需要一个加密用散列函数(表示为H,可以是MD5或者SHA-1)和一个密钥K。我们用B来表示数据块的字节数。(以上所提到的散列函数的分割数据块字长B=64),用L来表示散列函数的输出数据字节数(MD5中L=16,SHA-1中L=20)。鉴别密钥的长度可以是小于等于数据块字长的任何正整数值。应用程序中使用的密钥长度若是比B大,则首先用使用散列函数H作用于它,然后用H输出的L长度字符串作为在HMAC中实际使用的密钥。一般情况下,推荐的最小密钥K长度是L个字节。

      算法表示

      算法公式:HMAC(K,M)=H(K⊕opad∣H(K⊕ipad∣M))[1]

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

      K代表认证密码

      Ko代表HASH算法的密文

      M代表一个消息输入

      B代表H中所处理的块大小,这个大小是处理块大小,而不是输出hash的大小

      如,SHA-1和SHA-256 B=64

      SHA-384和SHA-512 B=128

      L表示hash的大小

      Opad用0x5c重复B次

      Ipad用0x36重复B次

      Apad用0x878FE1F3重复(L/4)次

      HMAC运算步骤

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

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

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

      (2)将上一步生成的B字长的字符串与ipad做异或运算。

      (3)将数据流text填充至第二步的结果字符串中。

      (4)用H作用于第三步生成的数据流。

      (5)将第一步生成的B字长字符串与opad做异或运算。

      (6)再将第四步的结果填充进第五步的结果中。

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

      HMAC的应用

      hmac主要应用在身份验证中,它的使用方法是这样的:

      (1)客户端发出登录请求(假设是浏览器的GET请求)

      (2)服务器返回一个随机值,并在会话中记录这个随机值

      (3)客户端将该随机值作为密钥,用户密码进行hmac运算,然后提交给服务器

      (4)服务器读取用户数据库中的用户密码和步骤2中发送的随机值做与客户端一样的hmac运算,然后与用户发送的结果比较,如果结果一致则验证用户合法

      在这个过程中,可能遭到安全攻击的是服务器发送的随机值和用户发送的hmac结果,而对于截获了这两个值的黑客而言这两个值是没有意义的,绝无获取用户密码的可能性,随机值的引入使hmac只在当前会话中有效,大大增强了安全性和实用性。大多数的语言都实现了hmac算法,比如php的mhash、python的hmac.py、java的MessageDigest类,在web验证中使用hmac也是可行的,用js进行md5运算的速度也是比较快的。


    返回总目录:信息安全工程师教程学习笔记之密码学汇总(一)

    返回总目录:信息安全工程师教程学习笔记之密码学汇总(二)


    希赛软考网,拥有十四年软考培训经验,希赛网一直坚持自主研发,将丰富的软考培训经验有效融入教程研发过程,自成体系的软考在线题库软考历年真题)、软考培训教材软考视频教程,多样的培训方式包括在线辅导面授、和,使考生的学习更具系统性,辅导更具针对性。采用全程督学机制,,软考平均通过率在全国。

更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

软考备考资料免费领取

去领取

!
咨询在线老师!