电子说
密钥是系统安全的基础
一个安全系统的基础,在与其所拥有的密钥,用以提供系统身分的真实性与确保系统数据的机密性,其最基本需要具备的密钥,包括了:
Hardware Unique Key (HUK) 每个设备实体所拥有的专属密钥,具有唯一性与秘密性,用来生成不同应用所需的密钥与链接装置专属的加密数据
Root of Trust Public Key (ROTPK) 用以验证签章的公钥,在装置安全开机流程中,确保只有通过认证的软件能够在装置上执行
为了确保系统的安全,无论HUK或ROTPK,都必须不能被修改。
除此之外,因应各种应用,在系统中还可能存在各种不同功能的密钥,包括加、解密用的AES Key,验证签章用的RSA Key或ECC Key等等。
这些密钥架构在密码学的基础上,提供系统身分认证,数据保护,传输加密等等功能,是系统中,所有安全的基础,因此对密钥本身的储存与保护,更是整个系统中,最重要的一环,这里我们将储存密钥的地方,称之为Key Store。
Key Store的特点
为了确保密钥的安全,Key Store密需要具备几个特点
所储存的秘钥,必须是一个不可分割整体
在Key Store中的每一把密钥,都必须被视为一个整体来建立、更改与删除,因为,若一把密钥有机会被以已知的值取代其部分内容,便很容易被使用分割与暴力破解的方法攻击 (divide and conquer brute-force attack)。
根据密钥的种类,提供不同的储存类型,包括
静态储存
静态储存的密钥,必须具有不可更改的特性,这通常会使用ROM或Fuse的特性来达成。然而,虽然静态储存的密钥无法被更改,却仍必须可以被撤销,撤销后的密钥,将不再能够存取或利用,以确保密钥使用上的安全。
短期储存
短期储存的密钥,有较短的寿命,这可以是只存在当次联机期间,也可以只存在当次的上电周期,或是只存续在装置当次的注册期间内,这些特性,通常可透过使用Flash或SRAM为储存媒体来达成。
设定密钥属性,以限制密钥的使用范围
根据密钥的用途与对应的密码学算法,可限缩密钥的使用范围,包括限制只能用于AES加解密、只能用于ECC签章、只能用于验证等。这样的限制理由,主要基于下面几点
限制CPU对密钥的读取,可避免因软件漏洞造成密钥的暴露。
限制密钥的使用范围,可以降低当密钥被破解时,损失波及的范围。
一把密钥使用于不同的算法,将增加被攻击的危险。
一把密钥使用于不同的用途,可能造成密钥存续期间长短的冲突,因而需要延长其存续时间,造成密钥存续时间超过实务上最佳的存续期限。
防止物理攻击
Key Store内所储存的密钥,是整个系统安全的基础,不只要防范来自软件漏洞的暴露风险,也要防止来自物理性的攻击,包括利用物理特性的旁道攻击 (Side-Channel Attack)与打开封装,直接量测芯片储存内容的攻击。
Key Store实例
以Nuvoton M2354 为例,其中包含 Key Store 硬件单元,提供密钥储存的功能,能够储存由128 bits 到 4096 bits长度的密钥,以完整的key为单位,进行写key、删除与注销(Revoke),并具备完整性检测,只要密钥有任意的位出错,那么这把密钥,就会失效,无法使用。
Key Store 提供OTP、Flash与SRAM三种储存媒体,可因应不同密钥存续时间的需求,其中OTP可用来储存不可更改的密钥,例如HUK、ROTPK,而Flash可用来储存云端联机认证用的密钥等,而SRAM则可用来储存云端联机时,所使用的随机加密密钥。
此外,Key Store在建立密钥时,可以指定相关属性,限制秘钥只能由CPU或特定的加密引擎使用,进一步限制密钥的使用,以加强密钥的安全性。
针对旁道攻击, Key Store支持Silent Access功能,可以降低储存操作时,因为物理特性造成的信息泄露。而针对打开芯片封装,利用物理量测储存内容的攻击,则提供Data Scrambling来防护。更近一步,也可以设定Key Store在系统攻击侦测(Tamper Detection)触发时,直接硬件连动,清除、注销所有Key Store中的密钥,确保密钥不被泄露。
总结
现代的安全系统,仰赖密码学的保护,而再好密码学算法,还是要依靠密钥的安全储存,才能真正达到效果,一旦密钥暴露出来,所有架构于该密钥的秘密将不再安全,因此具备一个足够安全的Key Store来存放密钥,对整个系统而言,是一件相当重要事。
全部0条评论
快来发表一下你的评论吧 !