云计算时代安全综述(二)

由于我们逐步在Kubernetes安全系列文章中分析出来要对敏感数据进行加密,而Kubernetes本身在Secret中对数据只是做了base64的编码,因此在Master node的内存中,以及etcd中,数据都基本以明文方式存储,我们都认可这是非常不安全的。

因此安全概述的第二篇文章,笔者打算围绕非对称加密来展开,因为对称加密从安全的角度有诸多隐患,比如秘钥如何安全存储的问题,秘钥如何定期更新的问题,以及如何保证秘钥安全的问题,逐步就会演变成先有鸡还是先有蛋的问题。而对称加密针对这些问题给出了解决方案。

在介绍对称加密之前,我们先来聊点轻松的,读者可以考虑一下这个问题:如何设计一套加密算法?这可不是什么脑经急转弯之类的问题,而是为了让大家能够透过现象看到冰山下的本质问题。从笔者有限的知识的角度,其实设计加密算法本身并不复杂,但是设计一套安全的加密算法会非常的困难。虽然笔者没有那个能力去设计一套足够安全的加密算法,但是对这个话题的探讨可以有助于我们在选择合适加密算法的时候,有更好的视角。

选择总是困难的,特别是从一堆优秀的选项中选择一个好的算法来解决我们的业务问题。中国人讲以史为鉴,古人智慧的结晶放到当代依然掷地有声。这很大一部分原因是人类在慢慢的历史长河中,即便是外部的世界发生的巨大的变化,技术每年指数级发展,但人类自身的变化不大,特别是智商的增量可以说是微乎其微。我觉得这其实回答了为啥我们日常的工作和生活,经验主义占据主流。对于安全来说,研究过去失败的数据泄露案例,系统被攻破的安全案例依然是我们解决从多个备选算法中选择“可信和安全”选项的重要依据。

时光飞逝,转眼间几百年就过去了,历史已经埋葬了很多女王和领主,文明的发展促进了科技的进步(反过来好像也成立),今天我们获取信息的方式已经发生巨变。我们有更强的服务器,我们有更快的网络,我们也有无处不在的连接,但道高一尺魔高一丈依然存在,技术的发展的反面就是恶意攻击者手上的工具更加强大了,更加无孔不入了。

他们可能出现在任何地方:我们在星巴克办公连接了公共的WIFI,连接各个设备的路由器,以及对外提供服务的各种前台和后台服务器,运行数据库的数据库服务器,以及文件服务器等。并且随着科技的进步,这些恶意攻击者可以在相同时间内窃取到更多我们的机密信息。比如钓鱼网站,当我们请求某个网站(假冒)的时候,http请求被路由到恶意的假冒网站,不光请求报文可能被纳秒级别复制到数据库,并且请求可能会被修改,这一切发生的如此之快我们作为用户可能都感觉不到。

加密技术的发展和国家安全的需求是强相关的,特别是两次世界大战直接促进了加密技术的繁冗。战争结束后,被用作军事用途的加密技术逐步渗透的民用领域,密码技术逐渐从少数涉密的政府工作人员参与,逐步开发人大学和科研团体,现在密码的算法可以被公开的讨论和学习。这背后的原因是:人们逐步认识到,提升算法的安全性考闭门造车根本不现实,而应该将算法公开出来让大家学习和讨论,并提供反馈建议。笔者这里想强调的是,加密的安全性不是考算法来保证,而是要靠“秘钥”来保证,算法是公开的,而秘钥是通信双方需要协商并达成共识的。

注:算法本身有很多种方式被“攻破”,比如:1,秘钥被泄漏;2,暴力破解,通过穷举的方式通过除秘钥之外的手段解密密文;3,在没有秘钥的情况下,可以通过观察密文的模式,来猜测和验证明文,逐步缩小尝试的范围。

而保证秘钥安全这个事情,就是著名的柯克霍夫原理,加密系统的安全,取决于秘钥的安全,而不是算法的安全。我们以AES算法为例,这个算法源自于美国国家标准与技术研究院(NIST)举办的加密安全竞赛,通过将全球的密码学专家,爱好者,数学天才组织在一起,逐步的选出大家都认可的“安全”的算法,而AES算法就来自于这个挑战赛的优胜者。

最后,我们总结一下柯克霍夫原则,笔者认为这是理解安全的根本:对于加密算法来说,不要愚蠢的认为可以通过对恶意攻击者隐藏算法来实现信息通信安全,因为算法信息最终会被公开;我们应该从一开始就开放算法,让恶意攻击者帮我们验证算法的缺陷,来完善我们的算法。

读者可能会问,如果对敌人开放算法,那我们的主角爱丽丝女王和鲍勃领主如何能安全的八卦呢?背后的原理其实不难理解,秘钥才是这场安全八卦的核心。我们通过秘钥来对数据进行加密,那么线路上传输的就是密文,即便是恶意攻击者截获了密文,在可观的时间范围内,将密文解密的成本太高,几乎不太现实。这就是笔者一直反复在各种场合强调的:我们提到的所有加密算法,其实都可以被公开学习研究和使用;而保障机密性的核心是算法使用的秘钥,这才是我们作为机密管理的主角。

好了,有了上边的这些铺垫之后,我们来看看本篇文章的要介绍的第二个加密算法:非对称加密。

我们接安全概述(1),女王和领主有了对称加密的加持,开心的在王国中各种八卦,但是有一天,斯塔克领主屁股上有个痣的八卦信息在王国中不胫而走,但是女王只把这个信息告诉了鲍勃领主了啊。女王百思不得其解,因为她非常信任领主鲍勃,因此女王判断是因为她和领主鲍勃使用的秘钥可能被泄漏了,因此女王赶紧和鲍勃领主来了一次线下聚会,更新了秘钥。但聪明的女王发现这不可持续啊,她不光和领主鲍勃维护有一个私钥,还和斯塔克领主维持的另外一个私钥,以及和其他100多个大大小小的城堡主有相同的场景,如果要这么干,哪里有时间八卦,光线下约会更新秘钥都占满了女王繁忙的闲暇时间。

女王爱丽斯遇到的问题和我们日常生活中遇到的问题很相似,考虑到数据安全,国家已经要求所有网站都使用https协议,而https协议就需要双方针对某个事情达成共识,如果像女王这样,我们在访问某个网站之前先要和网站来个线下相会,那肯定不行。女王需要更好的加密算法来继续开心的八卦,而几百年后的我们也需要更好的办法来安全的访问网站。

大约在1970年底,一种被称之为“非对称加密”或者“公私私钥加密”的算法被发明,而在此之前,历史上很长一段时间,这个问题并没有什么好的解决办法,这个问题也被定义为哪个年代的世纪难题啊。非对称加密简直就是人如其名啊,和对称加密最大的不同是:非对称加密使用不同的秘钥来分别进行加密和解密。理解非对称加密算法的核心是理解如何解决秘钥交换的问题,请继续阅读。

第一个被公开发表的key(秘钥)交换算法叫DH(Diffie-Hellman)秘钥交换算法,这个算法要解决的核心问题就是在两个通信的参与者之间建立”共识“(也就是秘钥),然后这个工时间就可以被用作对称加密的秘钥等等。由于DH算法的原理非常的数学化,为了让读者的体验更好,我们来类比一下,核心是让大家理解这个”共识“(key,秘钥,笔者后边会在这三个词之间互换)如何被建立。

和很多算法的工作原理类似,采用DH算法达成共识之前,参与者之间必须已经有某些大家都知道的”信息“,比如说爱丽斯女王和鲍勃领主都知道斯塔克领主屁股上有个痣,我们用黑色的方块表示(这就是参与者之间持有的共识信息)。接着爱丽斯女王和领主鲍勃会选择一个随机数(女王的随机数用黑色的三角形△表示,领主的随机数用黑色的星星✨表示),这些随机数是领主和女王私钥,因此必须保证私密并安全保存,如下图所示:

《图1.1 DH算法的第一步是参与者各自的私钥》

有了私钥之后,爱丽斯女王和领主鲍勃把私钥和黑色的方块(两人的共识)组合起来,结果就是两人分别形成了一个特殊的形状,如下图所示:

《图1.2 DH算法的第二部是通过组合私钥形状和共识形状,产生了公钥》

这个组合后特殊的形状我们叫公钥,公钥可以在参与者之间共享。从上图笔者希望读者能理解非对称加密也叫”公钥"加密算法的原因,因为算法需要1对秘钥:一个私钥和一个公钥。通信的参与者之间有了对方的公钥之后,事情就变得容易了(八卦变得容易了),爱丽斯女王将鲍勃领主的公钥和自己的私钥组合,鲍勃领主将爱丽斯女王的公钥和自己的私钥组合,结果是两边的形状完全一致,如下图所示:

《图1.3 DH算法的最后一步是参与者组合出共享的信息》

通信的参与者有了共享的信息后,就可以基于不同的业务场景来使用这个共享的秘钥信息,比如在对称加密的场景下。笔者需要特别提醒大家的是:DH算法在实际场景中非常的不安全,特别是和我们会在后边介绍RSA算法比较起来。具体来说,由于爱丽斯女王接受任意的公钥作为领主鲍勃的公钥使用,因此理论上我(云攀)可以把鲍勃领主的公钥替换成我的公钥,这样我就可以截获爱丽斯女王发给领主鲍勃的八卦信息。

我们把这种安全风险称作是:MITM(man-in-the-middle)攻击,也叫中间人攻击。要预防这种攻击,就需要有一种机制能够证明公钥是鲍勃的,这看起来又回到了先有鸡还是先有蛋的场景。因为我们引入DH算法的目的是为了解决如何在领主和女王之间达成某种“共识”,现在问题变成了女王需要知道自己受到的公钥是领主的公钥,女王如何能认识呢?其实做不到,因此DH算法解决的是如何共享秘钥的这个问题,并没有解决这个公钥一定是领主鲍勃的这样的问题。

不用担心,我们会在后续的文章中带着大家解决这个问题。好了,今天的文章就这么多了。可能读者会觉得安全相关的文章都很短小精悍,其实笔者为了大家的学习那是操碎了心啊,全本本身就是个复杂的话题,几千字的文章我相信第一没有人看,第二很容易就失去焦点,咱还是一点一点来,千里之行始于足下。

下一篇文章我们来介绍RSA算法,一种在Kubernetes平台上,以及很多场景下被广泛使用的加密算法,敬请期待!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,463评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,868评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,213评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,666评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,759评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,725评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,716评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,484评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,928评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,233评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,393评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,073评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,718评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,308评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,538评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,338评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,260评论 2 352

推荐阅读更多精彩内容

  • 安全是云计算时代悬在每个架构师头上的达摩克利斯之剑,我们在享受云计算带来的红利的时候,由于系统的复杂程度成倍的增加...
    攀师傅阅读 220评论 0 0
  • 根据SCNU斌头老师课件及《密码编码学与网络安全——原理与实践(第七版)》整理整理者:0.H.P 零、基本概念 0...
    0HP阅读 552评论 0 0
  • 1、对称加密与非对称加密 所谓对称加密,就是加密密钥与解密密钥是相同的密码体制,这种加密系统又称为对称密钥系统。 ...
    冰河winner阅读 797评论 0 2
  • 关键字: 对称加密 非对称加密 私钥 公钥 签名 加密 CA中心 TLS 会话秘钥 1、为什么要加密 Bob将消息...
    紫水河神阅读 443评论 0 0
  • 基础知识 对称加密与非对称加密 概述 在现代密码学诞生以前,就已经有很多的加密方法了。例如,最古老的斯巴达加密棒,...
    艺术农阅读 1,504评论 0 5