密码学基础

对称加密

加密的安全性,取决于密钥的保密性和算法的安全性,而不是算法的保密性
DES(退役)/3DES(遗留)/Camellia(现行)/AES(现行)/ChaCha20(现行)

序列算法和分组算法

ChaCha20是序列算法,DES和AES是分组算法
AES(Advanced Encryption Standard)算法

分组算法

  • 数据分组:把明文分割成多个固定长度的数据分组
  • 分组运算:把每个明文数据分组通过加密函数转换成密文数据分组
  • 链接模式:联系上一个分组运算和下一个分组运算

分组密码

ECB模式

  • 不使用初始化向量和链接模式
  • 无法隐藏数据特征

CBC模式

  • 初始化向量和链接模式的使用解决了数据重放攻击的问题
  • 每个明文块与前一个密文块异或后再进行加密
  • 加密过程串行化

CTR模式

  • 通过递增一个加密计数器来产生连续的密钥流
  • 不能提供密文消息完整性校验

非对称加密

PKI证书体系

PKI(Public Key Infrastructure,公钥基础设施)

DH密钥交换协议

  • RSA(Ron Rivest,Adi Shamir,Leonard Adleman)算法
  • DH(Diffie-Hellman key Exchange)
  • ECDH(Elliptic Curve Diffie-Hellman key Exchange)

RSA密钥交换存在前向不安全的问题
DHE算法,私钥不参与密钥的协商,即使私钥泄露,客户端和服务端之间加密的报文都无法被解密
ECDHE算法是DH密钥交换协议使用椭圆曲线后的变种

单向散列函数

  • 正向计算容易,逆向计算困难
  • 运算结果均匀分布,构造碰撞困难
  • 确定输入,固定长度输出

雪崩效应
MD5(退役)/SHA-256(现行)/SHA-512(现行)

消息认证码

消息认证码(Message Authentication Code,MAC),一种确认完整性并进行认证的技术

  • 消息的完整性:消息没有被篡改
  • 消息的认证:消息来自正确的发送者
  • 消息认证码和单向散列函数的区别:消息认证码的输出除了消息以外还需要对称密钥
  • 对称密钥的参与是为了进行验证

实现

基于单向散列函数的消息验证码(Hash-based Message Authentication Code,HMAC)

认证加密

认证加密(Authenticated Encryption,AE),一种把对称密码和消息认证码相结合,同时满足机密性,完整性和认证三大功能的机制

  • Encrypt-then-MAC,加密后验证,IPSec协议采用
  • MAC-then-Encrypt,验证后加密,SSL协议采用
  • Encrypt-and-MAC,加密并验证,SSH协议采用

带关联的认证加密(Authenticated Encryption with Associated Data,AEAD),能够解决公开信息的完整性问题

  • GCM
  • CCM
  • Poly1305

综合考虑加密算法和加密模式

  • AES/GCM
  • AES/CCM
  • ChaCha20/Poly1305

数字签名

消息认证码的局限性:消息认证码无法防止否认
A将报文摘要(通过SHA等哈希算法生成报文摘要)通过私钥加密生成签名,与明文报文发送给B,B对收到的明文报文生成摘要,同时通过公钥解密私钥加密的报文摘要,比较两份报文是否相等就能验证报文是否被篡改

证书

数字证书(包括自签名证书)

  • 证书序列号
  • 证书签名算法
  • 证书颁发者
  • 有效期
  • 公开密钥
  • 证书签发机构的数字签名
  • ...

证书的特点:链式
认证和双向认证

TLS/SSL

TLS是SSL的标准化

  • 1995 SSL3.0
  • 1999 TLS1.0
  • 2006 TLS1.1
  • 2008 TLS1.2
  • 2018 TLS1.3

TLS协议组成

  • 记录协议(Record Protocol)
  • 握手协议(Handshake Protocol)
  • 警报协议(Alert Protocol)
  • 变更密码规范协议(Change Cipher Spec Protocol)

安全密码套件

TLS_DHE_RSA_WITH_AES_256_CBC_SHA

  • DHE指密钥交换协议,RSA指数字证书生成算法
  • AES_256_CBC指AES对称加密算法的256位CBC模式
  • SHA指验证消息完整性的哈希算法
  • Client Hello,携带支持的TLS/SSL版本,加密套件,产生的随机数A等
  • Server Hello,携带选出的TLS/SSL版本,加密套件,产生的随机数B等
  • Server Certificate(可选),携带服务端数字证书
  • Server Key Exchange(可选),选择ECDHE算法时需要的额外参数
  • Client Certificate Request(可选),请求客户端给出数字证书
  • Server Hello Done
  • Client Certificate(可选),携带客户端数字证书
  • Client Key Exchange,选择ECDHE算法和选择RSA算法不同,RSA算法是客户端直接生成随机数 C,然后用服务端的公钥加密发送给服务端,作为 pre-master key,ECDHE算法是生成椭圆曲线的公钥发送给服务端
  • Certificate Verify(可选),如果服务端要求客户端提供证书,则需要发送Certificate Verify
  • Client Change Cipher Spec,提示服务端之后使用master key进行对称加密通信
  • Client Handshake Finished
  • Server Change Cipher Spec,提示客户端之后使用master key进行对称加密通信
  • Server Handshake Finished

DTLS

DTLS(Datagram Transport Layer Security)
DTLS用于加密UDP通信过程,SSL/TLS用于加密TCP通信过程

与 SSL/TLS 在实现上的区别

  • 加入超时重传机制
  • 加入序列号处理UDP乱序
  • 直接在UDP之上对握手消息做分段
  • 加入了HelloVerifyRequest 和Cookie,用于服务端对客户端的二次校验,避免 DoS 攻击

DTLS-SRTP

OpenSSL

攻击

  • 中间人攻击
  • 重放攻击
  • DDos攻击

参考

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