互联网大陆的守夜人:信息加密技术

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介:
信息加密技术
 
互联网黄金时代的到来,让人们享受到了各种各样的便利,最大的功臣当然是计算机软硬件以及互联网通信技术的飞速发展,当然背后也有一些默默奉献的无名者,今天的文章的便是关于其中一位,我把它比喻为互联网大陆的守夜人 (The Night Watch)——信息加密技术。它就像美剧 Game of Thrones 里面的守夜人一样,默默无闻地保卫着互联网这片大陆不受 “异鬼” 的侵袭。
 
一、数据加密浅谈
 
为了使文章不那么枯燥,先从几个故事讲起。
 
古代运用加密技术进行通信的著名案例是凯撒密码。凯撒是古代一位军事将领,他率先将加密技术应用于军事通信,他的基本思想是:通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是 3 的时候,所有的字母 A 将被替换成 D,B 变成 E,以此类推 X 将变成 A,Y 变成 B,Z 变成 C。由此可见,位数就是凯撒密码加密和解密的密钥。
密钥
 
显然,这太简单了,拉丁字母只有 26 个,人脑即可轻松破译。另外,通过统计学知识,只要文章够长,每个字母在一篇文章中出现的概率是特定的,例如字母 e 在英文中出现的几率最大,那么只要对密文略加统计,即可得出,密文中出现最多的字母对应的就是 e,其他以此类推。
 
后来人们经过一番改进,增加了密钥的长度或者复杂度,只要保证密钥够复杂,并且密钥只被通信双方知道,便没那么容易被破解。这种使用单个密钥的加密技术叫做对称加密,特点是双方使用预共享密钥 (Pre-Shared Key)。
 
后来,这种加密技术广泛应用到后来的战争中,二战时有一个著名的关于密码的故事:考文垂大轰炸。由阿兰图灵领导的团队破解了德国的密码系统,得知德国将实行月光奏鸣曲计划对考文垂进行毁灭式轰炸。英国为了不让自己的破解系统暴露于德国之前,故而没有对城内居民做出警告,也没有采取非常规防御措施,最终被夷为平地。这个故事暴露了预共享密钥的缺陷:算法再复杂、密钥再长,也有被破译的可能;并且密钥必须是预共享的 (Pre-Shared),如何安全地传送密钥也是一个难题。
 
而太平洋战场的美国就比较聪明一些了。有一部 Nicolas Cage 主演的讲述太平洋战争的电影叫做《风语者》(Windtalkers)。故事里面,美军征了大量纳瓦霍族人并训练成通讯兵,使用一种基于纳瓦霍语的密码传递军事情报,日军要是想破译密码,就必须抓到通讯兵。Cage 的任务就是在战场上保护其中一个通讯兵不被日军抓到,万一不幸被抓,Cage 必须亲手杀死通讯兵以保护密码。
 
这里通讯员就相当于一个"物理"形式的密钥,它的好处是,物理密钥被别人窃取才有可能进行破译,这就极大增加了安全性。现实生活中最常用的场景就是银行申请网银的时候都要配一个 USB KEY,网上大额支付的时候需要在电脑上插入 USB KEY,相对于纯密码更安全一些。
 
后来人类发明了一样伟大的东西——计算机,并且经过不断改进,计算能力越来越强,人们开始使用计算机进行信息的加密解密,当然剑是双刃的,好处是我们可以使用更长更复杂的密钥或者算法来快速进行加密,坏处是,坏人也会用利用它更快地进行破解,将来可能还会出现更强大的计算机技术如量子计算机技术,也许当前理论上几百年才能破解的密文,未来只需几秒即可解密;而且预共享密钥的加密方法,密钥的安全传递始终是一个漏洞。于是一种更完美的加密技术应运而生——非对称加密技术。
 
非对称加密技术的基本原理是:生成一对密钥,一个叫公钥,是可以公开被所有人知道的;另外一个叫私钥,只有密钥的主人持有,其他任何人都不能得到;公钥加密的密文只有私钥才能解密,私钥加密的密文只有公钥才能解密。举个例子:
 
