什么是 TLS 防范中间人攻击的方法?如何防范这类攻击

什么是 TLS 中间人攻击?如何防范这类攻击? - 知乎339被浏览21877分享邀请回答22041 条评论分享收藏感谢收起", 我的这个公钥最多能用到xxxx年x月x日),加上一个可信的第三方对公钥和这些信息的签名。中间人无法伪造这个签名,也就无法替换服务器的公钥。强行替换的话,只能找另外的机构签名,或者自己给自己签名。另外:自签名很容易看出来,但是如果有不靠谱的CA(证书颁发机构)乱发证书,而且正好这个CA在你的信任列表里,就不太容易发现了。这也是为什么这么多人呼吁删除CNNIC ROOT CA。Chrome有个新功能叫certificate pinning,也是为了处理中间人的这种情况。2115 条评论分享收藏感谢收起查看更多回答&a class=&member_mention& data-editable=&true& data-title=&@Rio& data-hash=&0d81a29a497b91e0f374aed& href=&///people/0d81a29a497b91e0f374aed& data-hovercard=&p$b$0d81a29a497b91e0f374aed&&@Rio&/a& 的故事虽然生动,但是是有错误的。通过TLS加密通信,一旦会话初始化完成,想要完成中间人攻击是非常困难的。TLS的中间人攻击是针对&b&加密会话的初始化阶段&/b&进行的,而不是实际通信的阶段。加密通信的初始化阶段,需要通过非对称密码算法来协商密钥,然后用协商好的密钥,使用对称加密算法进行实际的通信。&br&&br&不知道各位有没有见过一种锁,当用钥匙打开这种锁之后,钥匙就可以拔出来了,剩下一个开着的锁头。拿着这个开着的锁,没有钥匙,一旦锁上了就开不了。这是现实生活这的一种非对称加密的物件,能上锁,但是不能开锁。&br&&br&现在故事开始,假设我们回到了那个只能寄信的时代,大家都需要和知乎通信,而且通信的内容必须要保密。于是负责接收大家消息的&a class=&member_mention& data-editable=&true& data-title=&@顾惜朝& data-hash=&17bff67f1b6afb& href=&///people/17bff67f1b6afb& data-hovercard=&p$b$17bff67f1b6afb&&@顾惜朝&/a& 想出来一个办法,找了很多把上面说的那种锁(&b&公钥&/b&),都用钥匙打开,挂在外面。需要和知乎通信的人,在通信之前,需要拥有另外一把有两个钥匙的锁(&b&对称加密算法&/b&),然后把这把锁和其中一把钥匙(&b&对称密钥&/b&),放进一个无法被破拆的铁盒子里面,用知乎提供的那把开着的锁把铁盒子锁上。&br&&br&这时候,这个铁盒子就无法打开了,除了拥有钥匙的顾惜朝。这个装有一把锁和钥匙的铁盒子,可以放心地交到任何一个人手上,然后让他拿去给顾惜朝。顾惜朝拿到这个铁盒子之后,加密通信会话就建立了。她就会用钥匙打开铁盒子,取出锁和钥匙,写下“亲爱的知乎用户,你好,我是顾惜朝”小纸条,放进铁盒子里,然后用你提供的锁把铁盒子锁上,然后交回到你的手上。这个时候,铁盒子被你提供的锁锁上了,除了你和顾惜朝,没有别人有钥匙能够打开这个铁盒子,铁盒子也就可以安全地经过邮递送到你的手上;你收到铁盒子之后,用你自己的钥匙打开锁,读铁盒子里面的消息,然后放进新的小纸条,再寄送回去。&br&&br&以上是&b&加密通信的过程&/b&。&br&&br&接下来,别有用心的@匿名用户 出现了,偷偷地换掉了几个知乎打开放在外面的锁,并且自己充当了邮递员的身份在外面晃悠。当你需要和知乎通信的时候,匿名用户递给你一把他自己的锁,骗你说这把是知乎挂在外面的锁。当你把你自己的锁和钥匙放进去,然后交给匿名用户,麻烦他把这些送给顾惜朝的时候,匿名用户就可以找到另外一个铁盒子,装上自己的另外一把两个钥匙的锁,用真正的知乎提供的锁锁上,然后寄给顾惜朝。我们辛勤的顾惜朝依然会正常的收到一个铁盒子,里面装着一把锁和一把钥匙,只不过,这个锁已经不是你的了,而是匿名用户的,你的那把锁实际上在匿名用户手上。顾惜朝把“亲爱的知乎用户,你好,我是顾惜朝”的小纸条放进铁盒,然后让匿名用户带回去给你,而这个时候,匿名用户就可以打开这个小铁盒,偷看你们之间的消息,然后自己编造一条消息,放进铁盒里面,然后传回去给你。&br&&br&以上是&b&中间人攻击&/b&。&br&&br&为了避免中间人攻击,我们聪明的顾惜朝,发明了一种神奇的、无法撕毁、涂改和变造的小纸条(&b&数字签名&/b&),上面写着“这把锁经过顾惜朝认证,是知乎加密通信专用锁”,然后在每一把知乎提供的锁上贴上,这样子匿名用户就不能伪造锁了,这时候这个锁叫作&b&证书&/b&。&br&&br&但是问题又来了,许多新来的知乎用户不认识顾惜朝,他们怎么知道顾惜朝就是可信的,她认证的锁就是可用的?于是&a class=&member_mention& data-editable=&true& data-title=&@黄继新& data-hash=&b6fb0b7b9c680& href=&///people/b6fb0b7b9c680& data-hovercard=&p$b$b6fb0b7b9c680&&@黄继新&/a&在这个小纸条的下方又贴了一个小纸条,“顾惜朝经过黄继新的认证,可以对知乎加密通信专用锁进行认证”。黄继新不仅可以认证锁,还可以认证顾惜朝等管理员的权力,这时候黄继新就是&b&CA&/b&。可是问题还没有解决,还是有很多知乎用户不认识黄继新,于是李开复又在黄继新的小纸条上又贴了一个小纸条,“黄继新经过李开复的认证,可以对知乎加密通信专用锁进行认证”。问题依然没有解决,还是有人不认识李开复,于是这时候需要一个权威的、人们&u&无条件相信&/u&的机构来对李开复进行认证,这个机构就是&b&根CA&/b&,他贴上去的小纸条就叫作&b&根证书&/b&。&br&&br&以上是&b&信任体系&/b&,另见《&a href=&/question//answer/& class=&internal&&既然这个世界没有绝对的“权威”,那么我们该相信谁?&/a&》。&br&&br&最后一个问题,TLS的中间人攻击怎么实施。这时候&a class=&member_mention& data-editable=&true& data-title=&@Rio& data-hash=&0d81a29a497b91e0f374aed& href=&///people/0d81a29a497b91e0f374aed& data-hovercard=&p$b$0d81a29a497b91e0f374aed&&@Rio&/a&出场了,因为是知乎的工作人员,具有一个可信的证书,类似于“Rio经过黄继新的认证,可以对知乎加密通信专用锁进行认证”。于是他自己伪造了一个锁,然后利用上一级CA对他的信任,去骗取知乎用户使用他提供的锁初始化加密会话。因为他的锁上面有上一级CA的认证,所以你会认为这个锁是可信的,而实际上Rio通过自己拥有的证书,可以实施中间人攻击,窃取你和顾惜朝之间通信的内容。&br&&br&以上便是TLS的中间人攻击。&br&&br&手里掌握权力的人,只有道德能够防止他做坏事。
的故事虽然生动,但是是有错误的。通过TLS加密通信,一旦会话初始化完成,想要完成中间人攻击是非常困难的。TLS的中间人攻击是针对加密会话的初始化阶段进行的,而不是实际通信的阶段。加密通信的初始化阶段,需要通过非对称密码算法来协商密钥,然后…
已有帐号?
无法登录?
社交帐号登录
137 人关注
1943 人关注
126 条内容
647 人关注
160 条内容
646 人关注什么是 TLS 中间人攻击?如何防范这类攻击? - 知乎339被浏览21877分享邀请回答)从具有公信力的机构(DigiCert)申请一张证书(certificate),这样用户访问github时就可以通过查看它的证书来验明正身,这个网站就是github。而且,证书上有github的公钥,用户就用这个公钥去与github用非对称密码算法协商出传输网页内容的对称密码算法的密钥。只要GFW不知道协商出来的对称密码算法的密钥,它就不知道用户和github之间传递了什么信息。上面说到,网站的证书是有公信力的机构签发的,但什么样的机构才“有公信力”呢?这就需要用户自己(主要是浏览器的设置)判断了。而且,从大机构申请和维护证书的有效性需要走流程和花钱,有些时候小网站或特殊场合就会用到自签名证书,就是说网站自己根据标准格式生成了一张证书,让那些信任它的用户去使用。就这样,因为对加密算法和国外有公信力的机构没办法,GFW就把主意打到证书上来了。所有对外的网络访问都需要经过GFW,这样当GFW发现有人要访问github了,它就拦在中间,冒充github与墙内的用户通信,冒充用户去访问github。在墙内用户要确认github身份的时候,他就用自己生成的自签名假证应付。好在大家用的浏览器都有一个列表,用以确认哪些机构签发和哪些网站自签名的证书是可信的。由于 github不在认可的自签名网站列表中,大家去访问github时浏览器遇到自签名的证书就会有告警,从而帮助我们识破了GFW的伎俩。要防范TLS的中间人攻击,首先是不信任不该信任的机构和网站。由于可信机构可以进一步授权下级机构,需要特别小心那些顶级证书机构,尤其需要注意的是CNNIC在很多时候已经在不少浏览器的默认信任列表中了。其次,要对浏览器的告警保持足够的警惕,遇到提示要仔细确认无害后再继续操作。当然,最好是那些做恶的家伙都不复存在。。。5添加评论分享收藏感谢收起

我要回帖

更多关于 中间人攻击 防范 的文章

 

随机推荐