天天看点

ATSHA204A(一)——是什么?有什么用?1. 是什么?3. 加密芯片可能的破解方法

1. 是什么?

ATSHA204A是一个加密器件, ATMEL公司做的。

ATSHA204A(一)——是什么?有什么用?1. 是什么?3. 加密芯片可能的破解方法

1.1 简介

Atmel ATSHA204是首款具有超低功耗的带有4.5Kbit EEPROM和硬件SHA-256加速器的经优化的交钥匙认证器件,其经过全面测试的ASF软件库可用于基于Atmel AVR®和ARM®的微控制器,并集成在全新集成式开发环境AVR Studio® 5中。ATSHA204器件是工业、消费电子、电力抄表、家庭自动化、计算和医疗应用的理想选择。

爱特梅尔CryptoAuthentication™系列的新成员具有专门设计的经优化的硬件安全特性,以鉴别目标、控制OEM供应链、防止软件或其它知识产权(IP)的盗窃。这款器件能够安全地生成、存储或传送安全密钥,因而可与微控制器系统中的AES加速器理想配合。由于新器件具有256位密钥,安全度超过市场上的其它任何认证器件,系统设计人员能够有信心保证其设计在系统的整个寿命周期中安全可靠。

爱特梅尔公司加密产品业务部总监Kerry Maletsky表示:“爱特梅尔致力于提供易于使用,且集成最新NIST加密算法以实现具最高级别可靠性的加密产品。这些产品填补了大多数微控制器和ASIC解决方案的安全存储缺失的空白,可用于组件确认、固件完整性检查、专有和保密数据的安全存储等。而且,这些器件的使用非常方便,应用开发人员无需具备加密知识,也能够自信地实现认证检查功能。”

全新爱特梅尔 CryptoAuthentication器件具有保护EEPROM内容的增强安全特性,包括有源金属护罩、内存加密、安全测试模式、干扰保护(glitch protection)和电压篡改检测。其设计采用与爱特梅尔Common Criteria Certified TPM相同的方法和组件,并内置高质量随机数据发生器,可用于加密协议以防止重放攻击(replay attack)。ATSHA204还结合了许多其它的内部硬件保护特性,极大地增加了针对OEM电池、游戏控制台、打印机墨盒、经授权附件等装置中安全器件进行硬件攻击而得逞的难度。

1.2 原理是什么?怎么就能加密?

1.2.1 加密原理的理解

甲乙两个特工秘密接头,互相不认识,不过他们组织内部有共同的接头暗号,但此时他们被丙监听了,如果直接说出暗号,组织就会暴露,所以他们见面,甲先提出一串随机的数字和之前的暗号放一块,甲乙两人用同一种方法计算,就会获得一组新的数,如果两人算的一样,说明是自己人,而且丙即使得知算出的结果,也不知道实际的暗号——也就是,只有知道秘钥的人,才能算出对的结果,结果每次又不一样,知道结果也不反推不出秘钥。

不可逆的函数  

ATSHA204A(一)——是什么?有什么用?1. 是什么?3. 加密芯片可能的破解方法

    知道函数F和c,很难反向运算得s。

就有一类算法就是这样,不能反推,安全散列算法SHA(Secure Hash Algorithm)。

1.2.2 使用的算法

ATSHA204A使用的是SHA-256算法:

安全散列算法SHA(Secure Hash Algorithm)是美国国家安全局 (NSA) 设计,美国国家标准与技术研究院(NIST) 发布的一系列密码散列函数,包括 SHA-1、SHA-224、SHA-256、SHA-384 和 SHA-512 等变体。主要适用于数字签名标准(DigitalSignature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA),SHA算法最主要的特点就是,任意长度的输入能生成固定长度的输出,并且从输出的结果中不能还原输入的内容,而且要找到不同两个输入导致相同输出的情况在计算上不能实现。

这种加密的思想就是算法是透明的,但是主控芯片和加密芯片都有一个秘钥,主控芯片在验证的时候会产生一个随机数发给加密芯片,加密芯片将这个随机数和秘钥通过算法得到一个信息摘要再发回给主控芯片,主控芯片验证这个结果是不是和自己算出来的一致,以此来判断产品的合法性;当然实际应用中会有一些区别,还有一些加密芯片可能会存储关键数据,根据应用而定。

示意图简单概括:MCU和加密芯片都保存了一个相同的秘钥,MCU程序运行,会发个challenge到加密芯片,MCU和加密芯片会拿这个随机数,同自己的保存的秘钥一起利用SHA256算法进行运算,都会得到一个32bytes的序列,只有秘钥相同,他们算出来的结果才一样,MCU最后就做这个工作。

ATSHA204A(一)——是什么?有什么用?1. 是什么?3. 加密芯片可能的破解方法

3. 加密芯片可能的破解方法

第一种就是反汇编,找到加密验证的代码,直接跳过去,或者给修改内存RAM强制验证合法。

        第二种就是模拟验证时候的通信波形,慢速的可以用单片机模拟,高速的通信协议就只能用CPLD了,但是在时候这种方法之前就要做一个工作就是要让主控芯片每次都产生相同的随机数。

都不容易,代价较大,成功率很低。

继续阅读