嫦娥奔月是我们耳熟能详的神话传说,下面我们将通过嫦娥和后羿的神话故事为背景题材,和大家一起分享信息安全技术基础知识。假设:嫦娥想告诉后羿约他在 "9月20日一起去看一场电影" 的消息,让通过网络将这个消息发给后羿,我们如何保证消息的安全传递?
首先我们需要思考的问题有:
- 消息怎么保证信息安全,只有后羿能够解密,读取加密内容?
- 怎么保证消息是完整,不能被被篡改,如果日期或者地点被改了后羿找不到嫦娥该怎么办?
- 如何保证消息就是嫦娥发的呢,而不是玉兔顽皮冒充嫦娥发的呢?
网络可以作为信息传递的媒介,但是如果对所有的信息都采用明文的方式进行传输,如果我们的网络遭到监听,或者遭到劫持。如果我们的聊天记录,通话信息被泄露,我们的生活将失去隐私;如果我们的账户密码被人窃取那么我们的财产安全将无法得到保障。所以学习安全基础知识也是必要的。
对称加密
常见的对称加密算法:
1.DES:替换+位移、56位密钥、64位数据块、速度快、密钥容易产生。
- 3DES(三重 DES):两个64位的密钥 K1、K2
- 加密:K1 加密 -> K2 解密 -> K1 加密
- 解密:K1 解密 -> K2 加密 -> k1 解密
2.RC-5: RSA 数据安全公司的很多产品都使用了 RC-5
3.IDEA 算法: 128 位密钥、64位数据块、比DES的加密性好、针对计算机功能要求低,PGP。
4.AES 算法:高级加密标准,又称为 Rijndael 加密法,是每个政府采用的一种区块加密标准。
缺陷:
- 加密强度不高, 但是效率非常高
- 密钥分发困难
特点:加密解密密钥相同
非对称加密
常见的非对称加密算法有:
1.RSA :2048 位(或1024位)密钥、计算量大、难破解
2.Elgamal :安全性依赖于计算机上有限域上离散对数这一难题
3.ECC:椭圆曲线算算法
缺点:加密速度慢 特点:
1.公钥可以公开,私钥不能公开。
2.公钥加密私钥解密,私钥加密公钥解密。
image.png
消息摘要
信息摘要:单向散列函数、固定长度的散列值。
常用的消息摘要算法有 MD5, SHA 等,市场上广泛使用的 MD5, SHA 算法的散列值长度分别为 128 和 160位, 由于SHA 通常采用的加密长度较长,因此安全性高于 MD5。
比如我们在某网站下载 “镜像文件”的时候,上面也会给出 MD5 摘要值。我们下载下来过后可以通过文件的 MD5 值和官方给出的 MD5 值来进行对比。检查是否文件完整正确,避免造成安全装错误。
数字签名
数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似写在纸上的普通的物理签名,但是在使用了公钥加密领域的技术来实现的,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。数字签名是非对称密钥加密技术与数字摘要技术的应用。
我们还是以嫦娥告诉后羿,“9.20 日我们去看电影”这段信息为例子,说一下数字签名的过程。整体流程如下图所示:
图示解读:
1.嫦娥需要通过网络传递给后羿 “9.20 日我们去看电影” 这个消息首先生成加密后的消息“V7btGj2ZhQsdada /..... T1Ram6AzforA==”,发送密文;
2.然后在对原文生成 消息摘要 “2d43abe9ec71c90952101bc0d8241fba” ;
3.最后嫦娥在对 消息摘要 通过 自己私钥 进行加密生成数字签名。 “EDadada3432f#CC1”。然后发送数字签名。
4.后羿收到密文后进行解密,然后得到原文并计算出摘要信息,再通过数字签名解密出来摘要信息。最后对两个摘要信息进行比较,如果相同表示这个消息是嫦娥发的(防止抵赖),并且消息没有被篡改。
5.这个例子我们就很好的把消息加密,消息摘要,数字签名等技术串起来,并且实现了消息安全传递。
综合实践
设计安全邮件系统,要求如下:该邮件以加密方式传输,邮件最大附件内容可达 2G, 发送者不可以抵赖,若邮件被三方截获,三方无法篡改。
答案:参考上一个案例实现即可。
本文转载自微信公众号「运维开发故事」