PKI 解决方案供应商选择

信息安全 密钥管理 证书 公钥基础设施
2021-08-15 12:09:18

您会在 (X.509-) PKI 解决方案中寻找什么,以及为什么要寻找它,考虑到以下限制:

  • 可用的编程/软件工程知识是有限的(即,“带有少量 Perl 脚本的 OpenSSL”不是一种可行的方法)
  • 流程被合理理解(例如证书生命周期)
  • 一些(根/中间)证书将具有很高的货币价值,必须得到相应的保护(HSM?)
  • 使用委派的管理员权限处理多个组织中的“数万个”身份
  • 基于硬件的解决方案(智能卡或其他)可能很快就会成为一种需求。
  • 本地自托管解决方案

我已经从“通常的嫌疑人”中确定了一些候选人,但我有一些疑问(过去几年市场似乎成熟得很少?)。因此,我不会点名候选人,但会要求提供公正的意见。

2个回答

全面披露:我为电压安全工作。我认为最好提前说明这一点,而不是先给您一些销售技巧,然后“意外”将您指向我们的网站。虽然这绝不是公司赞助的回应,但我坦率地承认我的观点并非公正。我会尽量减少泄漏到此响应中,但请以适当程度的怀疑阅读。

非对称加密方案的根本问题不是加密,而是密钥管理。因此,PKI 系统的区别不是加密的安全性,而是相同的用户配置、删除和一般系统管理的易用性。

因此,我会向非对称加密供应商提出的问题是:

  1. 将新的加密数据接收者带入系统的过程是什么?
  2. 私钥是如何存储、保护和备份的?
  3. 如何管理凭据?
  4. 如何处理姓名更改?(例如,某人结婚并更改姓名和系统登录:如果有的话,会产生什么影响?)
  5. 数据丢失防护设备如何扫描加密数据,以确保内部人员不会使用加密工具将数据偷运出公司?

编辑

(这是我最初遗漏的东西,因为感觉太销售了)

提出上述问题的原因:

  1. 大多数 PKI 系统都要求接收者创建一个公钥/私钥对,然后才能将任何数据发送给他们。这抑制了系统的临时使用,人们可以在其中为任何收件人加密。
  2. 如果私钥丢失,则使用相应公钥加密的数据也会丢失。故事结局。任何严肃的 PKI 系统都会有一些机制来找回丢失的私钥。如果这是一个密钥数据库,那么您需要考虑如何保护它,并确保它经常备份。如果解决方案必须存在于多个数据中心以实现高可用性,还应考虑复制。
  3. 这很简单:用户必须提供某种身份验证凭据才能访问私钥。询问如何将其集成到现有的身份验证方法中。
  4. 想象一下,玛丽琼斯结婚(或离婚)并成为玛丽史密斯。使用“Mary Smith”的凭据,她需要能够访问以前为“Mary Jones”加密的数据。PKI 系统应该优雅地处理这种情况。另一种方法是找到为“Mary Jones”加密的所有数据,将其解密,然后为“Mary Smith”重新加密。呸。
  5. 从根本上说,DLP 设备需要能够访问任何加密数据的明文。询问如何实现这一点。

