Wednesday, May 11, 2016

Network Security Summary - Part2

1. Hash

  • 生成fingerprint保证integrity,问题是如何保证digest本身的integrity
  • To provide data integrity, any message could be simply encrypted. 但是太费CPU,可以通过Hash达到相同效果。

1.1. 常见算法

  • MD5 (Message Digest 5)
  • SHA­1
  • SHA­2 family: SHA­224, SHA­256, SHA­384 and SHA­512
Table 1. 性能比较 Execution time in seconds ( (参考 )
SHA512
18.339390993118286
18.11187481880188
18.085782051086426
MD5
10.275190830230713
10.155328989028931
10.250311136245728
SHA1
11.985718965530396
11.976419925689697
11.86873197555542
SHA256
16.662450075149536
21.551337003707886
17.016510963439941

1.2. 流程

Message Digest.png

2. MAC

  • Message Authentication Code
  • 保证integerity和authentication
  • Digest+key,Digest保证integrity,key保证authentication
有两种
  • CMAC(Cipher-based),使用对称加密
  • HMAC(hash-based),使用hash(更常用)

2.1. 流程

MAC.png

3. Digital Signature

  • 同MAC一样,也是为了保证integerity和authentication
  • 先将message digest,再将digest加密

3.1. 常见算法

  • RSA­MD5,
  • RSA­SHA­1
  • RSA­SHA­256
  • RSA­SHA­384
  • DSA (Digital Signature Algorithm: a US Government standard defined in FIPS­186 rev 4)
  • ECDSA (Elliptic Curve Digital Signature Algorithm defined in FIPS­186 rev 4).

3.2. 流程

Digital Signature.png

4. TLS/SSL

4.1. 版本

  • openssl支持SSLv3, TLSv1, TLSv1.1, TLSv1.2
  • SSLv2和SSLv3已经作废
  • TLSv1.3还在Draft

4.2. 协议

  • 分为两个阶段
    • TLS handshake protocol
    • TLS record protocol
  • handshake的管理以下内容
    • 协商cipher suite
    • Session key信息(master secret)
    • 认证server,认证client(optional)
  • record管理的内容
    • 数据的integrity,使用mac
    • 数据加密

4.2.1. Cipher suite

一个ciper suite定义:
  • key exchange algorithm
  • bulk-date encryption algorithm type
  • MAC algorithm type
完整的列表参考: TLS Cipher Suites

4.2.2. handshake流程

tls handshake.png
  • ClientHello
    • 我支持的版本
    • 我支持的Cipher suite
    • client的random number
  • ServerHello
    • 选择的版本
    • 选择的Cipher suite
    • server的random number
  • Certificate
    • server的certificate,包含了public key
    • client需要验证
  • ClientKeyExchange
    • Client自己生成pre-master key
    • 将pre-master key用server的public key加密
    • 这步骤可能随着Cipher suite有所不同(猜的),比如Diffie Hellmen
  • server和client各自生存一个master-key
    • 生成的是一样的
    • 这是个对称密钥,作为后续报文使用
ssl master key.png

4.2.3. record protocol功能

  • Dividing outgoing messages into manageable blocks, and reassembling incoming messages.
  • Compressing outgoing blocks and decompressing incoming blocks (optional).
  • Applying a Message Authentication Code (MAC) to outgoing messages, and verifying incoming messages using the MAC.
  • Encrypting outgoing messages and decrypting incoming messages.

4.3. certificate

4.3.1. 颁发流程

CA颁发流程
Usage of Digital Certificate.svg

4.3.2. Sample

Sample
Certificate:
 Data:
  Version: 3 (0x2)
  Serial Number:
   bb:7c:54:9b:75:7b:28:9d
  Signature Algorithm: sha1WithRSAEncryption
  Issuer: C=MY, ST=STATE, O=CA COMPANY NAME, L=CITY, OU=X.509, CN=CA ROOT
  Validity
   Not Before: Apr 15 22:21:10 2008 GMT
   Not After : Mar 10 22:21:10 2011 GMT
  Subject: C=MY, ST=STATE, L=CITY, O=ONE INC, OU=IT, CN=www.example.com
  Subject Public Key Info:
   Public Key Algorithm: rsaEncryption
    RSA Public Key: (1024 bit)
     Modulus (1024 bit):
      00:ae:19:86:44:3c:dd...
      ...
      99:20:b8:f7:c0:9c:e8...
      38:c8:52:97:cc:76:c9...
   Exponent: 65537 (0x10001)
 X509v3 extensions:
  X509v3 Basic Constraints:
   CA:FALSE
 Netscape Comment:
  OpenSSL Generated Certificate
 X509v3 Subject Key Identifier:
  EE:D9:4A:74:03:AC:FB...
 X509v3 Authority Key Identifier:
  keyid:54:0D:DE:E3:37...

 Signature Algorithm: sha1WithRSAEncryption
  52:3d:bc:bd:3f:50:92...
  ...
  51:35:49:8d:c3:9a:bb...
  b8:74
几个需要注意的
  • Issuer,是CA (root 或 intermediate)的DN (LDAP的Distinguished Name)
  • Subject, 证书的DN,DN中的CN一般是DNS

0 评论: