• 快捷搜索
  • 全站搜索

没有 TPM = 没有安全性

2021-05-28 22:42:46作者: Aravinda Korala编辑:金融咨询网 郑重
事实上,TPM 不仅仅是安全的密钥库。它们是 PC 网络上所有安全性的信任根源,在 ATM 网络上也应如此。欢迎阅读KAL关于通过TPM正确全面地保护ATM网络安全之白皮书,本白皮书探讨了银行在设计其 ATM 安全架构时必须考虑的事项,以及银行业应如何利用 TPM 以加密方式锁定硬件、软件和网络。

 TPM(可信平台模块)是嵌入在所有 PC 内部的微型半导体设备,有时甚至会用于 CPU 内部。它们是用于存放加密密钥的保险库,在很多方面类似于支付卡上的芯片。TPM 用于 PC 和笔记本电脑内部已有很长一段时间了,但在银行ATM网络中并没有被很好的部署,主要是由于实施新安全性架构的惯性阻力。这一点很令人惊讶,因为 ATM 网络比大多数行业更需要安全加密的架构。

事实上,TPM 不仅仅是安全的密钥库。它们是 PC 网络上所有安全性的信任根源,在 ATM 网络上也应如此。

本白皮书探讨了银行在设计其 ATM 安全架构时必须考虑的事项,以及银行业应如何利用 TPM 以加密方式锁定硬件、软件和网络。

简介

所有人都同意,必须在不影响 ATM 可用性的前提下,最大限度地保证其安全性。然而,对于如何实现这一目标,人们似乎尚未达成共识。当然,供应商之间的竞争也带来了某种混乱,各种安全产品都在争夺客户的注意力。而且,还有大量错误信息迷惑客户,并最终导致实施效果不佳,进而使客户更容易受到攻击。

本白皮书汇集系统安全的重要基础知识,从如何保护各个计算系统的基准开始,到随后对 ATM 网络(需要最高级保护)独特用例的讨论。ATM 网络不仅要负责大量现金的安全,还是银行主机系统的潜在入口点,而该系统可以在全世界范围内转移巨额资金。对于银行来说,ATM 受攻击的代价可比保险柜内现金丢失的代价大的多。

首先,让我们看一些关于安全性的常见误解。对系统安全性的最大误解可能是对分层安全概念的误解。在保护复杂系统时,确实不存在什么单一的好方法,而是需要多种互相协调的防护措施。然而,该概念经常被误解为安全措施越模糊复杂,系统就越安全。  事实并非如此。基本的加密技术可以公开讨论,并且很简单,也很容易理解,必须由其构成所有安全架构的核心。此类技术不仅实现了可量化的安全性,而且使用起来也很方便,实施时不会给用户带来困难。

让我们用一个简单的例子来阐明这一点。我们都习惯于需要用户名和密码登录的 PC 系统。以密码为基础的安全系统原来总受到黑客的攻击,因此各组织便创建了越来越复杂的密码规则,这些规则对合法用户来说非常不友好——定期更改密码,不能使用最后的 x 个密码,复杂的密码组合且很难记忆等。后来,微软 推出“Windows Hello”打破了这一切。

Windows Hello 将 TPM 安全加密的硬件设备识别与生物特征面部识别相结合。事实上,这与 ATM 行业所熟知的安全概念——芯片密码技术非常相似。在 Windows Hello 中,TPM 相当于芯片,类似于支付卡上芯片的加密处理器,而生物识别信息则代替了密码。这种系统不仅比任何使用“用户名和密码”的系统更加安全,而且对用户极其友好。用户仅仅看着自己的 Surface 平板电脑就可以登录了,瞬间完成,比输入密码中的一个字母都要快。系统是否能既更安全更易用?当然可以。我们需要摆脱“没有痛苦就没有收获”的想法。真正的安全不需要折磨用户。

