如何验证一张数字证书的合法性

数字证书是依赖根证书的信任传递机制的,所以验证一张数字证书的合法性,需要其上级证书参与进来进行验证。

除了根证书,每一张数字证书都包含了其上级证书对其的签名,也就是用上级证书的私钥对证书摘要(简记为H1)进行加密。

因此验证数字证书合法性的方法总结为:验证根证书是否为受信任的根证书,及其下面证书链上每一张数字证书解密后的证书摘要(H2)是否与证书内容计算得出的摘要(H1)一致。

数字证书解密后的证书摘要(H2)是使用上级证书的公钥来进行解密的。

在可能存在钓鱼网站窃取账号或担心存在SSL劫持的情况下,客户端应用(含手机客户端)在与服务器建立业务联系之前,验证服务器证书的合法性就非常有必要了。

时间: 2024-10-13 16:05:01

如何验证一张数字证书的合法性的相关文章

数字证书浅析以及如何验证证书的可信/合法性

转自http://www.cnblogs.com/hyddd/archive/2009/01/07/1371292.html 最近看会Session hijack的东西,劫持现在已经实现,yahoo等一些没有用Https协议的邮箱被成功地劫持了(迟下发文章),由于对Https不熟悉,所以看了一下为什么Https的会话不能劫持. 本文主要介绍的SSL中的涉及到的"数字证书"这个东东. 一.什么是数字证书? 数字证书是一种权威性的电子文档.它提供了一种在Internet上验证您身份的方式,

数字签名与数字证书

数字签名: 将报文按双方约定的HASH算法计算得到一个固定位数的报文摘要.在数学上保证:只要改动报文中任何一位,重新计算出的报文摘要值就会与原先的值不相符.这样就保证了报文的不可更改性. 将该报文摘要值用发送者的私人密钥加密,然后连同原报文一起发送给接收者,而产生的报文即称数字签名 数字证书: 数字证书就是互联网通讯中标志通讯各方身份信息的一系列数据,提供了一种在Internet上验证您身份的方式,其作用类似于司机的驾驶执照或日常生活中的身份证.它是由一个由权威机构-----CA机构,又称为证书

数字证书的基础知识

在之前的<iOS开发者证书以及代码签名学习笔记>博文中介绍了iOS开发证书以及代码签名相关的知识点,为了更好理解其中证书的特性,这里对数字证书以及相关的知识进行了整理和总结. 在讲数字证书之前必须要讲非对称加算法和摘要算法,因为数字证书的基础就是各种加解密算法(非对称加密.摘要算法),而其中的核心就是非对称加密算法了.目前而言加密方法可以分为两大类.一类是单钥加密(private key cryptography)也可以称为对称加密,还有一类叫做双钥加密(public key cryptogr

数字签名,数字证书,CA认证等概念理解

本文将介绍数字签名,数字证书以及CA相关知识. 加密相关知识可见我的上一篇博文:http://watchmen.blog.51cto.com/6091957/1923426 本文参考文献引用链接: 1.https://www.zhihu.com/question/25912483 2.https://blog.jorisvisscher.com/2015/07/22/create-a-simple-https-server-with-openssl-s_server/ 3.https://zh.

数字签名 数字证书

数字签名原理简介(附数字证书) 首先要了解什么叫对称加密和非对称加密,消息摘要这些知识. 1. 非对称加密 在通信双方,如果使用非对称加密,一般遵从这样的原则:公钥加密,私钥解密.同时,一般一个密钥加密,另一个密钥就可以解密. 因为公钥是公开的,如果用来解密,那么就很容易被不必要的人解密消息.因此,私钥也可以认为是个人身份的证明. 如果通信双方需要互发消息,那么应该建立两套非对称加密的机制(即两对公私钥密钥对),发消息的一方使用对方的公钥进行加密,接收消息的一方使用自己的私钥解密. 2.消息摘要

关于数字证书理解的简单整理以及12306网站证书简单分析

首先简单理解一下什么是数字证书.这里是一篇英文文档,描述的很形象.形象的描述了什么是公钥,什么是私钥,如果确保数字证书的可靠性等. 下面,我们看一个应用"数字证书"的实例:https协议.这个协议主要用于网页加密. 一般我们电脑的浏览器中都有一些受信任的证书颁发机构列表, 里边存储的都是一些机构的信息.这些机构都是权威的.当然可以通过安装软件的方式,来增加证书颁发机构,比如中国银行的根证书软件,阿里巴巴的根证书软件.默认我们认为这些软件都是从官网下载的,是绝对的没被篡改的,可靠的.简单

数字签名、数字证书

一.数字签名 1.1.为什么需要数字签名? 由于网络环境的复杂性,我们无法保证通信的双方是真是的,而且内容是完整的.没被修改过的,因此才需要数字签名.数字签名类似于现实生活中的签名,有以下两种功能:(1)确认通信双方的真实身份,别人假冒不了:(2)能确认消息的完整性. 它是基于非对称加密算法. 1.2.数字签名的流程 假如A和B进行通信.开始时A有两把钥匙:自己的公钥和私钥.A把自己的公钥公布出来,每个人都能看到.同理,B也如此. 1.2.1.B向A发送信息 B向A发送时,需要注意两点: (1)

数字签名、数字证书、对称加密算法、非对称加密算法、单向加密(散列算法)

数字签名是什么? 1. 鲍勃有两把钥匙,一把是公钥,另一把是私钥. 2. 鲍勃把公钥送给他的朋友们----帕蒂.道格.苏珊----每人一把. 3. 苏珊给鲍勃写信,写完后用鲍勃的公钥加密,达到保密的效果. 4. 鲍勃收信后,用私钥解密,看到信件内容. 5. 鲍勃给苏珊回信,写完后用Hash函数,生成信件的摘要(digest). 6. 然后,鲍勃使用私钥,对这个摘要加密,生成"数字签名"(signature). 7. 鲍勃将这个签名,附在信件下面,一起发给苏珊. 8. 苏珊收信后,取下数

Java安全之数字证书

在前面说到,消息摘要用于验证数据完整性,对称与非对称加密用于保证数据保密性,数据签名用于数据的抗否认性,于是集这些安全手段于一身的终极武器--数字证书出现了.数字证书具备了加密/解密的必要信息,包含签名算法,可用于网络数据加密/解密交互,标识网络用户(计算机)身份.数据证书为发布公钥提供了一种简便途径,成为加密算法以及公钥的载体. 数字证书有多种文件编码格式,主要包含CER编码.DER编码等: a.CER(Canonical Encoding Rules,规范编码格式),是数字证书的一种编码格式