公匙,证书

motivation:

1. Eve 冒充 Bob给pizza店order pizza

2. 用Eve的private key签名,连同Eve的public key发送给pizza店但说这是Bob的public key

3. 通过验证,pizza店给Bob发货。

 

CA (certification authorities)

CA是PKI系统中通信双方都信任的实体,被称为可信第三方(Trusted Third Party,简称TTP)。CA作为可信第三方的重要条件之一就是CA的行为具有非否认性。CA通过证书证实他人的公钥信息,证书上有CA的签名。证书中绑定了公钥数据、和相应私钥拥有者的身份信息,并带有CA的数字签名

验证证书的时候,需要得到CA的公钥。用户的公钥可以通过证书来证明,那CA的公钥如何获得呢?可以再让另一个CA来发证书,但最终总有一个CA的公钥的获得过程缺乏证明。可以通过广播、电视或报纸等公开的权威的媒介,甚至通过发布红头文件的方式来公告CA的公钥。也可以,CA给自己签发一张证书,证明自己拥有这个公钥,这就是自签名证书(Self-Signed Certificate)

1. Bob向CA证明身份

2. CA创建certificate binding Bob to his public key

3. certificate(包含Bob 的public key) digitally signed by CA-这是 Bob的public key

当Alice要Bob的Public key时,

1. 得到Bob的证书

2. apply CA‘s public key,得到Bob的public key

 

验证

1. 直接盗用

  A和B通讯

  E对B说我是A,因为B“看不见”A

2. A和B通讯 在IP Packet里包含A的source IP address

  E可以spoof A的IP address

3. 在2基础上包含A的密码

  palyback attack

  E record A的packet,一段时间后再发给B

4. 为证明A live,B send A 一串nonce (once in a lifetime),A必须返回这串nonce,并用shared secret key 加密

   worrying about how the two parties learn the secret shared key value in the first place.

5. 对4不用symmetric key加密nonce,用public key cryptography (A的private加解密,B用A的public加解密)

  man in the middle

  E截取数据,用自己的key加密,并把自己的public key给Bob

公匙,证书_第1张图片

 

 

Secure Email

第一轮:A

1. A生成随机symmetric key Ks

2. 用Ks加密messgae

3. 用B的public key加密Ks

4. 把Ks(m)和KB(Ks)一起发送给B

第二轮:B

1. 用B的private key解密,得到Ks

2. 用Ks解密,得到message

 

如果要authentication和integrity

A则Hash message,在用A的private key签名,得到Ka(H(m)),连同m一起发给B

B用A的public key解密得到H(m),再对m进行hash,比较

 

综合

公匙,证书_第2张图片

 

 

 

 

 

 

 

你可能感兴趣的:(证书)