您应该已注意到,我们在前一段介绍了 TPM 的概念。本白皮书围绕作为计算中“可信核心根源”的 TPM 展开。TPM 是由安全架构组成的安全半导体芯片,其安全架构由 100 多家公司组成的可信计算组织(TCG)设计而成,其中包括英特尔、微软、惠普和 IBM 等大型公司。该组织从 1999 年便开始着手这项工作,旨在为计算设备创建安全核心,以便所有计算安全都能建立在该安全核心之上。好消息是,TPM 已成为所有新 PC 设备中的标准配置,且多年来一直如此。坏消息是,很多机构根本不知道自己的计算设备中有这个安全法宝,也没有好好地利用它。本白皮书旨在尝试改变这种状况,尤其是在我们的 ATM 行业。毕竟,我们比大多行业都更需要计算安全。

TPM——“可信核心根源”

“可信核心根源”是什么意思?为什么 TPM 对计算安全至关重要?要理解这一点,就必须意识到所有计算安全性都依赖于对加密的巧妙运用。加密是一种计算方法,可以将数据从“明文”形式转换为看起来随机的形式,然后再转换回来。

当数据或信息采用明文形式时,可将其用于预期目的。如果数据已加密,则在其被解密前都不可使用。加密和解密最关键的一点是需要一个安全的“密钥”来对数据进行加密或解密。没有密钥,加密的数据就没了用处。实际上,从这个意义上来说,“密钥”一词与保险柜钥匙没有什么不同。如果保险柜钥匙丢失了,就无法取出柜内的黄金。就计算而言,数据就代表着黄金,由加密过程所保护。

现在,我们必须要了解,密钥本身必须采用明文形式才能用来解密消息。这意味着您需要一种安全的密钥存储方法。是的,您可以使用另一个密钥对该密钥进行加密。这样可以确保原始密钥的安全性,但这样一来,第二个密钥的存放位置就成了问题。确实,您可以使用一条密钥链(而且通常确实存在这样的密钥链)。但是初始密钥必须以明文形式存储在安全的位置。采用明文形式的主密钥可以存储在计算机中的哪个位置呢?答案绝硬盘(或 SSD)。根本不可能把明文密钥安全地存储在驱动器上——能够物理访问驱动器的黑客肯定能找到明文密钥。如果黑客能够物理攻击,光靠软件根本无法保护密钥。

TPM出场。可信计算组织(TCG) 将 TPM 设计为保护秘密的硬件保险库,并将其嵌入主板内部。在某些设计中,TPM 可位于 CPU 芯片本身内部。其设计目的就是为了安全地存储密钥。它不仅是密钥库,还有很多其它功能。我们将在下一节中进行介绍。现在,考虑到一个计算系统可能有一条密钥链,但是密钥链开始处的密钥必须采用明文形式且必须非常安全地存储起来,这样其才能用于受信目的。TPM 就是这个密钥库。

CRTM——可信度量根源的核心(core root of trust measurement)

我向您保证,TPM 不仅仅是一个极为出色的密钥库。考虑一下安全的密钥库在工作第一天所遇到的第一个问题。如果有人对 TPM 说:“拜托,能把那个明文密钥给我吗?”您怎么知道是谁在索要密钥?能安全地存储密钥当然很好,但是您要把密钥交给谁呢?索要密钥的代码是否合法,还是只是某种恶意软件在作怪?如果黑客用恶意软件修改了 PC 上的软件,然后礼貌地说:“拜托,TPM,我可以使用密钥吗?”问题就在这,那就是仅成为一个超级安全的密钥库是不够的。需要对索要使用这些密钥的软件进行认证。现在使出 TPM 的第二招——可信度量根源的核心(CRTM)。

CRTM 在通电开始后便与信任链一起工作。硬件与 TPM 协同工作,共同“度量”PC 的启动程序,即从初始启动到 BIOS/UEFI,再一直到启动操作系统。它可以“度量”PC 上的任何软件是否在启动过程中被修改或篡改。此过程称为安全启动,目前已成为使用 UEFI 固件启动 PC的新 PC 内核的标准功能。

