7. 智能卡与 PKI 的关系

众所周知,智能卡是存储敏感数据的安全场所,例如金钱和身份。如果主题是身份,我们应该讨论 PKI(公钥基础设施)和智能卡。

想象一下,您在一家拥有许多分公司和设施的公司工作。在这样的大公司中,员工通常拥有不同物理位置的访问权限。您还需要访问公司内部的服务器,用于各种目的,例如发送邮件、上传网页和访问公司数据库。试想一下,每个服务器一个密码,每扇门一把钥匙,钱包里还要放些钱,以便在当地餐馆购买食物或饮料。

实际上,您只需使用一张智能卡即可。如果您使用微处理器卡,并且卡片的操作系统或 Java 小卡片允许,您可以使用一张卡完成所有这些操作。为了使这种情景可行,公司必须建立一个本地 CA(证书颁发机构)。下面是一个图表,简单地展示了 PKI 的结构,如 RFC 2459 中所述。
       +---+
       | C |                       +------------+
       | e | <-------------------->| End entity |
       | r |       Operational     +------------+
       | t |       transactions          ^
       |   |      and management         |  Management
       | / |       transactions          |  transactions
       |   |                             |                PKI users
       | C |                             v
       | R |       -------------------+--+-----------+----------------
       | L |                          ^              ^
       |   |                          |              |  PKI management
       |   |                          v              |      entities
       | R |                       +------+          |
       | e | <---------------------| RA   | <---+    |
       | p |  Publish certificate  +------+     |    |
       | o |                                    |    |
       | s |                                    |    |
       | I |                                    v    v
       | t |                                +------------+
       | o | <------------------------------|     CA     |
       | r |   Publish certificate          +------------+
       | y |   Publish CRL                         ^
       |   |                                       |
       +---+                        Management     |
                                    transactions   |
                                                   v
                                               +------+
                                               |  CA  |
                                               +------+

实际上,这只是 PKI 实体的一个简化视图。雇主或终端实体只需向 CA 或 RA 申请证书。证书只是一个公钥,由颁发者 CA 的私钥进行数字签名。通过 CA 的私钥签名,所有信任 CA 的人也可以信任终端实体。您的数字身份就准备好了。只需将您的数字身份和私钥写入您的智能卡。或者更好的是,新的智能卡部署了嵌入式功能,可以在卡内生成公钥和私钥,这意味着您的私钥不会导出到任何地方。

新部署的卡具有 PKI 功能,您无需将私钥导出到您使用的应用程序。例如,当您要发送签名邮件时,您的邮件应用程序首先生成您刚编写的文档的哈希值,并开始与卡进行通信。您的应用程序将哈希值发送到卡,然后在卡内使用您的私钥对其进行签名。通过这种方式,您的私钥永远不会导出到公共场所,即您的计算机。

此外,在访问您的远程 shell 帐户时,您可以使用 ssh(安全 shell)客户端。在 OpenSSH 的手册页中,描述了 ssh 协议 2 的一种身份验证方法。该方法的主要目的是真实地识别尝试访问帐户的人员,并在用户被接受的情况下,在主机之间建立安全连接。理论上,只有您自己知道您的私钥。尽管您的私钥只能由您自己读取,但这可能存在安全风险。但是,如果您的私钥存储在智能卡中,则安全性会更高。当然,智能卡可能会丢失。但在此时,另一个安全问题就出现了,那就是您的 PIN 码。一般来说,智能卡的安全性来自两个方面,一是您知道的东西,二是您拥有的东西。

SSH 并非智能卡唯一可以使用的应用程序。其他应用程序,例如网上货币交易、向您连接的网站验证身份,都可以通过智能卡完成。系统或多或少是相同的。您的身份通过您的私钥进行验证,并使用您的密钥启动安全会话。然后是应用程序特定的部分,这部分由应用程序的服务提供商设计和部署。一些货币交易直接在智能卡内部完成,但有些应用程序只是向卡索取您的银行帐号。可能还有更多方法。

市场上可以找到可以与智能卡通信的电子锁。除了卡和读卡器之间的相互认证之外,PKI 还可以支持建筑物中的访问核算。可以仅使用相互认证,或者锁向本地服务器请求,本地服务器保存用户数据并检查用户是否被允许进入门后。无论是否授予权限,服务器都会记录访问尝试的轨迹。

随着智能卡集成到 PKI 世界中,可以构建更多应用程序。这些应用程序大多是特定于安全的,或者是为了简化客户的生活。