公钥
 
如图所示,Alice 要想给 Bob 发送私密数据,那么 Bob 先把公钥公开,Alice 用 Bob 的公钥加密自己的数据,然后发送给 Bob,Bob 用自己的私钥进行解密;反过来,如果 Bob 要给 Alice 发送非私密但是必须真实的数据,Alice 为了确定收到的数据确实是 Bob 发的而没有中间人篡改,她可以用 Bob 的公钥进行解密,如果能正常解密则证明消息确实是 Bob 发送,因为除了 Bob 以外其他人无法生成可以用该公钥解密的数据。
 
因此非对称加密技术广泛应用于通信加密、数字证书、数字签名、身份认证等等。
 
二、OpenSSL
 
去年,发生了一个震惊整个互联网的漏洞—心脏滴血 (Heartbleed),让 OpenSSL 这个默默无闻的却承担保护全世界网民信息安全的隐形 “卫士” 现身到大众面前。OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序和类库。全世界的网站大都在使用 OpenSSL 这个开源工具保护他们的信息安全,这么伟大的项目却穷的才几个程序员,而且分布在世界各地,通过网络彼此沟通协作,一直靠捐赠维持生计,捐赠者包括诺基亚、华为、甲骨文等知名企业。
 
OpenSSL
 
那么问题来了,OpenSSL 是如何保护我们的?
 
我们的互联网是通过千千万万通信设备 (路由设备、交换设备) 以及线缆 (电缆、光缆) 连接到一起的,当我们的数据在这些设备、线缆中传输的时候,很容易被人通过各种手段例如软件抓包、信号窃听等设备截取到,并根据传输协议进行解码获取敏感信息,如下图。
 
解码
 
好在我们有加密技术保护。拿 WEB 服务来说,我们可以通过部署 SSL 证书来启用 HTTPS 协议,这样在客户端浏览器与服务端 webserver 之间传输的任何信息都是密文,我们提交的表单中的账号和密码,以及服务端返回的包含个人信息的网页都被安全加密。下面简要解析一下其中原理。
 
由于篇幅有限,关于 SSL 如何加密解密原理这里不赘述,可以参考前面的非对称加密原理。当然实际过程会更复杂一些:非对称加密传递密钥,对称加密算法数据加密,消息摘要做完整性校验(+本站微信networkworldweixin),并且每种加密方式还有多种算法供选择,具体使用哪种算法哪些参数是浏览器端跟服务端协商决定的。这里重点介绍一下证书的信任问题。
 
以我大点融网站为例:
 
点融网主站的证书是向特定的证书机构 (Certificate Authority,以下简称 CA) 付费申请的,申请时需要提交自己的域名以及企业信息,证书机构审核通过给予颁发,证明我大点融是受信任的企业,所以浏览器访问点融网时,地址栏会显示一个绿色小锁标志,如下图所示:
 
点融网站
 
点融网使用了安全度更高的增强型的 EV SSL 证书 (Extended Validation SSL Certificate),不仅显示绿色小锁,还能显示包含完整公司名称的绿色条状标识:
 
点融网站
 
证书也可以自己制作,叫做自签名证书,不过首先也得自建一个 CA。既然可以自己做,为何还要花钱求别人颁发?原因是,自建 CA 并不被其他用户的浏览器所信任,其他用户访问你部署自签名证书的网站时,浏览器会红色警告提示这不是一个合法 CA 颁发的证书。反面教材:12306.cn
 
签名证书
 
为何买的证书浏览器就认为合法,而自签名的证书浏览器就认为不合法呢?原因是,浏览器内置了一部分合法 CA 的根证书,如果你的证书是这些 CA 之一签发的,那浏览器就认为是合法的,否则就不合法,除非把自建 CA 的根证书也安装到浏览器,让浏览器信任。
 
具体的证书信任验证过程如下:
 