为了帮助安全启动,TPM 设计引入了一个称为“PCR”(平台配置寄存器)的概念。TPM 以一种称为“扩展 PCR”的方式计算 PCR 值,其方式有点类似于创建区块链,最终将赋予 PCR 一个 PC 启动顺序的唯一指纹(即一组哈希值)。如果 PCR 未曾被修改过,PC 中的启动软件也就未曾被修改过——这是由密码学来保证的。恶意软件没有一点可能修改被度量启动软件的甚至一个字节而不影响 PCR 值。

tpm diagram 1

这是密码学中一个非常重要的概念。所谓的“安全哈希函数”是一种类似于加密的函数,可将数据块转换为固定长度的字符串,并将其作为原始数据的指纹。如果数据变化,指纹也会相应变化。因此,这是一种万全可靠的检测方法,即使对大型软件的一小部分做以轻微修改也能检测出来。TPM 使用一种称为“HMAC”的哈希值变体。HMAC 是一种“密钥哈希”,这意味着只有拥有正确安全密钥的人才能生成或验证 HMAC 哈希。这是一种“加密哈希”。

我们之所以对此部分进行深入研究,是有原因的——这是 TPM 技术确保 ATM 中核心软件能够 100% 安全的方法。如果 ATM 启动程序受 TPM 保护,那么在无法突破现代密码技术防护的情况下,即便是软件的一小部分也修改不了。这也是我们随后在本白皮书中介绍的概念,以确保 ATM 其余部分的整体安全。

我们现在有了一个安全的软件核心——那应用软件呢?

在运行 Windows 10 的 ATM 上,目前采用了两种重要的微软 技术:Bitlocker 和 Device Guard(现在称为
Windows Defender 应用程序控制——WDAC)。Bitlocker 是微软的驱动器加密技术。这种技术能对整个硬盘或 SSD 进行加密,最重要的是能将其驱动器加密密钥保存“在 TPM 中”。实际上,这比仅将密钥保存在 TPM 中要稍微复杂一些。我们随后将对此进行一些介绍。

请记住,仅能安全地存储密钥是不够的,在给出密钥之前,必须要弄清楚是“谁”在索要密钥。TPM 还有一个称为“封存密钥”的新招数。 ATM 的驱动器首先在一个安全环境中被加密,Windows 生成一个新的密钥,系统随后将使用一个单独的“密钥-加密-密钥”对密钥进行加密,其名称为“KEK”。使用 PCR 值和 TPM 私钥对 KEK 本身进行进一步加密的过程称为“封存”。ATM 启动时,只有在 PCR 测得的所有核心软件指纹都得到验证时,KEK 密钥才可用——这意味着 BIOS 和 Windows 代码没有遭到篡改,如前所述。使用 KEK ,Windows 可对其驱动器加密密钥进行解密,从而解密整个驱动器。一旦检索到 KEK,Windows 就会立即关闭 KEK  后的大门。系统通过“扩展”PCR 11 来执行上述操作——也就是说 PCR 11 在 KEK 解封后会被修改,这样其他人随后就无法对 KEK 进行检索。在执行下一个启动程序前,TPM 将一直确保 KEK 的安全,并且只有在 PCR 确认没有任何核心软件遭到篡改之后,才可以再次使用 KEK。然后,一旦 Bitlocker 可使用 KEK来 解密驱动器,系统将再次锁门。

如您所见,我们已逐步加强了核心软件,然后使用 PCR 检查每个软件,以确保没有发生篡改,直到完成启动过程并加载 Windows。现在,我们需要启动 ATM 应用软件,并在使用前验证我们运行的所有可执行文件未曾被篡改。换句话说,我们进一步对相同的概念进行了扩展,即在使用每个软件组件之前检查它的加密指纹。启动链的这一最后部分由 Windows WDAC(或具有类似功能的第三 方软件)执行。我们通常将此称为“白名单”,其作用是对每个可执行文件的哈希值(即计算出的指纹)进行检查,然后才允许其运行。

ATM 白名单

