如果你看过清宫戏,对雍正矫诏篡位的桥段一定不陌生。他串通大臣拿到了传位诏书,把诏书上的“传位十四阿哥”改成了“传位于四阿哥”,顺利的坐上龙椅,出任皇帝,走上人生巅峰。(只是讲述故事剧情,不是说真实历史,请勿当真)
对于普通人来说,这不过是稗官野史,子虚乌有。但对于信息安全从业者来说,这种信息被劫持、被篡改的事件在数字世界屡见不鲜,每一次都会给企业和个人造成重大损失。为了不让数字世界的“雍正”得逞,工程师们为信息叠加了逻辑严密、环环相扣的安全buff……
如何让信息机密又完整?
想要弄明白工程师如何为信息叠buff,先要从安全三要素——可用性、机密性、完整性说起。这三要素是前人通过无数实践总结而来,被视为安全问题的组成属性。以三要素为视角,我们可以轻松堵上“诏书”的安全BUG。
先来看可用性。可用性要求保护资源是“随需而得”,DoS(拒绝服务攻击)是破坏可用性的典型手段。以雍正矫诏为例,DoS攻击相当于他伪造了十万份诏书,让核验诏书的机构直接崩溃。“雍正”没这么做,DoS攻击走的也不是篡改信息的路线,我们直接略过。
再来看机密性。机密性要求数据内容不能泄露,加密是实现机密性要求的常见手段。我们以“传位十四阿哥”为例,每个字都用首个拼音字母代替,就变成了“cwyssag”。再把拼音字母之间建立映射关系,c→b,w→z,y→a,s→d,a→p,g→h,这句话就变成了“bzaddph”。经过这么一番操作,信息就从明文变成了密文,难以被破译和篡改。
在现实中,借助更为复杂、精密的算法和密钥,信息被更加安全的加解密。但是,算法和密钥这对搭档却被“区别对待”——在现代密码学中,信息的安全基于密钥的保密而不是算法的保密。这是因为公开的算法能够让更多人参与到算法的设计和验证中,保证算法的安全性、透明性、通用性。常用的算法如AES、DES、RSA都是公开算法,经过了无数次实战检验,安全性大可放心。相比之下,密钥的安全性需要工程师再动一番脑筋。
为了解决这个难题,工程师们寄出了“非对称加密算法”这件法宝。对称加密是指加密和解密使用同一个密钥,非对称加密则需要公钥和私钥两个配对的密钥,公钥和私钥之间存在唯一对应关系,用公钥加密的信息只有对应的私钥能解密。如果用开关锁做比喻,对称算法是用同一把钥匙开锁和关锁,而非对称算法使用两把不同的钥匙。在此机制下,通信双方只需保管好各自的私钥,信息的机密性便能得到保障。
最后来看完整性。完整性要求保护数据内容是完整的、没有被篡改的,数字签名是保证信息完整性的有效手段。数字签名相当于信息发送方给信息签名盖章,接受方通过对比签章,判断信息是否完整、是否被篡改。
与加密、解密一样,数字签名也有签名和验签两个环节。存在唯一对应关系的私钥和公钥是数字签名的绝佳工具。信息发送方使用自己的私钥对信息进行签名,为信息生成唯一标识,接收方使用对应的公钥验签,就能证明信息来源是否合法。在这种机制下,只要私钥安全,攻击者就无法伪造发送方的数字签名,信息的完整性就能得到保障。
为了便于理解,我们可以把数字签名视为“传位诏书”封皮上的火漆印章。为了保险,火漆上的印章和虎符一样分成了严格匹配的两半,一半放在在军机处,一半放在指定的王公大臣手里。“雍正”就算拿到了诏书、篡改了内容,也没法同时伪造两个印章来证明诏书的完整性,自然无法篡位成功。
芯盾时代智能终端密码模块(PMIT)
看到这里,很多小伙伴已经发现了保证信息的机密性和完整性的三个关键因素。
- 第一,是生成私钥的算法是否安全,只有算法安全,才能保证私钥独一无二、无法复制。
- 第二,是密钥、尤其是私钥的存储环境是否安全,密钥终究要存储在设备之中,如果存储环境不安全,密钥可能会被“雍正”窃取。
- 第三,是密钥的使用环境否安全,如果加密和解密、签名和验签的进程被人监听,关键数据有可能会被重放,密钥有可能被破解。
找到了关键因素,就可以对症下药。针对这三个问题,芯盾时代基于零信任理念,打造了智能终端密码模块(PMIT),通过三重防护让信息又机密又完整:
第一重:分割密钥技术
在私钥的算法上,芯盾时代采用自主研发的分割密钥技术生成私钥,将用户的私钥拆分成为两半,一半存放在客户端,一半存放在服务端,借助服务端更完备的防御体系、更安全的存储环境避免完整私钥被窃取。密钥被拆分后,使用私钥签名时需要客户端与服务端相互配合,签名和验签的安全性得到了提升,就算攻击者获取了存储在客户端的部分私钥,也无法伪造数字签名。
第二重:白盒算法
密钥终归是数据。黑客通过调试器、dump内存等手段搭建白盒环境,获取App运行过程中过的所有数据,对密钥和数字证书进行还原和破解。为了保证白盒环境下的密钥安全,芯盾时代采用白盒算法,采用分段加密、部分加密等方式保护密钥和数字证书存储及运行过程安全,让攻击者望数据兴叹。
第三重:安全数据沙箱
在白盒算法的基础上,芯盾时代更进一步,用终端安全数据沙箱构建可信的运行环境,配合独立进程保护,在终端形成独立的软件数据防护区域,防止关键数据被窃取、被篡改,保证加解密过程的安全可控。
除了用三重防护保证密钥的安全,芯盾时代智能终端密码模块(PMIT)还全面支持国密算法,满足密码应用安全性测评要求。
有了智能终端密码模块(PMIT),芯盾时代的“智能业务安全产品线”能保障金融企业的业务安全稳定运行,让C端用户用手机银行App安心进行各种操作;“零信任企业安全产品线”能保证企业远程办公、远程开发、远程运维的安全,让员工更安全的访问企业内网。