海门农村商业银行官网欢迎您浏览!
您的当前位置: 关于我们 > 企业文化>详细页面

海门农商银行移动金融客户端应用软件管理规范

来源:发布时间:2023年09月13日

1 范围

本文件规定了移动金融客户端应用软件的安全要求,以及客户端应用软件设计、开发、维护和发布的管理要求。

本文件适用于移动金融客户端应用软件的设计、开发、维护及发布过程,也适用于评估机构对相关应用进行安全性和标准符合性评估。

2 规范性引用文件

下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。

GB/T 35273—2020《信息安全技术 个人信息安全规范》

GB/T 39786-2021 《信息安全技术 信息系统密码应用基本要求》

GB/T 25069 信息安全技术术语

GB/T 41391—2022《信息安全技术 移动互联网应用程序(App)收集个人信息基本要求》

JR/T 0092—2019 《移动金融客户端应用软件安全管理规范》

JR/T 0071 金融行业信息系统信息安全等级保护实施指引

JR/T 0124—2014 金融机构编码规范

JR/T 0098.3-2012 中国金融移动支付检测规范 第3部分:客户端软件

JR/T 0171—2020 《个人金融信息保护技术规范》

3 术语和定义

3.1 移动金融客户端应用软件 financial mobile application software

在移动终端上为用户提供金融交易服务的应用软件。

注:包括但不限于可执行文件、组件等。

3.2 资金交易类客户端应用软件 capital transaction client application software

直接面向用户提供资金交易服务的移动金融客户端应用软件。

注:包括但不限于手机银行、支付app等。

3.3 信息采集类客户端应用软件 information collection client application software

不直接向用户提供资金交易服务,但需采集个人敏感信息的移动金融客户端应用软件。

3.4 资讯查询类客户端应用软件 information query client application software

仅提供金融产品推介、信息查询、资讯推送等服务的移动金融客户端应用软件。

3.5 个人金融信息 personal financial information

金融业机构通过提供金融产品和服务或者其他渠道获取、加工和保存的个人信息。

注:包括账户信息、鉴别信息、金融交易信息、个人身份信息、财产信息、借贷信息及其他反映特定个人某些情况的信息。

3.6 支付敏感信息 payment sensitive information

支付信息中涉及支付主体隐私和身份识别的重要信息。

注:包括但不限于银行卡磁道或芯片信息、卡片验证码、卡片有效期、银行卡密码、网络支付交易密码等。

3.7 语音识别 automatic speech recognition

将人类语音中的词汇内容转换为计算机可读的输入。

示例:按键、二进制编码或者字符序列。

3.8 语音合成 text to speech

将文本信息转化为语音数据的技术,涉及声学、语言学、数字信号处理、多媒体等多种前沿的高新科技。

3.9 自然语言理解 natural language processing

使用自然语言同计算机进行通讯的技术。

3.10 第三方信源   the third party source

客户端应用软件调用语音能力时可以接入的第三方服务。

4 缩略语

下列缩略语适用于本文件。

APP:客户端应用软件(Application software)

URI:统一资源标识符(Uniform Resource Identifier)

TEE:可信执行环境(Trusted Execution Environment)

SDK:软件开发工具包(Software Development Kit)

SE:安全单元(Secure Element)

5 总体要求

客户端应用软件分为资金交易类、信息采集类和资讯查询类。资金交易类客户端应用软件应符合资金交易、信息保护等所有技术及管理安全要求。信息采集类客户端应用软件应重点符合信息保护相关技术及管理安全要求。资讯查询类客户端应用软件参照执行相关客户端应用软件安全和管理要求。

本文件安全要求分为基本要求和增强要求两个层次,基本要求是针对客户端应用软件应该具有的基本保护能力提出的安全要求,增强要求为推荐要求。

6 客户端应用软件安全要求

6.1 身份认证安全

6.1.1 认证方式