通过 Windows WDAC(或其它白名单软件)将 ATM 软件列入白名单的最佳方法是使用所谓的“证书规则”。这就要求在 ATM 上部署的软件已由该软件的开发者预先签名。例如,Windows 10 可执行文件均已由 微软 使用其私钥签名。这意味着任何人只要使用 微软的代码签名公钥进行验证,就可以验证 Windows 可执行文件在传送过程中是否遭到修改或篡改,以及是否与 微软签名时的状态完全一致。为了使 WDAC 确认这一点,仅需创建一条说明微软签名的可执行文件可以安全使用的“证书规则”即可。 

同样,KAL 的软件都会由 KAL 的代码签名私钥签署。通过在每台 ATM 上安装 KAL 的代码签名证书,我们的客户可以验证 KAL 软件是否曾遭到篡改。

但是,其它可能无法通过这种方式进行预签名的软件又怎么办呢?有三种选项可供银行选择:

  1. 让供应商签署他们的代码。
  2. 更换供应商。(2020 年真的还有不签署代码的 ATM 供应商吗?显然,是有的)。
  3. 使用“哈希规则”。

哈希规则是银行添加到 WDAC 白名单策略中的规则,对那些未签署执行文件的供应商的每个文件,由银行来计算哈希值。换句话说,银行代为这些供应商签署其代码。显然,这没有在源头签署代码好,因为无法检测在供应商和银行之间的传送过程中是否发生过任何篡改(尽管可能有其它机制来确保安全传输)。

使用这种方法的第二个缺点是银行需要为每个可执行文件创建一条“哈希规则”。这远不如在 ATM 上安装供应商的公共证书那么简便,一个证书就可以涵盖供应商的所有执行文件,以及该供应商未来的所有更新。

我们实现目标了吗?

现在ATM 已启动运行,所有软件已通过加密验证。任何经过篡改或修改的可执行文件都不会被允许运行。即便是现代 ATM 上千兆字节软件可执行文件的一小部分,也不会逃过检测和拦截被黑客攻击。

然而,我们还没实现目标。ATM 以这种方式被保护后,可以免除其软件栈被未经授权修改的担心。但这并不是故事的结尾。在 ATM 上注入恶意软件并不是攻击 ATM 的唯一途径。现在,我们将研究 TPM 如何帮助防御其它类型的攻击。

了解 TPM 的用途

TPM 不仅能确保 ATM 启动过程的安全,它也是确保其它所有事项安全的可信核心根源。 可信计算组织(Trusted Computing Group ) 成员 Will Arthur、David Challener 和 Kenneth Goldman 编写了一本好书——《TPM 2.0 实用指南》,这本书写得极好,是汇集各种观点的宝库,也启发了我写这份白皮书。单击此处,可免费下载此书。

快速总结此书的最佳方法是重点研究书中所列出的 53 个用例。经作者许可后,我将相关用例复制到下方:

1. 存储启动参数

2. VPN 密钥访问

3. 主密钥优化

4. 身份密钥配置

5. 允许资源管理器安全地管理 TPM 密钥

6. 攻击者在同一句柄更换密钥

7. UEFI

8. 在两次认证之间检测重新启动

9. 大文件哈希处理

10. 可信启动——1

11. 可信启动——2

12. 多种同步 TPM 摘要算法

13. 存储登录密码

14. 可信核心根签名验证

15. 多个主密钥

16. 自定义主密钥

17. 验证 TPM 引用密钥

18. 创建证书链

19. 确保密钥授权需要数字签名

20. 确保密钥授权需要生物识别信息

21. 非易失性数据的保证

22. 非易失性扩展索引当量引用

23. 存储机秘

24. 存储证书

25. 存储通用密码

26. 存储根公钥

27. 存储 HMAC 密钥

 

28. 撤消对密钥的通路

29. 多用户密钥吊销

30. CA 密钥使用的安全审核日志

31. 其它 PCR

32. 具有不同属性的 PCR

33. 虚拟化

34. 一次性写入非易失性索引

35. 标准证书

36. 一次性写入永久可读 NV指数

37. 保护策略机密

38. 复制一组密钥

39. 将硬盘加密密钥密封到平台状态

40. VPN 密钥

41. 将密码从当前的操作系统安全地传送到不存在操作系统的环境

