PKI
公钥基础结构(PKI)是用于创建,存储和分发数字证书的系统,这些证书用于验证特定公钥是否属于某个实体。PKI创建将公共密钥映射到实体的数字证书,将这些证书安全地存储在中央存储库中,并在需要时将其吊销。
一个 public key infrastructure(PKI)是一组角色,策略,硬件,软件和创建,管理,分发所需的程序,使用,储存和吊销数字证书和管理公共密钥加密。
PKI至少包括如下核心组件:
- CA(Certification Authority):负责证书的颁发和作废,接收来自RA的请求,是最核心的部分;
- RA(Registration Authority):对用户身份进行验证,校验数据合法性,负责登记,审核过了就发给CA;
- 证书数据库:存放证书,多采用X.500系列标准格式。可以配合LDAP目录服务管理用户信息。
- [option]VA (验证机构): 托管CRL(证书吊销列表), 提供用于验证数字证书有效性的服务
常见的操作流程为,用户通过RA登记申请证书,提供身份和认证信息等;CA审核后完成证书的制造,颁发给用户。用户如果需要撤销证书则需要再次向CA发出申请
参考: PKI - WIKI
开源实现
- OpenSSL是CA和PKI工具的最简单形式。它是一个用C语言开发的工具包,已包含在所有主要的Linux发行版中,可用于构建自己的(简单的)CA和启用PKI的应用程序。(Apache许可)
- EJBCA是用Java开发的功能齐全的企业级CA实施。它既可以用于内部使用也可以作为服务设置CA。(LGPL许可)
- XiPKI,[26] CA和OCSP响应者。具有SHA3支持,以Java实现。(Apache许可)
- OpenCA是使用许多不同工具的功能齐全的CA实施。OpenCA使用OpenSSL进行基础PKI操作。
- XCA是图形界面和数据库。XCA使用OpenSSL进行基础PKI操作。
- (已停产)TinyCA是OpenSSL的图形界面。
- IoT_pki是使用python 加密库构建的简单PKI
- DogTag是功能齐全的CA,作为Fedora项目的一部分进行开发和维护。
- CFSSL [27] [28]由CloudFlare开发的开放式源代码工具包,用于签名,验证和捆绑TLS证书。(BSD 2条款许可)
- 由HashiCorp开发的用于安全管理机密(包括TLS证书)的Vault [29]工具。(获得Mozilla Public License 2.0许可)
- Libhermetik是一个嵌入在C语言库中的自包含公钥基础结构系统。Hermetik将LibSodium用于所有加密操作,并将SQLite用于所有数据持久性操作。该软件是开源的,并根据ISC许可发布。