密码学奇妙之旅、03 HMAC单向散列消息认证码、Golang代码( 二 )

【密码学奇妙之旅、03 HMAC单向散列消息认证码、Golang代码】PS C:\Users\小能喵喵喵\Desktop\Go\Cryptography\HMAC> go run .消息: A请求B转账10000加盐: S_XlM8K_dhAvsgch_N3o1w==HMAC-Sha256: b8dd30d2a418262494f298bcdaf6c12f442c6e8f89a31822dad03561887f3bedHMAC-Sha256: ba934567837ec98ba89853b09f6652ce56955cfeedd0c4495bd6cba7fc2f8293635fdc59b90180564bd0fdb1d1bffc52644fc2bd8164d6379ae11510e200954cHMAC-Sha256: 2db84d209e2418f314fc5bb0583cfb50cde90d954d8493d3ed0e3b369fb092d7HMAC-Sha256: 7b192cedb1d89fd71889189a0094e1df06d26d977bc3bed4f53b16928aa2d58084cb8890d52cb40f665bb9ac62eeb4092495efe7d59292470ed597a3536dea56第1次重放攻击A请求B转账10000第2次重放攻击A请求B转账10000消息不一致、认证失败如何防止重放攻击

  • 给消息加序号,收发双方约定好
  • 时间戳,收发双方必须考虑到通信延迟,还是会存在重放攻击的空间 。
  • 接收者发送一次性随机数,发送者HMAC该随机数后发送 。确保当前消息只能发一次 。

经验总结扩展阅读