42. 引用

43. 检测两次交易之间的重启

44. 没有用于虚拟机的增量属性 PCR

45. 没有用于审核的增量属性 PCR

46. 为各种用户创建不同的 SrK

47. 一组服务器作为一个整体运行

48. 我连接的是什么 TPM?

49. NV 索引、计数器或位域索引的状态是什么?

50. NV 指数作为 PCR 使用

51. 审核作为证书授权中心使用的 TPM

52. 使用 TPM 保护应用审核日志

53. 确保 PCR 在命令顺序中保持不变

 

请粗略看一下以上用例。首先要理解的是,TPM 不仅仅是保证启动过程的安全。如前所述,TPM 是可信核心根,使我们对 ATM 做的每一步操作都能一步一步得到保护。当然,以上每个用例不一定都适用于我们的行业。但是请记住,这些用例都是以密码学安全方式确保项目安全。

这样吧,让我们来举例说明——第 40 个例子“VPN 密钥”。通常,在 ATM 和服务器之间通过在两个系统上安装数字证书(即签名的公共密钥)来搭建 VPN。但是,如果有黑客非法入侵证书会发生什么?事实上,存储在 TPM 保护的 Windows 环境中的证书,如果采用本白皮书所述的锁定方式,是无法被更改的。但是,我们还可以再前进一步。我们可以通过使用TPM的PCR值对 VPN 密钥进行封存。也就是说,在即将连接 VPN 时,只有在 PCR 处于正确状态的情况下,才能提供搭建VPN 所需的密钥。如果有任何差异,VPN 连接将遭到拒绝。现在考虑下该概念可适用于 VPN 通道的两端。不仅 ATM 端的 PCR 必须处于正确状态,数据中心的 ATM 服务器端的PCR也被要求处于正确状态。如果这样做的话,我们在连接之前就能通过密码学验证来确认 ATM 和 ATM 服务器都处于安全状态。我们可以确认 ATM 和 ATM 服务器到目前为止运行的所有可执行文件都是原始文件,没有遭遇过篡改,而且只有在两个系统都满足这种情况时,我们才允许两者连接。

我并不打算在这份白皮书中对电子书中的所有观点进行讨论。事实上,还有一些特别适用于 ATM 的其它用例需要讨论、设计和实施。我希望 ATM 行业可以通过一个或多个委员会来推动。稍后会详细介绍。

保护网络连接

之前简单介绍了网络安全。这是一个对 ATM 尤为重要的用例,因此现在让我们更详细地探讨一下。很显然,我们不仅希望 ATM 安全,我们还要求所有后台服务器系统都能安全且不受侵害。  请参看下图:

 

tpm diagram 2

 

图中展示的是一家典型的有着复杂 ATM 服务的大型银行连接方案。ATM 与一台终端处理器相连,以协调处理来自多个后端服务器的服务。HSM(硬件安全模块)提供加密服务,并帮助进行密码分区。当交易被受理需要授权时,如果是“本行客户”的交易交易请求就会被发送到银行核心系统;如果是“非本行客户”的交易,交易请求就会被发送 到银行卡网络 。

现在想象一个安全的乌托邦,在这里,每台 ATM 和服务器都有一个 TPM(近来所有的硬件都是如此),所有系统从启动时就已经通过 PCR 测量验证,所有 TLS 连接和 VPN 在搭建时都使用由 TPM 开封的证书,从而从密码学角度保证没有遭遇过篡改。这的确是一个乌托邦。遗憾的是,直到 2020 年 8 月,仍没有多少银行能达到这一级别的安全性。

这里潜在的实施挑战是可扩展性和群集化。如果连接绑定到单个 TPM 上,该如何创建服务器群集呢?请查看上述第 47 个用例“一组服务器作为一个整体运行”。可信计算组织( TCG ) 已经想到了这一点。

保护 ATM 的硬件设备连接安全

