资源描述
《信息与网络安全》
1. PKI基本概念
n Public Key Infrastructure,用公钥原理和技术实施和提供安全服务的具有普适性的安全基础设施。
n 基本的PKI认证技术
消息认证、数字签名、数字摘要、身份认证
1.1 消息认证
• 消息认证(MAC,Message Authentication Code)是指通信双方在一个不安全的信道上传送消息,第三方入侵者可能截取消息进行分析从而伪造或篡改发送的消息,因此通信双方希望交换消息而拒绝接受入侵者伪造或篡改的消息。
• 消息认证是一个不保密的认证方案,一个使通信双方能进行公开通信而不受人侵者欺骗的协议。一个典型的认证方案包括一个算法.称为认证算法。认证算法需要两个输人,即消息和认证密钥,用它来产生消息的认证标签。为了发送一个消息,发方先将消息和认证密钥输入认证算法,其计算结果称为消息的认证标签,再将消息和认证标签一起发送。收方收到消息和认证标签后,先用同样的认证密钥和收到的消息输入认证算法,检验其计算结果是否与收到的认证标签相同,若相同,则认为消息未经篡改,接受该消息;若不相同,则认为消息被入侵者篡改,拒绝接受该消息。
• 一般假设入侵者知道认证算法,但不知道认证密钥,因此认证方案与私钥密码体制一样有密钥分发问题。
1.1 消息认证
• 安全认证方案的要求
n 通信双方能有效地产生任意消息的认证标签
n 通信双方能有效地验证一给定的数字串是否是一给定消息的认证标签
n 没有入侵者能有效地产生通信双方发送消息的消息认证标签
• 认证方案的安全性:
n 基于信息论方法的定义(无条件安全性)
n 基于算法复杂性理论的定义(有条件安全性)
• 消息认证与数字签名的区别在于消息认证不要求通信双方以外的任何人能有效地验证认证标签的真实性。数字签名方案也是消息认证的一种方式,但消息认证方案不一定构成数字签名方案。
1.2 数字签名
• 数字签名(Digital Signature)的定义:
n 是一种通过向公正的第三方证明的方式提供消息的来源和内容认证的方法。
n 是通过一个单向函数对要传送的报文进行处理得到,用以认证报文来源并核实报文是否发生变化的一个字母数字串。
• 数字签名的作用
n 验证消息发送方的身份
n 验证消息内容的完整性
1.2 数字签名
• 数字签名的要求
n 收方能够有效地确认或证实发方的签名,该签名不能伪造。
n 发方能够有效地在产生自己的签名,发出签名的消息送收方后,就不能再否认他所签发的信息。
n 收方对已收到的签名消息不能否认,即有收到认证。
n 第三者可以确认收发双方之间的消息传送,但不能伪造这一过程。
1.2 数字签名
• 数字签名与手工签名的区别
n 数字签名——数字的,因消息而异
n 手工签名——模拟的,因人而异
• 数字签名与消息认证的区别
n 数字签名——第三者可以确认收发双方的消息传送
n 消息认证——只有收发双方才能确认消息的传送
1.2 数字签名
• 无仲裁数字签名
n 仅涉及通信方(发送方,接收方),它假定接收方知道发送方的公开密钥。数字签名可以通过使用发送方(签名者)的私有密钥对整个报文进行加密,或对报文的杂凑值进行加密来形成。接收方(验证者)可存储明文和签名已备解决争端时使用。需要验证签名时,验证者可利用发送方公钥解密签名,再与发送方出示的明文或明文摘要进行比较,即可完成。
n 所有的无仲裁签名方案都有一个共同的弱点:方案的有效性依赖于发送方私有密钥的安全性。发送方要抵赖发送某一消息时,可能会声称其私有密钥丢失或被窃,从而声称他人伪造了他的签名。通常需要采用与私有密钥安全性相关的行政管理控制手段来制止或削弱这种情况,但威胁在某种程度上依然存在。改进的方式可以要求被签名的信息包含一个时间戳,并要求将已暴露的密钥报告给一个授权中心。
• 有仲裁数字签名
n 有仲裁数字签名方案按如下方式进行:每个从签名者x发往验证者Y的签名报文首先被送给仲裁者A。仲裁者A对该报文和它的签名进行验证以检验签名的有效性。然后对报文注明日期,附上一个已经经过仲裁证实属实的说明后发给Y。
n A的存在解决了直接签名方案所面临的问题:x可能否认发送过该报文。在这种方案中,仲裁起着监督的作用,所有通倍方必须充分信任仲裁机构。
1.2 数字签名
• 3种有仲裁数字签名方案,其中x表示签名者,Y表示验证者,A表示仲裁,M表示报文,Kxa表示x与A之间的共享密钥,Kay表求Y与A之间的共享密钥,Kxy表尔X与Y之间的共享密钥。
n 使用常规加密方式.仲裁者可以看见报文:
① x®A:M|EKxa[IDX| H(M)]
② A®Y:EKay[IDx|M| EKxa[IDX|H(M)]|T]
x:准备报文M.计算其杂凑值H(M),用x的标识符IDx和杂凑值构成签名,并将消息及签名经Kxa加密后发送给A;
A:解密签名,用H(M)验证消息M,然后将IDx、M ,经Kxa密后的签名和时间戳一起经Kay加密后发送给Y;
Y:解密A发来的信息,并可将M和签名保存起来。
发生纠纷时解决方法如下:
Y:向A发送EKay[IDx|M| EKxa[IDX|H(M)]]
A:用Kav恢复IDx,M和签名EKxa[IDX|H(M)] ,然后用Kxa解密签名并验证杂凑值。
1.2 数字签名
n 使用常规加密方式,仲裁不能看到报文:
①X®A:IDx|EKxy[M]| EKxa[IDX||H(EKxy[M])]
②A®Y:EKay[IDx|EKxy[M]|EKxa[IDX|H(EKxy[M])]|T]
x:将标识符IDx,密文EKxy[M],以及对IDx和密文消息的杂凑值用EKxa加密后形成签名发送给A;
A:解密签名,用杂凑值验证消息,这时A只能验证消息的密文而不能读取其内容,然后,A将来自X的所有信息加上时间戳,并用EKay加密后发送给Y:
尽管A不能看到报文内容,但它所处的位置还是可以防止X和Y中某一方不诚实。和第一种方案一样.仲裁可以和签名者联合否认一个签名报文,或者和验证者联合伪造签名者的签名。使用公钥加密的方法能解决此问题。
1.2 数字签名
n 使用公开密钥加密,仲裁不能看到报文:
①x®A:IDx|EKRx[IDx|EKUy(EKRx[M])]
②A®Y:EKRa[IDx|EKUy[EKRx[M]]|T]
x:对报文M双重加密,首先,用X的私有密钥KRx,然后,用Y的公开密钥KUy,形成一个经签名且保密的消息,然后,将该信息以及X的标识符一起用KRx加密后与IDx一起发送给A,这种内部双重加密的消息对A以及对除Y以外的其他人都是保密的;
A:验证X的公私密钥对的有效件.如果有效,则向Y发送报文,报文是用KRa加密的,报文中包括IDx、双重加密的报文和一个时间戳,否则拒绝。
这个方案和前两个力案相比有许多优点。通信前各方没有共享任何信息,可以防止联合欺骗的发生。向时,从x发结Y的报文内容对A和其他任何入都是保密的。
数字签名算法
• DSS数字签名是由美国国家标准化研究院和国家安全局共同开发的。主要用于与美国政府作生意的公司,其他公司使用的很少。
• RSA与DSS都采用了公钥算法。
RSA公钥签名算法
n 发送方用对方公开的单向函数对报文进行变换,得到数字签名。然后用私钥对数字签名加密后随报文一同发送过去。
n 接收方用发送方的公开密钥对数字签名进行解密,得到数字签名明文;
n 接受方对接收到的明文通过单向函数进行变换,得到新的数字签名,比较两个签名。相同证明签名有效,否则无效。
RSA公钥签名算法
• RSA签名算法相当于RSA加密/解密算法的逆过程
n 系统参数:设n=pq,且p和q是两个大素数,e和d为满足ed=1mod(F(n))的整数,其中,F()是欧拉函数;
n 公开密钥:n,e;
n 私有密钥:p,q,d;
n 签名算法:Sig(x)=xd mod n;
n 验证算法:Ver(x,y)=TRUEÛx=ye mod n (x,y)ÎZn´Zn。
对于消息对(x,y),若y是x的有效签名,则ye=xed=xtF(n)+1=x mod n,即验证算法成立。
用户A若想用RSA签名方案对消息x签名,只需公开它的公钥n和e,由于用户私钥是保密的,因此,A是惟一能产生签名的人,任何要验证用户A签名的用户只需查到A的公钥即可验证签名。
RSA公钥签名算法
• A向B 发送消息,用A的私钥加密(签名)
• B收到密文后,用A的公钥解密(验证)
DSS数字签名标准
• DSS算法的参数如下:
n 系统的公开参量:
p:素数.其中2L-1<p<2L,512£L<1024,且L为64的倍数:即比特长度在512-1024之间,长度增量为64bit;
q:(p-1)的素因子,其中,2159<q<2160;
g:域Zp*中阶为q的元素,即g=h(p-1)/q mod p (1<h<p-1)
n 用户的私钥;
x:用户在[0,q-1]中随机选取的整数。
n 用户的公钥
y=gx mod p。
公钥为(p,q,g,y)
DSS数字签名标准
• DSS签名和验证
n 签名
签名者随机选取kÎ[0,q-1],计算
r=(gk mod p) mod q
s=[k-1(H(M)+xr)] mod q
则 Sig(M)=(r,s)
n 验证
w=(s’)-1 mod q,u1=[H(M’)w]mod q,
u2=(r’)w mod q,v=[(gu1yu2)mod p]mod q
Ver(x,y)=TRUEÛv=r’
n M为要签名的消息;H(M)为使用SHA-1生成的M的杂凑值;M’,r’,s’为接受到的M,r,s;
DSS数字签名标准
用对称加密算法进行
• 对称加密算法所用的加密解密的密钥相同,由于计算速度快而应用于对大量数据的加密过程,常用算法如DES、RD4等。
• Lamport-Diffie算法进行逐位进行签名,只要有一位发生改变,接收方就得不到正确的签名,因此安全性高。缺点是签名太长;签名密钥和验证信息不能重复使用。
加入数字签名和验证
• 加入数字签名和验证才能真正实现公开网络上的安全传输。加入数字签名和验证的过程如下:
n 1发送方用哈希函数从原文得到数字签名,然后用私有密钥对数字签名进行加密,然后附加在原文的后面(形成要传输的文件);
n 2发送方再选择一个秘密密钥对这个文件进行加密,然后将加密后的文件传输接收方;
n 3发送方用接收方的公开密钥对秘密密钥进行加密,并传输给接收方。
加入数字签名和验证2
• 验证过程
n 接收方用私有密钥对秘密密钥密文进行解密,得到秘密密钥明文。
n 接收方用秘密密钥对文件进行解密,得到加密的数字签名和明文;
n 接收方用发送方的公开密钥对数字签名进行解密,得到数字签名的明文;
n 接收方用得到的明文和哈希函数重新计算数字签名,并与解密后的数字签名进行比较。如果相同,说明文件在传输过程中没有损坏。
加入数字签名和验证3
• 安全确认发送方身份
n 如果第三方冒充发送方发出一个文件,因为接收方在对数字签名解密时使用的是发送方的公开密钥,只要第三方不知道发送方的私有密钥,解密出来的数字签名和经过计算的数字签名必然不同。这就提供了一个安全确认发送方身份的方法。
其它签名方案
• 一次签名
n 一次签名意味着算法的参数只能用于签名一个消息,但可以进行若干次验证。Lamport数字签名方案和Bos-Chaum签名方案都是一次签名方案。
• 群签名
n 群签名指群中各个成员可以以群的名义匿名地签发消息,它具有以下特性:
只有群成员能代表所在的群签名
接受者能验证签名所在的群,但不知道签名者
需要时,可借助于群成员或者权威找到签名者
• 盲签名
n 指消息内容对签名者不可见,而且签名被接受者泄露后,签名者无法追踪签名。主要应用于电子货币与电子选举。
1.3 身份认证
• 身份认证是指证实客户的真实身份与其所声称的身份是否相符的过程,其依据有三类:客户所知,例如密码、口令等;客户所有,例如身份证、护照、密钥盘等;客户本身特征,例如指纹、笔迹、声音等。
• 身份认证对于提供安全服务有如下作用:
n 作为访问控制服务的一种必要支持,访问控制服务的执行依赖于确知的身份;
n 作为提供数据源认证的一种可能方法(当它与数据完整性机制结合起来使用时);
n 作为对责任原则的一种直接支持,例如,在审计追踪过程中做记录时,提供与某一活动相联系的确知身份。
1.3 身份认证
• 身份认证可以是单向的也可以是双向的。单向认证是指通信双方只有一方向另一方进行鉴别;双向认证是指通信双方相互进行认证。
• 身份认证和消息认证的区别:
n 身份认证一般都是实时的,消息认证一般不提供实时性;
n 身份认证只证实实体的身份,消息认证要证实报文的合法性和完整性。
1.3 身份认证
• 一个身份认证系统一般由三方组成:一方是出示证件的人,称为示证者,又称为申请者,他提出某种要求;第二方为验证者,他验证示证者出示的证件的正确性与合法性,并决定是否满足其要求;第三方是攻击者,他可以窃听和伪装示证者,骗取验证者的信任。在必要时,认证系统也会有第四方,即可信赖者参与调解纠纷。
• 为了能够进行身份认证,首先需要进行身份注册。申请者提供其相关信息,如:社会特征属性、自然属性等。验证者(或注册机构)赋予申请者某些信物,如:口令、密码、智能卡等。
1.3 身份认证
• 一般来说,一个身份认证系统应该满足如下要求:
n 验证者正确识别合法示证者的概率极大化;
n 不可传递性,验证者不可能重用示证者提供给他的信息来伪装示证者,以实现成功地骗取他人的验证,从而得到信任;
n 攻击者伪装示证者骗取验证者成功的概率要小到可以忽略的程度,特别是能够抵抗已知密文攻击,即能够抵抗攻击者在截获到示证者和验证者多次通信内容后,伪装示证者骗取验证者的信任;
n 计算有效件,即实现身份认证所需的计算量要尽可能小;
n 通信的有效性,即实现身份认证所需通信次数和数据量要尽可能小;
n 秘密参数能够安全存储;
n 交互识别,在某些应用中,有通信双方能够互相进行身份认让的需求
n 第三方的实时参与,如在线公钥检索服务;
n 第三方的可信赖性:
n 可证明安全性。
1.4 Kerberos认证
• Kerberos是在网络环境或分布式计算环境下提供对用户双方进行验证的一种方法,该系统是美国麻省理工学院设计的,它的安全机制在于能对发出请求的用户进行身份验证,以确认其是否是合法的用户,如是合法的则再审核该用户是否有权对他所请求的服务或主机进行访问。这个系统是一个基于对称密码体制的安全客户服务系统,每个客户和密钥中心公用一个密钥。
• 特点
n 中心会记住客户请求的时间,并赋予一个生命周期,用户可以判断收到的密钥是否过期。
n 因具有安全、透明、可扩展的优点,而应用广泛。
Kerberos认证
• Kerberos是一种秘密密钥网络认证协议,由麻省理工学院(MIT)开发,它使用“数据加密标准”(DES)加密算法来进行加密和认证。
• Kerberos设计的目的是解决在分布网络环境下,用户访问网络资源时的安全问题。Kerberos的安全不依赖于用户登陆的主机或者应用服务器,而是依赖于几个认证服务器。
• Kerberos协议中有三个通信参与方,需要验证身份的通信双方和一个双方都信任的第三方密钥分配中心KDC。将发起认证服务的一方称为客户方,客户方需要访问的对象称为服务器方。在Kerberos中客户方是通过向服务器方递交自己的“凭据”(Ticket)来证明自己的身份的,该凭据是由KDC专门为客户方和服务器方在某一阶段内通信而生成的。
Kerberos认证系统示意图
Kerberos认证系统
• Kerberos认证系统包括一系列的服务。除了客户以外,Kerberos还包括三个服务器:
n 认证服务器(AS:Authentication Server ),用于在登陆时验证用户的身份;
n 凭据发放服务器(TGS:Ticket-Granting Server ),发放“身份证明许可证”;
n 服务提供服务器(Server),客户请求工作的实际执行者。
n Kc、Ks分别为客户端C、服务提供服务器S与认证服务器AS的共享密钥。IDc和IDs分别为C和S的身份标示信息,ADc表示C的网络地址。Tickettgs为C向AS请求的访问TGS的凭证票据,TS为票据的有效期
Kerberos的工作原理
• Kerberos v4分三个阶段,共六个步骤。
n 阶段1:认证业务交换过程。
完成客户向KDC请求获得与凭据发放服务器通信时使用的凭据以及会话密钥的过程。
Ø 1. C请求票据许可票据
n 登录时用户被要求输入用户名,输入后系统会向认证服务器AS以明文方式发送一条包含用户和TGS服务两者名字的请求。
C®AS :IDc|IDtgs|TS1
Kerberos的工作原理
Ø 2. AS发放票据许可票据和会话密钥
n 认证服务器检查用户是否有效,如果有效,则随机产生一个用户用来和TGS通信的会话密钥Kc,tgs,然后创建一个票据许可票据Tickettgs,票据许可票据中包含有用户名,TGS服务名,用户地址,当前时间,有效时间,还有刚才创建的会话密钥。票据许可票据使用Ktgs加密。认证服务器向用户发送票据许可票据和会话密钥Kc,tgs,发送的消息用只有用户和认证服务器知道的Kc来加密,Kc的值基于用户的密码。
AS®C:EKc[Kc,tgs|IDtgs|TS2|LIFETIME2|Tickettgs ],其中Tickettgs=EKtgs[Kc,tgs|IDc|ADc|IDtgs|TS2|LIFETIME2]
Kerberos的工作原理
n 阶段2:授权凭据业务交换过程。
是客户向凭据发放服务器获得请求与最终的应用服务器进行通信所需要的凭据和会话密钥的过程。
Ø 3 C请求服务器票据
n 用户工作站收到认证服务器回应后,就会要求用户输入密码,将密码转化为DES密钥Kc,然后将认证服务器发回的信息解开,将票据和会话密钥保存用于以后的通信,为了安全性用户密码和密钥Kc则被删掉。
n 当用户的登录时间超过了票据的有效时间时,用户的请求就会失败,这时系统会要求用户重新申请票据Tickettgs。用户可以查看自己所拥有的令牌的当前状态。
n 一个票据只能申请一个特定的服务,用户必须为每一个服务s申请新的票据
n 用户首先向TGS发出申请服务器票据的请求。请求信息中包含s的名字,Tickettgs,还有用会话密钥加密过的Authenticator信息(这是为了保证这些数据在传输过程中没有被篡改)
C®TGS:IDs|Tickettgs|Authenticatorc,
其中Authenticatorc=EKc,tgs[IDc|ADc|TS3]
Kerberos的工作原理
Ø 4 TGS发放服务器票据和会话密钥
n TGS得到请求后,用私有密钥Ktgs和会话密钥Kc,tgs解开请求得到Tickettgs和Authenticatorc的内容,根据两者的信息鉴定用户身份是否有效。如果有效,TGS生成用于c和s之间通信的会话密钥Kc,s,并生成用于c申请得到s服务的票据Tickets,其中包含c和s的名字,c的网络地址,当前时间,有效时间和刚才产生的会话密钥。票据Tickets的有效时间是票据Tickettgs剩余的有效时间和所申请的服务缺省有效时间中最短的时间。Tgs最后将加密后的票据Tickets和会话密钥Kc,s用用户和TGS之间的会话密钥Kc,tgs加密后发送给用户。用户c得到回答后,用Kc,tgs解密,得到所请求的票据和会话密钥。
TGS®C :Ekc,tgs[Kc,s|IDs|TS4|Tickets] ,其中Tickets=EKs[Kc,s|IDc|ADc|IDs|TS4|LIFETIME4]
Kerberos的工作原理
n 阶段3:用户/服务器双向认证交换过程。
客户方通过递交服务器凭据证明自己的身份的同时,通过一个典型的挑战/响应消息交换服务器向客户证明自己的身份。
Ø 5 C请求服务
n 用户首先向s发送包含票据Tickets和Authenticatorc的请求,s收到请求后将其分别解密,比较得到的用户名,网络地址,时间等信息,判断请求是否有效。用户和服务程序之间的时钟必须同步在几分钟的时间段内,当请求的时间与系统当前时间相差太远时,认为请求是无效的,用来防止重放攻击。为了防止重放攻击,s通常保存一份最近收到的有效请求的列表,当收到一份请求与已经收到的某份请求的票据和时间完全相同时,认为此请求无效。
C®S:Tickets|Authenticators,其中Authenticators=Kc,s[IDc|ADc|TS5]
Ø 6 S提供服务器认证信息
n 当C也想验证S的身份时,S将收到的时间戳加1,并用会话密钥Kc,s加密后发送给用户,用户收到回答后,用会话密钥解密来确定S的身份。
S®C:Ec,s[TS5+1]
Kerberos认证的局限性
• Kerberos的设计是和MIT的环境结合的,把它推广到现有的各种计算机通信网络作为一种标准使用存在一定的局限性。
n 认证码的正确性是基于网络中所有的时钟保持同步,而事实上实现较好的时间同步往往是很困难的。如果主机的事件发生错误,原来的认证码就是可以被替换的,大多数网络的时间协议都是不安全的,而在分布式系统中这将导致极为严重的问题。
Kerberos认证的局限性
n Kerberos是一种秘密密钥网络认证协议,它是以对称加密算法DES作为协议的基础。这就给密钥的交换,存储和管理带来了安全上的隐患,同时不能提供抗否认认证机制。
n Kerberos防止口令猜测攻击的能力很弱,Kerberos协议模型未对口令提供额外的保护。攻击者可以收集大量的许可证,通过计算和密钥分析进行口令猜测。当用户选择的口令不够强时,更不能有效地防止口令猜测攻击。
n 另外,在分布式系统中,认证中心星罗棋布,域间会话密钥的数量惊人,密钥的管理,分配,存储都是很严峻的问题。
2 PKI组成
• PKI公钥基础设施采用证书管理公钥,通过第三方的可信任机构—认证中心—把用户的公钥和用户的其他标识信息捆绑在一起,在Internet上验证用户的身份。PKI公钥基础设施就是提供公钥加密和数字签名服务的系统,目的是为了管理密钥和证书.保证网上数字信息传输的机密性、真实性、完整性和不可否认性。
2 PKI组成
• 完整的PKI包括认证政策的制定(包括遵循的技术标准、各CA之间的上下级或同级关系、安全策略、安全程度、服务对象、管理原则和框架等)、认证规则、运作制度的制定、所涉及的各方法律关系内容以及技术的实现。一个典型、完整、有效的PKI应用系统至少应具有以下几部分:
n 认证中心CA
n 注册机构RA
n 业务受理点
n LDAP目录服务
2 PKI组成
• 认证中心CA
n 在PKI体系中.认证中心(CA,Certificate Authority)扮演了非常重要的角色。这是整个PKI体系中各方都承认的一个值得信赖的、公正的第三方机构。正因为CA是一个各方都信任的机构,所以它签发的数字证书也就值得大家信任,而相应的数字证书所代表的通信双方的身份也就可以信任。
n CA负责产生、分配并管理PKI结构下的所有用户(包括各种应用程序)的证书,把用户的公钥和用户的其他信息捆绑在一起,在网上验证用户的身份,CA还要负责用户证书的黑名单登记和黑名单发布。
2 PKI组成
• 注册机构RA
n 注册机构(RA,Registration Authority)是CA的证书发放、管理的延伸。它负责证书申请者的信息录入、审核以及证书发放等工作;同时,对发放的证书完成相应的管理功能。
n 注册管理一般都是由一个独立的注册机构来承担的。它接受用户的注册申请,审查用户的申请资格,并决定是否同意CA给其签发数字证书。注册机构并不给用户签发证书,而只是对用户进行资格审查。因此,RA可以设置在直接面对客户的业务部门,如银行的营业部、机构认证部门等。当然,对于一个规模较小的PKI应用系统来说,可把注册管理的职能由认证中心CA来完成,而不设立独立运行的RA。但这并不是取消了PKI的注册功能,而只是将其作为CA的一项功能而已。PKI国际标准推荐出一个独立的RA来完成注册管理的任务,可以增强应用系统的安全。
n RA发放的数字证书可以存放于IC卡、硬盘或软盘等介质中。RA系统是整个CA中心得以正常运营不可缺少的一部分。在RA的下层还可以有多个业务受理点(RS)。
2 PKI组成
• 业务受理点RS
n 受理点的功能包括:管理所辖受理点的用户资料、受理用户证书业务、审核用户身份、向受理中心或RA中心申请签发证书以及将RA中心或受理中心制作的证书介质分发给用户。
• LDAP目录服务器
n LDAP(Lightweight Directory Access Protocol)目录服务器用于存取证书以及证书撤销列表(CRL),用户可通过LDAP服务器将整个CRL下载到本地的机器上,再根据下载的CRL查询用户的证书状态。
2 PKI组成
• CA、RA和业务受理点之间的逻辑结构
3 数字证书
• 数字证书是网络中标识身份的凭据,是用户在网络的虚拟世界中表明自己身份的最有效方法,而CA是颁发数字证书的权威机构。
• 数字凭证也称数字证书,由CA认证中心发放的一个数字文件,在网络通信中标志通信各方身份信息的一系列数据。
• 证书是一个经证书授权中心数字签名的、包含公开密钥拥有者信息以及公开密钥的文件。一方面,证书可以用来向系统中的其他实体证明自己的身份;另一方面.由于每份证书都携带着证书持有者的公钥,所以证书也可以向接收者证实某人或某个机构对公开密钥的拥有,同时也起着公钥分发的作用。
3 数字证书
n 证书(certificate),有时候简称为cert;
n 数字证书也称公开密钥证书,它是一个用户的身份证明。
n 数字证书是由权威机构发行的,具有法律效力。
n 数字证书上标有所有者的公钥及名称。
n 数字证书具有保密性、认证身份和不可否认性的作用。
n 数字证书是采用公钥体制。
数字证书的分类及信息
• 从证书的最终使用者来看,数字证书可分为系统证书和用户证书。
n 系统证书指CA系统自身的证书,包括CA中心的证书、业务受理点的证书以及CA系统操作员的证书
n 用户证书从应用角度可将其分为个人用户证、企业用户证书和服务器证书。
• 从证书的用途来看,数字证书可分为签名证书和加密证书。
n 签名证书用于对用户信息进行签名.以保让信息的不可否认性;
n 加密证书用于对用户传送信息进行加密,以保证信息的真实性和完整性。
n CA需要为加密证书备份私钥,而签名证书无需备份私钥。因此,证书签发过程会因密钥是否需要备份而有所差异。
个人数字证书
• 个人数字证书
n 可以利用个人数字证书来发送签名或加密的电子邮件。
n 个人数字证书分为二个级别
Ø 第一级数字证书,仅仅提供电子邮件的认证,不对个人的真实姓名等信息认证;
Ø 第二级个人数字证书提供对个人姓名、身份等信息的认证。
n 个人数字证书的获得
Ø 当个人数字证书申请后,认证中心对申请者的电子邮件地址、个人身份及信用卡号等信息进行核实,通常在三~五天内即可颁发数字证书。
数字证书示意图
数字证书的分类及信息
• 电子交易中主要的两种证书:
n 持卡人证书:支付卡的电子化表示
n 商家证书:接受银行卡结算的方式
• 数字凭证包含四部分
n 证书持有人的姓名、地址等关键信息;
n 证书持有人的公开密钥;
n 证书序号、有效期等;
n 发证单位的数字签名。
数字证书的格式
X.509版本3的证书格式
n 版本号表示证书的版本,如版本1,版本3等;序列号是由证书颁发者分配给证书的惟一标识符;签名算法是由对象标识符加上相关参数组成的标识符,用于说明证书所用的数字签名算法;颁发者是证书颁发者的可识别名;有效期是证书有效的时间段;主体是证书拥有者的可识别名,此字段必须为非空;主体公钥信息是对主体的公钥以及算法标识符进行说明;颁发者惟一标识符是证书颁发者的惟一标识符,仅在版本2和版本3中要求,属于可选项;主体惟一标识符是证书拥有者惟一标识符,仅在版本2和版本3中要求,属于可选项;扩展是专用的标准和专用功能字段;签名是认证机构的数字签名。
数字证书原理简介
• 数字证书利用一对互相匹配的密钥进行加密、解密。每个用户自己设定一把特定的仅为本人所知的私有密钥,用它进行解密和签名;同时设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密。
数字证书的存放
• 使用IC卡存放
n 使用IC卡存放用户证书,即把用户的数字证书写到IC卡中,供用户随身携带。这样,用户在所有能够读IC卡证书的电子商务终端上都可以享受电子商务服务。
n 使用这种方式存放用户证书需要以下配套设施的完善:
Ø 专门的与计算机或工作站相连的读/写卡机,或直接将读卡槽设在机器键盘上;
Ø 较大容量的IC卡;
Ø 能够使用IC卡的各种电子商务终端;
Ø 电子商务系统的终端软件要能够从IC卡读取用户的证书。
• 直接存放在磁盘或自己的终端上
n 用户将从CA申请来的证书下载或复制到磁盘、自己的PC机或智能终端上,当用户使用自己的终端享受电子商务服务时,直接从终端读入即可
数字证书在电子邮件中的应用
• 电子邮件在网络传输的整个过程都是不加密的可读文件。
n 商务计划、合同、帐单等敏感信息容易被人看见
• 数字证书在电子邮件中的作用
n 保密性
n 认证身份
n 完整性
n 不可否认性
4 CA认证中心
• 什么是CA认证
n 所谓CA (Certificate Authority)认证中心,它是采用PKI (Public Key Infrastructure)公开密钥基础架构技术,专门提供网络身份认证服务,负责签发和管理数字证书,具有权威性和公证性的第三方信任机构。
n 在网络这个虚拟的世界里,必须有人向公共密钥的使用者证明,公布在网络中的公钥的真实合法性,CA中心就是负责验证公钥主体的真实身份以及它与公钥的匹配关系的机构。
4 CA认证中心
• 怎么保证交易双方身份的真实性和交易的不可抵赖性是人们迫切关心的问题。
n 交易能够顺利进行要求:身份认证、安全传输、不可否认性、数据一致性。
n CA证书认证体系采用了加密传输技术和数字签名技术,能够满足交易的安全要求。
• 目前国内的CA认证中心主要分为区域性CA认证中心和行业性CA认证中心。
CA认证机构
• 目前最权威的根认证CA:美国的Verisign公司,创建于1995年4月,是一个提供智能信息基础设施服务的上市公司(纳斯达克上市代码: VRSN) ,而数字证书业务是其起家的核心业务。
VeriSign 公司简介
• 是一个提供智能信息基础设施服务的上市公司。
• 而数字证书业务是其起家的核心业务,其 SSL 证书被全球 500 强中有 93% 的企业选用、全球前 40 大银行都选用、全球 50 大电子商务网站中有47个网站使用,共有超过 50 万个网站选用 VeriSign 的 SSL证书来确保网站机密信息安全。
• VeriSign 数字证书产品是目前市场上最完整的支持最多应用和最多设备的数字证书产品,主要包括: SSL 证书和代码签名证书。
• 微软产品徽标认证证书 ("Designed for Windows logo" Digital IDs) :用于数字签名微软 Windows Logo 认证的各种软件、硬件驱动程序等,提交已经签名的软件给微软测试认证,
认证中心职能
• 认证中心,是一个负责发放和管理数字证书的权威机构。认证中心是检验公钥真实性的权威机构。认证中心除了检验外,还有管理、搜索和验证证书的职能。
• CA认证中心的功能:
用户注册、 证书签发、 证书吊销、 密钥恢复、密钥更新、证书使用、安全管理
• 用户注册
n 用户要使用CA提供的服务,首先就要进行注册。注册方式有多种,如果用户有证书,可以使用证书证明自己的身份;也可以通过安全通道在线注册。
n PIN注册方式
Ø PIN是PKI中RA发给证书申请人的,PIN可以用作证书申请人的标识。
n PIN要惟一,每个证书的持有者有惟一的PIN;
n PIN要有足够的长度,防止穷举攻击;
n PIN要尽量随机,并尽量不带有特性,防止猜测。
n 申请人注册方式:
Ø ①申请证书的用户向RA提交个人信息,个人信息包括:Emaill、用户密码。
Ø ②RA对个人信息进行审核。审核通过后,先为用户产生一个PIN。然后计算Email的hash值,把这个hash值作为密钥对PIN加密。把Email、用户密码和加密后的PIN保存。用户申请证书、吊销证书及申请恢复密钥时,都以这3项作为验证用户身份的依据
Ø ③RA把PIN通过安全Email发送给申请证书的用户
Ø ④用户接收到该PIN后,妥善保管。
认证中心职能
• 证书签发
n ①申请人提交证书请求
Ø 如果证书需要备份私钥,由CA产生公私钥对,证书请求中只有个人信息。如果证书不需要备份私钥,在用户端产生公私钥对,证书请求中除了个人信息外,还有公钥信息。
n ②RA对证书请求进行审核
Ø RA对用户资料进行审核,审核用户相关的关键资料与证书请求信息的一致性。更高级别的证书需要由CA进行进一步的审核。
n ③CA生成证书
Ø 密钥需要备份:CA中心为了备份密钥,需要有密钥备份公私钥对.公钥backupkey用于备份用户私钥,私钥recoverykey用于恢复用户私钥;
Ø 密钥不需备份:首先验证数字签名(申请文件是PKCS#10格式),然后将申请文件的内容导入到证书结构中,签发证书则根据已赋值的证书结构.生成PKCS#7证书文件。
n ④证书发布
Ø 将证书发布到LDAP服务器上。
n ⑤下载并安装证书
Ø 下载个人证书,并安装到浏览器。备份私钥的证书安装过程中要输人证书安装密码。
认证中心职能
• 证书吊销
n 由于一些原因,如私钥泄露或被怀疑泄露、证书中包含的相关信息改变以及使用的中止等,证书必须被注销。每一CA均可以产生CRL(Certificate Revocation List)。
n CRL可以定期产生,也可以在每次有证书作废请求后产生。CRL产生后,发布到目录服务器上。
n CRL的获得方式有多种。例如,CA产生CRL后,自动发送到下属各实体。大多数情况下,由使用证书的各PKI实体从目录服务器获得相应的CRL。
n 使用CRL有其弊端:由于证书认证机构可能不经常签发CRL,周期性的证书撤销列表有时是令人难以忍受的,当CRL过于庞大时,每次分发CRL会大量消耗网络资源。
n delta-CRL:delta-CRL忽略没有发生变化的CRL,而只存储废除信息,可以频繁公布,减少把一个己废除证书当作合法证书使用的可能性,
n 并且可以有效解决CRL过大的问题。证书验证系统复制CRL保存,以后不断地取回delta-CRL,
展开阅读全文