证书以证书链的形式组织,在颁发证书的时候首先要有根 CA 机构颁发的根证书,再由根 CA 机构颁发一个中级 CA 机构的证书,最后由中级 CA 机构颁发具体的 SSL 证书。在验证证书的时候,浏览器会对证书路径中的所有证书一级一级往上进行验证,只有路径中所有的证书都是受信任的,最后结果才是受信任的。如下图所示:
 
SSL 证书 转自网界网:http://news.cnw.com.cn/news-china/htm2015/20151203_323552.shtml
 
三、SSL 发展趋势
 
早在 2011年Google 就已经开始启用全站 SSL 加密,百度也在 2014年 底开始测试全站加密,SSL 的时代已经到来,妈妈再也不用担心我账号被盗、页面被运营商强插广告、中间人攻击等困扰了。
 
在中国,SSL 的普及之路还很遥远,个人认为主要障碍有如下几个:
 
1. 安全意识薄弱,很多网站负责人只关注内容、流量,不出安全事故,意识不到信息安全的重要性;
2. 加密带来大量额外计算资源开销,访问性能会降低,手持设备会更耗电,影响用户体验,因此很多网站默认不加密;
3. 增加成本,SSL 证书通常需要向特定机构申请购买;
4. 额外技术成本,例如网站功能兼容性,浏览器兼容性,手机 APP 兼容性等等。
 
随着金融互联网和电子商务的蓬勃发展,使得信息安全显得越来越重要,加密早已成了必备技术,相信终有一天,互联网会彻底抛弃 HTTP,进入全面 HTTPS 时代。
 
那么,最后一个问题,作为群众的我如何科学地使用加密技术来保护个人信息?
 
在这里举几个我能想到的例子吧:
 
1. 本文主要讲 SSL 加密,当然是在访问任何网站尤其是 P2P、支付、交易等相关网站的时候,如果默认没有使用 https,可以尝试手动在 http 后面冒号前面加一个 s 来访问加密的服务;
2. 除了 Web 服务,还有例如邮件客户端配置加密的 pop3、imap、smtp 协议和端口 (具体方法参考邮件服务商的帮助页面);
3. 网站众多,账号众多,记密码很头疼,但是千万不要用 txt 文件保存明文密码,推荐使用密码管理软件,如苹果系统的 keychain,Win 系统的 Keepass 等工具;
4. 尽量避免连接公共场合的开放的 WiFi (尤其是不加密的);如果非连不可,请不要访问跟钱相关的网站; 如果非要访问,请记得使用加密方式访问。WiFi 无线信号是空间内广播的,只要笔记本电脑装个软件即可监听所有连到该热点的设备之间的通信。

原文发布时间为:2015-12-07

本文来自云栖社区合作伙伴至顶网,了解相关信息可以关注至顶网。