到目前为止,本白皮书主要聚焦于 ATM 的 PC 核心安全,以及如何保证软件在启动后和运行过程中不会遭遇恶意软件的攻击。现在,让我们来看看 ATM 内的各个硬件配件:读卡器、密码键盘,当然还有出钞模块。PC 核心与各个配件之间连接的安全情况如何?大多数 ATM 采用的是很可能会受到物理攻击的USB 连接方式。如果这些连接有未加密数据,则即使没有恶意软件,ATM 也很容易受到攻击。让我们再用一张图来讨论这个问题: 

 

tpm diagram 3

 

如您所见,我将 USB 连接画成了一朵云,以表明存在攻击风险。TPM 可确保 PC 内核的安全,但是如果 USB 连接线没有受到保护,就有受攻击的风险。人们常认为,是ATM 硬件供应商的责任保护这些连接。然而,情况并没有那么简单,因为这还取决于硬件配件和系统其它部分之间的互通性要求。例如,如果发送给 CDM(出钞模块)的消息采用端到端加密方式,那么“另一端”应该在哪里?例如,如果另一端在终端处理器处终止,则需要讨论和商定很多互通性要求。

同样很明显的是,很多 ATM 上甚至连出钞模块的安全性都还没有得到很好的保障。相关内容,请参阅媒体报道中的各种“黑盒攻击”。如果黑客截获了 出钞模块的连接,并使用自己的 PC 核心控制出钞,就出现了所谓的 ATM 黑盒攻击。对于大多数现代 ATM,PC 核心到 出钞模块之间都采用了加密连接,但 KAL 怀疑安全设计还有很多不足之处,因为还有一些 ATM 并没有 TPM。让我们更清楚直接一些:没有 TPM = 没有安全性。用由魔法保护的密钥进行加密连接的各种模糊方法并不安全。朦朦胧胧,只能靠运气。如果您的硬件供应商不能公布有关如何保护加密密钥的信息,那么非常清楚,那是因为密钥没能得到正确的保护。

XFS4IoT 和硬件设备保护

好消息是,ATM 行业的 XFS 委员会正在讨论如何保护下一代 ATM 设备。可能您已听说过即将发布的 XFS 4.0,该版本名为 XFS4IoT。物联网(IOT)部分展示了该规范为现代物联网世界做好准备的意向。XFS4IoT 有以下几个主要目标:

  1. 该规范与操作系统无关。这意味着 ATM 可运行 Windows、Linux 或任何其它操作系统。
  2. 友好支持云操作。ATM 设备可直接向云提供服务。ATM 的大脑可以放在云端,而不是像现在这样只能放在 ATM 内部。例如,读卡器可以向云开放读卡服务,出钞模块可以向云提供出钞服务。
  3. 以这种方式提供的 Web 服务必须安全可靠。XFS4IoT 将内置安全功能,以确保设备的端到端安全。被选作Web Sockets的传输协议,由 TLS 保护且两端都有证书。此外,每一个 XFS4IoT 设备都可以有一个硬件安全元件,以实现连接的端到端安全。该连接可以在 ATM 本身内部终止(普遍现状),也可以在云服务器上终止。

下图对该概念进行了展示:

tpm diagram 4

XFS4 ATM 可像图左侧的传统 ATM 那样进行设计,即将配件连接到 PC 核心上的软件应用,也可以像图右侧那样向云开放安全服务。在第二种情况下,ATM 内可能根本没有 PC 核心,并且每个配件可能完全相互独立,但在物理距离上很近并采用协同工作的方式,由云应用进行指挥协调。

最需要注意的是标有“HSE”的绿色框。HSE 代表“硬件安全元件”,当然,应由硬件厂商决定实施 XFS 规范的最佳方式。很明显,HSE 必须是 TPM 或子集包含 TPM 功能。HSE 应至少能执行以下几个操作:

  • 安全地存储私钥
  • 执行基本的“可信度量的核心根”(CRTM),以确保只有安全的固件才能使用 HSE
  • 执行加密和签名服务

