冲量网络 | 可信计算与侧信道攻击

冲量网络 | 可信计算与侧信道攻击_第1张图片
在日常生活中,有时我们会遇到这样的情况,比如在旅行时,行李箱往往具有3到4位的密码,有时我们会忘记这个密码,如果一个个去尝试,哪怕只有三位数,也需要从000试到999,这实在是太费时费力了,但如果把它撬开可能会把密码锁完全搞坏。这时,就出现了一种快速开锁方法:即从密码锁的三个转盘往里看,就像电影里破解保险箱密码一样,当三个转盘的缺口转到同一角度时,同时转动密码锁9次便可以打开行李箱。从密码学角度讲,这就是一种侧信道攻击。
冲量网络 | 可信计算与侧信道攻击_第2张图片
冲量网络 | 可信计算与侧信道攻击_第3张图片
侧信道攻击(Side Channel Attack 简称SCA),又称为边信道攻击,其主要是针对加密电子设备在运行过程中进行的攻击,当时间消耗、功耗消耗之类的侧信道信息泄露从而导致加密相关的内容进行攻击,其就被称为侧信道攻击,其强度和有效性都强于传统的暴力破解或者数学破解,例如彩虹表等,因此容易带来意想不到的威胁。

对侧信道攻击研究的历史起源于20世纪90年代,传统的密码分析技术局限于算法的数学结构,其攻击效果往往不佳,当然,在之后的技术发展中,对于穷举法等暴力破解方法, 有着彩虹表等高效率破解法,但另一层面,侧信道的效率相比之下更高,因此国内外密码学界,都在加强算法实现的分析方法研究,侧信道分析技术作为一种新的密码分析方法迅速成为研究热点。

原理层面,传统密码方案在实际应用中都会实现在具体的硬件平台上,形成密码模块、密码芯片、密码系统等,从而完成所需的密码功能,用于满足特定的信息安全需求。而这些模块都在特定的数字电路中进行。

而对于数字电路来说,单个基本单元只有0和1两种状态,如果你针对四个不同的状态ABCD进行破解,例如状态A代表1,状态D代表0,而状态B和C都处于两者之间,那当我们监测时,便可以辨别其是0或者1,数字电路执行操作的过程可以看作状态从A到D,再从D到A循环往复的过程。因此当中间状态花费更多的“时间”和“能量”,产生更多的变量,哪怕只是很微小的,例如每个状态所发出的频率的细微差异,当我们能够有效检测和测量这种“时间”和“能量”的变化时,就能够推断出所在的状态或操作。

通过上述过程,我们便可以推断出密码实现运行过程中的操作或数据,从而能够进行密码破解。这类通过密码实现运行过程中的“时间”、“能量”或其他类似信息进行密码分析的方法称为侧信道攻击。
冲量网络 | 可信计算与侧信道攻击_第4张图片
相比于传统密码分析,侧信道攻击拥有更大危害,实际上,密码系统的安全性不仅取决于密码算法本身的数学安全性,更严重依赖于密码实现的物理安全性。而传统密码分析一般只用于分析密码算法的数学层面安全性。

理论上来说,其是针对密码算法本身和各密码组件的理论分析方法,例如穷举、差分、线性分析、代数分析等一系列方法,但侧信道攻击主要针对的是物理安全性,用能量分析攻击、电磁分析攻击、计时攻击等一系列方法对其实现安全性进行分析。

因此在实际攻击效果上,侧信道攻击能力也远远强于传统方法,根据相关的研究表明,针对无保护的密码系统,哪怕是128位之类的长度,其破解速度还是能快到1分钟以内,其对密码安全构成了巨大威胁。
冲量网络 | 可信计算与侧信道攻击_第5张图片
侧信道攻击本质是利用密码实现运行过程中产生的依赖于密钥的侧信息来实施密钥恢复攻击的,因此防御对策的核心就是减弱甚至消除这种侧信息与密钥之间的直接依赖性。一般会引入随机数来将密钥分解的方法,使得侧信息与密钥的关系减弱。

而冲量网络则提出了另一种创新的解决方案——利用SGX可信计算技术。

Intel SGX已经提供了强大的可信安全计算基础,他们并不保证里面运行软件的内存安全性。比如Use After Free(释放后使用)、Double Free(双释放)、Buffer Overflow(缓存溢出)等内存安全问题为攻击者提供了侵入TEE的可乘之机。

冲量网络将可信算法进行重构,从而进行加强防御,其已经被证明是一套可行的解决方案。冲量网络将与内存安全相关的模块使用Rust语言进行重构,Rust语言编译时即保证内存安全的方案省去了运行时检查内存安全问题的烦恼,增量迭代时也能延续内存安全特性,省去了昂贵的形式化证明。同时,由于绝大多数检查发生在编译时,运行时极为高效,同时,并不会牺牲太多性能。

而对于解决侧信道问题往往会带来扩展性问题的副作用,冲量网络将兼容社区主流的TEE技术框架能力,并参与社区建设,持续优化保障内存安全的解决方案。比如Graphene、Openenclave、Asylo、Teaclave等。

你可能感兴趣的:(冲量网络)