CA认证的流程和原理
ADCS(活动目录证书服务)是微软的公钥基础结构(PKI)的实现。PKI处理颁发并管理用于加密和身份验证的的数字证书的组件及过程。ADCS颁发的数字证书可以用于加密文件系统、电子邮件加密、安全套接字层SSL和身份验证.安装了ADCS的服务器成为证书颁发机构CA。
1. 数字证书
数字证书是一种电子凭据用于验证个人,组织和计算机。证书颁发机构颁发和认证证书。数字证书提供了一种方法来验证证书持有者的身份。证书使用加密技术来解决两个实体之间的问题.
数字证书都用于非对称加密,它需要两个密钥,第一个密钥是私钥,它由被颁发了数字证书的用户或计算机安全地存储,第二个密钥是分发到其它用户和计算机的公钥。由一个密钥加密的数据只能由另一个密钥解密.这种关系确保对加密数据的保护。
一张证书包含下面的数据:
1。公用密钥证书主题的公钥和私钥对。这样可以使用证书来验证拥有私钥的个人或计算机的标识.例如,一台web服务器的数字证书包括web服务器的主机名和IP地址
2.有关申请证书的使用者的信息
3.有关CA颁发证书的详细信息,包括证书有效性的信息,包括如何使用证书以及它的有效期。例如,可能限制一个证书只用于加密文件系统,证书只在特定时间期有效,通常是两年或更短,证书过期之后就不能再使用它了。
EnhancedKey Usage是证书的一个可选的扩展属性,这个属性包含一个目标标识符(OID),用于应用程序或者服务。每个OID是一个独特的数字序列。
KeyUsage:证书允许主体执行特定任务。为了帮助控制证书在其预定的目的以外的使用,限制自动放置在证书.密钥用法(KeyUsage)就是一个限制方法来决定一个证书可以被用来干什么。它允许管理员颁发证书,它只能用于特定任务或用于更广泛的功能。如果没有指定密钥用法,证书可以用于任何目的。
对于签名,keyusage可以有下列一个或者多个用途:
1.数字签名
2。签名一种起源的证据
3. 证书签名
4。CRL签名
2. CA证书颁发机构 | | |
而如果使用外部CA(三方CA),每个颁发的证书都有一定费用. CA 的主要作用如下: | ||
1. | 验证证书请求者的身份:当一张证书颁发给一个用户、计算机或者服务的时候,CA会验证请 |
求者身份来确保证书只办法给正确的用户或机器
2. 将证书办法给用户和计算机
3. 管理证书吊销情况:CA会定期发布CRL,CRL包含证书的序列号以及被吊销的情况。
3.请求和颁发证书的过程
用户、计算机和服务请求和接收来自CA的证书.请求和接收证书的过程被称为注册。通常,用户或计算机启动注册通过提供独特的信息,如电子邮件地址或通用名称,和一个新生成的公钥.在产生证书之前CA使用此信息来验证用户的身份。
1。生成密钥对。申请人生成一个公钥和私钥对,或被组织的权威指定一个密钥对。申请人将密 钥对存放在本地存储的磁盘上或如智能卡的硬件设备
2.申请人提供请求的证书模板所需的证书信息请求,并将它发送到CA。证书请求包括公共和 私人密钥对的公钥生成请求的计算机
3.证书管理器检查证书请求验证信息。基于这些信息,证书管理器颁发证书或拒绝证书请求4.CA创建并颁发证书给请求者。由CA签名证书,以防止修改,包括请求者的身份信息和提交 的公共密钥作为颁发的证书的属性.
|
链建立是建立信任链的过程或者证书路径,从最终证书以及安全实体信任的根证书。
证书链的建立将会通过检查从最终证书到根CA的每个证书路径。会从中级证书颁发机构存储区,受信任的根证书颁发机构存储区,或从一个证书的AIA属性中指定的URL中检索证书。如果加密应用程序接口发现一个路径中的证书有问题,或者如果它找不到证书,证书路径是会作为一个不受信任的证书路径丢弃。
证书链引擎生成所有可能的证书链。然后整个的证书链就生成了并按照链的质量排序.对于给定的最终的质量最好的证书链作为默认的链返回给调用应用程序。每个链都是通过结合证书存储的证书和发布的URL位置的证书.链中的每个证书分配一个状态代码。状态代码指示证书是否符合下面的条件:
1.签名是否有效
2。时间是否合法 | |
5.时间嵌套
6。证书上的其他限制
每个状态代码都有一个分配给它的优先级。例如,过期的证书具有更高的优先级比吊销的证书.这是因为过期的证书不检查吊销状态。证书链中的所有证书都会被检查是否吊销。不管是什么过程来检查证书的合法性,只要证书链中的状态检查失败,这个证书链就会被拒绝。
对链中的每个证书,证书链引擎必须选择一个颁发CA的证书。这一过程被称为验证路径,重复验证直到达到一个自签名证书(通常,这是根CA证书).加密应用程序接口对待根证书作为绝对信任的信任.
5.CertificateService组件的工作原理
CA服务包括如下组件以及功能,请参考:
Certificate Services Engine:负责处理证书申请请求,负责创建和颁发证书给有效的申请者 |
exitmodule:负责分发证书给有效的客户端,在网页、公共文件夹、AD中发布证书,负责向AD中定期发布CRLs
CryptoAPI:负责管理所有加密操作的私钥
certificatesdatabase:负责存储所有的证书交易以及审计
CA服务所使用的协议有DCOM和LDAP
DCOM:用来进行证书注册
LDAP:用来进行域AD之间的交互
证书创建的过程如下:
| This processapplies to most common PKCS#10requests orCertificate |
ManagementprotocolusingCMSrequests.
1.Whenauserinitiates a certificaterequest,EnrollmentControl(Xenroll。dll)usesa cryptographicserviceprovider(CSP)ontheclient’scomputertogenerateapublickeyandprivatekeypairfortheuser。当用户初始化证书请求的时候,CSP会创建出
一个公钥和私钥对。
2.Aftera keypairhasbeengenerated,Xenrollbuildsacertificaterequestbasedona certificatetemplate。密钥对创建之后,会基于模板创建出一个证书请求
3.The user’spublic keyissentwith the user’sidentifyinginformationtotheCertificate Servicesengine.用户的公钥以及身份信息会被发送给证书服务引擎
4.Meanwhile,acopyofthe requestisplaced intherequestfolder forthe requester.In thecaseofauser,thisfolderis:同时,在本地保存一份请求ﻫ
C:\DocumentsandSettings\username\ApplicationData\Microsoft\SystemCertificat
es\Request\ |
7.ThepolicymodulealsocheckstheregistryforalistofcertificatetemplatesfortheCA.Thepolicymodulechecks the listfor versionnumberstoverifythatithasthemostrecentversionsofallcertificatetemplates。Iftherequestreferences a morerecentversionofthecertificatetemplatethan iscurrentlyavailable,therequestfails。Policymodule负责检查证书模板中的注册表信息。
8.Ifthe accesscheckis successful,theCertificateServicesenginecreatesa new row in the RequestandCertificatestableofthecertificatesdatabase。ArequestIDisenteredintothedatabasetohelptracktherequest。访问检查成功之后,请求号被存储在
数据库中
9.Additionalattributesof thecertificaterequest,such astheextensionsassociatedwithth erequest,areenteredintothe appropriatefieldsinthedatabase.证书的其它相关属
性被写入CA 的数据库中
10.The CertificateServicesenginevalidatesthedigitalsignatureusedto sign thecertificaterequest。Thisvalidationprocessinvolvescomparingall thecertificatesin thechainleadingup to theroot CAtoa reliablesource,suchasActive DirectoryorIIS.Thisvalidationprocessalsoinvolvesconfirmingthat noneofthecertificatesinthechainhasbeenrevoked.验证数字证书,检查证书链
11.Thepolicymoduleappliesacertificatetemplate to filloutthedataassociatedwiththerequest。Thisprocess addsinformationsuch as usagerestrictionsandvalidityperiods,aswellassubjectnameformat,tothedataintheoriginalrequest。Someofthis dataisfixedandthereforecopieddirectlyfrom thetemplate,somecomesfromthecertificaterequest,andsomeis constructedona peruserbasis(concatenatingthe friendlyname oftheuserintocommonnameformat,forexample)。
ﻫNote
o Whena certificateisbeingrenewed,datathatis notbeingmodifiedis simplyr eused.
12.If a certificatetemplatehasbeensettopending,anadministratormustverifyrelated
information inthe request — such as the identity of the requester— which isnot |
将相关的信息放置在证书中生成一张证书
15.TheCertificateServicesengineencodes,signs,and validatesthecertificatefrominformationinthedatabaseto verifythat thecertificateisvalidforthe entirecertificatechainandalldefinedpurposes,andperformsanotherrevocationcheckbeforeitissuesthecertificate.
16.The issuedcertificateissenttothe exitmodule, whichsavesthecertificatetothecertificatesdatabaseand,dependingonthetemplateconfiguration,publishesit to thedirectoryservice。
ﻫNote
o | If this is a local forest, the certificate is published to the user object。 If this is a forest trust, the certificate is published to the contact object. |
17.The exitmoduleconstructsandsignsaresponse,whichisreturnedtoXenroll.dll ontheclient。Thisresponsecaninclude:
o | A CMS response。 A certificate BLOB。 A messageindicating whetherthecertificate request has been approved, has |
beendenied,orispending.
o Anerrormessage.
o RequestID.
Xenrollplaces the certificateinthefollowingfolder:
C:\Documentsand Settings\username\ApplicationData\Microsoft\SystemCertificates\My\Certificates
详细的过程请参考官方文档:How Certificate Services Works | |
(v=ws.10).aspx |
在域环境中,企业Ca的安装还是比较简单的,基本不需要手动配置,在Windowsserver2012上略有不
同,需要先安装,在配置。
首先打开服务器管理器,选择“添加角色和功能”,如图。
|
安装向导完成后,还需要后续进入Ca的配置向导,这是和Windows2008之前的Ca安装不同的地方(在Windows2008之前,Ca的安装和配置均在一个向导里),如图。
设置类型保持默认为企业Ca,如图。 |
CA 类型保持默认为根Ca,如图。 | |
|
在指定私钥类型界面,保持默认,如图. | |
在指定加密选项界面,保持默认,如图. | |
|
在指定Ca 名称界面,保持默认,如图。 | |
在指定Ca的有效期界面,保持默认,如图.
在指定Ca 数据库位置界面,保持默认,如图。 | |
|
|
展开到自动证书申请设置,如图。
进入自动证书申请设置向导,如图。
选择证书默认为计算机,如图。
完成自动证书申请设置,如图。
参考链接:
ActiveDirectoryCertificateServices(ADCS)Overview
ActiveDirectoryCertificateServices
(v=ws.10).aspx
HowCertificateServicesWorks
(v=ws.10).aspx
HowCertificatesWork
(WS.10,printer).aspx
(v=ws。10)。aspx
(v=ws.10)。aspx