气哭老板的顶级密钥存放方案,又做了一件蠢事

4,326 阅读6分钟

原创:小姐姐味道(ID:xjjdog),欢迎分享,转载请保留出处。任何不保留此声明的转载都是抄袭。

老板有一份非常重要的数据,大小不到1kb,但值得我全力去守护。我问老板:您需要把数据做到哪个安全级别呢?

老板不耐烦的挥了挥手:我像是差钱的人么?按最高的安全等级去做!这事交给你我只要结果!不要问我级别这么细节的问题!

典型的结果导向,我喜欢!看了一眼老板的车,一个车轱辘就顶我一年的工资,我对老板的财力还是非常有信心的。

但我没这个能力做这么牛X的事,只好咨询xjjdog做安全的朋友们。

他们告诉我,就按照CA证书私钥存放的等级去做,老板保准满意。

are you kiding?对于这玩意的复杂程度,我还是略知一二的。我想象着老板想要用到这份数据时候的场景,竟然笑了。

密钥有公母,CA是何方神圣?

关于证书,我们每天都在使用。在浏览器上,点击左边上锁的小按钮,就能看到使用了https的证书的详细信息。

从图中,我们能够看到Root CA,也就是根签发机构,是DigiCert

我们先来看看DigiCert的介绍:DigiCert美国 老牌CA 认证中心,提供SSL证书SSL管理工具十多年

短短一句话,全是关键字,让xjjdog无从下手。

DigiCert这么知名的根证书,默认就装在了操作系统上。下图是MacOS上证书管理器中的内容。

不过,我们能够看到的证书,全部是公钥。 有公就有母,那母钥是什么呢?

这就需要介绍RSA算法了,和GoF设计模式、AWK脚本语言一样,它也是按照发明者的名字拼凑成的,并没有什么实在的意义。

RSA是一种非对称加密算法,它包含两个密钥:公钥和私钥。 这里是公私,而不是公母,可以用任意一个加密,然后用另一个解密。

如果我们想要一个Https所使用的证书,就需要一家靠谱的机构来给我们签发一张证书和签名。

什么叫靠谱?就好比你要领导的签名,要有权威性。官越大字越管用。这个靠谱的机构就是CA

什么叫签发?就好比领导挥舞着毛笔写下他特有的轨迹。数字签名就是用私钥(Private Key)来签名一段信息。

使用私钥(Private Key)签名的信息,能够被公钥(Public Key)解秘,所以对于私钥的保护成了重中之重。

要多安全有多安全

无论你的过程如何复杂,到最后还是要保存那一串数字!太不安全了。那私钥应该放在什么地方呢?放在保险柜里么?放在某某云上么(它们都没有资格)?

放在保险柜里同样有一个问题:那就是保险柜的密码。无论你把保密措施做的多强,到最后还是要收口,保存一个特定的值。

密码的作用不仅仅是加密使用,它还需要方便解密才行。

这就麻烦的多,简直和核弹的启动密码保护有的一拼。古巴导弹危机时,美国的核弹密码是多少,八个零你敢信?“核按钮”手提箱共有3只,分别由总统、国防部长和参谋总长掌管----这是我们能够看到的资料,实际上肯定会特别复杂。

人是最不可信的,在加密的步骤人参与的环节越多,密码越容易泄露。根据木桶原理,整个密码体系的安全性,取决于最薄弱的一环。加密环节越多,越容易发起 并行攻击

既然人不可信,这活就可以交给机器去做。

所有的敏感数据,包括密钥的生成,以及私钥的存放,都被锁定在一台特制的机器里。这样就可以保证,除了冰冷冷的硬件,谁也不知道私钥到底是个啥。

下面的链接,是美联邦为这个硬件制定的一份技术标准,长达69页!

https://doi.org/10.6028/NIST.FIPS.140-2

其实,我对此还是有一点担忧的。我一点都不怀疑这个东西的安全性,但我非常害怕它是否有容灾的能力。比如突发地震、火灾、或者硬件损坏...这份独一无二的东西被损毁了该如何是好。

CA的私钥没了,会是互联网的灾难。

另外还有一个问题,那就是这台机器被偷走了,怎么办?

这个时候,我们的保险柜终于可以上场了,权力分散的模式也可以使用了。

看过碟中谍的都应该对里面的保险柜印象深刻。它需要突破重重安保,刷各种证件,才能进入。CA私钥的存放与之类似,这台机器就被放在保险柜里。

想要使用的时候,需要多名工作人员同时认证才能打开。想要启动的时候,还需要使用动态密码。你的每一个动作,每一次操作,都需要录像、审计,相互监督。即使是一只苍蝇不小心跑了进去,也要记录备案,应为这只fly可能是侦察器。真是繁琐到了极点。

假如我要给xjjdog.com申请一个证书,就要劳烦这么多牛x专业的人员为我服务,那可真是难以想象。这么多网站申请证书,按照私钥的这种使用方式,我的请求要被排到100年之后...那时候量子计算机都成熟了,要证书何用。

CA遇到了瓶颈,就要发展下线,这个和传销是没有什么区别的。因为这就是个敛财的工具而已,想当年12306使用自签的证书,我还不是照样用的很好 (不过现在12306也被DigiCert给签了-.-~)。

CA的下线,按照能量进行分级,从证书体系中,都可以分一杯羹。比如我们最上面那一张图,中间还有一个叫做RapidSSL的机构,它们就是中间层的CA。这是使用负载均衡的思想,来完成高并发的证书请求的思路。根CA只需要受理这些中间CA的请求,几年也用不了几次,那么繁琐一点,是可以接受的。

老板的需求

老板要按照最高级别的做法去做,我也只好借鉴CA,把老板的重要信息封装在机械盒子里。算了一下初始成本,起码要1个亿才能完成,还要养一堆安保人员,以及持续的审计工作。考虑到gayhub将部分代码搞到了北极,我也想追追风,把设备安排在北极。

我把70页技术标准和实施方案交到了老板手里,老板给气笑了。

你这是拿我开涮么!你把数据拷贝到U盘里,我自己放到银行的保险箱就可以了!

作者简介:小姐姐味道 (xjjdog),一个不允许程序员走弯路的GZH。聚焦基础架构和Linux。十年架构,日百亿流量,与你探讨高并发世界,给你不一样的味道。