账号:
密码:
最新动态
产业快讯
CTIMES / 文章 /
非对称式Security Boot/Security Update的实作
 

【作者: 顏睿余】2019年06月25日 星期二

浏览人次:【10715】

Security Boot是一种用于确保系统内运作的应用程式码被授权的方法,通常由设计与构建系统的厂商提供。通过确保应用程式码为正确的授权版本可以防止不可预测的系统程式造成机器性能异常、安全性受损甚至财产损失。大多数电子系统使用可编程非挥发性存储器 (Flash) 存放其应用程式码 (Application Code),无论大小都可以利用Security Boot保护该程式码不被恶意窜改。本文说明Security Boot的基本观念,同时深入地介绍其处理方式并提供解决方案。


Security Update流程


介词:下图红色方框所代表的角色为程式码签发者(Code Publish),其包含一组唯一的公钥(Public Key)和私钥(Private Key)



1.要进行升级的应用程式(Firmware update)应该要先透过Hash Function(例如SHA256)获取其Digest (此步骤就如同用XOR计算出程式码的Checksum,只是SHA256 Digest为256-bit远大于Checksum,具有绝对唯一性)。


2.接着程式码的签发机构(Code Publish)需要针对该程式码的Digest透过其私钥进行“加密” (ECDSA SIGN),加密过后的资料我们称作数位签章(Digital Signature)。因为拥有该私钥即拥有权力签发正式版本程式码的数位签章,故一般而言私钥将会被存放于硬体保护的晶片里(如ATECC608A),避免对外流传。


3.将更新应用程式与数位签章 (Data to Send)透过有线或是无线的方式传送至待更新的装置(Device to Upgrade)。进行更新之前,待更新装置必须验证此应用程式与数位签章的正确性。


4.在非对称的算法中,每个存在的私钥会有一个相对的公钥存在,其私钥用来“加密”(ECDSA SIGN),公钥则用来“解密” (ECDSA VERIFY),故更新装置中应该要预先配备相对的公钥。为了能限制仅搭配特定的程式码签发机构(Code Publish)作“解密”,其公钥必须存放在一次性烧录的记忆体中(OTP),避免被更换为骇客私钥的对应公钥。


5.更新装置(Device to Upgrade)在收到更新程式(Firmware update)后即先透过Hash function(例如SHA256)获取其Digest(如同第1步骤),为确认该Digest是否正确,必须透过公钥对同步收到的数位签章作解密并判断是否符合更新程式的Digest (ECDSA VERIFY)。若是符合,则该更新程式允以更新该装置。反之,假设该更新程式并非官方发行程式码(没有透过Code Publish签发数位签章),经过第5步骤的验证,因为其计算出来的Digest将不同于透过公钥所解密的数位签章,该程式码则不予运作。


Security Boot流程


如同Security Update流程第5步骤,开机后即先透过Hash Function(例如SHA256)计算应用程式之Digest,接着确认该Digest是否正确:透过公钥对数位签章作解密并判断是否符合该应用程式的Digest (ECDSA VERIFY)。


运行Security Update之装置需求


1.一次性烧录的记忆体


为了能够完成Security Update/Security Boot流程,其中步骤4提到装置必须预先配备公钥于一次性烧录的记忆体中(OTP),目前市售MCU提供OTP功能的并不多,或者价钱相对不便宜。


2.进行ECDSA VERIFY运算


步骤5中提到需要对应用程式Digest与程式码数位签章利用OTP区的公钥进行ECDSA VERIFY运算。该运算量相当庞大,如下图若以Cortex®-M0+进行运算将耗费5秒。开机若需要耗费如此多的时间将不容易被使用者接受。



Microchip提供ATECC608A可外挂支援Security Boot 功能


ATECC608A提供基于硬体的密钥储存与加密算法加速器,用以实现各种身分验证和加密协议,基于落实Security Boot。使用者能预先将公钥存放于ATECC608A的Secured EEPROM中,并透过ECDSA 硬体加速器进行Digest和数位签章的验证运算(Verify)。而运算结果亦可以透过输出保护密钥(IO Protection Key)输出,骇客无法判读或进行复制。相关产品资讯请参考官方网站:


  • ATECC608A产品页面https://www.microchip.com/wwwproducts/en/atecc608a

  • ATECC608A开发工具 https://www.microchip.com/DevelopmentTools/ProductDetails/DM320109


  • 作者 颜睿余 Microchip应用工程师


    相关文章
    探索下一代高效小型电源管理
    以固态继电器简化高电压应用中的绝缘监控设计
    开启边缘智能新时代 ST引领AI开发潮流
    驱动无线聆听 蓝牙音讯开启更多应用可能性
    传动元件消库存扩散布局
    comments powered by Disqus
    相关讨论
      相关新闻
    » 帆宣与隹世达合组「达宣智慧」公司 启动智慧医疗引擎
    » 镭洋叁与美国华盛顿卫星展 展示立方卫星成果和地面设备追星技术
    » IDC:2023年亚太区PC市场衰退16.1%
    » InnoVEX 2024创新竞赛奖值达10万美元 聚焦AI、生医、智慧移动
    » Cadence收购BETA CAE 进军结构分析领域

    
    刊登廣告 新聞信箱 读者信箱 著作權聲明 隱私權聲明 本站介紹

    Copyright ©1999-2024 远播信息股份有限公司版权所有 Powered by O3  v3.20.1.HK83J7RXR3SSTACUK5
    地址:台北数位产业园区(digiBlock Taipei) 103台北市大同区承德路三段287-2号A栋204室
    电话 (02)2585-5526 #0 转接至总机 /  E-Mail: webmaster@ctimes.com.tw