将部分输入作为密钥时,产生的结果称为信息认证代码(MAC)。散列加密算法具备以下特征:具有较高的雪崩效应,输入很小的变化即可导致显著的输出变化;必须具备较好的单向性(不可逆),从输出数据无法推导出输入信息;最后,还必须能够避免冲突,两个不同的散列输入不能产生相同的散列输出。典型的散列算法(移位、异或、与)占用较少的系统资源,实施成本较低。
该方案的前提是:网络设备和服务器必须有一个共用密钥,用于MAC散列加密计算。如果网络设备具有唯一的识别码(ID),ID可以用作设备的唯一密钥。
散列算法的实现 为了嵌入加密散列算法,例如SHA-1,可以选择:微处理器、ASIC、FPGA或厂商提供的专用器件(表1)。这些器件都可以作为网络设备的认证令牌进行散列认证。如图5所示,通过执行嵌入在器件内部的SHA-1加密散列运算,由网络设备和服务器共同产生MAC。
表1: Maxim的SHA-1存储器件
SHA-1是联邦信息委员会出版的180-1和180-2 (FIPS 180-1、FIPS 180-2)以及ISO/IEC 10118-3定义的一种公共标准。目前使用的SHA散列算法是FIPS批准的散列认证方法。由于SHA-1满足上述三项原则(不可逆、防冲突、较好的雪崩效应)而成为普遍使用的一种算法。
远程升级功能
Maxim器件的认证协议提供一个32字节授权数据页,它可以用于软件管理或其他控制。对于给定的硬件平台,可以选择软件功能。授权页的数据可以指定启用哪些功能。Maxim的SHA-1存储器需要一个SHA-1 MAC完成EEPROM存储器的写操作,这一操作还要求服务器对网络设备进行认证。利用这一功能,即使在没有安全保护措施的网络上也可以实现设备的远程升级。进行写操作时,SHA-1 MAC需要包括原存储器数据、新的存储器数据以及唯一的器件ID。
该加密技术的关键是把部分应用存储器数据作为“随机数”。写MAC实现功能升级时需要包含原功能数据、原随机数、新功能数据、新随机数以及唯一的器件ID。得到不可重复的、唯一的升级事件计算结果写入经过认证的器件。图6所示为写存储器MAC的SHA-1 MAC输入,图7所示为升级时序。
图6