黑马程序员技术交流社区

标题: 十分不解的一个问题 [打印本页]

作者: sanguodouble1    时间: 2014-6-22 16:10
标题: 十分不解的一个问题
本帖最后由 sanguodouble1 于 2014-6-24 12:58 编辑

内容出自方立勋30web开发入门,第四天的第9集——软件密码学基础和配置tomcat的https连接器。
里面的第19分钟,视频里说,蒋介石给宋美龄写信,然后用蒋介石自己的私钥进行签名,然后发给宋美龄。
宋美龄收到后用蒋介石的公钥解密签名......
这里就有问题,宋美龄怎么知道他手里的公钥就是蒋介石的呢?(老方可以冒充蒋介石给宋美龄写信啊)

不要告诉我蒋介石也去申请数字证书啊
因为这个例子里蒋介石其实就是客户端,宋美龄是网站服务器
而申请CA认证的数字证书是要钱的,普通客户去申请根本不现实

作者: 123_yaya    时间: 2014-6-22 18:54
我也看了这个视频,视频里面说得很详细啊。下面是我总结的内容:
非对称加密
蒋介石
(蒋 私钥)(蒋公钥)                                  宋美龄(宋 公钥)(宋 私钥)

原则:
公钥加密只能用私钥解密,私钥加密只能用公钥解密。

假设蒋介石要给宋美龄写信。
步骤:

1.宋先把公钥发送给蒋介石。因为公钥可能会被坏人截取,所以叫CA来做保证,这时候叫数字证书,即是向蒋介石证明,公钥是宋美龄发的。

2.蒋介石再把自己要写的数据用公钥加密之后发回给
宋。这个时候,可能会有坏人截取宋发给蒋介石的公钥,然后冒充蒋介石用公钥加密信息发送给宋。所以这个时候蒋介石要把要写的数据的摘要,即是数据的指纹,用蒋的私钥加密了,然后连同数据和加密指纹后的内容一块发给宋。这叫签名。

3.这时候,宋将收到的数据指纹用蒋的公钥解密,确认这是蒋发来的信息。 然后又为了确信数据在传输过程中没有被篡改,
这时候宋再把收到的数据用算法变成指纹,如果和蒋的指纹一样的话,说明数据没有被篡改。

银行的U盾里面装的就是数字证书。U盾设置成只读不可写。
作者: 123_yaya    时间: 2014-6-22 19:10
然后又为了确信数据在传输过程中没有被篡改,
这时候宋再把收到的数据用算法变成指纹,如果和蒋的指纹一样的话,说明数据没有被篡改。

重点是在这一步,如果收到的不是蒋的公钥,那么解出来的数据就不是蒋的数据,那么这个数据的摘要就不是收到的数据摘要了。这个时候就知道数据出错了,收到的不是蒋的公钥了。
作者: sanguodouble1    时间: 2014-6-22 19:12
123_yaya 发表于 2014-6-22 18:54
我也看了这个视频,视频里面说得很详细啊。下面是我总结的内容:
非对称加密
蒋介石

请问,第三步中
宋哪来的蒋的公钥?

我其实问的就是这个
因为宋是无法确定她手里的那个公钥到底是蒋给它的还是冒充蒋的第三者给她的
作者: sanguodouble1    时间: 2014-6-22 19:20
123_yaya 发表于 2014-6-22 19:10
然后又为了确信数据在传输过程中没有被篡改,
这时候宋再把收到的数据用算法变成指纹,如果和蒋的指纹一样 ...

还是用老方的例子吧
因为老方也可以截取得到宋的数字证书,对吧,

然后老方把“我要跟你离婚”这句话用宋的数字证书加密,然后加上自己的签名,
然后传给宋,那这时候宋手里的其实是老方的公钥了,所以摘要照解不误,
但她误以为是蒋的公钥啊,所以也就以为那句离婚是蒋说的了

这个怎么解释?

作者: sanguodouble1    时间: 2014-6-22 19:22
123_yaya 发表于 2014-6-22 19:10
然后又为了确信数据在传输过程中没有被篡改,
这时候宋再把收到的数据用算法变成指纹,如果和蒋的指纹一样 ...

关键就是你说的第三步,宋收到的是方的公钥,数据也是方的数据,
所以毫无疑问两者的MD5码是匹配的

