CA : 可信任的颁证机构
1.RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
1.欧拉函数:在数论中,对正整数n,欧拉函数φ(n)是小于或等于n的正整数中与n互质的数的数目.
3.ssl证书中的指纹:指纹是证书的加密哈希值。通过指纹可以快速确定提供的证书是否与另一个证书(例如之前接受的证书)相同
4.证书结构
--Version 版本
--Serial Number序列号
--Algorithm ID 算法标识
--Issuer 颁发者
--Validity 有效期
>Not Before 有效起始日期
>Not After 有效终止日期
--Subject 使用者
--Subject Public Key Info 使用者公钥信息
-- Public Key Algorithm公钥算法
--Subject Public Key公钥
--Issuer Unique Identifier (Optional) 颁发者唯一标识
--Subject Unique Identifier (Optional) 使用者唯一标识
--Extensions (Optional) 扩展
...
Certificate Signature Algorithm 证书签名算法
Certificate Signature 证书签名
5.证书验证过程:
1). 浏览器使用内置的 < 根证书 > 中的 <公钥> 来对收到的证书进行认证,如果一致,就表示该安全证书是由可信任的颁证机构签发的;
如果该 SSL证书不是根服务器签发的,浏览器就会自动检查上一级的发证机构,直到找到相应的根证书颁发机构,如果该根证书颁发机构是可信的,
这个网站的SSL证 书也是可信的.
2). 检查SSL证书中的证书吊销列表
3). 检查此SSL证书是否过期
4). 检查部署此SSL证书的网站的域名是否与证书中的域名一致
6.ssl基于非对称加密技术
7.ssl证书功能:
服务器部署了 SSL 证书后可以确保用户在浏览器上输入的机密信息和从服务器上查询的机密信息从用户电脑到服务器之间的传输链路上是高强度加密传输的,
是不可能被非法篡改和窃取的。同时向网站访问者证明了服务器的真实身份,此真实身份是通过第三方权威机构验证的。
也就是说有两大作用:数据加密和身份认证。
8.什么是数字签名?
所谓数字签名就是信息发送者用其私有密钥对从所传报文中提取出的特征数据(或称数字指纹)进行RSA算法操作,
以保证发信人无法抵赖曾发过该信息(即不可抵 赖性),同时也确保信息报文在经签名后末被篡改(即完整性)。
当信息接收者收到报文后,就可以用发送者的公钥对数字签名进行验证。
9.
数字签名 是加密后的信息摘要
数字指纹 是将指纹利用数字水印技术嵌入到数字媒体中
数字信封 其中应包含原始数据
数字证书 有其标准的证书格式
总结 :
一.对ssl证书持有者的身份认证:
1.数字签名:用私钥对一段数据的摘要信息加密后的密文;
只有与该私钥匹配的公钥可以验证这个数据的签名是否与数据匹配;(数据的完整性)
并且该公钥可以唯一标识一个身份;(数据的不可抵赖性)
2.ssl证书:是ca机构签发的带有ca机构数字签名的数据(该数据中记录了被认证者的信息--具体见上面的 "ssl证书结构" );
3.因为我们相信ca机构(ca机构的公钥是全世界都知道的),所以我们相信被ca机构认证的(即颁发ssl证书的)被认证者.
二.进行通信加密(不考虑需要浏览器端提供证书的情况,实际上是差不多的,只是更安全):
1.ssl证书中有一个公钥,这个公钥就是其通信用公钥.当我们向该公钥持有人发送数据时,我们用该公钥加密数据就可以保证加密后的数据只会被该公钥持有人解读;
(注意 : 持有ssl证书的一方只能保证其他人向他发数据的绝对安全. 但是实际中这种情况可以保证双发收发数据的安全.具体见下)
三.浏览器鉴定一个网址的ssl证书,以及建立安全通信通道的过程:
用户用浏览器访问https网址
浏览器下载网站ssl证书
浏览器读取ssl证书的信息,最重要的就是得到该证书的颁发机构(ca机构),如果该ssl证书中指定的ca机构(就是你的浏览器中的根证书)不存在于你的浏览器(像我国铁路订票系统12306那样自己给自己颁发证书--12306的ssl证书颁发ca就是12306),那就会出现两种情况,要么你去安装该ssl证书中指定的ca机构的根证书再访问,要么不访问
浏览器用上一步得到的ca机构的证书中的公钥去验证ssl证书中的签名是否为该ca机构签署;不是就严重警告,或者无法访问
浏览器验证剩下一些信息 , 诸如 :证书有效期, 是否被吊销,等
浏览器向服务器发送一个通信用对称秘钥(用ssl中的公钥加密过得)
接下来就用这个对称秘钥进行安全通信
1.RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
1.欧拉函数:在数论中,对正整数n,欧拉函数φ(n)是小于或等于n的正整数中与n互质的数的数目.
3.ssl证书中的指纹:指纹是证书的加密哈希值。通过指纹可以快速确定提供的证书是否与另一个证书(例如之前接受的证书)相同
4.证书结构
--Version 版本
--Serial Number序列号
--Algorithm ID 算法标识
--Issuer 颁发者
--Validity 有效期
>Not Before 有效起始日期
>Not After 有效终止日期
--Subject 使用者
--Subject Public Key Info 使用者公钥信息
-- Public Key Algorithm公钥算法
--Subject Public Key公钥
--Issuer Unique Identifier (Optional) 颁发者唯一标识
--Subject Unique Identifier (Optional) 使用者唯一标识
--Extensions (Optional) 扩展
...
Certificate Signature Algorithm 证书签名算法
Certificate Signature 证书签名
5.证书验证过程:
1). 浏览器使用内置的 < 根证书 > 中的 <公钥> 来对收到的证书进行认证,如果一致,就表示该安全证书是由可信任的颁证机构签发的;
如果该 SSL证书不是根服务器签发的,浏览器就会自动检查上一级的发证机构,直到找到相应的根证书颁发机构,如果该根证书颁发机构是可信的,
这个网站的SSL证 书也是可信的.
2). 检查SSL证书中的证书吊销列表
3). 检查此SSL证书是否过期
4). 检查部署此SSL证书的网站的域名是否与证书中的域名一致
6.ssl基于非对称加密技术
7.ssl证书功能:
服务器部署了 SSL 证书后可以确保用户在浏览器上输入的机密信息和从服务器上查询的机密信息从用户电脑到服务器之间的传输链路上是高强度加密传输的,
是不可能被非法篡改和窃取的。同时向网站访问者证明了服务器的真实身份,此真实身份是通过第三方权威机构验证的。
也就是说有两大作用:数据加密和身份认证。
8.什么是数字签名?
所谓数字签名就是信息发送者用其私有密钥对从所传报文中提取出的特征数据(或称数字指纹)进行RSA算法操作,
以保证发信人无法抵赖曾发过该信息(即不可抵 赖性),同时也确保信息报文在经签名后末被篡改(即完整性)。
当信息接收者收到报文后,就可以用发送者的公钥对数字签名进行验证。
9.
数字签名 是加密后的信息摘要
数字指纹 是将指纹利用数字水印技术嵌入到数字媒体中
数字信封 其中应包含原始数据
数字证书 有其标准的证书格式
总结 :
一.对ssl证书持有者的身份认证:
1.数字签名:用私钥对一段数据的摘要信息加密后的密文;
只有与该私钥匹配的公钥可以验证这个数据的签名是否与数据匹配;(数据的完整性)
并且该公钥可以唯一标识一个身份;(数据的不可抵赖性)
2.ssl证书:是ca机构签发的带有ca机构数字签名的数据(该数据中记录了被认证者的信息--具体见上面的 "ssl证书结构" );
3.因为我们相信ca机构(ca机构的公钥是全世界都知道的),所以我们相信被ca机构认证的(即颁发ssl证书的)被认证者.
二.进行通信加密(不考虑需要浏览器端提供证书的情况,实际上是差不多的,只是更安全):
1.ssl证书中有一个公钥,这个公钥就是其通信用公钥.当我们向该公钥持有人发送数据时,我们用该公钥加密数据就可以保证加密后的数据只会被该公钥持有人解读;
(注意 : 持有ssl证书的一方只能保证其他人向他发数据的绝对安全. 但是实际中这种情况可以保证双发收发数据的安全.具体见下)
三.浏览器鉴定一个网址的ssl证书,以及建立安全通信通道的过程:
用户用浏览器访问https网址
浏览器下载网站ssl证书
浏览器读取ssl证书的信息,最重要的就是得到该证书的颁发机构(ca机构),如果该ssl证书中指定的ca机构(就是你的浏览器中的根证书)不存在于你的浏览器(像我国铁路订票系统12306那样自己给自己颁发证书--12306的ssl证书颁发ca就是12306),那就会出现两种情况,要么你去安装该ssl证书中指定的ca机构的根证书再访问,要么不访问
浏览器用上一步得到的ca机构的证书中的公钥去验证ssl证书中的签名是否为该ca机构签署;不是就严重警告,或者无法访问
浏览器验证剩下一些信息 , 诸如 :证书有效期, 是否被吊销,等
浏览器向服务器发送一个通信用对称秘钥(用ssl中的公钥加密过得)
接下来就用这个对称秘钥进行安全通信