国家金融监督管理总局在9月14日印发了《关于加强银行业保险业移动互联网应用程序管理的通知》(以下简称《通知》),笔者看到这个《通知》时有似曾相识的感觉,这是继5月22日网信办、中央编办、工信部和公安部联合发布的《互联网政务应用安全管理规定》(以下简称《规定》)之后的专门针对金融移动互联网应用的安全管理通知,可以理解为是《规定》在金融保险业的落实要求。因为按照《规定》第四十二条要求,银行业保险业的移动应用程序的安全管理参照规定有关内容执行,所以,请广大读者同时参考阅读 解读《互联网政务应用安全管理规定》,笔者不再重复相关内容,仅针对银行业保险业移动应用程序安全做出更加详细的解读和整改指引。
《通知》的印发说明了管理部门已经充分认识到目前金融业APP存在的诸多问题,笔者仅解读SSL证书安全相关的问题,这不仅仅是笔者的专长,也是《通知》的核心关切,《通知》要求金融机构落实移动应用备案、网络安全、数据安全、外包管理、业务连续性及个人信息保护等监管要求,对用户活跃度低、体验差、功能冗余、安全合规风险隐患大的移动应用及时进行优化整合或终止运营。
金融APP在网络安全和数据安全方面普遍存在的安全合规风险隐患来自如下四个方面:
根据零信技术安全团队对多家银行的网银APP的研究,几乎所有金融APP都存在如下多个问题:
这些对网银系统服务器端SSL证书的合法性判断缺失的话,就极有可能在用户手机上网环境不安全的情况被DNS劫持到一个假冒的网银系统导致泄露用户的银行卡口令和网银系统口令,从而导致用户银行账户的现金被非法转走或取现,给用户带来财产损失。而这种财产损失不仅仅是用户上网环境不安全的责任,更主要的是金融APP的不严格验证服务端SSL证书而导致的,更大的主要责任在银行,这就是《通知》要求的整改的安全漏洞。而导致这些安全问题的根本原因是APP开发者没有做这些额外的证书合法性验证,而只是简单地启用HTTPS加密。
要完成一个完整的金融移动应用安全连接,不仅需要确保金融APP的安全合规,而且需要金融APP连接的服务端部署的SSL证书也必须是安全地部署,零信技术安全团队体检了几十个网银系统部署的SSL证书,发现有接近一半的网银系统部署的SSL证书安全评级为F(非常不安全),主要有如下三个方面的严重问题:
还有一个非常重要的SSL证书部署问题:没有部署完整的SSL证书证书链,这使得浏览器和金融APP无法正确识别和判断SSL证书是否可信,这虽然不属于安全问题,但是非常影响用户体验,也极有可能给假冒网站有了可乘之机,如果要求用户信任浏览器有安全警告的网银网站的话。
大家都知道网银系统都必须完成国密改造,包括HTTPS加密改造,这就要求有浏览器支持国密算法实现HTTPS加密。但是,零信浏览器安全团队发现市场上常用的国密浏览器存在不少安全问题不适合用于网银系统访问,请各个银行保险机构在选用国密浏览器仔细检查所用国密浏览器是否有如下6个方面的安全问题:
有以上问题的国密浏览器是无法保障用户网银访问安全的,不适合用于网银系统国密改造和网银用户上网银系统办理网上银行业务。
最后一个问题是用于网银系统的国密SSL证书自身安全问题,具体有如下3点:
以上这些问题非常值得银行业保险业IT主管们高度重视,必须在选购国密SSL证书时向CA机构强调不能存在这些问题,并选择向没有这些问题的CA机构申请国密SSL证书。
《通知》要求各个银行业保险业主必须及时发现问题和及时整改问题,大家可以对照笔者在上一部分列出的金融APP、Web服务器SSL证书部署、网银用浏览器和网银用SSL证书存在的各种问题一一排查是否存在这些问题,如果存在,则必须一一解决。
金融APP普遍存在的这6大证书安全问题,需要金融机构同APP开发商一一核实并验证问题是否存在,并在整改完成后验证是否已经完成整改。这些问题都必须整改,当然最核心的问题是一定要支持国密算法实现HTTPS加密,并且是优先采用国密算法实现,只有这样才是最终达到了国密改造的目的。
这是网银Web服务器或者网关的SSL证书部署问题,对于国际算法SSL证书,一定要用Qualys SSL Labs的在线体检工具对每一个部署SSL证书的网站进行体检,发现问题及时调整服务器配置文件,关闭不安全的加密套件和加密协议。对于其他安全漏洞也要根据体检结果做及时修复,只有体检结果达到A级或A+级才是安全的SSL证书部署。
而对于国密SSL证书的部署,最常见的问题是没有部署完整的SSL证书链,而SSL证书又没有可以访问的AIA信息,则浏览器是无法正常显示的。目前市场上没有可用的类似于SSL Labs一样的国密HTTPS加密体检工具,建议在完成部署后使用零信浏览器访问,如果零信浏览器不能正常显示国密加密标识 ,则一定是部署有问题,或一定是零信浏览器不信任的国密SSL证书。
要想检验正在使用的国密浏览器是否正常验证了部署的国密SSL证书,这需要一定的专业知识,最简单的方法是同一个网站同时使用零信浏览器访问,看看零信浏览器是否有安全警告,如果有,会显示具体安全问题。但是如果正在使用的其他国密浏览器却没有警告,则说明这个浏览器并没有严格按照国际标准和国密标准来验证国密SSL证书,建议弃用此浏览器。
针对上部分指出的国密SSL证书常见的三个问题,第一问题很容易发现,大家看看一下你同时申请的国际SSL证书有效期一定只有1年,但是如果你同时拿到的国密SSL证书超过一年,则就是不合格的国密SSL证书。
对于国密SSL证书是否支持证书透明,大家也可以对比手中的国际SSL证书,一定有一个“SCT列表”字段,如果你手中的国密SSL证书中没有这个字段,则就是不支持证书透明,也可以认为是不合格的国密SSL证书,因为CA在签发这张国密SSL证书时没有透明公示其签发行为,这样的国际SSL证书谷歌浏览器是不信任的,而零信浏览器目前对于不支持证书透明的国密SSL证书只是显示“证书不透明”,计划将来也像谷歌浏览器一样不信任这样的国密SSL证书。建议用户选购支持国密证书透明的国密SSL证书,保障国密SSL证书的自身安全可信。
而对于AIA网址,大家可以查看国密SSL证书中是否有AIA信息,如果有,复制这个网址使用浏览器访问,看看是否可以下载下来查看签发这张国密SSL证书的签发CA证书,如果正确,则是一个合格的证书。如果没有这个字段或者有这个字段无法访问,则不是一张合格的国密SSL证书。
上一部分提出的整改方案并不是最佳方案,有些还需要相当高的专业知识才能发现问题所在。最简单的整改方案是在Web服务器之前部署零信国密HTTPS加密自动化网关,一个网关自动化搞定网银系统四个方案的升级改造难题,包括国际算法HTTPS加密自动化、国密算法HTTPS加密自动化、WAF防护自动化和IPv6改造自动化。一个网关能自动化完成上述所有除了金融APP的验证问题以外的其他所有问题。
部署零信网关的网站使用SSL Labs体检能保证每一个网站体检安全评价都是A级,使用完全免费的干净无广告的国密浏览器--零信浏览器访问部署的零信网关的网银系统,一定是采用国密算法实现HTTPS加密,并且严格按照国际标准和国密标准来验证SSL证书。同时,零信浏览器会在地址栏展示国密加密标识、WAF防护标识,查看国密SSL证书一定会显示国密证书透明信息。
部署零信网关让银行不再需要向CA机构申请和人工手动部署双算法SSL证书,由零信网关自动化对接零信云SSL服务系统自动化完成双证书申请和部署。自动化配置的国际SSL证书由全球信任的第二大CA-Sectigo签发,国密SSL证书由拥有CA许可证的贵州CA签发,双SSL证书都支持证书透明,能满足金融保险业HTTPS加密国密改造需要,满足《通知》的整改要求,一键完成整改,一键完成合规。