路径: 主页 > MISC > 第174页 > JR/T 0185-2020
标准搜索结果: 'JR/T 0185-2020'
| 标准编号 | JR/T 0185-2020 (JR/T0185-2020) | | 中文名称 | 商业银行应用程序接口安全管理规范 | | 英文名称 | Commercial bank application programming interface secure management specification | | 行业 | 金融行业标准 (推荐) | | 中标分类 | A11 | | 国际标准分类 | | | 字数估计 | 22,220 | | 发布日期 | 2020-02-13 | | 实施日期 | 2020-02-13 | | 标准依据 | 银发(2020)44号 | | 发布机构 | 中国人民银行 |
JR/T 0185-2020: 商业银行应用程序接口安全管理规范
JR/T 0185-2020 英文名称: Commercial bank application programming interface secure management specification
中 华 人 民 共 和 国 金 融 行 业 标 准
商业银行应用程序接口安全管理规范
中国人民银行 发 布
1 范围
本标准规定了商业银行应用程序接口的类型与安全级别、安全设计、安全部署、安全集成、安全运
维、服务终止与系统下线、安全管理等安全技术与安全保障要求。
本标准适用于商业银行对外互联的应用程序接口的设计和应用,以指导从事或参与商业银行应用程
序接口服务的银行业金融机构、集成接口服务的应用方开展相关工作,并为第三方安全评估机构等单位
开展安全检查与评估工作提供参考(接口类型关系详见附录A)。其他类型应用程序接口的设计和应用
可参照本标准执行。
2 规范性引用文件
下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文件。
凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
GB/T 25069 信息安全技术 术语
JR/T 0071 金融行业信息系统信息安全等级保护实施指引
JR/T 0124-2014 金融机构编码规范
3 术语和定义
GB/T 25069界定的以及下列术语和定义适用于本文件。
5 概述
商业银行应用程序接口服务是一种依托 API技术实现内部与外部互联的金融服务模式。商业银行通
过为合作伙伴提供用以互联的应用程序接口,输出自身金融服务能力与信息技术能力,为增加金融生态
黏性提供有益补充。外部机构能够通过互联网渠道,调用商业银行应用程序接口(外部 API,详见附录
A),获取商业银行提供的各类服务,其逻辑结构见图 1。
商业银行应用程序接口服务的参与方主要包括用户、应用方以及商业银行,商业银行通过 API直接
连接或 SDK间接连接方式向应用方和用户提供应用程序接口服务,实现商业银行服务的对外输出。
用户发起商业银行应用程序接口应用请求,并接收由应用方或商业银行返回的处理结果。
应用方负责接收并处理用户请求,通过应用程序接口向商业银行提交相关请求、接收返回结果,依
照流程进行服务请求处理或反馈用户。
商业银行构建商业银行应用程序接口、应用程序接口服务层和银行业务系统以提供商业银行应用程
序接口服务。商业银行应用程序接口服务层将应用方请求转发至银行业务系统处理,并将处理结果反馈
应用方或用户,包含认证鉴权、流量控制、监控分析、报文交换、服务组合等功能,不涉及具体业务逻
辑处理,实现对商业银行应用程序接口和应用方的管理。
6.1 接口类型
商业银行应用程序接口按照应用集成方式,分为服务端对服务端集成方式与移动终端对服务端集成
方式两种。
对于服务端对服务端集成方式,主要包含两种实现形式:
--应用方服务端直接调用商业银行应用程序接口(如 REST、SOAP协议)。
--应用方服务端使用商业银行提供的服务端 SDK,间接访问商业银行应用程序接口。
其中,服务端 SDK主要实现商业银行通用接入算法的封装,为降低应用方接入开发难度,一般此类
SDK 不包含业务逻辑。
对于移动终端对服务端集成方式,主要包含两种实现形式:
--应用方移动终端应用软件直接调用商业银行应用程序接口。
--应用方移动终端应用软件使用商业银行提供的移动终端应用 SDK,间接访问商业银行应用程序
接口。
其中,应用方移动终端应用软件直接调用商业银行应用程序接口的方式,主要以与用户个体无直接
关联的金融服务为主,如提供商业银行公开信息查询、公开服务查询等。
移动终端应用 SDK除封装商业银行通用接入算法外,还可封装业务逻辑、个人金融信息安全保护(例
如密码数据的安全加固)等功能。
在移动终端对服务端模式下,对于仅使用 H5(超文本标记语言版本 5.0)技术,提供银行金融产品
和服务访问链接的情况,由于 H5 页面本身并未直接调用(或封装)商业银行应用程序接口,不将其单
独列为商业银行应用程序接口的一种类型。
6.2 安全级别
按照服务类型将商业银行应用程序接口安全级别划分为两级,安全保护要求从 A2至 A1递减:
--A2:资金交易与账户信息查询应用类,此类金融产品和服务与用户个体直接关联,实施高等级
安全保护强度,此类商业银行应用程序接口包括但不限于:
商业银行通过 SDK,提供资金交易类服务,如支付、转账以及金融产品与服务购买等;
商业银行通过 SDK,提供用户账户信息查询类服务,如账户余额、交易历史、账户限额、
付款时间、金融产品和服务持有情况等;
对于上述服务,若确需使用 API直接连接方式进行服务调用,商业银行应对接入风险进行
评估,并制定专门的接口与应用方进行对接,实施高等级的安全保护强度要求。
--A1:金融产品和服务信息查询应用类,此类金融产品和服务与用户个体并无直接关联,实施通
用的安全保护强度,此类商业银行应用程序接口包括但不限于:商业银行提供银行金融产品和
服务的详细信息的“只读”查询服务。
7 安全设计
7.1 设计基本要求
商业银行应用程序接口安全设计基本要求如下:
--使用的密码算法、技术及产品应符合国家密码管理部门及行业主管部门要求。
--应制定安全编码规范。
--应对开发人员进行安全编码培训,并依照安全编码规范进行开发。
--开发中如需使用第三方应用组件,应对组件进行安全性验证,并持续关注相关平台的信息披露
和更新情况,适时更新相关组件。
--应对商业银行应用程序接口进行代码安全专项审计,审计工作可通过人工或工具自动化方式开
展。
--应制定源代码和商业银行应用程序接口版本管理与控制规程,规范源代码和商业银行应用程序
接口版本管理,并就接口废止、变更等情况与应用方保持信息同步。
--商业银行向应用方提供的异常与调试信息,不应泄漏服务器、中间件、数据库等软硬件信息或
内部网络信息。
7.2.2 接口交互安全
商业银行应用程序接口交互安全要求如下:
--商业银行应用程序接口应对连通有效性进行验证,如接口版本、参数格式等要素是否与平台设
计保持一致。
--应对通过商业银行应用程序接口进行交互的数据进行完整性保护,对于 A2 级别的接口,商业
银行和应用方应使用数字签名来保证数据的完整性和不可抵赖性。
--对于支付敏感信息等个人金融信息,应采取以下措施进行安全交互:
登录口令、支付密码等支付敏感信息在数据交互过程中应使用包括但不限于替换输入框原
文、自定义软键盘、防键盘窃听、防截屏等安全防护措施,保证无法获取支付敏感信息明
文;
账号、卡号、卡有效期、姓名、证件号码、手机号码等个人金融信息在传输过程中应使用
集成在 SDK中的加密组件进行加密,或对相关报文进行整体加密处理;若确需使用商业银
行应用程序接口将账号、卡号、姓名向应用方进行反馈,应脱敏或去标识化处理,因清分
与清算、差错对账等需求,确需将卡号等支付账号传输至应用方时,应使用加密通道进行
传输,并采取措施保证信息的完整性;
对于金融产品持有份额、用户积分等 A2类只读信息查询,可使用 API 直接连接方式进行
查询请求对接,应采取加密等措施保证查询信息的完整性与保密性,查询结果在应用方本
地不得保存。
--应在交易认证结束后及时清除用户支付敏感信息,防范攻击者通过读取临时文件、内存数据等
方式获得全部或部分用户信息。
7.3 服务安全设计
7.3.1 授权管理
商业银行应根据不同应用方的服务需求,按照最小授权原则,对其相应接口权限进行授权管理,当
服务需求变更时,需及时评估和调整接口权限。
7.3.2 攻击防护
服务安全设计应具备以下攻击防护能力:
--API和 SDK应对常见的网络攻击具有安全防护能力。
--移动终端应用 SDK应具备静态逆向分析防护能力,防范攻击者通过静态反汇编、字符串分析、
导入导出函数识别、配置文件分析等手段获得有关 SDK实现方式的技术细节。
--移动终端应用 SDK宜具备动态调试防护能力,包括但不限于:具有防范攻击者通过挂接动态调
试器、动态跟踪程序的方式控制程序行为的能力;具有防范攻击者通过篡改文件、动态修改内
存代码等方式控制程序行为的能力。
7.3.3 安全监控
安全监控安全要求如下:
--商业银行应对接口使用情况进行监控,完整记录接口访问日志。
--日志应满足以下要求:
商业银行相关日志应至少包括交易流水号、应用唯一标识、接口唯一标识、调用耗时、时
间戳、返回结果(成功或失败)等;
因清分清算、差错对账等业务需要,应用方接口日志中应以部分屏蔽的方式记录支付账号
(或其等效信息),除此之外的个人金融信息不应在应用方接口日志中进行记录。
7.3.4 密钥管理
密钥管理安全要求如下:
--加密和签名宜分配不同的密钥,且相互分离。
--不应以编码的方式将私钥明文(或密文)编写在商业银行应用程序相关代码中,App_Secret
或私钥不应存储于商业银行与应用方本地配置文件中,防止因代码泄露引发密钥泄露。
--应依据商业银行应用程序接口等级设置不同的密钥有效期,并对密钥进行定期更新。
8 安全部署
商业银行与应用方应遵循商业银行应用程序接口网络部署逻辑结构示意图,见图2,进行商业银行
应用程序接口的安全部署。商业银行及应用方都应在互联网边界部署如防火墙、IDS/IPS、DDoS防护等
具备访问控制、入侵防范相关安全防护能力的网络安全防护措施。
9.1.1 应用方准入
商业银行应对申请接入商业银行应用程序接口的应用方进行审核,并制定和签署相关合作协议:
--应对应用方开展准入审核,如从服务客群、服务场景、市场份额、运营能力、风控能力等方面
对意向应用方进行考察。
--应在应用方申请接入时全面审慎地考察、评估应用方的技术能力和管理水平,将用户信息保护
能力作为重要评价指标,必要时应对应用方的安全保护能力进行技术评估,评估的范围包括但
不限于应用方信息安全建设水平等内容。
--应制定商业银行应用程序接口合作协议,对合作业务场景、接口应用范围与交易量预期、应用
程序接口集成模式、不可访问未授权的信息、用户信息安全保障责任、交易安全保障责任等条
款与应用方进行约定。
--不应通过开放应用程序接口的方式变相开展跨机构清算业务。
9.1.2 应用方身份核验
商业银行在应用方接入注册与审批阶段,应通过线上或线下手段,对应用方身份进行核验和管理:
--应用方应按照商业银行要求,提交必要的身份核验资料,包括运营资质、法人信息材料、主要
应用开发人员的个人信息身份材料等。
--应对应用方提交资料的有效性、完整性、真实性进行审核,对应用方身份进行合规性核验。
9.2 接入安全控制
9.2.1 身份认证
商业银行与应用方之间的身份认证要求如下:
a) 应用方身份声明:
1) 应用方准入审核通过后,商业银行配置唯一标识 App_ID 及与之相匹配的应用鉴别密文
App_Secret、数字证书(或公私钥对)或应用鉴别密文 App_Secret 与数字证书(或公私
钥对)的组合。对于采用公私钥对方式认证的情况,商业银行应对应用方上传的公钥进行
登记。
2) 商业银行应对应用唯一标识 App_ID 进行存储与统一管理,并根据应用唯一标识 App_ID
进行应用身份认证、状态校验和权限控制等。
b) 应用方身份认证:
1) 应用方在请求商业银行应用程序接口时,商业银行应对应用方身份进行认证,认证方式包
括但不限于以下任意一种方式:
--基于应用唯一标识 App_ID和应用鉴别密文 App_Secret对应用方身份进行认证。
--基于应用唯一标识 App_ID和数字证书方式对应用方进行身份认证。
--基于应用唯一标识 App_ID和公私钥对方式对应用方进行身份认证。
--基于应用唯一标识 App_ID与应用鉴别密文 App_Secret、数字证书(或公私钥对)的
组合,对应用方进行身份认证。
2) 对于 A2 类,应用方身份认证应使用 1)中第二条至第四条给出的任意一种方式进行双向
身份认证。
3) 商业银行应对商业银行应用程序接口连接时间进行限制(如设置接口会话或令牌有效期),
依据业务必须的最小时间设计有效期,避免长期有效连接。
4) 商业银行应具备对商业银行应用程序接口主动断开连接(如主动失效令牌)的功能,具备
发现恶意连接可主动处理的能力。
9.2.2 安全传输
商业银行与应用方之间使用互联网方式进行数据传输应符合下列安全要求:
--对于 A1类应采用 MAC 校验等手段,保证商业银行与应用方之间数据传输的完整性,必......
|