基本要求: 

  • 客户端应用软件登录时应采用适宜的验证要素,包括但不限于口令、短信验证码、手势密码、生物特征识别等方式。
  • 应确保采用的身份验证要素相互独立,即部分要素的损坏或者泄露不应导致其他要素损坏或者泄露,如:用于登录验证的口令和用于交易的口令不能一致。
  • 客户端应用软件交易时应按照相关业务管理要求对用户身份进行认证,如:对于大额资金交易,客户端应采用两种或两种以上要素对用户身份进行认证等。
  • 对于手势密码、短信验证码、生物特征信息作为验证要素或验证要素组合中的一种时,应满足如下要求:
    • 若采用手势密码作为验证要素,手势密码应至少设置连续不间断的 4 个点;
    • 若采用短信验证码作为验证要素,短信验证码应仅使用一次,仅限于在规定时间内使用, 短信验证码应具备长度和随机性的要求,短信验证码所在的短信内容中,告知用户短信验证码的用途;
    • 若采用生物特征识别作为验证要素,应当符合国家、金融行业标准和相关信息安全管理要求,防止非法存储、复制和重放。
  • 若采用图形验证码作为验证的辅助要素,图形验证码应具有使用时间限制并仅能使用一次,图形验证码应由服务器生成,客户端源文件中不应包含图形验证码文本内容。
  • 图形验证码不得作为独立的身份验证要素。增强要求:
    • 客户端应用软件登录应采用两种或两种以上的要素对用户身份进行认证。
    • 在用户身份认证后,客户端应用软件进入终端系统后台时,如果超过设定时限后被唤醒切换到前台,应采取措施对用户身份重新认证。

6.1.2 认证信息安全

6.1.2.1 安全输入

基本要求:

客户端应用软件应提供客户输入银行卡支付密码和网络支付交易密码的即时防护功能,客户端应提供以下安全控制措施,或其他经攻击测试无法获取明文的安全防护措施。

  • 采取替换输入框原文。
  • 逐字符加密、字符加密。
  • 防范键盘窃听。
  • 采用自定义软键盘。

增强要求:

  • 客户端应用软件应提供客户输入信息的即时防护功能,如:卡片验证码、卡片有效期、银行卡账号、身份证号码、手机号码等信息。

6.1.2.2 个人金融信息展示

基本要求:

  • 客户端应用软件的口令框应默认屏蔽显示,屏蔽显示时应使用同一特殊字符(例如*或•)代替。
  • 客户端应用软件不应明文显示银行卡密码和网络支付交易密码。
  • 客户端应用软件展示个人金融信息时,应符合以下要求:
    • 处于未登录状态时,不应展示与个人信息主体相关的用户鉴别信息(如:卡片验证码、卡片有效期、登录密码、支付密码等);
    • 处于已登录状态时,个人金融信息展示的技术要求如下:
    • 除银行卡有效期外,用户鉴别信息(如:卡片验证码、登录密码、支付密码等)不应明文展示;
    • 对于银行卡号、客户法定名称、手机号码、证件类或其他识别标识信息等可以直接或组合后确定信息主体的信息应进行屏蔽展示,或由用户选择是否屏蔽展示,如需完整展示,应履行客户端身份验证,并做好此类信息管理,防范此类信息泄露风险;
    • 涉及其他信息主体的信息时,宜进行屏蔽展示,当满足如下条件之一时可不脱敏:其他方主动发起的活动包含的信息,如其他方发起交易、收付款;与其他方已建立信任关系(间接授权),如向其他方收款,其他方已付款;向其他方申请代付,其他方同意付款或者其他方在自己业务应用范围内的联系人;其他法律法规要求的情况。

6.1.3 认证失败处理

基本要求:

  • 客户端应用软件应提供认证失败处理功能,可采取结束会话、限制失败登录次数和自动退出等措施。
  • 在提示客户认证失败时,应模糊错误提示信息,防止错误提示信息中泄露用户全部账号、交易金额等敏感数据。

6.1.4 密码的设定与重置

基本要求:

  • 客户端应用软件应配合服务端提供密码复杂度校验功能,保证用户设置的密码达到一定的强度,避免采用简单交易密码或与客户个人信息相似度过高的交易密码。
  • 应严格限制使用初始登录密码与初始交易密码,若设置初始密码,应强制用户在首次登录后修改初始密码。
  • 在修改密码前,应对用户身份进行重新验证。
  • 修改密码时应对原密码输入错误次数进行限制。
  • 修改密码时新密码不应与原密码相同。
  • 在密码重置时,应使用短信验证码、用户注册信息校核等方式,对用户身份进行校验。