关键是宋怎么知道这句话是谁说的?
作者: 123_yaya    时间: 2014-6-22 19:52
sanguodouble1 发表于 2014-6-22 19:22
关键就是你说的第三步,宋收到的是方的公钥,数据也是方的数据,
所以毫无疑问两者的MD5码是匹配的

数字证书貌似不是那么容易截取的吧,现在也只能假设CA是安全的状况下,尽可能的保证以下的加密是安全的。当然所有的安全都不是指万无一失的防范,只是尽最大可能的防范。你也说了申请CA认证数字证书是要钱的,那么也是相对没那么容易的。还没学到信息安全的相关课程啊~~~不过我百度了一下数字证书。你可以看看下面这一段百度的话。
CA中心为每个使用公开密钥的用户发放一个数字证书,数字证书的作用是证明证书中列出的用户合法拥有证书中列出的公开密钥。CA机构的数字签名使得攻击者不能伪造和篡改证书。它负责产生、分配并管理所有参与网上交易的个体所需的数字证书,因此是安全电子交易的核心环节。

作者: sanguodouble1    时间: 2014-6-22 20:02
本帖最后由 sanguodouble1 于 2014-6-22 20:08 编辑
123_yaya 发表于 2014-6-22 19:52
数字证书貌似不是那么容易截取的吧,现在也只能假设CA是安全的状况下,尽可能的保证以下的加密是安全的。 ...

不是,数字证书是很容易截取的,
但其实我的问题都是基于老方这个例子的,因为蒋和方的公钥都是没有认证过的,
所以宋会分不清那句“离婚”是谁说的。

如果对于银行网站,是不存在这个问题的,你想,虽然你有工行的数字证书,马云也有工行的数字证书,
但你不能假冒马云说:“我钱全捐了”,因为你没有马云的工行账户密码,说啥都不算
也就是说,在工行这个案例中,其实只需要工行认证CE就够了,客户不需要去认证

但老方举的那个例子,就是必须双方都要去认证CE了。
真实蛋疼另外,如果双方都去认证了CE,那其实就不需要签名了,
因为签名就是为了说明这时蒋本人的话,如果已经认证过CE,那
宋就一定拥有了真正蒋的公钥,那能解就蒋本人说的,不能解就不是蒋本人了

作者: 123_yaya    时间: 2014-6-22 20:18
sanguodouble1 发表于 2014-6-22 20:02
不是,数字证书是很容易截取的,
但其实我的问题都是基于老方这个例子的,因为蒋和方的公钥都是没有认证过 ...

数字证书很容易截取,但是数字证书不容易篡改和伪造啊。如果你是截取到了证书加上你自己的签名,相当于就是篡改了吧。:L表示脑子不太转过来了。
你说的例子工行账号和密码也是一种验证方式,但是最终这种验证不是还要通过网络传输的吗?如果刚好输入的账号和密码都是正确的,传输途中被截取的话,那也不是很大的麻烦吗?最终还不是要靠CA的特性吗?
。。。{:2_33:}真的快晕了。。
作者: sanguodouble1    时间: 2014-6-22 20:30
本帖最后由 sanguodouble1 于 2014-6-22 20:32 编辑
123_yaya 发表于 2014-6-22 20:18
数字证书很容易截取,但是数字证书不容易篡改和伪造啊。如果你是截取到了证书加上你自己的签名,相当于就 ...

不是啊,先说那个蒋介石例子吧。
老方截取到了宋的数字证书,并不是要篡改和伪造啊,只是用这份偷来的证书加密了自己的内容(就是那句离婚),
然后如果就这样发给宋了,那宋不信啊,对不对,然后老方就把自己的私钥签上去了。注意,就是这里,宋其实是不知道蒋介石的公钥张什么样的

这才是问题的关键啊, 那宋要怎么样才能知道蒋的公钥呢?
解决方法唯有蒋也去认证CE,认证后宋一样就看出了,她收到的摘要是不是老蒋亲笔签的了
也就是说,这个例子中,宋需要认证CE,蒋才能在茫茫人海里找到宋的来信。
而蒋也需要认证CE,宋也能在茫茫骗子中认清真正的蒋

作者: sanguodouble1    时间: 2014-6-22 20:41
sanguodouble1 发表于 2014-6-22 20:30
不是啊,先说那个蒋介石例子吧。
老方截取到了宋的数字证书,并不是要篡改和伪造啊,只是用这份偷来的证书 ...

