江苏省电子政务证书认证系统应用培训材料2006年11月提纲数字证书基础介绍--20分钟南京CA分中心系统设计--10分钟LDAP/OCSP标准和开发接口--10分钟MSCAPI/PKCS#11标准和开发接口--20分钟系统二次开发接口--30分钟总结数字证书基础介绍数字证书基础PKI(公开密钥基础设施)是通过使用公钥技术和数字证书来确保系统信息安全,进行数据加密和用户身份验证的体系。--对称算法--非对称算法--摘要算法--算法应用全过程对称算法原理。相同对称算法问题对于实际应用而言,问题是如何管理这些对称密钥并保证其安全性。非对称算法原理不同加密方式比较对称非对称密钥数量单个Key一对Key型态Key必须保密一个是公开的Key,一个是私用的Key管理简单,但不容易管理需要数字证书和CA加密速度非常快较快应用用于大量资料的加密处理用于特定需求,处理小量资料的加密和签名摘要算法原理用来辨别数据是否被篡改将数据通过摘要算法产生输出结果产生的结果为固定长度,通常为128或160bits--不同输入长度,相同输出长度--数字摘要不可能编造出相同摘要的数据文件文件中任一单元被修改,摘要结果大不相同摘要算法应用使用摘要算法的作用:用来检验数据的完整性用来产生签章的数据源摘要算法作用检验数据的完整性摘要算法作用产生签章的数据源算法应用全过程数字信封算法应用全过程小结PKI的作用:--机密性--真实性--身份认证--不可否认南京市CA分中心系统设计南京市CA分中心系统设计原则设计原则安全保密第一原则技术安全和管理安全并重原则准确了解保护对象原则多层次多安全单元保护防范原则责任与风险分散和最小授权原则综合性全方位和统一的保护与防范原则用户使用方便原则不断发展的动态原则南京市CA分中心系统体系结构南京市CA分中心系统说明南京市CA分中心采用双证书体系颁发的证书类型--个人证书--单位证书--设备证书颁发的证书遵循X.509V3标准数字证书内容数字证书内容CRL列表具体内容应用架构LDAPV3标准CSP/PKCS#11标准证书应用接口设计系统接口标准证书开发接口是为应用程序开发者提供安全平台接口,提供1024/128位强度的加密算法,任何使用政务证书的应用系统都可以通过接口实现集成,所有的功能和机制都由该接口实现(包括证书验证,黑名单查询等)。提供的接口包括:OCSP/LDAP/CSP/PKCS#11/CKeySDK,提供的接口支持Windows,Linux,Unix等平台。小结南京市CA分中心严格遵循PKI体系和国家密码行业相关要求进行建设的应用系统在进行证书嵌入改造过程中,可以分为两个层次,即服务器端和客户端服务器端接口部分,南京市CA分中心遵循LDAPV3标准客户端接口部分,南京市CA分中心遵循MSCAPI/PKCS#11标准LDAP/OCSP标准和开发接口介绍LDAP概念LDAP(轻量目录访问协议)的英文全称是LightweightDirectoryAccessProtocol。它是基于X.500标准的,但是简单多了并且可以根据需要定制。与X.500不同,LDAP支持TCP/IP。LDAP最大的优势是:可以在任何计算机平台上,用很容易获得的而且数目不断增加的LDAP的客户端程序访问LDAP目录。而且也很容易定制应用程序为它加上LDAP的支持。LDAP协议是跨平台的和标准的协议。LDAP服务器可以用“推”或“拉”的方法复制部分或全部数据。LDAP概念LDAP(LightweightDirectoryAcessProtocol)是目录服务在TCP/IP上的实现(RFC1777V2版和RFC2251V3版)。它是对X500的目录协议的移植,但是简化了实现方法,所以称为轻量级的目录服务。在LDAP中目录是按照树型结构组织,目录由条目(Entry)组成,条目相当于关系数据库中表的记录;条目是具有区别名DN(DistinguishedName)的属性(Attribute)集合,DN相当于关系数据库表中的关键字(PrimaryKey);属性由类型(Type)和多个值(Values)组成,相当于关系数据库中的域(Field)由域名和数据类型组成,只是为了方便检索的需要,LDAP中的Type可以有多个Value,而不是关系数据库中为降低数据的冗余性要求实现的各个域必须是不相关的。LDAP中条目的组织一般按照特定关系进行组织,非常的直观。LDAP把数据存放在文件中,为提高效率可以使用基于索引的文件数据库,而不是关系数据库。LDAP协议集还规定了DN的命名方法、存取控制方法、搜索格式、复制方法、URL格式、开发接口等。LDAP遵循标准RFC2251–LightweightDirectoryAccessProtocol(v3)RFC2252–LDAP(v3):AttributeSyntaxDefinitionsRFC2253–LDAP(v3):UTF-8StringRepresentationofDistinguishedNamesRFC2254–StringRepresentationofLDAPSearchFiltersRFC2255–TheLDAPURLFormatRFC2256–ASummaryofX.500(96)UserSchemaforusewithLDAP(v3)RFC2829–AuthenticationMethodsforLDAPRFC2830–LDAP(v3):ExtensionsforTransportLayerSecurityLDAP接口函数定义1.LDAP*ldap_init(PCHARHostName,ULONGPortNumber);参数说明:HostName:LDAP服务器IP地址PortNumber:LDAP服务器端口号2.ULONGldap_simple_bind_s(LDAP*ld,PCHARdn,PCHARpasswd);参数说明:ld:Sessionhandledn:用户DN,可以为NULLpasswd:可以为NULLLDAP接口函数3.ULONGldap_search_s(LDAP*ld,UNICODEPTCHARbase,ULONGscope,UNICODEPTCHARfilter,UNICODEPTCHARattrs[],ULONGattrsonly,LDAPMessage**res);参数说明:ld:Sessionhandledn:查找项scope:查找域,可以为LDAP_SCOPE_SUBTREEfilter:过滤项attrs[]:其他属性值attrsonly:是否返回值res:LDAP服务器返回值LDAP接口函数4.LDAPMessage*ldap_first_entry(LDAP*ld,LDAPMessage*res);参数说明:ld:Sessionhandleres:查找返回结果5.structberval**ldap_get_values_len(LDAP*ExternalHandle,LDAPMessage*Message,UNICODEPTCHARattr);参数说明:ExternalHandle:SessionhandleMessage:ldap_first_entry返回的结构attr:指定返回类型南京市LDAP构架“推”方式“拉”方式南京市LDAP配置服务器IP地址端口,注意:不是389匿名登录南京市LDAP配置CRL列表南京市LDAP配置LDAP客户端及开发工具LDAP所支持的客户端工具有很多种,目前比较流行的有LDAPExplorerTool、LDAPBrowers等等。LDAPExplorerTool工具下载地址:(OCSP)是维持服务器和其他网络资源安全的两种常用方案中的一种。另一种更老的方式(某种程度上被OCSP所替代)是证书注销列表(CRL)。OCSP克服了CRL主要的限制:必须在客户端频繁地下载更新数据,才能保证列表的当前性。当用户试图访问某服务器时,OCSP会发送一个证书状态信息的请求。服务器返回一个“当前”、“终止”或“未知”的回复。该协议规定了在服务器(它包含证书状态)与客户应用程序(它被告知状态)之间传递信息的语法。OCSP给与使用已终止的证书的用户一定的宽限期,这样他们在重新申请前可以在一定时间内访问服务器。OCSP遵循标准遵循OCSPv1、OCSPv2标准协议遵循标准的高强度非对称加密算法遵循X.509V3证书标准遵循HTTP1.1协议标准遵循XML标准遵循国际电联ASN.1编码规则遵循CMP标准OCSP工作原理OCSP接口函数INTCheckCertFromOcspServer(char*Ip,intport,char*CaCert,char*UserCert);参数说明:Ip:ocspserver地址Port:ocspserver端口CaCert:CA证书UserCert:被查询的用户证书小结南京市CA分中心系统LDAP/OCSP采用标准技术架构建议大部分应用通过访问LDAP获取证书验证信息特定应用可采用LDAP/OCSP混合验证证书LDAP/OCSP的作用是给用户开放针对南京市CA分中心颁发的数字证书进行验证所必须的资源MSCAPI/PKCS#11标准和开发介绍USBKey软件架构上层API函数其他应用MSIESmartCard驱动程序MicrosoftCryptoAPIcKeyCSPMicrosoftSmartCardResourceManagercKey(COS)……cKey(COS)cKeyAPIs……cKeyPKCS#11应用层用户模式层内核模式层硬件设备层基于MSCAPI的具体实现基于MSCAPI的具体实现提供基于cKey加密算法的CSP应用程序不能直接与CSP进行通讯应用程序通过调用CryptoAPI接口函数来与CSP进行通讯基于MSCAPI的具体实现CAPI函数的具体说明在MSDN上可以查到。基于PKCS#11的具体实现系统二次开发接口CKey619SDK函数说明CKey619SDK.chm总结总结针对应用,南京市CA分中心系统均采用标准技术架构LDAPV3标准CSP/PKCS#11标准总结针对特定应用,例如:数字签名、网页签章等等我们将提供C编写的SDK开发包供用户调用总结应用系统进行证书嵌入改造过程中,难点和工作量不体现在程序的开发上,而在于现有系统配置上。——SSL的启用和配置谢谢大家!讨论