Security Overview

Table of Contents

1 基础概念

1.1 Security Goal

Availability
可用性
Utility
实用性
Integrity
完整性
Authenticity
真实性
confidentiality
保密性
Possession
使用权

2 知识大纲

security-mindmap.png

Figure 1: security mindmap

3 Algorithm

3.1 Symmetric Ciphers

3.1.1 AES

3.1.2 DES

3.1.3 RC4 (Rivest Cipher 4)

3.1.4 ChaCha20

3.2 Asymmetric Ciphers

3.2.1 RSA

3.2.2 ECC

3.3 Padding

由于加密算法基于数据块进行加密,而实际的数据又不一定正好是整倍的数据块大小,因此需要一种规范来对数据进行填充,来使其达到整数倍。Padding是在加密算法中为了支持对任意大小的数据块进行加密而产生的数据填充规范。

3.4 Block Cipher Mode Of Operation

由于上述的加密手段都需要对特定大小的数据块进行加密,为了支持加密大段数据的加密,必须支持协商好多个加密数据块之间的联系,从而达到安全,高效的加密。

3.4.1 ECB(Electronic CodeBook)

3.4.2 CBC(Cipher Block Chaining)

3.4.3 CFB(Cipher Feedback)

3.4.4 OFB(Output Feedback)

3.4.5 CTR(Counter)

3.4.6 XTS

3.5 Digest

3.5.1 SHA

3.5.2 MD5

3.6 MAC(Message authentication code)

MAC,消息认证码,用来认证消息完整性。

  • MAC算法引入一个密钥来保证主要密钥的持有者可以验证数据的完整性(攻击者无法找到伪造的数据是否可以同过完整性验证)。
  • MAC算法可以保证数据的完整性,正确性。
  • 不支持不可否认的特性(Non-Repudiation)

3.6.1 CBC-MAC(cipher block chaining message autghentication code)

https://en.wikipedia.org/wiki/CBC-MAC

  • 类似于CBC,该算法仅输出最后一个block的结果,中间结果不会输出。
  • 与CBC不同,产生IV(initialization vector)设置为0

3.6.2 ALG1-6

3.6.3 CMAC(OMAC1)

OMAC(One-key MAC)从块加密方法演变而来,与CBC-MAC类似。

3.6.4 HMAC

由于普通MAC运算无法保证数据真实性,因此诞生了HMAC算法,相比于MAC算法,引入了一个密钥,用来确保消息的真实性。
HMAC算法可以选择使用的摘要算法类型(MD5,SHA1/SHA2 etc)

3.6.5 GMAC

3.7 Digital Signatures

数字签名依赖于非对称加密算法,从而支持Non-Repudiation特性,这个特性在MAC算法中是无法支持的。

  • Integrity
  • Authenticity
  • Non-Repudiation

3.7.1 RSA-PSS

3.7.2 EIGamal

3.7.3 DSA

3.7.4 ECDSA

3.7.5 Rabin

3.8 Digital certificate

数字证书是由证书机关颁发的证书,之中包含了由证书机构(CA)签名过的公钥值。
操作系统中存了各大CA的公钥值,在普通用户依赖此公钥来确信公钥的正确性。

3.9 AE(Authenticated encryption)

保证数据保密性、完整性、真实性。

  • EtM(Encrypt-then-MAC)
    首先对明文进行加密,然后根据得到的密文生成MAC。密文和它的MAC一起发送。
  • E&M(Encrypt-and-MAC)
    基于明文生成MAC,并且明文在没有MAC的情况下被加密。明文的MAC和密文一起发送。
  • MtE(MAC-then-Encrypt)
    基于明文生成MAC,然后将明文和MAC一起加密以基于两者生成密文。密文(包含加密的MAC)被发送。MtE方法本身并未被证明是“强不可伪造”的。

3.9.1 EAX

3.10 AEAD(authenticated encryption with associated data)

AEAD算法结合了Block Cipher Mode

3.10.1 GCM (Galois/Counter Mode)

3.11 Key exchange

3.12 Key derivation function

3.12.1 HKDF

3.12.2 PBKDF

4 System arch

5 FDE

5.1 DEK (Disk Encrypt Key) Design

DEK is use to encrypt block comtent, due to performance issue, its normally a symmetric key

6 Attack

6.1 哈希长度扩展攻击

Contact me via :)
虚怀乃若谷,水深则流缓。