大概讲一下我的认知跟理解,我不是搞资安的所以有错请不吝指教
现代网络会透过一个机制来确保传输的内容只有你跟对方看到的
方法是透过所谓的不对称加密,这种加密机制会同时生成公钥跟私钥两种密码,其中公钥是
可以任意泄漏的,而私钥必须保密。而公钥加密的内容只能用私钥解密,私钥加密的内容也
只能用公钥来解密
以连线到PTT为例,流程大概是
1. 我生成一组公钥跟私钥,把我的公钥交给PTT,同时PTT也会给我他的公钥
2. 我发送讯息前先用PTT的公钥把讯息加密,再用我的私钥再加密一次后跟PTT
3. PTT收到后先用我的公钥解密,再用他的私钥解密,这样可以确保这个讯息是我发送的,
同时只有PTT能看懂讯息内容
4. 反之亦同,我也会用这种机制确保送来的讯息是PTT发送的
但这种机制有个问题,假设有个坏人决定假冒PT
T并且想办法让你的ptt.cc连接到坏人的服务器,然后再把你的讯息转发给真正的PTT,并把
真正的PTT传来的讯息回复给你,那你永远不会发现跟你的话的人根本不是PTT,因为这种状
况下你一开始拿到的公钥就是坏人的公钥,这种手法叫做中间人攻击
因此我们用另一个协定来确保PTT真的是PTT
(先不讨论中继凭证)
要实现这样的机制必须要有一种被叫做CA的第三方机构,可能是公司也可能是政府机关
流程大概是
1. PTT的服务器管理员会拿自己的公钥去跟CA买一张凭证,这张凭证会写:这张凭证由某某
CA签发,以及一段被某某CA的私钥加密过的PTT公钥。请注意:用这个公钥加密的讯息只有
真正的PTT的私钥能够解密,这是关键
2. 你连上PTT ,PTT的服务器会给你看他的凭证。请注意,这张凭证是公开的,因此任何人
都可以让自己的服务器出示PTT的凭证
3. 如果你的浏览器信任某某CA(要取得浏览器的信任很不容易),那你的浏览器会用内建
的某某CA公钥来解密那段被某某CA的私钥加密过的ptt.cc公钥
4. 接着浏览器会比对这组解密出来的公钥跟送来的公钥是否一致,如果不同就表示这是坏
人的公钥,会跳出警告或是直接不让你连线
另外,即使坏人用真正的PTT凭证成功跟你建立连线(前面有说任何人都可以出示PTT的凭证
),他也无法解密你用PTT 公钥加密的讯
息,从而保证安全
但如果今天某某CA决定跟坏人合作呢?
那你的浏览器解密出来的公钥就会是坏人的公钥,这时比对就会是一致的,然后你就用坏人
的公钥加密讯息建立连线,于是坏人就可以看懂你的讯息了
一直到有一天有人发现:为什么我拿到的公钥跟真正的PTT公钥长的不一样,然后把事情闹
大为止
有什么技术上的预防方法吗?目前没有。
那我们是怎么克服的呢?
答案是资本主义
如果CA被发现乱搞,那所有浏览器厂商就会不信任这个CA所签发的凭证,网站管理员就不会
去跟他买凭证,然后就会倒闭,所以这类CA不太敢乱搞
那如果是政府机关类型的CA呢?
没办法,只能取消信任他然后让他自己玩沙去
例如中国政府的一张凭证CNNIC之前就被发现乱搞,于是主流浏览器都不信任他。现在应该
只有中国国
产的那些东西会信任吧
原文也提到一堆国家的凭证都被取消信任了
BTW台湾的政府凭证TWCA目前还是受信任的喔
那这个法案危险在哪里呢?就是规定浏览器厂商不可以取消信任欧盟成员政府的凭证这样,
严不严重你各位自己判断
以下个人心得
我是觉得原文那篇标题稍微有点耸动啦
个人觉得EFF跟Mozilla 的声明比较合适
但欧盟确实就是我心目中地球第二G8恶心组织
第一是联合国这样