最近在看PKI系统的相关知识,在看到使用证书这块的时候对标题上的这些概念之间的关系有点不清楚。
比如A要认证B的证书
1、选择通过OCSP在线证书查询协议进行在线查询证书有效性的时候,是直接连接CA服务器么?然后由CA服务器去访问CA证书库?
2、选择通过CRL证书撤销列表进行验证证书是否被撤销的逻辑是:向LDAP目录服务器发起下载/更新本地CRL证书撤销列表文件的请求,然后由LDAP目录服务器去查询CRL证书撤销列表信息所在的LDAP目录数据库,由目录数据库返回文件地址,再由LDAP目录服务器向客户端下载CRL证书撤销列表文件么?
以上是对现有PKI系统中证书验证有效性的疑问,下面是对这个系统设计的一些问题:
1、为何要用LDAP轻型目录查询协议来构建目录服务器,为何不直接用关系型数据库将被撤销的证书信息存在数据库中,直接由用户查询?(这个做法跟OCSP在线查询很像,但是只要出现在数据库中的证书就是无效的,不需要提供证书状态信息),当然CRL的话可以提供一定的离线认证能力,但是我看了CFCA的标准,CRL的更新一般设置为1天一次,根据客户需求可以降低。但是终究是妥协的逻辑,离线会有一段更新空白期,而且不短
2、根据问题1的描述,现在的系统用的是LDAP存储CRL文件相关信息(使用LDAP协议逻辑),是为了能更新客户端本地CRL列表的话,那在使用CRL方式查询和使用OCSP方式查询的逻辑有什么优缺点?如果互相认证的双方在无法连接外网的情况下,通过CRL和数字证书认证彼此身份,这个安全程度够离线认证的要求么?如果够,那为何还需要OCSP方式,如果不够,那要CRl又有何用?
3、有大佬能提供一下LDAP数据库的结构么?到底存的是证书信息还是证书撤销列表文件的信息?