在前面提到的数字签名和公钥密码都需要使用公钥,如何判断自己手中的公钥是否合法?这时就需要使用对公钥合法性证明的技术——证书
目录
证书介绍:
公钥证书(PKC):
证书使用场景:
公钥基础设施
PKI组成要素:
认证机构的工作:
对证书的攻击
1)在公钥注册前进行攻击
2)注册相似人名进行攻击
3)窃取认证机构的私钥进行攻击
4)伪装成认证机构进行攻击
5)通过CRL进行攻击
小结
简称证书,里面记有个人信息和属于个人的公钥,并由认证机构(CA)加以数字签名;由此可以得出该公钥属于此人,以此来降低中间人攻击的风险
1)接收者生成密钥对:使用公钥密码通信,要实现生成密钥对(密钥对可由自行生成也可由认证机构生成)
2)在认证机构注册公钥:认证机构在确认了公钥持有人后,对公钥进行数字签名
3)认证机构使用自己的私钥对公钥进行数字签名并生成证书
4)发送者得到接受者的带有数字签名的公钥
5)发送者通过认证机构的公钥验证数字签名,确定公钥的合法性
6)发送者使用该公钥加密消息并发送消息
7)接收者使用私钥进行解密得到的消息
公钥基础设施(PKI)是为了能更有效地运用公钥而制定的一系列规则和规范的总称
注:并非指某一个单独的规范或规格
其中包括:
1)PKCS(公钥密码标准)
2)X.509
2)RFC
3)API(应用程序编程接口)
1)用户:用使用PKI的人
2)认证机构:颁发证书的机构
3)仓库(证书目录):保存证书的数据库
1)生成密钥对
2)注册证书
3)作废证书和CRL(作废证书清单)
在生成密钥对后,将其公钥替换成自己的;使认证机构将消息和被替换的公钥进行数字签名
防御:
alice和a1ice或bob和b0b等使用人们容易辨认不清的字符对原来的进行替换
防御:
认证机构必须确认证书中包含的信息是否真的是持有者的个人信息
一般而言是做不到的,认证机构为了使自己的数字签名可信,都花费了大量的人力物力防止自己的私钥被盗
而且,认证机构记录了自己颁发的整数序列号,能够判断该证书是否是自己颁发的;即使私钥被窃取,认证机构会将该事件通过CRL通知用户
如果认证机构不可信,即使证书合法,其公钥也不能使用
防御:需要多加留心URL(网址),注意自己所得的证书是有哪个机构颁发的,查看该机构是否可信
1)公钥失效时,CRL需要过一段时间才会更新,因此可以利用CRL时间差来进行攻击
防御
2)通过这种钻空子的方法,可以实现否认
为了快速确认证书是否已经失效,一设计出一种OCSP的协议
1)如果有可信任的公钥,就不需要认证机构
2)当有可信任机构的公钥时,并相信机构的身份确认下;可以使用该机构颁发的证书和公钥
3)不要使用”隐蔽式安全”,在现有环境下,这些公开的技术是经过时间的考验的,仅靠一家公司是无法开发出抵御攻击的安全技术的
4)无论什么数字签名、证书、认证机构都需要有已存在的信任下,才能引生出其他信任关系