网络安全和加密三——可信计算和TPM
什么是身份认证
身份认证,是指在数字世界中对操作者身份进行充分确认的过程,简单讲就是身份鉴别。传统的身份认证方法主要可以分为以下三种:
1.根据用户所知道的信息来证明身份(what you know)。主要认证方式包括静态口令、用户个人信息等。但这种方法的缺点是,其他人很容易获得这个信息,然后对系统进行非授权的访问;
2.根据用户所拥有的物品来证明身份(what you have)。主要认证方式包括电子令牌、APP动态口令、手机短信验证、智能卡认证、数字证书认证等。但单一的证明容易丢失或被盗,从而导致对系统进行非授权的访问;
3.根据用户独一无二的身体特征来证明身份(who you are)。主要认证方式包括指纹识别、人脸识别、虹膜识别等。
理论上来说,每个人的生物特征不同,不易被仿冒,基于生物特征来进行身份认证是较为安全可靠的方式。但是,在实际应用中这种方式还面临不防攻击、认证复杂、恶劣环境下精度不够高,以及研发成本高、隐私泄露等问题。
这三种方式仅通过一个条件的符合来验证一个人的身份,称之为单因子认证。由于只使用一个条件来判断用户的身份,单因子认证很容易被仿冒。而双因子或多因子认证是通过组合两种或多种不同条件来证明一个人的身份,安全性将有明显提高。
常见的认证方法
目前使用最为广泛的双因子认证方法有: 动态口令+静态密码、USB KEY + 静态密码等等。主要应用于银行、证券、电商、数字政务等领域,以防止非法人员盗用、冒用合法用户身份登录到应用系统进行非法操作。
1.动态口令(OTP,One-Time Password)
基于时间、事件等方式动态生成的一次性口令,可以防止密码被盗用引发的安全风险。动态口令是基于时间的算法,每隔60秒生成一个随机数字组合,每个口令只能使用一次。用户登录系统,只需要输入用户名和相应时间段的动态口令,就可以安全登录,无需定期更换密码,具有高安全性、方便快捷等优势。
2.USB KEY
USB Key是一种USB接口的硬件设备。它内置单片机或智能卡芯片,可以存储用户的密钥或数字证书,利用USB Key内置的公钥算法实现对用户身份的认证。由于用户私钥保存在安全芯片中,理论上使用任何方式都无法读取,因此保证了用户认证的安全性。
但是,USB KEY在使用时需要在客户端安装软件,且需要插入到客户端才能使用,对客户端的接口有限制。作为一个独立硬件,携带不便,因此USB KEY在易用性和应用范围方面比动态口令稍弱一些。
3.静态密码
是由用户自己设定的一串静态数据,长期保持不变且可以被反复使用。静态密码的实施部署比较简单,也导致了其容易被偷看、暴力破解、窃取、监听、木马攻击等安全性缺点。为了充分满足互联网对于身份认证安全性的需求,静态密码通常与动态口令或USB KEY 结合起来,构成双因子认证机制。
身份认证面临的安全威胁
双因子或多因子身份认证采用不同类型的认证因素, 通常需要后端认证平台和终端设备配合起来实现。这同时也意味着在此过程中,可能会面临来自客户端、网络、服务器端等多个环节的安全威胁。以下是需要警惕的四大威胁:
1.暴力破解
这是针对静态密码最常见的攻击方式,攻击者会不断通过工具软件进行自动化攻击来猜测密码。暴力破解还存在一种我们之前文章中提到的“撞库攻击”方法(此处附上撞库攻击的文章链接)。攻击者盗取用户在某一个网络平台的登录名和密码,在要破解的目标系统上测试登录。因为大多数人一般习惯在不同的系统中使用相同或相近的用户及密码,这就让攻击者有机可乘。
2.中间人攻击
是一种“间接”的攻击方式。攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制,可以在双方毫不知情的情况下进行数据篡改和嗅探。
3.钓鱼攻击
攻击者利用伪造的网站或欺骗性的电子邮件,引诱用户点击并输入个人信息,由此攻击者便获取了用户名、密码等用户敏感信息,可以顺利通过要破解的系统的身份验证。
4.重放攻击
指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。
身份认证与可信计算
多重的安全风险正一步步地对身份认证机制的正常运行造成威胁。与此同时,随着物联网、人工智能、大数据、区块链等新一代信息技术的发展,网络环境更加复杂,对身份认证也提出了新的要求和挑战。
在此背景下,用可信计算守护身份认证安全或许是一条明智的出路。
可信计算是一种运算和防护并存、自我免疫的新计算模式,主要是通过在系统内部植入可信计算平台模块TPM(Trusted Platform Module),从系统中建立信任根,并在系统内一级认证一级,一级信任一级,逐渐构建出信任链,从而保障整个系统的可信。基于TPM平台中背书密钥(EK) 唯一性且不对外发布的特点,可信计算在身份认证领域具有天然优势。
1.背书密钥(EK)和平台身份认证密钥(AIK)
背书密钥(EK)是TPM平台的一个不可迁移的身份认证密钥,代表着每个平台的真实身份,每个平台都拥有唯一的一个(一芯一密),它是TPM唯一的密码身份标识。EK在最初创建时必须是保密的。
EK密钥由TPM芯片生产厂商生成,是TPM芯片的唯一标识,在理想状态下,TPM内部保存着可信第三方颁发的EK证书用以证明EK的合法性。
然而,尽管EK代表了TPM的身份,但是如果每次证明都采用EK来进行一系列的签名,在签名几十万几百万甚至更多次后,攻击者可能猜出EK。为了保护EK,证明时需要根据EK生成平台身份认证密钥(AIK),由AIK来替代EK作为TPM身份的象征。
平台身份认证密钥(AIK)专用于对TPM产生的数据进行签名,用来证明平台的身份和平台的环境配置,产生过程中需要可信第三方PCA(Privacy CA,隐私CA)的支持。创建流程如下:
①配备TPM的客户端调用TPM_MakeIdentity以创建AIK密钥
②TSS组织AIK请求,包括AIK公钥部分和TPM的EK证书
③客户端用PCA公钥对AIK请求进行加密,并将加密数据发送给PCA
④PCA验证AIK请求,包括检查请求中EK证书的合法性
⑤PCA签署AIK证书,使用客户端的EK公钥进行加密,然后将数据发送到客户端
⑥客户端调用TPM_ActivateIdentity以获得AIK证书
2.基于AIK的身份认证过程
可信计算平台的身份认证是通过AIK来实现的。通过用户使用的终端中TPM产生的一堆AIK密钥,然后将背书证书、平台证书、一致性证书集中在一起,在可信的第三方PCA进行验证后生产AIK证书。随后将AIK存于存储器中,并在认证服务器中相关的LDAP用户证书目录,便于应用系统对用户的认证。
· TPM背书证书(Endorsement Credential,EndCred):TPM制造商签发
· 平台证书(Platform Credential,PlatCred):由计算机平台制造商签发,声明TPM正确集成到平台中
· 一致性证书(Conformance Credential,ConCred):用来声明和证实一类计算平台的实现符合TCG的哪些规范,符合哪些安全要求,可有多个,有的对应CRTM,有的对应TPM、CRTM和系统间的安全连接。
参考
可信计算是如何让身份认证变得更安全的?