增强要求:

  • 在进行修改密码或密码重置时,应采用两种或两种以上要素进行身份认证,如:数字证书、生物特征信息等。
  • 应采取有效措施提醒客户避免设置与常用软件、网站相同或相似的用户名和密码组合,并采取有效措施引导客户设置独立的支付密码。

6.2 逻辑安全

6.2.1 逻辑安全设计

基本要求:

  • 对于认证、校验等安全保证功能的流程设计应充分考虑其合理性,避免逻辑漏洞的出现,确保认证流程无法被绕过。
  • 对于交易处理功能逻辑设计应充分考虑其合理性,避免逻辑漏洞的出现,保证资金交易安全。
  • 客户端代码实现应尽量避免调用存在安全漏洞的函数,避免敏感数据硬编码。

6.2.2 软件权限控制

基本要求:

  • 客户端应用软件向移动终端操作系统申请权限时,应遵循最小权限原则。

6.2.3 风险控制

基本要求:

  • 应设计合理的登录风险控制策略,包括但不限于:
    • 当用户闲置在线状态超出时限时,应设计合理的账户登录超时控制策略;
    • 合理的多点登录策略,如:提示登录信息或退出先登录的账户等策略;
    • 合理的长期未登录控制策略,当用户长时间未登录时,应综合考虑风险情况,增大认证强度。
  • 应设计合理的交易风险控制策略,包括但不限于:
    • 针对不同的资金交易金额,应设计合理的身份认证策略;
    • 针对不同的资金交易业务场景,应设计合理的策略,如:限额控制策略、时限控制策略等。
  • 客户端应用软件应配合业务交易风险控制策略,以安全的方式将相关信息上送至风险控制系统。

6.2.4 回退处理

基本要求:

  • 交易过程中如遇交易失败或在交易完成前用户进行撤销操作,应返回到交易前的有效状态。

6.2.5 异常处理

基本要求:

  • 客户端应用软件发生故障产生的异常信息,不应泄露用户的敏感数据。
  • 当交易出现异常时,客户端应用软件应向客户提示出错等信息,但不应泄露用户的敏感数据。

6.3 安全功能设计

6.3.1 组件安全

基本要求:

  • 客户端应用软件应避免使用存在已知漏洞的系统组件与第三方组件。
  • 客户端应用软件在使用第三方组件时,应避免第三方组件未经授权收集客户端应用软件信息和个人信息。

6.3.2 接口安全

基本要求:

  • 客户端应用软件应对软件接口进行保护,防止其他应用对客户端应用软件接口进行非授权调用。
  • 客户端应用软件应对传入的 URI 进行校验与安全处理,防止客户端应用软件运行异常或操作异常。
  • 当客户端应用软件需要与 TEE、SE 结合使用时,应避免使用存在已知漏洞的接口。

6.3.3 抗攻击能力

基本要求:

  • 客户端应用软件应具备基本的抗攻击能力,能抵御静态分析、动态调试等操作。
  • 客户端代码应使用代码加壳、代码混淆、检测调试器等手段对客户端应用软件进行安全保护。
  • 客户端应用软件安装、启动、更新时应对自身的完整性和真实性进行校验,具备抵御篡改、替换或劫持的能力。
  • 客户端应用软件如使用安全输入控件,该控件应具备抵御一定程度攻击的能力。

增强要求:

  • 客户端应用软件如使用安全输入控件,该控件应具备检测自身是否正在被调试的能力,并采取适当的风控措施,如:给予用户风险提示。

6.3.4 客户端应用软件环境检测

基本要求:

  • 客户端应用软件在运行时应具备对运行环境的检查能力,检查的范围可包括:系统是否被未经授权获取管理员权限、程序运行环境是否可信(如:是否运行在模拟器或虚拟机中)等,并能向后台系统反馈设备信息等。

6.4 密码算法及密钥管理

6.4.1 密码算法

