初探网路安全(五):数位凭证,怎麽防止假冒事件?

前面在讲非对称式加密时谈到网际网路中聪明的加密手法,公钥和私钥如何运用来保护资料被窃取。这样的做法虽然可以保证资料传输的安全,让「中间人」难以破解并得到资料,但是还有个小问题存在。

那就是,有人假冒你来传讯息怎麽办?

仿冒者

假设 Eve 想假冒 Bob 传讯息给 Alice,便用 Alice 的公钥加密後传过去。

Alice 拿到密文後用自己的私钥解密,发现解的开,这是要给我的讯息没错。

Eve 假冒 Bob,拿 Alice 的公钥加密讯息
*Eve 假冒 Bob,拿 Alice 的公钥加密讯息

如果 Alice 没有什麽防备心,可能就此相信了传讯息给他的人就是 Bob,汇款到了 Eve 的帐户里。

数位签章

这可怎麽办?总得想想办法让 Alice 确定讯息是否由 Bob 所发出吧?

Bob 说没问题,我签个名好了!

问题是在网路的世界,要怎麽做到「签名」这件事呢?可以透过公钥及私钥!

前面提到公钥及私钥是一组的钥匙,用公钥加密可以用私钥解密,反之用私钥加密可以用公钥解密。

那麽我们是否可以反过来,这次不用对方的公钥加密,让对方用私钥解密。而用自己的私钥加密,让对方用自己的公钥解密?

Bob 用自己的私钥加密,其它人用 Bob 的公钥才解的开
*Bob 用自己的私钥加密,其它人用 Bob 的公钥才解的开

当然可以,这就是数位签章的基本原理。透过公钥及私钥,可以用两种角度分别实现资料的加密,以及确定身份这两件事。

但事情还没结束,世界还没和平,还有一个小问题:Alice 怎麽能确认在 Bob 网路上公开的公钥,不是 Eve 掉包过的呢?

数位凭证

此时就需要第三方的公证人了,Bob 会把自己的公钥放在公道伯 CA 这里,所谓的 CA 是 Certficate Authority(数位凭证认证机构)。

这时 Alice 只要和这些机构拿取 Bob 的公钥,在用这把钥匙确认收到的讯息是否为 Bob 私钥所加密的即可,再也不用担心受怕了。

当我们透过 HTTPS 连上一个网站时,点下浏览器「锁」的图示便能查看数位凭证的详细资讯,像是哪个 CA 发行、什麽时候过期等等。

Google 的数位凭证
*Google 的数位凭证

这就是为什麽要输入较敏感的讯息到网站上时,一定要确保这个网站是透过 HTTPS 协定了,加密讯息和确认目标身份是保证网路通讯安全的基石。

参考资料

  1. Wiki - 数位签章
  2. Wiki - 公开金钥认证

完赛心得

当初抱着透过写作来复习一些理论,顺带从自己的角度科普网路知识,终於写到第 30 天,默默的也写了 4、5 万字。

写作的过程中发现自己以为很懂的一些知识,其实根本不那麽懂,很多时候还要查阅许久的资料,重新学习後才敢把文章写出来发布。就算只是以科普为主轴,没有加入太多技术细节,但还是有部分内容讲的不够精准,甚至有一些错误。

也有一些想要提的还没提,像是 VPN、Rounting Algorithms、ARP、Wireshark 等等我觉得蛮重要的概念、应用,或是一些网路工具。

但总之,蛮开心的是有个开始并持续写到结束,好过没有开始。

写作期间也看了许多大神们的文章,真的很值得学习呀!感谢 iT 邦帮忙所发起的活动以及社群,感谢阅读我文章的网友们,欢迎交流交流,也希望多少有些帮助。

最後,虽然团队挑战失败 XD,但还是非常感谢队友 Jimmy, Kevin, Bouyu 的参与及一路相伴!


<<:  Day39 ( 游戏设计 ) 青蛙过河

>>:  晨间读报,掌握情报

Day25 RCU 同步机制

前言 前几天介绍了 mutex, semaphore, spinlock, read-write l...

第40天~还是JSON

这篇的上一篇:https://ithelp.ithome.com.tw/articles/10283...

[Re:PixiJS - Day45] 不同时期的学习 PixiJS 的过程与真完赛心得

来到这系列的最後一篇,除了心得结语外,也讨论的学习 PixiJS 的过程 时期1:不考虑效能,这时期...

Day21 - 前处理: 语者正规化

前一天在说明使用的语音特徵时有提到,模型有静态模型跟动态模型两种。在训练静态模型时,因为资料集中的语...

【Day17】[资料结构]-堆积Heap

堆积(Heap)是一种特别的完全二元树,又分为最小堆积(Min-Heap)、最大堆积(Max-Hea...