|
||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||
![]() |
![]() |
![]() |
![]() |
![]() |
||||||||||||||||||||||||||||||||||||
|
系统安全 密码芯片的安全性遵循“木桶理论”和“短板效应”,即安全性取决于最薄弱环节。密码芯片中密码算法的设计安全性并不等同于算法的实现安全性。密码算法在芯片中运行时会产生时间、功耗、电磁、声音、故障输出等旁路泄露,这些旁路泄露同芯片中运行的密码算法的中间状态和运算操作存在一定的相关性,可用来进行秘密信息提取,此类攻击技术称之为旁路攻击或侧信道攻击。 存储器访问安全密码系统在实际的计算机中作为一个核心安全功能而被普遍应用。通常,用户并不关心密码算法的具体实现,而是根据自己的实际需求调用公开的或者私有的密码函数库,如OpenSSL、Cryptlib、PolarSSL、Libgcrypt等。密码系统在访问存储器时会遇到两个主要问题:一是由于操作系统对于计算性能的要求,相同的密钥信息相关模块会同时出现在主存和缓存中,不同存储部件在数据访问过程中的存储速度快慢、存储结构大小、存储温度,都可能与密钥数据有一定的关联性;二是由于存储器硬件设计的特性,位于主存中的密钥相关信息可能遭受到一定恶意改变(通过特定的访问模式),从而把更多的错误信息暴露给攻击者。我们将计算机存储系统在使用和访问过程中所泄露出来的、可以用于密码分析的那部分信息,称之为存储器访问泄露信息,或者简称为访问泄露;把基于存储器访问泄露信息所进行的密码分析称之为存储器访问分析或者存储器访问攻击。 近年来,出现了三种典型的针对密码系统的存储器访问攻击,具有一定的新颖性和较高的实用性:一是针对缓存访问共享性的刷新重载攻击(Flush-Reload),它是一种通过对共享L3 Cache缓存命中和失效进行计时的方法在多核处理器上实现的缓存计时攻击;二是针对DRAM访问鲁棒性的内存RoHammer攻击,它由Google Project Zero 工作组于2014年发现,是一种通过重复高频访问激活DRAM中某一行,引起其中内存单位之间的电磁串扰,进而在相邻行引起比特翻转的故障攻击。三是针对DRAM访问数据残留性的冷启动攻击(Cold Boot Attack),它是一种根据DRAM在低温情况下的数据残留(Remanence)特性,通过快速制冷和内存访问来导出数据,进而进行密码分析的新型旁路攻击。
微架构Cache缓存攻击多核之间Cache数据共享,而Cache命中和失效对应响应时间有差别,攻击者可以通过访问时间的差异,推测cache中的信息,从而获得隐私数据。根据采集信息不同,Cache旁路攻击可分为时序驱动攻击、访问驱动攻击以及踪迹驱动攻击。时序驱动攻击需要获得目标攻击系统详细配置参数,重建对照环境,利用统计分析方法,对照采集到的密码算法一次加密/解密的整体时间,推测密钥。踪迹驱动攻击需采集密码算法执行过程中所有cache访问命中和失效序列,再结合明文或密文推测密钥,一般通过功耗检测手段进行,但该手段需要特殊的信息采集设备而且需要物理接触密码设备,实现起来比较复杂。访问驱动攻击通过采集加密或解密过程中访问的Cache组集合,再利用数学分析方法推测密钥,可以远程实现,攻击实现可行性较强。目前,Cache旁路攻击中访问驱动攻击实现最为简单,影响范围最大,两种主流的方法是Prime-Probe和Flush-Reload。
Spectre和Meltdown2018年1月初,大部分现代处理器中隐藏新漏洞的消息爆发。这次的漏洞不仅危及PC,连手机也未能幸免,波及的处理器甚至可追溯至20多年前。原因是英特尔、ARM等芯片厂商使用的设计技术可令黑客从受害设备内存中获取用户的隐私数据,比如口令、加密密钥或敏感信息。 新漏洞名为幽灵和熔断。熔断(Meltdown)允许低权限、用户级别的应用程序“越界”访问系统级的内存,从而造成数据泄露。幽灵(Spectre)则可以骗过安全检查程序,使得应用程序访问内存的任意位置。其最具破坏性的一点在于:不特定于某一具体的芯片制造商或设备。这两个漏洞几乎影响到所有计算设备,从手机到PC到服务器无一幸免。计算行业正忙于更新操作系统、Web浏览器、云计算服务及其他需要保证安全的基础服务,试图减小该问题的严重性。
USB固件分析固件(Firmware)就是写入 EROM(可擦写只读存储器)或 EEPROM (电可擦可编程只读存储器)中的程序,修改固件是在提取出固件之后,一般是 16 进制的 BIN 文件或者 HEX 文件,然后通过逆向分析或解包之后,获得实际的逻辑代码,然后根据需求修改其中的关键代码,之后再重打包刷回芯片中,使硬件执行修改之后的固件。 通常来说USB设备(这里只分析USB设备,而不针对USB HOST,USB OTG和USB HUB)内部都有一片USB的芯片和一个MCU。USB Firmware中大部分程序都在处理控制传输,具体来说是11种标准请求以及针对具体设备的类请求。USB Firmware的设计和调试首先应从一次基本的传输开始。
|
|||||||||||||||||||||||||||||||||||||||
最后一次更新时间: 版权所有©2019: 张帆 |