CA系统技术方案
一:需求
1 :总体描述
• 系统名称
CA 证书安全认证系统
• 系统适用范围
• 专用的第三方安全认证系统
• 企事业内部的安全认证系统
2 :功能
CA 的功能包括证书管理、密钥管理、 CRL 管理和系统管理四个部分:
• 证书管理
主要包括证书签发 、证书验证、证书作废、 证书更新、 证书在线查询、证书下载、证书存储介质制作和 证书格式转换等。
• CRL 管理
主要包括证书撤消列表签发、证书撤消列表验证、证书撤消列表更新、证书撤消列表下载和证书撤消列表查找等。
• 密钥管理
主要包括密钥生成、密钥存储介质制作、 密钥备份、密钥更新、密钥恢复和密钥历史等。
• 系统管理
主要包括系统日志、系统配置、策略管理、操作员管理、系统统计分析、 交叉认证等。
3 :系统要求
• 如图 1 所示,系统必须支持一个完整的 PKI 操作。
图 1 :完整的 PKI 操作
• 要实现系统结构的可配置
• 要实现对不同硬件和软件的适应性
• 要实现系统操作流程的可配置
三: 开发环境
1 、硬件和网络环境
• 主机配置(略)
• 外设配置(略)
• 网络配置(略)
2 、软件环境
• 操作系统
• 服务器: AIX 、 SUN 、 LINUX 、 NT 、 WIN2000SERVER
• 客户端: WIN98 、 WIN2000 、 NT 、 WIN2000WORKSTATION
• 数据库系统
IBM DB2 、 ORACLE 、 SQL
• 编程语言
C 、 C++ 、 DB2 、 HTML 、 CGI
• 开发工具
Visual C++ 、 C++ Builder 、 CC 、
• 支撑软件
• 得安加密机接口
• 得安 PKCS#11 接口
四: 总体结构
1 :物理结构图
如图 2 所示, CA 从物理上可以分为六个部分: EndUser 、 RA 、 RAO 、 CAInfo 、 CA 、 CAO 。各自的功能如下:
• EndUser :客户端软件,集成了个人安全环境保护工具和一些方便用户的工具。
• RA :
• RA : 注册中心,负责审核用户的资料的准确性
• WebRA : 提供 RA 的一个完全基于 WEB 的实现
• RAO : RA 的客户端, 负责 RA 系统本身业务操作和管理维护,提供日志分析统计等。
• CAInfo
• Web : CA 系统的门户网站,提供系统简介、操作说明、策略政策陈述等。
• LDAP :目录服务器,提供证书和 CRL 等信息的存储。
• OCSP :证书在线查询服务器,提供证书状态的在线查询。
• CA
• CAInterface : CA 的接口服务器,负责 RA 、 EndUser 、 CAO 等部件和 CA 的通信。
• CASigner : CA 的签发服务器,负责证书和 CRL 的签发。
• PM ( PriviledgeManager ):特权管理中心,提供属性权限的分发和验证。
• KMC ( KeyManageCenter ):提供密钥备份、密钥恢复、密钥历史。
• TimeStamp : 提供时间戳的签发和验证。
• CAO : 负责 CA 系统本身业务操作和管理维护,提供日志分析统计、策略设定等;提供
相应权限内的用户证书的管理工作,主要包括用户的证书作废、事件审计等。
图 2 : CA 系统的物理结构示意图
2 :层次结构图
图 3 : CA 系统的层次结构图
上图中的一些组件功能如下:
• SecurityProtocol ( Tcpmessage ):
提供安全的通信协议(本系统中提供基于 TCP 的通信协议,具体描述见“通信协议概要设计方案 .doc ”)
• SystemService ( Key Management 、 Cert Management 、 Crl Management ):
提供证书管理、密钥管理和 CRL 管理三种服务
• ProtocolSecurityService ( rfc2510 、 rfc2511 、 pkcs#10 、 pkcs#7 ):
提保证安全通信所需要的服务。
• CryproService :
对上层应用提供与加密设备无关的加密服务。
• VerifyPrilivelidge
验证每一个操作是否拥有相应的权限,包括数据完整性和保密性的验证、操作者的权限验证等。
• DataStore
对上层应用提供与具体实现无关的数据存储服务,包括本地数据的存储和 CA 系统的数据仓库的维护。
• TrustUnit :
处理 CA 内部的信任关系 , 包括树型信任模型、 WEB 信任模型、交叉认证等。
• PolicyConfig
实现系统的灵活的配置控制和策略控制。
3 :功能结构图:
图 4 : CA 系统的功能结构图
五:设计细节
1 :系统运行过程和逻辑流程
系统各个物理模块间的流程如图 5 所示,详细的通信协议描述见“通信协议概要设计 方案 .doc ”;详细的操作流程描述见“ CA 中具体流程概要设计 方案 .doc ”;
图 5 : CA 系统的通信流程图
2 :底层支持子模块说明
2.1 : CryptoService
CryptoService 通过一种高层次的与具体算法和实现无关的界面向 上层应用提供加解密服务:数据签名、数据签名验证、数据摘要、数据加密、数据解密、产生密钥对、产生随机数、包裹密钥、解包密钥、产生 MAC 、验证 MAC 。 CryptoService 实现以上功能的具体方式对应用程序是透明的。 CryptoService 可以实现以下的一种或多种加密算法: DES 、 Triple DES 、 IDEA 、 RC2 、 RC4 、 RC5 、 CAST 、 RSA 、 DSS 、 Diffie Helman 、 MD4 、 MD5 、 SHA 等。
此外 CryptoService 还要负责密钥管理功能:
• 用户私钥的安全。用户其它的安全对象如证书等,可以存放到数据存储库中,但私有密钥必须由 CryptoService 负责保存。
• 用户密钥的输入输出。为了保证用户能在不同机器上使用,必须提供密钥的输入输出功能,并要保证输出密钥的安全,这要求对输出密钥提供某种类型的加密处理。
2.2 : CertificationControl
CertificationControl 负责处理各种格式不同的证书和证书废止表。可完成创建新的证书和证书废止表并进行签名,验证证书和证书废止表的完整性,从证书和证书废止表中提取数据,从 证书废止表中搜索证书等功能。 CertificationControl 只是处理证书语法方面的内容,对其不作语义上的解释,这方面的工作由 PolicyConfig 模块负责。本系统中采用基于 X.509 格式的证书和 CRL 。给模块主要包括以下一些功能:创建证书模版、证书签名、证书签名验证、得到公钥信息、得到 NAME 信息、写公钥信息、写 NAME 信息、得到扩展信息、写扩展信息、创建 CRL 模版、 CRL 签名、 CRL 签名验证、增加证书信息、删除证书信息、查询 CRL 。
2.3 : DataStore
DataStore 提供对所有安全对象的稳定的存储,如证书、证书废止表、安全政策等。 DataStore 提供了统一的接口去处理这些安全对象的存储检索等,底层如何实现可由 DataStore 的实现者自己选择。该组件主要包括以下一些功能:打开数据源、关闭数据源、创建数据源、删除数据源、数据插入、数据删除、数据修改、数据查询。
2.3 : VerifyPriviledge
VerifyPriviledge 提供对于操作权限的验证,一般仅有一个函数来完成,该函数应该输入以下一些项:自我标识、要求的操作、要求操作的时间、附加的证明等;输出仅有两项:可以还是不可以。
2.4 : TrustUnit
通过采用不同的 TrustUnit ,能够实现不同信任关系,如 X.509 采用的树形信任模型。 PGP 采用的介绍人模型等。 { 本系统中暂时不考虑该组件)
2.5 : PolicyConfig
提供灵活的配置和策略管理。主要包括以下一些功能:装载策略、释放策略、修改策略项、添加策略项、删除策略项、装载配置、释放配置、修改配置项、添加配置项、删除配置项。
3 :高层模块说明
• RA 、 CAInterface 、 CASigner
遵循统一的服务器框架,详细描述见“服务器框架概要设计方案 .doc ”。
• OCSP
提供在线的证书状态查询。主要包括 OCSP 客户端和 OCSP 服务器,前者提交用户的证书序列号给 OCSP 服务器,得到证书状态信息的回复;后者得到客户端的证书查询请求,查询数据库,得到证书状态,发送回客户端。
• LDAP
遵循 DataStore 设计思路,接口一致。
• 通信协议
见 “通信协议概要设计 方案 .doc ”。
• 客户端
见 “客户端概要设计 方案 .doc ”
4 :系统数据
见“数据库概要设计方案 .doc ”。