各证书机构及中间服务商,在对证书分类的时候,所使用的名称五花八门,有的服务商不使用通用的分类名称,而是使用自己分类的品牌名。公司周边同事也分不清这些证书到底有什么区别,只好听证书机构的人员推荐,很多时候按照价格最高的证书类型采购了。
让我们拨开云雾,真正认识到哪一种才是我们的业务所真正需要的证书。
首先,证书的主分类可以分为三种:
- DV (Domain Validation,域名验证)
- OV (Organization Validation,组织验证)
- EV (Extended Validation,增强/扩展验证)
从审核的严格程度和价格上看:DV < OV < EV 。
这三种证书分类的主要区别是:
- DV证书仅验证域名的所有权,审核速度最快,价格最低,适用于中小企业普通业务网站和个人网站;DV证书在浏览器地址栏显示小锁标志,在证书详细信息-使用者一栏,不显示O字段或O字段为空(O即Organization)。
- OV证书,需要审核企业的身份(营业执照等)和域名所有权,适用于企业的一般业务;OV证书在浏览器地址栏显示小锁标志,在证书详细信息-使用者一栏,显示O信息,一般为公司名称。
- EV证书,严格审核企业的身份(营业执照、律师函等)和域名所有权,具有最高级别可信度,适用于于金融、银行、电子商务等业务;EV证书在浏览器地址栏显示公司名称,在证书的详细信息中,显示公司的详情(名称、地址等等)。
以支付宝的证书为例,Chrome地址栏显示小锁,详细信息显示公司名称,表明这是一张OV证书:
再以Paypal的证书为例,地址栏显示绿色的公司名称,表明这是一张EV证书:
详细信息中,展示了公司名称、详细地址等信息。
其它的证书分类,都可以看成是在这三类证书上面所叠加的功能特性。
根据适用的域名数量,可以分为单域名证书(一个域名)、多域名证书(SAN, Subject Alternative Name,使用者可切换,用于指定的多个域名)、通配型证书(Wildcast, 任意子域名, *.domain.com)。
基于强制128位及以上加密场景的业务需要,扩展出一种新的证书,称之为 SGC (Server Gated Certificate)证书,或者 强制加密证书。
通常为 OV SGC 证书 或 EV SGC 证书,主要是 OV SGC。
提到SGC,就不得不提一下美国早期的出口管制(强密码产品如同军火),2001年以前推出的浏览器版本(如:IE5)和服务器版本(Windows2000(server)都只支持56位或40位加密算法,但由于电脑硬件技术和CPU处理速度的快速提高,使得破解40位加密算法只需几秒钟,而破解56位加密算法也只需几天时间。为了加强美国以外的国家的电子商务和网上银行的安全,SSL证书业界就在SSL证书标准基础上增加的支持强制实现128位加密的增强密钥用法(EKU),也就是说:即使受出口限制的40位或56位浏览器或服务器,只要使用支持SGC技术的SSL证书,就能不受限制的实现128位加密。这强制实现128位高强度加密技术简称为 SGC 技术。
判断是否SGC证书,就是查看证书的详细信息-增强型密钥用法中,是否至少包含一种未知加密算法,以招商银行的证书为例:
这两种未知密钥用法,2.16.840.1.113730.4.1 是由NetScape提出的SGC OID (nsSGC),1.3.6.1.4.1.311.10.3.3 是由微软提出的SGC OID(msSGC),两者都已经成为国际标准,所有系统都支持这两个OID,只要包含这二者当中的任何一个,即表示这是一张SGC证书。
那么到底要不要申请SGC证书呢?
IE5.0及以下版本的早期浏览器目前已经基本绝迹了,当前的浏览器默认就会使用128位及以上的对称加密算法,大多数业务已经不需要考虑使用SGC证书了。但是如果您的业务中还存在较多的使用低版本浏览器的用户,或者法律法规、政策要求强制128位以上加密,才有采购SGC证书的必要。
如果业务上有强制128位以上加密的需要,但无法律法规或政策强制,则可以在技术上限制用户不得使用指定版本以下的浏览器。
认识到这一点之后,根据业务的需求进行选择,不要被证书机构骗了(SGC证书的价格要远远高于一般的OV证书价格)~
什么样的域名证书才符合业务需求
笔者的意见是:
- 涉及金融、支付、电子商务等需要强信任的业务场景,首选EV证书(地址栏显示公司名称,绿色背景,增强信任感);
- 如上述公司业务网站众多,可组合使用EV证书(单域名,部署在主网站入口)和OV证书(单域名或通配型域名,用于其它业务);
- 一般业务(身份认证等)申请OV证书(地址栏小锁标志);
- 非金融类小型企业或个人网站申请DV证书(价格最低,小锁标志);
- 纯内部业务可申请DV证书(或OV证书),节省费用。
申请过程中的安全性
证书的申请过程,首先生成RSA密钥对:
#openssl genrsa -out www.domain.com.pem 2048
普通场景建议RSA使用2048位密钥长度(RSA 768已于2009年被分解,RSA 1024也撑不了几年了,推荐2048位或以上),如果用于其它非常重要的场景,可申请4096位密钥长度;生成的pem文件即通常所说的私钥文件,需要妥善保管,不能公开,也不能发给开发人员,也许他们会在什么时候就泄露了。
然后基于密钥对生成证书申请文件:
#openssl req -new -sha256 -key www.domain.com.pem -out www.domain.com.csr
这个新生成的csr文件即证书签名请求文件(Cerificate Signing Request),用于向证书服务商申请经过签名的证书,它不包含私钥。
由于默认会使用SHA-1进行完整性校验,而SHA-1校验已经存在风险并被浏览器警告,故指明使用sha256来进行完整性校验。
检查确认:
#openssl req -text -noout -in www.domain.com.csr
无误后使用该文件向证书服务机构申请。
一些建议
- 尽量不要申请通配型证书(*.domain.com),多部署一份,就多一分私钥泄露的风险(需要将私钥文件部署到对应业务的Web服务器上面);
- 如果要用通配型证书,可以考虑网络入口的单域名EV证书,配合其它业务的通配型OV证书,即可建立信任,也可为公司节省费用;
- 不要让代理机构帮你生成密钥对然后把全部所需的证书文件发给你,因为导致私钥泄密,一定要在业务自己的Web服务器上生成密钥对(备份一次妥善保管即可),防止扩散,给代理机构只发送CSR文件(不含私钥);
- 私钥文件仅限指定运维人员操作,安全管理上禁止开发人员登录生产环境服务器,以避免证书文件扩散;
- 如无法规或政策上的要求,一般没有必要申请SGC证书。
FAQ
1.这几种证书(DV、OV、EV)在技术上,是否有安全性上的差异?
答:
这几种证书的差异主要体现在品牌信任方面。技术安全性上并没有明确的差异,传输安全性跟以下几个因素有关:
- 浏览器跟服务器协商的加密传输算法(受用户的浏览器及版本影响较大)
- 证书的签名哈希算法(md5已淘汰,sha1正在淘汰,推荐sha512)
- 证书RSA密钥长度(RSA 768已于2009年被分解,RSA 1024也撑不了几年了,推荐2048位或以上)
在服务器证书没有泄露、证书没有被伪造(截止目前,只有已淘汰的基于MD5的签名哈希算法的证书被伪造过,尚未发现基于SHA1或SHA256的证书被伪造,但基于SHA1的伪造证书理论上快出现了)的情况下,安全性仅取决于会话中的对称加密算法是否足够,比如早期低版本的浏览器在服务器证书不是SGC证书的情况下,有可能使用低于128位的加密传输。
2.各证书机构可能使用了自己的品牌名,如何区分证书机构销售的证书具体是属于哪一种类型?
答:如果有DV、OV、EV标识,则自然属于对应的分类;如果没有,则简单留意一下就能看出来,价格最低的那种就是DV证书,地址栏显示公司名称的就是EV证书,且价格高于OV证书,审核周期长于OV证书。SGC证书会特别强调支持强制128位加密。
3.数字证书的成本很高吗,为什么卖这么贵?
答:数字证书的技术成本基本为0,证书机构的主要成本主要来自于管理成本、人工成本(OV证书和EV证书均需要人工审核)、审计成本、发生失误后的罚金、维持资质、认证、向操作系统或浏览器厂商的利益输送(纳入受信任的根证书颁发机构)等相关的成本。
今天是2015年的最后一天,祝各位朋友新年快乐~
公众号作者:U2 ,迅雷网络安全负责人,前华为网络安全部SDL(安全纳入项目管理流程、安全标准与规范、安全评审)负责人。