Tag Archives: CA

密钥数字签名和证书

原文网址:http://www.youdzone.com/signature.html

1.

鲍勃有两把钥匙,一把是公钥,另一把是私钥。

2.

鲍勃把公钥送给他的朋友们—-帕蒂、道格、苏珊—-每人一把。

3.

苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。

4.

鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。

5.

鲍勃给苏珊回信,决定采用”数字签名”。他写完后先用Hash函数,生成信件的摘要(digest)。

6.

然后,鲍勃使用私钥,对这个摘要加密,生成”数字签名”(signature)。

7.

鲍勃将这个签名,附在信件下面,一起发给苏珊。

8.

苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘要。由此证明,这封信确实是鲍勃发出的。

9.

苏珊再对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过。

10.

复杂的情况出现了。道格想欺骗苏珊,他偷偷使用了苏珊的电脑,用自己的公钥换走了鲍勃的公钥。此时,苏珊实际拥有的是道格的公钥,但是还以为这是鲍勃的公钥。因此,道格就可以冒充鲍勃,用自己的私钥做成”数字签名”,写信给苏珊,让苏珊用假的鲍勃公钥进行解密。

11.

后来,苏珊感觉不对劲,发现自己无法确定公钥是否真的属于鲍勃。她想到了一个办法,要求鲍勃去找”证书中心”(certificate authority,简称CA),为公钥做认证。证书中心用自己的私钥,对鲍勃的公钥和一些相关信息一起加密,生成”数字证书”(Digital Certificate)。

12.

鲍勃拿到数字证书以后,就可以放心了。以后再给苏珊写信,只要在签名的同时,再附上数字证书就行了。

13.

苏珊收信后,用CA的公钥解开数字证书,就可以拿到鲍勃真实的公钥了,然后就能证明”数字签名”是否真的是鲍勃签的。

14.

下面,我们看一个应用”数字证书”的实例:https协议。这个协议主要用于网页加密。

15.

首先,客户端向服务器发出加密请求。

16.

服务器用自己的私钥加密网页以后,连同本身的数字证书,一起发送给客户端。

17.

客户端(浏览器)的”证书管理器”,有”受信任的根证书颁发机构”列表。客户端会根据这张列表,查看解开数字证书的公钥是否在列表之内。

18.

如果数字证书记载的网址,与你正在浏览的网址不一致,就说明这张证书可能被冒用,浏览器会发出警告。

19.

如果这张数字证书不是由受信任的机构颁发的,浏览器会发出另一种警告。

20.

如果数字证书是可靠的,客户端就可以使用证书中的服务器公钥,对信息进行加密,然后与服务器交换加密信息。

from:http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html

Https

Https 通信时序

https 对应的通信时序图如下: https_progress

  1. 服务器在接受到客户端发起https连接请求后, 将返回该网站的证书(根证书信息等)
  2. 客户端将校验网站证书的合法性。
  3. 验证通过后,客户端产生随机的对称密钥。
  4. 客户端使用网站证书的公钥加密对称密钥, 并发送给服务器端。
  5. 服务器端收到对称密钥后, 就可以进行利用对称密钥的密文通信了。

每一个https的网站都会向证书颁发机构(CA)申请一个网站证书, 这个证书实际是非对称加密的公钥密钥对, 利用非对称加密算法的特殊性, 可以在理论上避免第三方窃听。

非对称加密算法的原理

  • 假设有A, B 两方, 双方都有一对密钥(公钥和私钥)。公钥是对外开放的, 任何人都可以得到;私钥是自己的, 别人是获取不到的。公钥和私钥是相对应的, 利用公钥进行加密, 只能用私钥解密, 使用公钥无法解密; 利用私钥解密, 则只能用公钥解密, 使用私钥也无法解密。
  • 利用A的公钥对数据进行加密, 则只有A的私钥可以解密, 任何第三方都不可以解密数据。 这样可以在不安全的通道上进行数据传输, 保证只有A可以解密数据, 任何第三方只能窃听到已加密的数据, 即便拥有公钥也无法进行解密操作。
  • 利用A的私钥对约定好的数据加密, 发送给B。 B可以使用公钥进行解密, 从而验证A的身份。任何第三方都无法模拟这样加密后的数据。这种形式广泛用于电子签名等。

对非对称加密算法不了解的同学, 可以参考百度百科.

Https加密通信原理

Https 加密通信利用非对称加密算法对称算法, 使用非对称加密算法验证身份和发送对称密钥, 使用对称算法加密通信数据。 证书实际就是非对称加密算法的公钥私钥, 分为两大类, 根证书网站证书

  • 根证书属于证书颁发结构, 根证书的公钥默认内嵌在我们的系统中。运行命令win+r 运行 certmgr.msc 可以查看在系统中的根证书列表。
  • 网站证书 带有根证书的私钥签名, 在https握手开始阶段由网站服务器发送给客户端。 客户端收到网站证书后, 立即校验证书的有效性。校验方法是: 取根证书的私钥签名, 利用客户端系统内嵌的根证书公钥解密。 解密成功, 则证书有效。

参考: 图解数字签名是什么? http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html from:http://www.fanxu.me/post/2013-06-04

Install SSL Certificate on Tomcat

Apache服务器SSL配置

服务器证书安装配置指南(tomcat) – SSL证书配置指南http://blog.csdn.net/defonds/article/details/44410359

StartSSL 免费证书申请步骤以及Tomcat和Apache下的安装

http://www.chinaunix.net/old_jh/13/456376.html

Tomcat更换SSL证书方法-key和crt文件转换为jks

在Jboss中添加Godaddy的SSL域名证书的方法

数字证书的格式

How to add ssl certificate for a domain in Tomcat 8 server

服务器证书安装配置指南(tomcat) – SSL证书配置指南

数字证书及CA的扫盲介绍

电子证书 DER vs. CRT vs. CER vs. PEM

http://www.instantssl.cn/ssl-certificate-products/all-ssl-certificates.html

https://support.comodo.com/index.php?/Default/Knowledgebase/Article/View/968/108/intermediate-ca-2-comodo-rsa-organization-validation-secure-server-ca-sha-2

不同格式证书导入keystore方法

 

问题:相机上使用tomcat设置证书的方式,无法工作。

需要改为Apache上设置证书。

from:http://www.alphassl.com/support/install-ssl/tomcat.html