PKI 是 5% 的技术,95% 的程序。X.509 证书的基本部分非常简单:就是签名第一个可用的算法已在 1970 年代后期描述,细节在 1990 年代初期已基本解决(这并不是贬低过去二十年的密码学研究,但在实践中,PKCS#1 v1.5 签名是够好了)。

程序准确描述了发生的情况,最好是在“击键级别”:更新中间 CA 证书等敏感操作应该由操作员在至少一名审核员的监督下执行,审核员检查是否没有按下任何键,没有点击按钮,除非明确表示程序中规定。范围大;它还包括对包含 CA 的房间的物理保护、监控摄像机的位置……

因此,您必须问的第一个问题是:产品是否带有全面的程序手册,或者至少是要根据当地环境调整的程序模板?编写这些程序并执行它们是 PKI 中成本最高的部分。这需要知道“幕后”发生了什么:不是“编程如何”的问题,而是对私钥是什么以及它可以做什么有更多明确的概念。如果您内部没有这种知识,并且 PKI 产品也没有提供有关该主题的足够信息,那么您将不得不聘请顾问,这并不便宜(我应该知道)。


身份验证、身份管理和授权不是一回事。当我们一般地谈论 PKI 时,我们通常会想到一些与三个不同活动相关的要求:

  • 身份管理:跟踪用户、他们的姓名、员工 ID、最后修改日期等。这部分总是需要的,但可以是“隐式”的,或者如果只有两打用户,则可以像 Excel 电子表格一样简单。对于 20k 用户,您将需要一些更先进的东西。

  • 身份验证:确保声称是用户U的人确实是用户U。

  • 授权:了解并跟踪允许给定用户U触发的操作,可以读取和/或写入的数据。

这些活动是不同的。有些产品将其中的一部分或全部混为一谈,这可能意味着令人不舒服的限制。例如,考虑Active Directory:作为 LDAP 服务器,它可用于身份管理,但其 Kerberos 组件处理身份验证;这使得将非基于密码的身份验证与 Active Directory 集成起来相当麻烦。

这三种活动必须桥接,但仍保持分开。X.509 证书主要是身份验证,但证书的颁发必须以身份管理为基础,以便知道在证书中放入什么(证书将公钥绑定到身份)。关于 PKI 的一个非常重要的教训是证书对授权没有好处大多数人对 PKI 犯的第一个错误是他们试图在证书中嵌入访问权限,然后失败了,他们明白他们不应该这样做(确切原因很难确定,但与固有的异步性有关证书颁发)。

所以这就给供应商带来了第二个问题:你的产品是否允许身份管理、证书管理和授权的分离,以及它们之间支持哪些桥梁?

作为说明(不是产品推荐),请考虑Microsoft Forefront Identity Manager套件,其中包括多个产品:用于身份管理的 FIM 服务/门户、用于证书的 FIM CM(围绕 CA 的包装器,也处理智能卡)、FIM用于桥接身份管理与 AD 服务器和 FIM CM 的同步,...


如果您的 PKI 有任何重要价值(如果没有,为什么还要麻烦?),那么您将希望在硬件安全模块中保护您的 CA 私钥优选地,使根CA离线,前提是离线的CA不能从网络被黑进来。在所有客户端系统中分发根 CA 公钥是一项重大成本,您不希望这样做两次,因此您真的希望看到您的根 CA 受损或丢失或两者兼而有之。

由于您还有很多证书要颁发,因此您可能需要一个在线中间CA。您可以从该 CA 的丢失或受损中恢复,而无需在所有客户端系统中重新分配新的根 CA 密钥(这就是将根与中间 CA 分开的关键),但这并不意味着您会很高兴看到您的中间 CA 私钥被盗。因此,该密钥的 HSM 也会很棒。

因此,请询问您的 PKI 供应商:是否支持 HSM?

智能卡类似于小型 HSM,但在客户端。智能卡支持需要一些初始化;在某些时候,某些桌面系统上会运行一些智能卡特定代码。同样,PKI 产品可能包含对此的一些支持,也可能不包含。智能卡供应商也可以提供帮助。


如果您的证书用于加密,而不是签名和身份验证,那么您将需要一些密钥托管事实上,当一些数据用私钥加密并且私钥丢失时,数据就会丢失。因此需要在某处进行备份。这通常是加密电子邮件的情况。此类密钥备份非常敏感(它们对攻击者来说是一个非常诱人的目标),因此不得即兴创作。

因此:PKI 解决方案是否包含密钥托管系统?

另一方面,您当然不想托管用于签名的密钥,因为这将危及可能附加到这些签名的任何法律价值(细节因上下文和管辖权而异,但作为一般规则,您不会托管签名密钥)。这意味着想要进行加密签名的用户将需要两个密钥,因此需要两个证书。因此还有一个问题:PKI 解决方案是否支持多证书用户?


以上所有内容都是关于 X.509 的 PKI。可能存在替代解决方案,例如基于 ID 的密码学(“电压”的含义,由 @Dave 链接),或像OpenPGP Web of Trust这样的分散式系统。一个必要的初始步骤是写下您的要求。你有限制;那挺好的。但是您还必须回答以下问题:一个 PKI,是的,但要做什么?