前后端数据传输安全——加密浅析

加密

本文内容:

  • 密码学起源
  • 古典密码学
  • 现代密码学
  • 对称加密
  • 非对称加密
  • 数字签名
  • 哈希

密码学起源:

在战争中需要传递信息,所以有了密码学。

隐写术:

在奴隶的头皮上刻字,用头发遮挡;在身上隐私部位刻字。

下载.jpeg

武侠小说中武功秘籍是空白的,沾水显出字。

古典密码学:

移位式加密:密码棒。

加密算法:缠绕木棒后书写。

密钥:木棒的尺寸规格。
745

替换式加密:

字母表、码表。

加密:使用码表替换字母表中对应字母。

解密:使用字母表中的字母替换码表中对应字母。
11

现代密码学:

随着计算机的发展,数学算法多次计算。不止可以用于文字内容,还可以用于各种二进制数据。按照加解密使用的密钥是否相同,可分为对称加密和非对称加密。

对称加密:

使用密钥和加密算法对数据进行转换,得到的无意义数据即为密文,使用同一密钥和解密算法进行逆向转换,得到原数据。

加密算法.002

加密算法:DES、AES。

DES 密钥位数只有 64 位,已经被弃用。主流 AES 128 位。

举个抽象的栗子:

// 原数据是111
// 加密算法是各项加法
// 解密算法是各项减法
// 密钥是4
111 加密: 1+4,1+4,1+4 = 555
对密文555 解密:5-4,5-4,5-4=111
image-20210728175519327

非对称加密:

使用公钥对数据加密得到密文,使用私钥对数据解密得到原数据。

加密算法:RSA、DSA、椭圆曲线等

下图中的加密密钥就是公钥,发送给客户端,让客户端加密数据,解密密钥就是私钥,自己持有,用来解密客户端加密过的数据。

解密算法.002
// 原数据是111
// 加密算法是各项加法
// 加密密钥是4
// 解密密钥是6,去除十进制进位后的十位。
111 加密: 1+4,1+4,1+4 = 555
对密文555 解密:5+6=11抹去溢出的十位1=1,5+6=11抹去溢出的十位1=1,5+6=11抹去溢出的十位1=1,结果是111
image-20210728175740030

对称加密的优缺点:

算法简单,速度快,适合加密大数据。

缺点:在不安全的网络中,密钥传输过程容易被截获。

举个栗子:

网络通信是不安全的,小明对小红发消息,使用对称加密,小明把密钥发给小红的过程中,被法外狂徒张三拦截到了公钥,小明对小红说我家密码是 123456,加密后的密文是aoeqpe,张三拦截后使用公钥解密,知道了小明家的密码,小明没有等到小红,等到了张三。。。

对称拦截.009

上面可能有疑问,张三也不知道算法,怎么能破解,其实算法最简单最暴力的破解方法就是穷举法,一个一个试,在计算机发达的时代,简单算法容易被破解。

非对称加密的优缺点:

缺点:速度较慢

优点:安全

未命名2

上图中,张三拦截到了小明发给小红的公钥,小明给小红发信息我爱你加密后是asbd,张三拦截到,并没有解密密钥,所以不能破解。

上面的例子是单向通信的,要实现双向通信,小明也需要一对密钥,私钥自己保存,公钥发布给小红。这样小红使用小明的公钥也能安全的给小明发信息了。

未命名2.001

非对称一定安全吗?

image-20210728155534478
上图中,张三拦截到小明的消息并不能解密,但是他用公钥加密了分手吧发给小红,小红收到后伤心欲绝跳楼了。这就是伪造攻击。

数字签名:

为了防止伪造,就需要在数据上附带数字签名,保证数据来源的合法性。

公钥能不能解密私钥加密的数据?

image-20210728160900551
image-20210728163517054

还记得上面非对称加密的例子吗:

// 原数据是111
// 加密算法是各项加法
// 公钥是4
// 私钥是6,去除十进制进位后的十位。
原数据111 公钥加密: 1+4,1+4,1+4 = 555
密文555 私钥解密:5+6=11抹去溢出的十位1=1,5+6=11抹去溢出的十位1=1,5+6=11抹去溢出的十位1=1,结果是111

现在我们使用数字签名的方法重写上面的例子,把加密后的密文当做原数据:

// 原数据是111
// 加密算法是各项加法
// 公钥是4
// 私钥是6,去除十进制进位后的十位。
原数据111 公钥加密: 1+4,1+4,1+4 = 555
密文555 私钥解密:5+6=11抹去溢出的十位1=1,5+6=11抹去溢出的十位1=1,5+6=11抹去溢出的十位1=1,结果是111

// 数字签名

// 原数据是555
// 加密算法是各项加法
// 公钥是4
// 私钥是6,去除十进制进位后的十位。
原数据555 私钥加密: 5+6=11抹去溢出的十位1=1,5+6=11抹去溢出的十位1=1,5+6=11抹去溢出的十位1=1,结果是111
对密文111 公钥解密:1+4,1+4,1+4 = 555

公钥可以解密私钥加密的数据

通常我们使用公钥加密,用私钥解密。而在数字签名中,我们使用私钥加密(相当于生成签名),公钥解密(相当于验证签名)。

我们可以直接对消息进行签名(即使用私钥加密,此时加密的目的是为了签名,而不是保密),验证者用公钥正确解密消息,如果和原消息一致,则验证签名成功,证明是对方发来的消息。但通常我们会对消息的散列值签名,因为通常散列值的长度远小于消息原文,使得签名(非对称加密)的效率大大提高。注意,计算消息的散列值不是数字签名的必要步骤。

在实际使用中,我们既想加密消息,又想签名,所以要对加密和签名组合使用,比如TLS就组合了加密和签名。

image-20210728163438958

数字签名的使用:

image-20210728172246257

上图的用法是有漏洞的,如果另一个人拦截了发送方的公钥,就能通过数字签名解密出原数据,数据就被窃听了,并且因为通信中含有2份数据,数据包增大。所以在实际操作中会使用 hash 算法,对原数据摘要进行签名,接收方对解密的数据也进行 hash,把摘要信息和解密的签名数据对比,确定是对方发送的原数据。

image-20210728174024929

现在,通过 hash,数据量很小,并且可以验证数据来源,但是还有一种攻击,就是重放攻击,需要进一步设计才能抵挡。

举个栗子:

小明给银行发送存一千块钱的请求。张三拦截到原数据,张三并不能解开,但是可以一直给银行发。本来小明存一千块,结果银行收到10次,小明存了一万块。这就是重放攻击。为了防止这种攻击,我们要在数据里利用时间戳、唯一序号等计算出一个请求签名。这样就避免重复消息。

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

推荐阅读更多精彩内容