相关文章
|
算法 安全 数据安全/隐私保护
互联网并发与安全系列教程(13) - 信息加密技术(对称&非对称加密)
互联网并发与安全系列教程(13) - 信息加密技术(对称&非对称加密)
70 0
|
安全 算法 Java
互联网并发与安全系列教程(12) - 信息加密技术(单向散列加密)
互联网并发与安全系列教程(12) - 信息加密技术(单向散列加密)
80 0
|
7天前
|
SQL 安全 算法
网络安全的隐形盾牌:漏洞防御与信息加密的艺术
【10月更文挑战第36天】在数字世界的海洋中,网络安全犹如一艘船的保护罩,守护着我们的隐私和数据安全。本文将揭开网络安全的神秘面纱,从常见的网络漏洞到先进的加密技术,再到培养必要的安全意识,我们将一步步构建起防御的堡垒。文章不仅分享技术细节,还强调了在个人和组织层面采取积极措施的重要性。
|
1月前
|
SQL 安全 算法
网络安全与信息安全:构建数字世界的防线在数字化浪潮席卷全球的今天,网络安全与信息安全已成为维系社会秩序、保障个人隐私与企业机密的重要基石。本文旨在深入探讨网络安全漏洞的本质、加密技术的前沿进展以及提升安全意识的有效策略,为读者揭示数字时代下信息保护的核心要义。
本文聚焦网络安全与信息安全领域,详细剖析了网络安全漏洞的形成机理、常见类型及其潜在危害,强调了及时检测与修复的重要性。同时,文章系统介绍了对称加密、非对称加密及哈希算法等主流加密技术的原理、应用场景及优缺点,展现了加密技术在保障数据安全中的核心地位。此外,针对社会普遍存在的安全意识薄弱问题,提出了一系列切实可行的提升措施,如定期安全培训、强化密码管理、警惕钓鱼攻击等,旨在引导公众树立全面的网络安全观,共同构筑数字世界的安全防线。
|
6月前
|
XML Java 关系型数据库
如何给application.yml文件的敏感信息加密?
本文介绍了如何在SpringBoot应用中使用jasypt进行配置信息的加密解密。首先,需要添加jasypt-spring-boot-starter的依赖,版本至少为3.0.5。接着,在配置文件中设置`jasypt.encryptor.password`等参数。jasypt提供`StringEncryptor`接口用于加密解密,通过该接口可以在测试类中对敏感信息(如数据库用户名和密码)进行加解密。加密后的信息需带有`ENC()`前后缀。推荐将加密密码作为系统属性、命令行参数或环境变量传递,而不是直接写入配置文件。
337 3
|
1月前
|
安全 算法 Java
数据库信息/密码加盐加密 —— Java代码手写+集成两种方式,手把手教学!保证能用!
本文提供了在数据库中对密码等敏感信息进行加盐加密的详细教程,包括手写MD5加密算法和使用Spring Security的BCryptPasswordEncoder进行加密,并强调了使用BCryptPasswordEncoder时需要注意的Spring Security配置问题。
128 0
数据库信息/密码加盐加密 —— Java代码手写+集成两种方式,手把手教学!保证能用!
|
2月前
|
SQL 安全 网络安全
网络安全的盾牌:漏洞防御与信息加密技术
【9月更文挑战第27天】在数字时代,网络安全和信息安全成为维护数据完整性、保密性和可用性的关键因素。本文将探讨网络安全漏洞的概念、成因及预防措施,同时深入讨论加密技术在保护信息安全中的作用。通过分析安全意识的重要性和提升方法,旨在为读者提供一套全面的网络安全知识框架,以增强个人和组织对抗网络威胁的能力。
39 5
|
2月前
|
安全 网络安全 数据安全/隐私保护
网络安全漏洞与加密技术:保护信息的艺术
【8月更文挑战第31天】在数字时代,网络安全和信息安全的重要性日益凸显。本文将探讨网络安全漏洞、加密技术以及提升安全意识等方面的内容。我们将通过实际代码示例和案例分析,深入了解网络攻击者如何利用安全漏洞进行攻击,以及如何运用加密技术来保护数据安全。同时,我们还将讨论如何提高个人和组织的安全意识,以应对不断变化的网络安全威胁。让我们一起探索这个充满挑战和机遇的领域吧!
|
3月前
|
存储 SQL 安全
网络防线:揭秘网络安全漏洞与信息加密的奥秘
在数字时代,网络安全与信息保护如同一场没有硝烟的战争。本文将带您深入了解网络安全的薄弱环节,探索加密技术如何成为守护信息安全的利剑,并强调提升个人和组织安全意识的重要性。从常见漏洞到防护策略,再到加密技术的演变,我们将一步步揭开网络安全的神秘面纱,让您在这个充满未知的数字世界中更加从容不迫。
38 2
|
3月前
|
SQL 安全 算法
网络安全漏洞与加密技术:保护信息的关键
【8月更文挑战第31天】在数字化时代,信息安全成为我们每个人都必须面对的问题。本文将探讨网络安全的漏洞、加密技术以及如何提高安全意识来保护我们的信息。我们将通过一些代码示例,更深入地理解这些概念。无论你是网络专家还是普通用户,这篇文章都将为你提供有价值的信息。让我们一起探索这个充满挑战和机遇的网络世界吧!

热门文章

最新文章