众所周知,智能卡是存储敏感数据的安全场所,例如金钱和身份。如果主题是身份,我们应该讨论 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 证书的用户和/或是证书主题的终端用户系统;
RA:注册机构,即 CA 委托某些管理职能的可选系统;(在某些实现中,您需要在此处向系统注册自己)
CA:证书颁发机构;(您的公钥可以在您注册时颁发,也可以自签名,然后签名,您的证书在 CA 处颁发给您)
存储库:一个系统或分布式系统集合,用于存储证书和 CRL(证书吊销列表),并作为向终端实体分发这些证书和 CRL 的手段。
实际上,这只是 PKI 实体的一个简化视图。雇主或终端实体只需向 CA 或 RA 申请证书。证书只是一个公钥,由颁发者 CA 的私钥进行数字签名。通过 CA 的私钥签名,所有信任 CA 的人也可以信任终端实体。您的数字身份就准备好了。只需将您的数字身份和私钥写入您的智能卡。或者更好的是,新的智能卡部署了嵌入式功能,可以在卡内生成公钥和私钥,这意味着您的私钥不会导出到任何地方。
新部署的卡具有 PKI 功能,您无需将私钥导出到您使用的应用程序。例如,当您要发送签名邮件时,您的邮件应用程序首先生成您刚编写的文档的哈希值,并开始与卡进行通信。您的应用程序将哈希值发送到卡,然后在卡内使用您的私钥对其进行签名。通过这种方式,您的私钥永远不会导出到公共场所,即您的计算机。
此外,在访问您的远程 shell 帐户时,您可以使用 ssh(安全 shell)客户端。在 OpenSSH 的手册页中,描述了 ssh 协议 2 的一种身份验证方法。该方法的主要目的是真实地识别尝试访问帐户的人员,并在用户被接受的情况下,在主机之间建立安全连接。理论上,只有您自己知道您的私钥。尽管您的私钥只能由您自己读取,但这可能存在安全风险。但是,如果您的私钥存储在智能卡中,则安全性会更高。当然,智能卡可能会丢失。但在此时,另一个安全问题就出现了,那就是您的 PIN 码。一般来说,智能卡的安全性来自两个方面,一是您知道的东西,二是您拥有的东西。
SSH 并非智能卡唯一可以使用的应用程序。其他应用程序,例如网上货币交易、向您连接的网站验证身份,都可以通过智能卡完成。系统或多或少是相同的。您的身份通过您的私钥进行验证,并使用您的密钥启动安全会话。然后是应用程序特定的部分,这部分由应用程序的服务提供商设计和部署。一些货币交易直接在智能卡内部完成,但有些应用程序只是向卡索取您的银行帐号。可能还有更多方法。
市场上可以找到可以与智能卡通信的电子锁。除了卡和读卡器之间的相互认证之外,PKI 还可以支持建筑物中的访问核算。可以仅使用相互认证,或者锁向本地服务器请求,本地服务器保存用户数据并检查用户是否被允许进入门后。无论是否授予权限,服务器都会记录访问尝试的轨迹。
随着智能卡集成到 PKI 世界中,可以构建更多应用程序。这些应用程序大多是特定于安全的,或者是为了简化客户的生活。