SSL-数字签名-数字信封-数字证书
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
继续进行) 证书是否过期,发行服务器证书的 CA 是否可靠,发行者证书的公钥能否正确解开 服务器证书的“发行者的数字签名”,服务器证书上的域名是否和服务器的实际域名 相匹配。 4) 客户端产生一个随机数用于后面通讯的“预主密码”,用服务器公钥对其加密,将其传 给服务器。 u 若服务器要求客户的身份认证(可选),客户端可以建立一个随机数然后对其进行
4. 数字签名 1)数字签名实际上是非对称密码算法和消息摘要算法的一种组合应用; 2)其目的是: 保证信息是由签名者自己签名发送的,签名者不能否认或难 以否认;保证信息自签发后到收到为止未曾作过任何修改; 3)下面的例子将详细介绍 Alice 如何对一份合同 M 进行数字签名,同时 Bob 又是如何来验证她所签的合同。见图示:
数字信封过程示意图
1)Alice 准备了一份合同 M; 2)Alice 生成一个随机数; 3)Alice 选用该随机数作为密钥对合同 M 进行对称加密,生成密文合同; 4)Alice 选用 Bob 公钥对随机数进行非对称加密,生成数字信封; 5)Alice 将密文合同和信封一起发送给 Bob; 6)Bob 接受 Alice 发送的密文合同和信封; 7)Bob 选用自己的私钥对信封进行解密,得到对称密钥(随机数); 8)Bob 使用该对称密钥(随机数)对密文合同进行对称解密,得到合同 M。
n 文件格式
数字证书文件格式(cer 和 pfx)的区别:
带有私钥的证书: 由 PKCS#12 标准定义,包含了公钥和私钥的二进制格式的形式,以 pfx 作为后缀名。
二进制编码的证书: 证书中没有私钥,DER 编码二进制格式的证书文件,以 cer 作为证书文件后缀名。
加密、消息摘要、数字签名、数字信封和 SSL 通信过程
1. 对Baidu Nhomakorabea加密与非对称加密
n 对称加密 包含:1 个秘匙和 1 组相对的加密/解密算法 示例:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK、AES 原理: 发送方:原文 -‐-‐(加密)-‐-‐ 密文 – 发送 接收方:密文 -‐-‐(解密)-‐-‐ 原文 – 处理
图 4 数字签名示意图 1)Alice 准备了一份合同 M; 2)Alice 用摘要算法计算出该合同 M 的消息摘要 MD; 3)Alice 用自己的私钥对消息摘要 MD 进行加密,该密文 S 就是数字签名; 4)Alice 将合同 M 和合同的数字签名 S,一起传送到给接受者 Bob; 5)Bob 收到 Alice 的合同 M 及合同的数字签名 S; 6)Bob 用 Alice 公钥解密合同签名 S,得到 Alice 计算的合同摘要 MD; 7)Bob 采用相同摘要算法对收到的合同重新计算消息摘要 MD'; 8)Bob 比较 MD 与 MD'是否相等? 9)如结果相等,根据摘要算法的特性表明合同在传输过程中未被篡改。 同时由于非对称加密算法的特性可以断定合同确实是 Alice 发送的,因为用 Alice 公钥能解密成功的数据只有 Alice 用她自己私钥对其进行加密才能产 生,而她的私钥其它人是无法获取的。
3. 消息摘要(也称为数字摘要,数字指纹) n Hash 算法 概念:
1)哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的 二进制值称为哈希值。一般用于快速查找和加密算法。 2)哈希(Hash)算法,即散列函数。它是一种单向密码体制,即它是一个从明文到密文 的不可逆的映射,只有加密过程,没有解密过程。同时,哈希函数可以将任意长度的输 入经过变化以后得到固定长度的输出。
服务器证书被安装于服务器设备上,用来证明服务器的身份和进行通信加密。服务器证书可以用来防
止欺诈钓鱼站点。譬如 SSL 证书
u 电子邮件证书
电子邮件证书可以用来证明电子邮件发件人的真实性。它并不证明数字证书上面 CN 一项所标识的证
书所有者姓名的真实性,它只证明邮件地址的真实性。
3)哈希函数单向特征和输出数据长度固定的特征使得它可以生成消息或者数据。 特点:
1)哈希表是根据设定的哈希函数 H(key)和处理冲突方法将一组关键字映射到一个 有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这 种表称为哈希表或散列,所得存储位置称为哈希地址或散列地址。 2)通过将单向数学函数(有时称为“哈希算法”)应用到任意数量的数据所得到 的固定大小的结果。如果输入数据中有变化,则哈希也会发生变化。哈希可用于许
Base64 编码的证书: 证书中没有私钥,BASE64 编码格式的证书文件,也以 cer 作为证书文件后缀名。
n 证书分类
广义上可分为:个人数字证书、单位数字证书、单位员工数字证书、服务器证书、VPN 证书、WAP 证书、
代码签名证书和表单签名证书。 u 服务器证书
发送方: 原文 -‐-‐(加密-‐乙的公匙) -‐-‐ 密文 – 发送 接收方: 密文 -‐-‐(解密-‐乙的私匙) -‐-‐ 原文 – 处理
2. 数字信封 1)数字信封是一种非对称密码算法和对称密码算法组合应用, 2)其目的是: 用于通信双方间的安全文件交换。 3)下面的例子将详细介绍 Alice 如何利用数字信封将合同安全地传送给 Bob。见图示:
以下是一个很好例子
1. 鲍勃有两把钥匙,一把是公钥,另一把是私钥。
2. 鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。
3. 苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果
4. 鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露, 这封信就是安全的,即使落在别人手里,也无法解密。
按照此方式,您无须通过网络发送密码就可以向服务器证明您知道密码。
n 消息摘要 采用单向 Hash 函数将需加密的明文"摘要"成一串 128bit 的密文,这一 串密文亦称为数字指纹(Finger Print)。 1)它是一个唯一对应一个消息或文本的固定长度的值; 2)它由一个单向 Hash 加密函数对消息进行作用而产生; 3)可以检查消息是否被修改,保证消息的完整性。
数据签名,将这个含有签名的随机数和客户自己的证书,及加密过的“预主密 码”一起传给服务器。 u 若服务器要求客户的身份认证,服务器须检验客户证书和签名随机数的合法性: 具体的合法性验证过程包括:客户的证书使用日期,客户证书的 CA 是否可靠, 发行 CA 的公钥能否解开客户证书的发行 CA 的数字签名,客户的证书是否 在证书废止列表(CRL)中。 5) 服务器和客户端用相同的主密码即“通话密码”,一个对称密钥用于 SSL 协议的安 全数据通讯的加解密通讯。 6) 客户端向服务器端发出信息,指明后面的数据通讯将主密码为对称密钥,同时通知服 务器客户端的握手过程结束。 7) 服务器向客户端发出信息,指明后面的数据通讯将主密码为对称密钥,同时通知客户 端服务器端的握手过程结束。 8) SSL 的握手部分结束,SSL 安全通道的数据通讯开始,客户和服务器开始使用相同 的对称密钥进行数据通讯,同时进行通讯完整性的检验。
5. 数字证书 n 证书格式:
目前普遍采用的是 X.509V3 国际标准,X.509 数字证书包含以下一些内容: 版本信息;唯一证书序列号;签名算法;发行机构名称(X.500 格式);证书的有效期;证书所
有人的名称(X.500 格式);证书所有人的公开密钥;证书发行者对证书的签名。
多操作,包括身份验证和数字签名。也称为“消息摘要”。 包含:典型的哈希算法包括 MD2、MD4、MD5 和 SHA-‐1。 计算方法:
MD5 一种符合工业标准的单向 128 位哈希方案,由 RSA Data Security, Inc. 开 发。 各种“点对点协议(PPP)”供应商都将它用于加密的身份验证。哈希方案是 一种以结果唯一并且不能返回到其原始格式的方式来转换数据(如密码)的方法。 质询握手身份验证协议(CHAP) 使用质询响应并在响应时使用单向 MD5 哈希法。
n 非对称加密
u 公匙与私匙 用途: 主要用于非对称加密体系,加密和解密用不同的秘匙 公匙: PublicKey,是公开的,不需要保密 私匙: PrivateKey, 是自己的,需要保密 包含: 1 对密匙和 1 组相对的加密/解密算法 示例:RSA、Elgamal、背包算法、Rabin、D-‐H、ECC(椭圆曲线加密算法) 原理:
u 个人证书
客户端证书主要被用来进行身份验证和电子签名。
l 数字指纹 vs. 数字签名 vs. 数字证书
数字指纹,也称为消息摘要,根据消息内容使用特定的 Hash 算法生成。 非绝对安全,因为消息可能被截获并换成其他有同样数字指纹的消息。 数字签名,弥补了数字指纹的弱点。它用消息发送者的私匙加密数字指纹, 生成数字签名。消息接收者用消息发送者的公匙解密数字指纹。 数字签名的弱点是用于解密数字指纹的公匙。 数字证书用于解决数字签名的这一弱点。证书包含消息发送者的电子邮箱地 址、名字和公匙,及用于唯一标识消息发送者的其他信息。由有公信力的 CA 证明证书的完整性。 CA 为消息发送者提供私匙,用于加密数字指纹;同时 CA 向消息接收者提 供包含证书颁发机构的公匙证书。
5. 鲍勃给苏珊回信,决定采用 "数字签名"。他写完后先用Hash函数,生成信件的摘要(digest)
6. 然后,鲍勃使用私钥,对这个摘要加密,生成"数字签名"(signature)。
6. SSL 通讯过程(单向认证、双向认证)
1) 客户端的浏览器向服务器发送请求: 客户端 SSL 协议的版本号,加密算法的种类,产生的随机数,及其他通讯所需要 的各种信息。
2) 服务器向客户端响应请求: SSL 协议的版本号,加密算法的种类,随机数以及其他相关信息,同时服务器自
己的证书。 3) 客户端利用服务器信息验证服务器的合法性(没有通过,通讯将断开;验证通过,将
4. 数字签名 1)数字签名实际上是非对称密码算法和消息摘要算法的一种组合应用; 2)其目的是: 保证信息是由签名者自己签名发送的,签名者不能否认或难 以否认;保证信息自签发后到收到为止未曾作过任何修改; 3)下面的例子将详细介绍 Alice 如何对一份合同 M 进行数字签名,同时 Bob 又是如何来验证她所签的合同。见图示:
数字信封过程示意图
1)Alice 准备了一份合同 M; 2)Alice 生成一个随机数; 3)Alice 选用该随机数作为密钥对合同 M 进行对称加密,生成密文合同; 4)Alice 选用 Bob 公钥对随机数进行非对称加密,生成数字信封; 5)Alice 将密文合同和信封一起发送给 Bob; 6)Bob 接受 Alice 发送的密文合同和信封; 7)Bob 选用自己的私钥对信封进行解密,得到对称密钥(随机数); 8)Bob 使用该对称密钥(随机数)对密文合同进行对称解密,得到合同 M。
n 文件格式
数字证书文件格式(cer 和 pfx)的区别:
带有私钥的证书: 由 PKCS#12 标准定义,包含了公钥和私钥的二进制格式的形式,以 pfx 作为后缀名。
二进制编码的证书: 证书中没有私钥,DER 编码二进制格式的证书文件,以 cer 作为证书文件后缀名。
加密、消息摘要、数字签名、数字信封和 SSL 通信过程
1. 对Baidu Nhomakorabea加密与非对称加密
n 对称加密 包含:1 个秘匙和 1 组相对的加密/解密算法 示例:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK、AES 原理: 发送方:原文 -‐-‐(加密)-‐-‐ 密文 – 发送 接收方:密文 -‐-‐(解密)-‐-‐ 原文 – 处理
图 4 数字签名示意图 1)Alice 准备了一份合同 M; 2)Alice 用摘要算法计算出该合同 M 的消息摘要 MD; 3)Alice 用自己的私钥对消息摘要 MD 进行加密,该密文 S 就是数字签名; 4)Alice 将合同 M 和合同的数字签名 S,一起传送到给接受者 Bob; 5)Bob 收到 Alice 的合同 M 及合同的数字签名 S; 6)Bob 用 Alice 公钥解密合同签名 S,得到 Alice 计算的合同摘要 MD; 7)Bob 采用相同摘要算法对收到的合同重新计算消息摘要 MD'; 8)Bob 比较 MD 与 MD'是否相等? 9)如结果相等,根据摘要算法的特性表明合同在传输过程中未被篡改。 同时由于非对称加密算法的特性可以断定合同确实是 Alice 发送的,因为用 Alice 公钥能解密成功的数据只有 Alice 用她自己私钥对其进行加密才能产 生,而她的私钥其它人是无法获取的。
3. 消息摘要(也称为数字摘要,数字指纹) n Hash 算法 概念:
1)哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的 二进制值称为哈希值。一般用于快速查找和加密算法。 2)哈希(Hash)算法,即散列函数。它是一种单向密码体制,即它是一个从明文到密文 的不可逆的映射,只有加密过程,没有解密过程。同时,哈希函数可以将任意长度的输 入经过变化以后得到固定长度的输出。
服务器证书被安装于服务器设备上,用来证明服务器的身份和进行通信加密。服务器证书可以用来防
止欺诈钓鱼站点。譬如 SSL 证书
u 电子邮件证书
电子邮件证书可以用来证明电子邮件发件人的真实性。它并不证明数字证书上面 CN 一项所标识的证
书所有者姓名的真实性,它只证明邮件地址的真实性。
3)哈希函数单向特征和输出数据长度固定的特征使得它可以生成消息或者数据。 特点:
1)哈希表是根据设定的哈希函数 H(key)和处理冲突方法将一组关键字映射到一个 有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这 种表称为哈希表或散列,所得存储位置称为哈希地址或散列地址。 2)通过将单向数学函数(有时称为“哈希算法”)应用到任意数量的数据所得到 的固定大小的结果。如果输入数据中有变化,则哈希也会发生变化。哈希可用于许
Base64 编码的证书: 证书中没有私钥,BASE64 编码格式的证书文件,也以 cer 作为证书文件后缀名。
n 证书分类
广义上可分为:个人数字证书、单位数字证书、单位员工数字证书、服务器证书、VPN 证书、WAP 证书、
代码签名证书和表单签名证书。 u 服务器证书
发送方: 原文 -‐-‐(加密-‐乙的公匙) -‐-‐ 密文 – 发送 接收方: 密文 -‐-‐(解密-‐乙的私匙) -‐-‐ 原文 – 处理
2. 数字信封 1)数字信封是一种非对称密码算法和对称密码算法组合应用, 2)其目的是: 用于通信双方间的安全文件交换。 3)下面的例子将详细介绍 Alice 如何利用数字信封将合同安全地传送给 Bob。见图示:
以下是一个很好例子
1. 鲍勃有两把钥匙,一把是公钥,另一把是私钥。
2. 鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。
3. 苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果
4. 鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露, 这封信就是安全的,即使落在别人手里,也无法解密。
按照此方式,您无须通过网络发送密码就可以向服务器证明您知道密码。
n 消息摘要 采用单向 Hash 函数将需加密的明文"摘要"成一串 128bit 的密文,这一 串密文亦称为数字指纹(Finger Print)。 1)它是一个唯一对应一个消息或文本的固定长度的值; 2)它由一个单向 Hash 加密函数对消息进行作用而产生; 3)可以检查消息是否被修改,保证消息的完整性。
数据签名,将这个含有签名的随机数和客户自己的证书,及加密过的“预主密 码”一起传给服务器。 u 若服务器要求客户的身份认证,服务器须检验客户证书和签名随机数的合法性: 具体的合法性验证过程包括:客户的证书使用日期,客户证书的 CA 是否可靠, 发行 CA 的公钥能否解开客户证书的发行 CA 的数字签名,客户的证书是否 在证书废止列表(CRL)中。 5) 服务器和客户端用相同的主密码即“通话密码”,一个对称密钥用于 SSL 协议的安 全数据通讯的加解密通讯。 6) 客户端向服务器端发出信息,指明后面的数据通讯将主密码为对称密钥,同时通知服 务器客户端的握手过程结束。 7) 服务器向客户端发出信息,指明后面的数据通讯将主密码为对称密钥,同时通知客户 端服务器端的握手过程结束。 8) SSL 的握手部分结束,SSL 安全通道的数据通讯开始,客户和服务器开始使用相同 的对称密钥进行数据通讯,同时进行通讯完整性的检验。
5. 数字证书 n 证书格式:
目前普遍采用的是 X.509V3 国际标准,X.509 数字证书包含以下一些内容: 版本信息;唯一证书序列号;签名算法;发行机构名称(X.500 格式);证书的有效期;证书所
有人的名称(X.500 格式);证书所有人的公开密钥;证书发行者对证书的签名。
多操作,包括身份验证和数字签名。也称为“消息摘要”。 包含:典型的哈希算法包括 MD2、MD4、MD5 和 SHA-‐1。 计算方法:
MD5 一种符合工业标准的单向 128 位哈希方案,由 RSA Data Security, Inc. 开 发。 各种“点对点协议(PPP)”供应商都将它用于加密的身份验证。哈希方案是 一种以结果唯一并且不能返回到其原始格式的方式来转换数据(如密码)的方法。 质询握手身份验证协议(CHAP) 使用质询响应并在响应时使用单向 MD5 哈希法。
n 非对称加密
u 公匙与私匙 用途: 主要用于非对称加密体系,加密和解密用不同的秘匙 公匙: PublicKey,是公开的,不需要保密 私匙: PrivateKey, 是自己的,需要保密 包含: 1 对密匙和 1 组相对的加密/解密算法 示例:RSA、Elgamal、背包算法、Rabin、D-‐H、ECC(椭圆曲线加密算法) 原理:
u 个人证书
客户端证书主要被用来进行身份验证和电子签名。
l 数字指纹 vs. 数字签名 vs. 数字证书
数字指纹,也称为消息摘要,根据消息内容使用特定的 Hash 算法生成。 非绝对安全,因为消息可能被截获并换成其他有同样数字指纹的消息。 数字签名,弥补了数字指纹的弱点。它用消息发送者的私匙加密数字指纹, 生成数字签名。消息接收者用消息发送者的公匙解密数字指纹。 数字签名的弱点是用于解密数字指纹的公匙。 数字证书用于解决数字签名的这一弱点。证书包含消息发送者的电子邮箱地 址、名字和公匙,及用于唯一标识消息发送者的其他信息。由有公信力的 CA 证明证书的完整性。 CA 为消息发送者提供私匙,用于加密数字指纹;同时 CA 向消息接收者提 供包含证书颁发机构的公匙证书。
5. 鲍勃给苏珊回信,决定采用 "数字签名"。他写完后先用Hash函数,生成信件的摘要(digest)
6. 然后,鲍勃使用私钥,对这个摘要加密,生成"数字签名"(signature)。
6. SSL 通讯过程(单向认证、双向认证)
1) 客户端的浏览器向服务器发送请求: 客户端 SSL 协议的版本号,加密算法的种类,产生的随机数,及其他通讯所需要 的各种信息。
2) 服务器向客户端响应请求: SSL 协议的版本号,加密算法的种类,随机数以及其他相关信息,同时服务器自
己的证书。 3) 客户端利用服务器信息验证服务器的合法性(没有通过,通讯将断开;验证通过,将