原创:小姐姐味道(微信公众号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页!
代码语言:javascript复制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盘里,我自己放到银行的保险箱就可以了!