但那个银行例子不是啊

这个例子中,工行认证了CE,这样客户就能确认,我确实是跟工行在通信,而不是钓鱼网。
但是客户不需要认证CE啊,因为客户把自己的银行卡和密码用工行的数字证书加密后发出去,被别人截取了也无所谓啊。
而别人虽然也有工行的数字证书,但跟你无关啊,因为他没你的账户密码


这两个例子的区别就是,在蒋宋例子中,如果只有宋认证了CE,那她就很容易被骗啊,比如你冒充蒋借钱,那根本就无解啊

但在工行例子中,你冒充马云向银行贷款,那银行就会说:你把马云的账户密码发来,
那你怎么发?你没辙,所以这个例子中,客户不需要CE认证


作者: 123_yaya    时间: 2014-6-22 20:46
sanguodouble1 发表于 2014-6-22 20:30
不是啊,先说那个蒋介石例子吧。
老方截取到了宋的数字证书,并不是要篡改和伪造啊,只是用这份偷来的证书 ...

首先,用这份偷来的证书加密了自己的内容。我觉得算式篡改了吧,内容都已经变了都。如果不是篡改那是叫什么啊。。。
至于如果真的那么容易截取然后加上自己的内容的话,CA也没有存在意义了都。
最后,如果上面两点都不对的话,那我真的搞不明白了。。
其实我就觉得你一直在纠结在宋收到蒋的公钥不安全问题,但是老师里面讲的貌似已经是最大可能的安全了。
要研究再多再深入的话,要自己看书了。。貌似也没讨论出什么结果来的赶脚。
作者: sanguodouble1    时间: 2014-6-22 20:57
123_yaya 发表于 2014-6-22 20:46
首先,用这份偷来的证书加密了自己的内容。我觉得算式篡改了吧,内容都已经变了都。如果不是篡改那是叫什 ...

这真不叫篡改
你信不信我电脑上的工行证书和你电脑上的工行证书是一模一样的?
不一样是不可能的,否则那么多工行用户,如果用不同的数字证书,那工行单单每年的CE认证费都交死了

数字证书就是一把锁啊,
会到案例来说,那方把“离婚”这句话用宋这把锁加密,然后传给宋,那宋怎么知道这话是谁说的啊。
那只能签名啊,但问题是宋没见过蒋的真实签名啊,
这才是漏洞啊,兄弟,数字证书是不可能伪造的,但签名是可以伪造的
蒋要想自己的签名不被伪造,那只能去CE认证,然后向天下公示自己的笔迹啊

作者: sanguodouble1    时间: 2014-6-22 20:59
123_yaya 发表于 2014-6-22 20:46
首先,用这份偷来的证书加密了自己的内容。我觉得算式篡改了吧,内容都已经变了都。如果不是篡改那是叫什 ...

个人觉得,老方这个例子实在是太难看懂
作者: sanguodouble1    时间: 2014-6-22 21:04
123_yaya 发表于 2014-6-22 20:46
首先,用这份偷来的证书加密了自己的内容。我觉得算式篡改了吧,内容都已经变了都。如果不是篡改那是叫什 ...

CE的纯在,只能保证你肯定会收到认证方的来信啊,
那你回信的时候又没通过CE

举个例子:宋去CE认证,其实就是用CE把自己的私钥加密宋的公钥(这就是数字证书),
然后蒋收到宋的数字证书后,就用CE的公钥解开数字证书,得到宋的公钥,然后再用宋的公钥加密信的内容发给宋,也就是回信是没有CE的私钥加密的
作者: 123_yaya    时间: 2014-6-22 21:15
sanguodouble1 发表于 2014-6-22 21:04
CE的纯在,只能保证你肯定会收到认证方的来信啊,
那你回信的时候又没通过CE

好咯~~~楼主好有钻研精神的说,表示对加密什么还真的不怎么了解~~~
{:2_33:}姐姐不和你辩了~~~楼主钻研精神值得鼓励哈~~
作者: sanguodouble1    时间: 2014-6-22 21:29
123_yaya 发表于 2014-6-22 21:15
好咯~~~楼主好有钻研精神的说,表示对加密什么还真的不怎么了解~~~
姐姐不和你辩了~~~楼主钻研精 ...

哇,原来是美女,幸会幸会




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2