标签:HashA 散列值 密码学 RND 随机数 篡改 固件 Salt
在密码学中,Salt是指将特定(固定)字符串插入到明文固定位置,让Hash散列运算值不同于使用原始明文的散列值。HASH散列运算是公开算法,只要有相同的明文,任何人都能算出相同的摘要值。Salt的意义在于让只有掌握正确Salt数据的用户才能计算出正确的HASH散列值。在某种意义上,Salt对于HASH运算的意义,就相当于密钥对于3DES等对称算法的意义。下面举例介绍随机数结合Salt的用法。
越来越多的嵌入式设备面临远程升级固件的安全问题,主要分为两方面:
问题1:如何实现固件防篡改
问题2:如何防止窃取固件
本次介绍一个简单的方法来提升固件防篡改的安全等级。
应用场景:A端向B端传送固件H,用于升级MCU程序。
安全隐患:固件H存在传输中被篡改的风险。
B端收到固件H后并不确定H是否有被篡改过,所以面临着升级变砖等威胁。只需在A、B两端分别加入两个操作流程,就可以简单高效的提升安全等级。
准备阶段:
1、A、B两端事先约定好在固件数据的指定位置加入Salt值。
2、A、B约定好生成Salt的具体算法。
应用阶段A端工作
1、生成随机数RND
2、根据RND计算生成SaltA
3、将SaltA加入到约定的固件位置
4、计算生成散列值HashA
5、将固件H、RND、HashA发送到B端
应用阶段B端工作
1、根据RND计算SaltB
2、将SaltB加入到约定的固件位置
3、计算HashB
4、对比HashA是否等于HashB,如果相等,证明固件未被篡改,不等则证明计算有误或者固件被篡改了。
标签:HashA,散列值,密码学,RND,随机数,篡改,固件,Salt 来源: https://blog.csdn.net/xingqingly/article/details/119451609
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。