Message Authentication Code (MAC) 是用于确信信息在传输过程中没有被修改过,体现了信息完整性, MAC 有很多种算法,大部分算法用于简单的场景(如文件传输),他们都有效,但如果用于都未曾考虑会被恶意攻击的情况,在密码学领域中,更多被应用的是 HMAC , HMAC 更安全,因为它是基于 Key 的。 HMAC 是使用诸如 MD5,SHA-1 等散列算法构造 MAC 。
HMAC 在这样一种场景中被应用:
巴赫尔、穆罕默德是为伊拉克临时政府中不同的伊斯兰派系,由于美国已经在伊拉克设置了大量情报机构,他们担心政府部内部文件在网络传输可能被美国情报局修改,考虑起见,巴赫尔、穆罕默德决定使用 MAC 技术:
1, 他们商榷一个简单的密钥 Key1
2, 他们商榷一种可靠的 HMAC 算法,如 HMACSHA1
3, 他们每次发送政府审批报告前,都用 HMACSHA1 进行计算,并将该 hmac 值 x1 附带发送给对方
4, 对方接收到文件,将文件进行一次 HMAC 的计算,得出新的 hmac 值 x2 ,对比 x1 和 x2 ,可以知道文件是否在中途被修改过。
注意,上述的步骤如果不考虑恶意攻击者,可以使用消息摘要,恶意攻击者可以修改你的文件,然后重新帮你计算摘要,最后替换你的摘要:(
关于 HMAC 的更多标准,可以参考 RFC2104 。
posted on 2006-05-21 17:05 david.turing 阅读(1570) 评论(1) 编辑 收藏 所属分类: BounyCastle&JCE
FileUtils http://www.blogjava.net/openssl/articles/FileUtils.html 回复 更多评论
Powered by: BlogJava Copyright © david.turing