DAY 22-凭证颁发机构CA

「子非鱼,安知鱼之乐。」


在介绍协定之前,
我们要来介绍一个非常重要的概念,叫做凭证颁发机构(Certificate authority, CA)。

想像你今天要和一个人通讯,而我们使用的是公钥密码系统。
你怎麽知道对方的公钥到底是哪一个?
他就写在那啊,对吧。

对啊,但你怎麽知道是「他」把他写在那的?
所以问题来了,假设你今天用了错误的公钥进行公钥加密传输重要的资讯,
然後你以为你把讯息传给了BOB,结果传给了OSCAR,
那问题就大了。

如果你今天传送的不是普通讯息,比如「吃什麽?」,
而是传送了你的信用卡密码,
那这就是一个很大的问题。
而这个问题是可以被恶意造成的。

中间人攻击 Man In The Middle Attack(MITM)

前几天有个新闻,说美国的一个男子被恶意钱包偷走了 16.4552 颗比特币。(那可是超多钱啊)
而偷走的方式是使用中间人攻击。

什麽是中间人攻击?
拿第一天的例子好了。假设你要传讯息给漂亮女生说「你好漂亮」,
但是你没有亲口告诉他,
你请了班上的一位同学帮你传话,
结果好死不死,那个同学超讨厌你,
他把你要传的话改成「你好丑,丑死了」,然後跟漂亮女生讲。
而这位同学,就是 OSCAR,也就是中间人(man-in-the-middle)。

真正的中间人攻击和上面的例子不同的地方是,
这种攻击是可以主动制造的。
也就是你压根儿不知道自己请了一个人帮你传话。

看一下这张图,比特币被偷走的事件可能是这样发生的。
受害者载了一个恶意软件,而这个软件是一个钱包软件,他可以用来打币(转帐)给别人。
所以要使用这个软件,理所当然的你必须提供你要转入的地址。
你告诉这个软件你要把多少钱转到哪个地址里。
一个正常的软件应该要帮你把这个讯息原封不动地放到网路上等着矿工来打包。
结果他帮你换了个地址,把你的钱打进了他自己的钱包里。

回顾一下 Diffie-Hellman key exchange,
你就可以知道,中间人是可以主动进行攻击的。
Alice 和 Bob 都会以为自己在和对方通讯,其实两人都在和 Mallory 通讯。
因为在一开始建立密钥时,他们都以为 Z 是对方的公钥,因为根本没办法知道 Z 是不是对方的公钥。

https://ithelp.ithome.com.tw/upload/images/20211001/20140112ZtJkqBtQ23.png

这个问题非常严重,因为所有的公钥密码系统都有可能遭受中间人攻击。
所以我们需要一个认证机构,
而这个认证机构就叫做CA。

凭证颁发机构 Certificate authority

CA在做的事情,就是验证你真正拥有这个公钥。
如果他认证此人真正拥有此公钥,那他就会颁发一个数位凭证,那其实就是用他的私钥做签章。
所以 CA 自己也会有一个公钥和私钥,私钥用来签章,公钥让使用者验章确认数位凭证。
这把私钥必须保管的非常好。

而有使用者、CA、资料库,CA为使用者颁发凭证的这件事,就叫做公钥基础建设(PKI)。


明天会来讲 TLS/SSL ,以及HTTPS
其中就会使用到 CA 的概念。

图片来源:
https://memes.tw/image/5732
https://tenor.com/search/bad-laugh-gifs
https://commons.wikimedia.org/wiki/File:Man-in-the-middle_attack_of_Diffie-Hellman_key_agreement.svg

参考资料:
https://threatpost.com/man-sues-parents-teens-hijacked-1m-bitcoin/168964/
https://www.wallarm.com/what/what-is-mitm-man-in-the-middle-attack


<<:  [2021铁人赛 Day19] General Skills 16

>>:  Day20 Vue基本教学(二)

Migrations

资料库迁移是以执行一个个档案来逐步建立资料库表单的作法,可以纪录资料库变化的过程。逐步变更可以降低对...

Google Static Map Maker 静态地图 API 工具|专案实作

Google Static Map API 是将网页上需要的地图画面,以静态地图图片的方式显示。 优...

D26 - 走!去浏览器重现奥运决胜点 in

前言 今天来试着用滑鼠事件重现 2021 奥运羽球决胜点! 麟洋配万岁~ 台湾万岁~~ 滑鼠 Eve...

网路方面被问到的案例整理 - 你也可以成为网路高手

接到 User 说网路不通 , 你可以请 User 先看一下主机後方网路线是否灯号有亮或重新插拔一下...

CSV Import

CSV Import CSV Import 是在执行大量资料导入时一个非常常用的功能. 今天我们已更...