数字签名技术则可有效解决这一问题, 类似于手书签名,数字签名应具有以下性质:
① 能够验证签名产生者的身份,以及产生签名的日期和时间.
② 能保证被签名消息的内容的完整性.
③ 数字签名可由第三方公开验证,从而能够解决通信双方的上述争议. • 数字签名在网络安全中提供数据完整性、数据源认证性、数据不可否认性等性质.
生成签名的行为(消息签名):生成签名即根据消息内容来计算数字签名的值。这个行为意味着“我认可该消息的内容”。与现实生活当中在单据或合同末尾签名并不相同。但意义相同。
2. 验证数字签名:一般由接收方完成。但也可以通过需要验证消息的第三方来完成。
• 在数字签名当中,“生成签名”与“验证签名”分别需要使用专用的密钥来完成。
① 直接对消息进行数字签名;
② 对消息的散列值签名的数字签名
不必对整个消息进行加密(即对消息签名),而只是先用单向散列函数求出散列值,然后再将散列值进行加密(对散列值签名)。这样大大提高了加解密的速度。
所以,正确使用数字签名有一个前提,“用于验证的公钥必须属于真正的发送者”。
◼ 两个互不相识的人如何通过公钥机制来通信? 如何确定获得到的公钥一定是对方的公钥?
✓证书
✓X.509
✓PKI(公钥基础设施)
• 数字证书是一段包含用户身份信息、用户公钥信息以及身份验证机构数字签名的数据。
• 数字证书是各类实体(持卡人/个人、商户/企业、网关/银行等)在网上进行信息交流及商务活动的身份证明。通信各方通过验证对方证书的有效性,从而解决相互间的信任问题。
• 通过设置一个机构CA(Certification Authority)证明某些公钥是属于某个人或某个机构,这个证明称作为证书。
• 证书可用哈希函数做摘要,该摘要再使用CA的私钥加密。
• 证书的拥有者可将证书放在网上,供希望与他通信的人下载。
• 证书可解决伪造者的问题。
➢ 伪造者用自己的证书替换Bob的证书:由于证书中有持有者姓名,Alice马上就可发现有人伪造。
➢ 伪造者用自己的公钥替换Bob的证书中的公钥:由于证书是作过摘要,并用CA的私钥加密,通过摘要可检查出证书被修改。
• 公钥密码体制采用证书认证机构(CA)分配密钥
• CA为每个使用公钥的用户发放一个数字证书(证明
证书中列出的用户合法拥有证书中列出的公钥) • CA负责完成以下任务:
1、 CA需验证一个实体 (一个组织、一台路由器等) 的真实身份。
2、 CA生成一个把这个实体的身份和公钥绑定到一起的证书,然后由它对这个证书进行数字签名
如果用户在访问某个网站时,该网站所使用的证书是由一个不被信任的CA颁发的,就会弹出警告提示。
• 有了公钥证书系统后,如果某个用户需要任何其他已向CA注册的用户的公钥,可向持证人(或证书机构)直接索取公钥证书。
• 用CA的公钥验证CA的签名,从而获得可信的公钥。 • 由于公钥书不需要保密,可以在公网上分发,从而实现公钥的安全分配。
• 又由于公钥证书有CA的签名,攻击者不能伪造合法的公钥证书。
• 因此,只要CA是可信的,公钥证书就是可信的。因此公钥证书为公钥的分发奠定了基础,成为公钥密码在大型网络系统中应用的关键技术。这就是电子政务、电子商务等大型网络应用系统都采用公钥证书技术的原因
• X.509是ITU制定的证书标准,它包括以下字段:
◼ 每个证书都存在一个有效期。通常在证书过期之前颁发一个新的证书。然而,有时也会因为其它一些原因而提前撤消证书。凡提
前撤消的证书必须进行登记,并对外发布。
◼ X.509定义了证书消方法。每个CA必须保存一个 证书撤消列表 CRL(CertificateRevocation List),用于保存已经撤消但还没有过期的一组证书。
◼ CRL是由CA签发的带有时间戳的列表。该列表由CA周期性的发布,并存放在一个可以自由获取的公共库中。
公钥基础设施 ( PKI, Public Key Infrastructure),是为了能够更有效地运用公钥而制定的一系列的规范和规格的总称。它几乎是所有加密系统的必由之路
1、签证机构CA
◼对于大范围的应用,一个CA是远远不够的,往往需要许多CA。
例如对于某一行业,国家建立一个最高级的CA,称为根CA。
◼每个省建立一个省CA,每个地市也都可以建立CA,甚至一个企业也可以建立自己的CA。 ✓不同的CA服务于不同的范围,履行不的职责。
▪ 根CA证书是一种自签名证书。
▪ 根CA的证书一般都直接嵌入到软件或硬件中。
▪ CA可用根证书为其下级以及网络实体签发数字证书。系统对用根证书签发的数字证书都表示信任,从技术上说就是建立起一个证书信任链。 ▪ 用户验证各网络实体数字证书的有效性时,实际上只要验证为其颁发数字证书CA的根证书。用户信任可信第三方颁发的根证书,也就信任了网络实体获得的数字证书。