密钥分发和证书
可信赖中介
对称密钥问题
- 相互通信的实体如何分享对称密式的密钥?
解决办法
- trusted key distribution center(KDC) 在实体之间扮演可信赖中介的角色
公共密钥问题
- 当Alice获得Bob的公钥(from web site,e-mail,diskette),她如何知道就是Bob的public key,而不是Trudy的?
解决方法
- 可信赖的certification authority(CA)
KDC
- Alice,Bob需要分享对称式密钥
- KDC:服务器和每一个注册用户都分享一个对称式的密钥(many users)
- Alice,Bob在和KDC通信的时候,知道他们自己的对称式秘钥 K A − K D C K B − K D C K_{A-KDC}\ K_{B-KDC} KA−KDC KB−KDC
Q:KDC如何使得Bob和Alice在和对方通信前,就对称式会话密钥达成一致?
Alice和Bob通信:使用R1作为对称式的会话密钥
CA
- CA:将每一个注册实体E和他的公钥捆绑
- E(person,router)到CA那里注册他的公钥
- E提供给CA,自己的身份证据"proof of identity"
- CA创建一个证书,捆绑了实体信息和他的公钥
- Certificate包括了E的公钥,而且是被CA签署的(被CA用自己的私钥加了密的)
- 当Alice需要拿到Bob公钥
- 获得Bob的证书certificate(从Bob或者其他地方)
- 对Bob的证书,使用CA的公钥来验证
证书
证书包括
- 串号(证书发行者唯一)
- 证书拥有者信息,包括算法和密钥值本身(不显示出来)
- 证书发行者信息
- 有效日期
- 颁发者签名
信任树
- 根证书:根证书是未被签名的公钥证书或自签名的证书
- 拿到一些CA的公钥
- 渠道:安装OS自带的数字证书:从网上下载你信任的数字证书
- 信任树
- 信任根证书CA颁发的证书,拿到了根CA的公钥
- 信任了根
- 由根CA签署的给一些机构的数字证书,包含了这些机构的数字证书
- 由于你信任了根,从而能够可靠的拿到根CA签发的证书,可靠的拿到这些机构的公钥
- 信任根证书CA颁发的证书,拿到了根CA的公钥