现在的电子产品基本上都会有一个防抄板设计,它的核心就是一颗安全芯片。

防抄板的手段:让加密芯片成为嵌入式软件产品的一部分,联系越密切越不容易破解。可以采取如下一些手段:

1、上电认证和定时认证。如果认证不成功,则应用程序挂起。

2、读出安全芯片序列号送到server进行设备防伪认证。

3、一些关键的配置数据比如user/password写入安全芯片提供的EEPROM中,通过I2C去读取。

 

ALPU-C是Korea一家公司推出的加密芯片。

厂家为客户定制ALPU-C芯片及提供配套的lib。

用户使用时,只需要调用lib中的一个Func就可以完成认证的过程:

extern unsigned char_alpum_process(void);

由于ALPU-C是定制的,不可复制,所以,抄板时,这一个IC无法获取,也就无法工作。破解办法:image读出来后,可以反汇编,跳过认证IC部分的代码。

 

Atmel的ATSHA204A安全芯片特点:

1、提供三种CPU访问接口:I2C,UART,SWI(Single-Wire Interface)。

它提供的例子是SWI接口的,接到一根GPIO线上即可。

2、通信流程:wake up, send command,receiveresponse, sleep。

3、原厂不提供定制,而是通用的安全芯片,用户自己通过烧写器烧入密钥。密钥是用户自己生成的。烧写器要额外购买。

 

厂家并未提供arm-Linux平台的demo code,要porting过去,工作量还是不小。

但如果是用hashlet的话,直接编译好就可以使用。

或许可以再封装几个供上层调用的API。

 

# ./hashlet serial-num -b/dev/i2c-0

# ./hashlet random -b/dev/i2c-0

 

./hashlet mac --filetest.txt   //说明,test.txt存的是认证码,比如abc or ipcam111

这个操作执行成功会得到三个值:

mac       :C3466ABB8640B50938B260E17D86489D0EBB3F9C8009024683CB225FFFD3B4E4

challenge :9F0751C90770E6B40E34BA8E06EFE453FAA46B5FB26925FFBD664FAF951D000A

meta      : 08000000000000000000000000

 

这三个值用于下面这条check-mac的输入:

 

./hashlet check-mac -rC3466ABB8640B50938B260E17D86489D0EBB3F9C8009024683CB225FFFD3B4E4 -c

9F0751C90770E6B40E34BA8E06EFE453FAA46B5FB26925FFBD664FAF951D000A-m 08000000000000000000000000

成功的话,返回值为0。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