KAL 已经与 TCG 委员会讨论过这个问题,他们表示很乐意帮助 ATM 行业出谋划策。实际上,TCG 已在“迷你 TPM”概念上取得了一些进展。一个是 TCG 的 DICE 设计,另一个是 TCG 的 MARS 设计。DICE 和 MARS 是否已准备好在 ATM 行业中使用?我们需要找出答案。

这里有一个很有趣的想法,那就是能不能将标准 TPM 作为每个配件内部的 HSE 使用。从成本的角度来看,答案可能是肯定的——OEM 量产的情况下 TPM 的成本不到 1 美元。DICE 的成本甚至更低。对于我们这个保护巨额用户资金的行业而言,TPM 或其它类型的 HSE 的成本不太可能成为阻碍。

ATM 还有一个信任根——加密键盘

我们在上一节讨论了配件保护问题,但在安全方面,我们需要强调一个独特的配件,那就是 EPP(加密密码键盘)。事实上,加密键盘是 ATM 内部一个独立的信任根。它非常安全,遵守 PCI PED 的监管要求,而且每个 加密键盘 都是由行业在全球范围内单独管理和跟踪。它有由自己固件测得的 CRTM 测量值,如果检测到篡改,会自动销毁。确实非常安全。

然而,加密键盘 对行业来说是有利有弊。加密键盘 可为 ATM 提供一定程度的安全性(我们稍后将讨论其局限性),银行一直依靠它来保护 ATM 交易。加密键盘可安全地存储银行的主密钥,并使用一串密钥来确保密码块的安全性,以及 ATM 与主机之间的通信消息已加密并进行了 MAC 处理,进而实现良好的安全性。然而,这还不够安全。

加密键盘 在 ATM 启动时不可用,并且在 Windows 和 XFS SPs(ATM 的硬件驱动程序)启动之前一直不可用。也就是说,加密键盘对 ATM 内部软件的合法性毫无发言权。如果受恶意软件感染的 ATM 应用程序希望接收一个密码或 MAC 一条消息到 ATM 主机,加密键盘  就会执行相应命令。加密键盘 的保护范围太小,无法帮助保护整个 ATM。在大量没有 TPM 保护的软件中这是一个普遍的安全问题。

软件受 TPM 保护时,如何对其进行更新?

读者可能会认为,如果不能更改受 TPM 保护的 ATM 内的任何软件,就很难进行有效的软件更新。请记住,应用软件受证书规则的保护。软件由应用程序开发者(可能是银行本身或受银行信任的供应商)签名。只需使用软件开发组织的安全私钥对要更新的软件进行签名,ATM 就能接受更新。就是这么简单。

如果要对 PCR 监测的核心软件进行更改,需要额外执行一个步骤。核心软件可以完全被远程更新,无需技术人员上门服务,但需要在安装过程中创建一个临时密钥,以对不变的 PCR 进行封存。一旦安装完成,新密钥将对整套 PCR 进行封存。就是这么简单。

还记的我们前面关于 Windows Hello 的举例吧——良好的安全性并不需要很难的方法来实现。事实上,与传统方法相比,世界一流的安全技术——TPM 为银行提供的安全保护,使用起来更简便,加密安全性也更高。

防御物理攻击

尽管我们之前没有具体说明,上述很多讨论都是有关防止 ATM 受到物理和软件的攻击。常见的ATM 攻击方式有偷换驱动器,修改软件,然后恢复掩盖对 ATM 的篡改。但如果硬盘已加密,并且启动链受 TPM 保护,那么这种攻击方法就无计可施。

另一种攻击方式是设法“暴力破坏”TPM,然后快速连续尝试各种密钥。TPM 有内置的“反恶意攻击”保护功能,可以阻止此种攻击。 

最后,某些其它类型的极端攻击可能会直接干扰主板电子元件。据我们所知,这种攻击需要专业的设备,因此成本很高,而且到目前为止还没有发生过。其实,有一些低成本的方法就可以预防这种攻击,例如使用树脂保护主板上裸露的电子器件连接。

小心那些神奇的解决方案

用 TPM 作为信任根基来保障 ATM 和 PC 的安全,是唯一已知和公开可信的全面保护计算机系统安全的方法。我们的行业应该自省,为什么基于 TPM 的安全方案在 ATM 网络上没有更普及。当然,很多厂商希望在市场上竞争,以使他们的产品能有一席之地。这是可以理解的事情。但非常重要的是,银行不应被虚幻不实的方案所迷惑。以下是需要注意的事项:

误区:“不需要硬件安全元件”

非常清楚,根本不可能将私钥安全地存储在 ATM 的硬盘/SSD 上。原因是,无论密钥链有多长,都会有一个初始明文密钥。如果该密钥“隐藏”在驱动器上,则总有可能被发现。有些解决方案声称在启动时生成密钥。但请记住,生成密钥时需要使用明文代码。它必须采用明文形式,因为我们尚未解密驱动器。如果它是明文形式的,就可以很容易地通过在解密驱动器之前是明文形式的可执行代码被进行逆向工程,

换种方式思考一下。如果仅用软件技术就能在 ATM 机上安全地保存密钥,我们的行业就不必费尽心思地创造加密键盘了……

误区:“因为密钥存储在网络上,就不需要硬件安全元件了”

如果因没有 TPM 而导致 ATM 不足以安全地存储密钥,那根本不可能通过将密钥转移到网络来解决这个问题。原因如下:在这种神话方案里,ATM 启动时,需要访问网络,才能获得安全密钥。由于没有密钥库,它就没有一个加密安全的方式在网络上验证自己的身份。也就是说,网络服务器不知道“谁在索要密钥”。例如,当 Bitlocker 在网络上存储密钥时,它仍然需要 TPM 向网络验证自己的身份。没有 TPM = 没有安全性。

误区:“无需加密密钥”

供应商声称有神奇的技术,可以在没有密钥的情况下进行加密,因此不需要存储密钥。好吧,那确实是太好了,好到不真实。既然不需要密钥,为什么全世界一直都在努力改善密钥管理技术?所有已知的加密技术(例如 3DES、AES 和 RSA)都需要使用私钥。私钥正因为必须得被安全地存储,所以才叫这个名字。加密系统之所以安全,是因为密钥是从大量可能性中选择出来的。例如,3DES 至少有 2112个密钥。如果以每秒 50 亿次的速度企图破解,将需要 30 年的时间才能试完所有密钥。如果使用 AES,相同的速度企图破解,那么需要1022年的时间。

误区:“我们的算法很机密”

真正的安全是建立在开放标准、开放算法以及机密的密钥基础之上。安全系统中唯一应保密的只有密钥。如果密钥遭到破坏,您应立即对其进行更换,这样系统就又安全了。

误区:“访问控制列表 (ACL) 可确保我们的安全”

在没有 TPM 锁定的情况下,访问控制列表很容易被规避绕过。ACL 还有很多其它缺点,我们在此不作深入探讨,但可以说仅依靠 ACL 来保护 ATM是不够的。

小结

我希望读者已经理解为什么 TPM 对计算安全乃至 ATM 安全都至关重要。我还希望大家清楚,大多数银行在利用可靠的加密方式确保网络安全方面仍需进步。需要强调的是,任何此类安全系统的设计都必须将互通性考虑在内。多厂商和多种产品解决方案是现代 ATM 技术领域的标准组成部分,不可能由每家供应商单独执行锁定。那将导致 ATM 无法使用。

我希望本白皮书能开启一个新的进程,使我们能够利用 TPM 提供的密码学基础来制定互通的安全规范。可信计算组织( Trusted Computing Group ) 已表示乐意为我们提供帮助。现在,取决于我们行业的各个委员会(XFS4IoT、ATMIA 和 EAST),与银行和厂商们一起来设计未来的发展方向了。

致谢

谨向以下人员对本项目所做贡献表示感谢:

  • Michael Moltke(丹麦 NCC 集团)
  • Kit Patterson(KAL)
  • Will Arthur、David Challener 和 Kenneth Goldman (TPM电子书作者)
  • David Challener (TCG)

如需更多信息,请邮件我们:info@kal.com

扫码即可手机
阅读转发此文

本文评论

相关文章