基本要求:

  • 客户端应用软件应使用密码算法对资金有关交易或重要业务操作进行保护。
  • 密码算法、密钥长度及密钥管理方式应符合国家密码主管部门的要求。

6.4.2 密钥管理

基本要求:

  • 密钥在传输过程中应使用密码算法对密钥进行保护。
  • 随机生成的密钥应具有一定的随机性与不可预测性。
  • 密钥应加密存储,并确保密钥储存位置和形式的安全。

6.5 数据安全

6.5.1 数据获取

6.5.1.1 数据防窃取

基本要求:

  • 客户端应用软件应保证内存中不应存在完整的银行卡密码和网络支付交易密码明文。
  • 客户端应用软件的临时文件中不应出现支付敏感信息,临时文件包括但不限于 Cookies、本地临时文件等。
  • 客户端应用软件程序应禁止在身份认证结束后存储支付敏感信息,防止支付敏感信息泄露。
  • 客户端应用软件运行日志中不应打印支付敏感信息,不应打印完整的敏感数据原文。

增强要求:

  • 应采取技术手段防止内存中加密的敏感数据被还原为明文。
  • 客户端应用软件应实现身份认证过程的防截屏、录屏,如:输入手势验证码、登录口令等。

6.5.1.2 数据防篡改

基本要求:

  • 用户输入关键交易数据时,如:收款人信息、交易金额、订单号等,应采取防篡改机制保证数据不被移动终端的其他程序篡改。

6.5.1.3 数据有效性

基本要求:

  • 客户端应用软件在数据获取时提供有效性校验功能,确保通过人机接口或通信接口输入的数据格式或长度等信息符合系统设定要求。

6.5.2 数据访问控制

基本要求:

  • 应采取措施保护客户端应用软件数据仅能被授权用户或授权应用组件访问。
  • 客户端应用软件在授权范围内,不应访问非业务必需的文件和数据。

6.5.3 数据传输

6.5.3.1 通讯安全

基本要求:

  • 应在客户端应用软件与服务器之间建立安全的信息传输通道,协议版本应及时更新至安全稳定版本。
  • 应确保采用的安全协议不包含已知的公开漏洞。
  • 客户端应用软件与服务器应进行双向认证,可通过密钥、证书等密码技术手段实现服务器与客户端应用软件之间的安全认证。

6.5.3.2 数据保密性

基本要求:

  • 敏感数据(如:登录口令、支付敏感信息等)在客户端应用软件与本地其他应用软件间传输时,应采取加密等措施确保其保密性,若本地其他应用软件不能提供与金融客户端软件相应等级的加密接口,则应评估敏感数据调用的风险,并设计补救措施。
  • 敏感数据(如:登录口令、支付敏感信息等)在通过公共网络传输时,应采取加密等措施确保其保密性。

6.5.3.3 数据完整性

基本要求:

  • 关键的交易数据,如:收款人信息、交易金额、订单号等,在客户端应用软件与本地其他应 用软件间传输时,应采取措施(如:数字签名、MAC 等)确保其完整性,若本地其他应用软件不能提供与金融客户端软件相应等级的数据完整性保护措施,则应评估关键数据传输的风险, 并设计补救措施。
  • 关键的交易数据、个人身份信息,如:收款人信息、交易金额、订单号、身份证号码等,在通过公共网络传输时,应采取措施(如:数字签名、MAC 等)确保其完整性。

6.5.3.4 数据抗抵赖

基本要求:

  • 通过客户端应用软件发起的资金类交易报文,应确保交易报文的不可抵赖性,在有条件的情况下应采用数字证书技术。

6.5.3.5 数据防重放

基本要求:

  • 通过客户端应用软件发起的身份认证或资金类交易报文,应能够防止重放攻击。

6.5.4 数据存储

6.5.4.1 个人金融信息存储

基本要求:

  • 客户端应用软件不应以任何形式存储用户的支付敏感信息与金融业务查询口令。
  • 在满足法律、管理规定的前提下,客户端应用软件应仅保存业务必需的个人金融信息,并限制数据存储量。

6.5.4.2 加密密钥存储

基本要求:

  • 客户端应用软件应确保无法通过逆向工程等手段直接从本地文件系统中恢复完整的密钥明文。

6.5.5 数据展示

基本要求:

  • 除交易对账、转账收款方确认等必须由用户确认的情况外,客户端应用软件在显示个人信息,如: 银行账号、身份证号码、手机号码、姓名等时应屏蔽关键字段。

6.5.6 数据销毁

6.5.6.1 残余信息保护

基本要求:

  • 客户端应用软件应在敏感数据使用完毕后,对其立即进行清除。
  • 客户端应用软件进程被结束时,应清除非业务功能运行所必需留存的业务数据,保证客户信息的安全性。
  • 客户端应用软件卸载完成后,文件系统中不应残留任何个人金融信息。增强要求:
  • 客户端应用软件应确保无法通过技术手段恢复已清除的敏感数据。

6.5.6.2 页面返回保护

基本要求:

  • 客户端应用软件应支持页面返回后自动清除银行卡密码、网络支付交易密码、登录口令等支付敏感信息的机制。

增强要求:

  • 客户端应用软件应对后台任务列表中的预览界面采取模糊或其他防护措施。
  • 当客户端应用软件从前台进入后台时,超过设定时限后应清除页面中已输入的敏感数据。

6.5.6.3 会话失效

基本要求:

  • 客户端应用软件在安全退出登录时,应向服务器发送会话结束请求,使当前会话状态失效。

7 客户端应用软件管理要求

7.1 设计要求

基本要求: 

  • 客户端应用软件设计应遵循安全、可靠、易用、可维护和可扩展等原则,制定用于指导客户端应用软件设计与开发的总体方案。
  • 客户端应用软件应提供易用、风格统一、体验良好的用户界面。
  • 客户端应用软件应遵循合法、正当、必要的原则,不收集与所提供服务无关的个人金融信息。
  • 客户端应用软件收集个人金融信息或用户授权等操作前,要以通俗易懂、简单明了的方式展示个人金融信息收集使用规则,并经个人金融信息主体自主选择同意。
  • 客户端应用软件不得以默认、捆绑、停止安装使用等手段变相强迫用户授权,不得违反与用户的约定收集使用个人金融信息。

增强要求:

  • 客户端应用软件设计在遵循易用性原则的基础上,应采用人工智能技术。
  • 客户端应用软件应提供访问、更正个人金融信息,以及授权撤销、账户注销等功能。

7.2 开发要求

基本要求: 

  • 客户端应用软件开发过程中应遵守严格的开发流程、项目管理流程和编码安全规范,进行完整的测试,避免在请求、响应、存储、配置等功能中存在漏洞。
  • 客户端应用软件开发过程中应建立并维护开发文档。
  • 客户端应用软件开发完成后,应同步完成产品手册、用户手册或提供在线帮助说明功能。

7.3 发布要求

基本要求: 

  • 客户端应用软件应有规范的上线发布流程,由应用软件的所有方对应用软件进行签名和保护,标识应用软件的来源和发布者,提供安全可靠的应用软件下载、发布、升级渠道。
  • 客户端应用软件应当删除调试或测试中存留的敏感数据。
  • 客户端应用软件安装过程中,应拥有独立的安装目录,唯一的应用标识符,明确的版本序号,不得篡改、覆盖、删除系统文件和其他软件。
  • 客户端应用软件有新版本时,不能未经用户允许自动安装新版本。
  • 若客户端应用软件支持动态模块更新,应使用加密信道与服务端通信传输更新模块或对更新模块进行签名校验;动态模块更新后不得影响用户使用,不得修改用户已有的安全配置。

7.4 维护要求

基本要求: 

  • 应制定科学、合理的管理策略和执行制度,指导各类角色的工作协同、实施步骤、质量管控、安全检测等,规范日常运维流程。
  • 客户端应用软件应具有明确的应用标识符和版本序号,设计合理的更新接口,当某一版本被证明存在安全隐患时,应及时进行修复更新。
  • 以 SDK 等形式对外提供金融交易类服务时,应记录 SDK 信息及引用本 SDK 的外部应用软件信息。