为了满足用户对于芯片安全烧录、授权控制以及定制化生产的需求,创芯工坊推出了“安全授权盾(ICWKEY)”,作为创芯工坊烧录器PowerWriter离线授权的一种辅助工具,负责控制授权次数和生产授权秘钥,可以确保生产时,目标芯片+PowerWriter+ICWKEY整个链路层数据的安全。
包装清单

Type C USB端口定义
ICWKEY采用双端USB Type C接口,一端用于供电,另一端用于和PowerWriter通信:

- Type C端口1:用于和PowerWriter连接通信,并同时供电给PowerWriter
- Type C端口2:用于给ICWKEY和PowerWriter整体供电,以及用于ICWKEY配置软件对ICWKEY进行授权配置
主面板信号定义

- 0:显示项目名称(Project代码,系统生成的默认格式为:SafeLic_XXXXXXXX)
- 1:显示当前项目剩余的授权次数
- 2:显示当前项目总的授权次数
工作流程示意图

授权算法
ICWKEY提供了向量矩阵加密(Matrix)和椭圆曲线数字签名(ECDSA)两种UID(Unique Chip ID)授权算法,也提供SDK供用户开发自定义授权算法,以满足开发者的不同需求。
下载前后的ICWKEY


安全机制
- ICWKEY主控芯片采用ST高阶芯片开发,开启了2级读保护,Debug功能(JTAG&serial wire)已永久禁用,芯片内的数据无法被外部调试器读出;
- ICWKEY与PC/PowerWriter的通讯采用AES加密,内置防暴力破解策略,从外部无法枚举出秘钥;
- ICWKEY内置了UID高阶加密算法,即使程序被暴力破解、被盗,也无法在其他同型号芯片上运行;
- PowerWriter同样设置了授权次数,单独破解ICWKEY并不能去除授权次数限制;
- 授权次数信息有备份区,授权过程中如果掉电,剩余授权次数不会丢失或重置;
- 授权次数信息的存储地址有做寿命管理,不用担心因为授权次数的频繁更新,导致内部flash擦写次数寿命耗尽;
- ICWKEY.exe采用c++11开发,内部代码采用了大量的检测技术,Hash/加密关键数据,用于检测内存中的软件数据是否被读取、篡改等异常操作,采用商业保护软件加密,做了大量的逆向分析检测,多层防护。
ICWKEY 的使用参考: