安全概念
服务端和客户端交互过程中的安全隐患,简单来说就是交互过程中可能发生以下两种情况。
1.信息泄露
2.信息被篡改
设想一个场景,甲方和乙方准备在互联网上传输一份机密文件,那保证文件真实性和不能让别人知道就成了头等大事,那如何解决这类问题,我们来想一个方案。
通常意义下一方要告诉另一方机密信息时候,都会单方面的设置一些障碍不让别人知道,如警匪片里面绑匪不会作死直接和家属当面拿钱,而是会交代家属,什么时间,什么地点,放到哪个拐角的垃圾桶里,同时还严重告知别告诉警方,否则撕票。这些内容其实就是匪徒和家属商量好的密码。流程如下:
- A告诉B密码,让B去把信息加密 (告诉B把钱放到什么地方)
- A通过解密,得到信息 (完事儿去约定好的垃圾桶里找)
- 结束。(警方不知道密码,无可奈何)
事实上网络环境里的安全和上述流程没什么两样,也是通过双方都知道的密码来加密信息的,只是在如何保证密码不能被猜中以及任何情况下都不能被泄漏两个方面做了很多事情而已,所以重申一下,想要安全的交换信息,那么需要解决的问题就是:如何得出一个足够安全的、只有双方才知道的密码。
警匪片里演的那么精彩,烈焰红唇,飞车枪战,搞来搞去其实就是个一个密钥的安全攻防过程。(这么想来可真tm逗,什么时候把信息安全拍成电影大伙估计都有兴趣学了)
电影中正义化身的警方,破解密码,解救人质,一身荣誉。网络中的黑客也同样会穷尽所有手段去得到网络中的加密信息,有时候破一个密码一套房,来钱简直不要太快。扯远了,下面详细聊一些原理,看看安全专家们是怎么打攻防战的。
名词解释:
-
对称加密
没什么特殊的意思,就是A用一个方法加密,B再用同样的方法解密,是相对于以下的非对称加密而言的,想说明的是这种方式从有人类以来一直在使用,而且几千年的物种进化,文化更迭都没能带来变化,在非对称加密出现(1976年)以前,人类社会想要加密什么东西只能用这种方式,所以密码泄露就不好办了。
举个网络安全里对称加密的例子,比如A和B都知道一个密码666,那A告诉B我在302房间就可以加密和B说我在968房间,然后B用968减去666就知道A其实是在302房间。这里的密码666,也叫做密钥,使用的加密算法为最简单的加法,实际使用的算法要复杂很多。 -
非对称加密
也正是因为在网络时代,信息传递变得快速而公开,创建一个密码,想要只告诉一个人变得难上加难,以前还可以揪着耳朵说悄悄话,现在总不能拉个几百公里的网线就两个人用吧,因此一种新型的解决方案--非对称加密,得以强势登场。
简单介绍下非对称加密的原理:
A和B想交换信息时候,先生成一对密码,这两个密码长度和内容都不一样,(生成的规则比较复杂先略过),比较厉害的是这两个密码虽然不一样但是却可以解密同一个信息,比如用密码1加密的信息可以用密码2解密,反之同理,并且这两个密码几乎毫无关系,不可能通过一个推导出另一个来,很是强大,但其也有个缺点就是加密和解密的速度会慢很多很多,这在强调快速的网络时代几乎是致命的。 -
加密信息
直观来看就是一堆没有任何规则的乱码,有可能对应着一份机密文件或者一些个人隐私,但是你不知道密钥所以看不懂,就和你不懂甲骨文看不懂龟壳上的文字一样。
可以理解几乎所有互联网上传输的数据都是此类东西,这些加密信息随时随处的在网络社会流通,畅通无阻,由发送者和接收者们决定它的加密解密,复杂又有序的构成了我们的网络世界。
有了这些概念和规则,我们再来看它们都能来做些什么and具体是怎么做的。
窃听风云
进攻1
一个最典型的例子就是双方聊天或者通话出现窃听者,信息被泄漏。
黑客窃听图里张三不光银行密码被别人知道了,黑客还假装李四诽谤张三,简直没法活了。
防守1
这时候最简单的办法就是在聊天之前先问一声:”你是谁“,确保对方是李四,然后李四说话前也要问一句你是谁,确保对面是张三,然后才可以开始说接下来的东西。
实现场景比这个稍微复杂一些,毕竟不能你说你是李四就是李四,况且天底下那么多李四,怎么确定要和你说话的李四就是你要找的人也是要解决的问题。
那接下来我们加个暗语(密钥)试验一下。
暗语验证
进攻2
由于上一次的失败经历,黑客不敢再随便回答张小花了,而是改为伺机潜伏,一段时间过后,黑客已经劫持了不少暗语了,于是张三和李四的对话又暴露于危险之中。
暗语暴露
防守2
后果不堪设想,造成这种情况的最终原因还是因为作为密码的暗语在网络上流通太久被劫持了,为了解决这个问题就不能让暗语在网络上流通,那怎么办呢?刚才提到的非对称加密就有用武之地了。
刚才提到非对称加密是由配合无间的一对密码来解决安全问题的,张三和李四各保存一个密码,为了区分两个密码一般称之为公钥和私钥,那张三使用公钥加密要说的话,李四使用私钥解密内容是不是就可以杜绝安全问题了呢?
既然这么问肯定就知道答案不是这么简单,因为非对称加密还有个致命问题,就是加密解密非常慢,据已有的资料来看至少慢数千倍以上,所以最终要用公钥加密的仅仅是关键的暗语,就比如”左屁股上的痣“,一句话即可,只要这句话别人不知道那么之后的对话就是安全的,后续的每条对话都用”左屁股上的痣“来加密成乱码,黑客再怎么厉害不知道暗语也翻译不了。
最终非对称加密,加上对称加密,再加上本地验证,最终的安防体系就是下面这个样子了。
非对称加密.png可以看出,即便公钥泄漏(其实本来就是公开的)黑客得到了公钥也做不了什么事,因为张三生成密钥的过程是未知的,传输的内容只能通过私钥解密,而私钥是不会泄漏的,因为从来不在网络传输。
所以,学会了吗?其中留有一些可能存在的安全隐患,你能找出来吗?
网友评论