本标准由中国人民银行提出。 木制标准由全国金融标准化技术委员会SAC/TC(180)归口。 本标准负责起草单位:中国人民银行科技司、中国金融电子集团公司。 本标准参加起草单位:中国工商银行股份有限公司、中国农业银行股份有限公司、中国银行股份有限公司、中国邮政储蓄银行股份有限公司。 、银联股份有限公司、中国民生银行股份有限公司、中信银行股份有限公司、中国移动电子商务股份有限公司、天翼电子商务股份有限公司、联步支付有限公司., 浙江蚂蚁小微金融服务集团有限公司, 财付通支付科技有限公司, 京东数字科技控股有限公司, 拉卡拉支付有限公司, 微信中金国盛认证有限公司、微信云闪付金卡科技有限公司、中金金融认证中心有限公司、IIJR/T 0092-2024 工业和信息化部信息产业信息安全评测中心计算机与信息化部微电子发展研究中心、微信软件产品质量检验中心、科大讯飞股份有限公司。 本标准主要起草人:李伟、李兴峰、杨谦、聂丽耀、努尔彦、齐吉、唐钦章、关晓辉, 刘玉露, 郭栋, 刘云, 刘利康, 付小康, 张兴, 高志敏, 高强毅, 黄本涛, 王飞宇, 吴永强, 陈伟, 宋立国, 黄江, 张健, 高远,陈龙、周思杰、周晓林、李钰、朱克瑞、韩露、刘建松、刘先伟、赵亮、姚建伟、黄小培、刘雷、曹伟、孙伟新、宋正、邓凡平、赖木斌, 石立龙, 王洪贤, 王冠华, 王秀军, 马洪涛, 孙贤, 纪崇莲, 马松松, 胡一鸣, 于泉, 吴振宇, 卢坤, 马万忠, 蒯天祥, 张文博, 曹小龙, 李盛昌,任旭龙,陕西晨阳,杨银鹏,刘婷,刘琼瑶。
本标准所代替标准的历次版本发布情况为: ——JR/T 0092-2012。 JR/T 0092-2012于2012年12月首次发布,本次为第一次修订。 二 IJR/T 0092—2024 移动金融客户端应用软件安全管理规范 1 范围 本标准规定了移动金融客户端应用软件的安全要求,以及客户端应用软件设计、开发、维护和发布的管理要求。 本标准适用于移动金融客户端应用软件的设计、开发、维护和发布过程,也适用于评估机构对相关应用程序的安全性和标准符合性评估。 2 术语和定义下列术语和定义适用于本文件。 2.1 移动金融客户端应用软件 移动应用是在移动终端上为用户提供金融交易服务的应用软件。 注:包括但不限于可执行文件组件等。 2.2 基金交易客户端应用软件 客户端应用是直接为用户提供基金交易服务的移动金融客户端应用软件。 注:包括但不限于手机银行、支付APP等。 2.3 信息采集客户端应用软件co II ect i on c I ent 不直接向用户提供金融交易服务的移动金融客户端应用软件,但需要收集敏感的个人信息。
2.4 信息查询客户端应用软件客户端应用是一款移动金融客户端应用软件,仅提供金融产品推广、信息查询、信息推送等服务。 2.5 个人金融信息:金融机构通过提供金融产品和服务或者其他渠道获取、处理和存储的个人信息。 注释包括账户信息识别信息、金融交易信息、个人身份信息、财产信息、贷款信息等反映特定个人某些情况的信息。 注2:改写GB/T-2017,定义3丄2.6支付敏感信息JR/T 0092-2024支付信息涉及支付主体隐私和身份的重要信息。 注:包括但不限于银行卡磁道或芯片信息、卡验证码、卡有效期、银行卡密码、网上支付交易密码等。 2.7 语音识别还将人类语音中的词汇内容转换为计算机可读输入。 示例:击键、二进制编码或字符序列。 2.8 语音合成文本转是将文本信息转换为语音数据的技术,涉及声学、语言学、数字信号处理、多媒体等多种尖端高科技技术。
2.9 自然语言理解是利用自然语言与计算机进行通信的技术。 2. 10 第三方信息源:客户端应用软件调用语音能力时可以访问的第三方服务。 3 缩略语 下列缩略语适用于本文件。 APP:客户端应用软件( ) URI:统一资源标识符( ) TEE:可信执行环境( ) SDK:软件开发工具包(Kit) SE:安全单元( ) 4 总体要求 客户端应用软件分为资金交易、信息采集和信息查询。 资金交易客户端应用软件应符合资金交易和信息保护的所有技术和管理安全要求。 信息采集客户端应用软件应重点遵守信息保护相关的技术和管理安全要求。 信息查询客户端应用软件参照相关客户端应用软件安全和管理要求。 该标准的安全要求分为两个级别:基本要求和增强要求。 基本要求是客户端应用软件应具备的基本保护能力的安全要求,增强要求是推荐要求。
5 客户端应用软件安全要求 5.1 身份认证安全 5.1.1 认证方式 2JR/T 0092-2024 基本要求: a) 客户端应用软件在登录时应使用适当的验证元素,包括但不限于密码、短信验证码、手势密码、生物识别等方式。 b) 应保证所使用的身份验证要素相互独立,即某些要素的损坏或泄露不应导致其他要素的损坏或泄漏,例如:用于登录验证的密码和交易密码不能一致。 c) 客户端应用软件在交易时应按照相关业务管理要求对用户身份进行认证。 例如,对于大额金融交易,客户端应使用两种或两种以上的因素来验证用户的身份等。 d) 当手势密码、短信验证码、生物识别信息作为验证因素之一或组合时验证因素的选择,应满足以下要求: · 如果采用手势密码作为验证因素,则手势密码应设置为至少 4 个连续且不间断的点; · 如果采用短信验证码作为验证因素,则手势密码应设置为至少 4 个连续且不间断的点;短信验证码只能使用一次,且只能在指定时间内使用。 短信验证码应满足长度和随机性要求。 在短信验证码所在的短信内容中,告知用户短信验证码的用途; · 若采用生物特征识别作为验证因素,应符合国家和金融行业标准及相关信息安全管理要求,防止非法存储、复制和重放。 e) 如果使用图形验证码作为验证的辅助要素,则图形验证码应有时间限制,且只能使用一次。 图形验证码应由服务器生成,客户端源文件不应包含图形验证码的文本内容。
f) 图形验证码不得用作独立的验证元素。 增强要求: a) 客户端应用软件登录应使用两个或多个因素来验证用户身份。 b) 用户身份认证后,当客户端应用软件进入终端系统后台时,如果超过设定的时限后唤醒并切换到前台,应采取措施重新认证用户身份。 5. 1. 2 认证信息安全 5. 1. 2. 1 安全输入的基本要求:客户端应用软件应为客户输入银行卡支付密码和网上支付交易密码提供即时保护功能。 客户端应提供以下安全控制措施,或其他经攻击测试后无法获取明文的安全防护措施。 a) 替换输入框原来的文字。 b) 逐字符加密,字符加密。 c) 防止键盘窃听。 d) 使用自定义软键盘。 增强要求:客户端应用软件应对客户输入信息提供即时保护功能,如:卡验证码、卡有效期、银行卡账号、身份证号码、手机号码等信息。 5.1.2。 2 个人财务信息显示的基本要求: a) 客户端应用软件的密码框应默认屏蔽并显示。 阻止时,应使用相同的特殊字符(例如 * 或 ・)代替。 b) 客户端应用软件不应清晰显示银行卡密码和网上支付交易密码。 c) 客户端应用软件显示个人金融信息时,应符合以下要求: 3 JR/T 0092—2024• 未登录时,与个人信息主体相关的用户识别信息(如:卡验证码、卡有效期、登录密码、支付密码等); • 登录时,个人金融信息显示的技术要求如下: ❖ 除银行卡有效期外,不应显示用户身份信息(如卡验证码、登录密码、支付密码等)。纯文本。 ❖ 银行卡号、客户法定姓名、手机号码、证件或其他能够直接或综合确定信息主体的识别信息是否应当屏蔽显示,或者用户可以选择是否屏蔽显示。 若完整展示时,应进行客户身份验证,并妥善管理该等信息,防止该等信息泄露的风险; 涉及其他信息主体信息时,应进行筛选展示,满足以下条件之一的,无需脱敏■ 其他方主动发起的活动中包含的信息,如其他方发起交易、收支等; ■ 已与其他方建立信任关系(间接授权),如向其他方收款,且对方已付款:代表其他方申请付款、他人同意付款的一方或其联系人其业务适用范围内的其他当事人; ■ 法律、法规规定的其他情形。
5. 1. 3 认证失败处理的基本要求 a) 客户端应用软件应提供认证失败处理功能,可以采取结束会话、限制登录失败次数、自动注销等措施。 b) 提示客户认证失败时,应对错误信息进行模糊处理,防止错误信息泄露用户整个账号、交易金额等敏感数据。 注:敏感数据类型及范围请咨询参见附录9 5.1.4。 设置和重置密码的基本要求 a) 客户端应用软件应与服务器配合提供密码复杂度验证功能,以保证用户设置的密码达到一定级别。 强度,避免使用简单的交易密码或与客户个人信息过于相似的交易密码。 b) 应严格限制初始登录密码和初始交易密码的使用。 如果设置了初始密码,用户首次登录后应强制更改初始密码。 c) 修改密码前,应重新验证用户身份。 d) 修改密码时,应限制原密码输入错误的次数。 e) 修改密码时,微信码不得与原密码相同。 f) 重置密码时,应通过短信验证码、用户注册信息验证等方式验证用户身份。 增强要求 a) 更改密码或重置密码时,应使用两个或多个元素进行身份验证,例如b) 应采取有效措施提醒客户避免设置与常用软件、网站相同或相似的用户名和密码组合,并采取有效措施引导客户设置自主支付密码。
5.2 逻辑安全 5.2.1 逻辑安全设计基本要求 a) 应充分考虑认证、验证等安全保障功能流程设计的合理性,避免逻辑漏洞的发生,确保符合 JR/T 0092—2024 的要求。身份验证过程无法绕过。 b) 交易处理功能的逻辑设计应充分考虑其合理性,避免逻辑漏洞的发生,保证资金交易的安全。 c) 客户端代码实现应尽量避免调用存在安全漏洞的函数,避免对敏感数据进行硬编码。 5.2.2 软件权限控制的基本要求:客户端应用软件向移动终端操作系统申请权限时,应遵循最小权限原则。 5. 2 . 3 风险控制的基本要求: a) 应设计合理的登录风险控制策略,包括但不限于: · 当用户闲置在线状态超过时限时,应设计合理的账户登录超时控制策略; · 合理的多点登录策略,如提示登录信息或退出第一个登录的账户; · 合理的长期不登录控制策略。 当用户长时间未登录时,应综合考虑风险情况,加大认证强度。 b) 应设计合理的交易风险控制策略,包括但不限于: ・ 针对不同的资金交易金额,应设计合理的身份认证策略;・ 针对不同的资金交易业务场景,设计合理的策略,如:限额控制策略、时限控制策略等。 c) 客户端应用软件应配合业务交易风控策略,将相关信息上传至风控系统。一种安全的方式。
5.2.4回滚处理的基本要求:如果事务过程中事务失败或者用户在事务完成之前执行撤销操作,则应将事务恢复到事务前的有效状态。 5.2.5 异常处理的基本要求: a) 客户端应用软件故障产生的异常信息不应泄露用户敏感数据。 b) 当交易发生异常时,客户端应用软件应向客户提示错误等信息,但不应泄露用户的敏感数据。 5.3 安全功能设计 5.3.1 组件安全的基本要求 a) 客户端应用软件应避免使用系统组件和已知存在漏洞的第三方组件。 b) 当客户端应用软件使用第三方组件时,第三方组件应防止未经授权收集客户端应用软件信息和个人信息。 5. 3. 2 接口安全的基本要求: a) 客户端应用软件应保护软件接口,防止其他应用程序对客户端应用软件接口进行未经授权的调用。 b) 客户端应用软件应对传入的URI进行验证并安全处理,防止客户端应用软件运行异常或操作异常。 5 JR/T 0092-2024 c) 当客户端应用软件需要与TEE、SE结合使用时,应避免存在已知漏洞的接口。 5. 3. 3 抗攻击能力基本要求: a) 客户端应用软件应具有基本的抗攻击能力,能够抵抗静态分析、动态调试等操作。
b) 客户端代码应采用代码加壳、代码混淆、检测调试器等手段来安全保护客户端应用软件。 c) 客户端应用软件在安装、启动、更新时应验证其完整性和真实性,并具有抗篡改、替换、劫持的能力。 d) 如果客户端应用软件使用安全输入控件,则该控件应具有承受一定程度攻击的能力。 增强要求:如果客户端应用软件使用安全输入控件,该控件应具有检测其是否正在调试的能力,并采取适当的风险控制措施,例如给予用户风险提示。 5. 3 . 4 客户端应用软件环境检测的基本要求: 客户端应用软件应具备运行时检测运行环境的能力。 检查的范围可能包括:系统是否被未经授权获取管理员权限和程序。 运行环境是否可信(如是否运行在模拟器或虚拟机中)等,能否向后台系统反馈设备信息等。 5. 4 密码算法与密钥管理 5. 4 1 密码算法的基本要求: a) 客户端应用软件应使用密码算法来保护与资金相关的交易或重要业务操作。 b) 密码算法、密钥长度和密钥管理方法应符合国家密码管理机构的要求。 5. 4. 2 密钥管理的基本要求: a) 密钥应使用密码算法来保护密钥在传输过程中的安全。 b) 随机生成的密钥应具有一定程度的随机性和不可预测性。
c) 密钥应加密存储,并且密钥存储的位置和形式必须安全。 5. 5 数据安全 5. 5 . 1 数据采集 5. 5 . 1. 1 数据防盗基本要求: a) 客户端应用软件应保证内存中不存在完整的明文银行卡密码和网上支付交易密码。 b) 支付敏感信息不应出现在客户端应用软件的临时文件中。 临时文件包括但不限于。 本地临时文件等。 c) 客户端应用软件程序应在身份认证完成后禁止存储支付敏感信息,防止支付敏感信息泄露。 d) 客户端应用软件运行日志中不应打印敏感支付信息,也不应打印敏感数据的完整原文。 6JR/T 0092-2024增强要求: a) 应采用技术手段防止内存中加密的敏感数据被恢复为明文。 b) 客户端应用软件应防止在身份认证过程中进行截图、录屏,如输入手势验证码、登录密码等。 5. 5. 1. 2 数据防篡改基本要求:当用户输入关键交易数据,如收款人信息、交易金额、订单号等时,应采用防篡改机制,保证数据不被其他程序篡改在移动终端上。 5. 5 . 1. 3 数据有效性的基本要求:客户端应用软件在采集数据时提供有效性检查功能,确保通过人机界面或通讯接口输入的数据格式或长度满足系统设置要求。
5.5.2 数据访问控制的基本要求: a) 应采取措施保护客户端应用软件数据,使其只能由授权用户或授权应用组件访问。 b) 客户端应用软件不应在授权范围内访问非业务所需的文件和数据。 5. 5 . 3 数据传输 5. 5. 3 . 1 通信安全的基本要求: a) 客户端应用软件与服务器之间应建立安全的信息传输通道,协议版本应及时更新为安全稳定的版本。 b) 应确保所采用的安全协议不包含已知的公共漏洞。 c) 客户端应用软件和服务器应进行双向认证,服务器与客户端应用软件之间可以通过密钥、证书等密码技术手段实现安全认证。 5. 5. 3. 2 数据保密的基本要求: a) 客户端应用软件与其他本地应用软件之间传输敏感数据(如登录密码、敏感支付信息等)时,应采取加密等措施确保其机密性 如果其他本地应用软件无法与金融客户端软件提供相应级别的加密接口,则应评估敏感数据调用的风险并设计补救措施。 b) 通过公共网络传输敏感数据(如登录密码、敏感支付信息等)时,应采取加密等措施确保其机密性。 5. 5. 3. 3 数据完整性的基本要求: a) 客户端应用软件与本地其他应用软件之间应传输关键交易数据,如收款人信息、交易金额、订单号等。 确保其完整性的措施(如数字签名、MAC等)。 如果其他本地应用软件无法提供与金融客户端软件相应级别的数据完整性保护措施,则应评估关键数据传输风险并制定补救措施。 。
7 JR/T 0092—)关键交易数据和个人身份信息,如收款人信息、交易金额、订单号、身份证号等通过公共网络传输时,应采取措施(如:数字签名、MAC等) .) 以确保其完整性。 5. 5. 3. 4 数据不可否认性基本要求:通过客户端应用软件发起的基金交易报文应保证交易报文的不可否认性,条件允许时应采用数字证书技术。 5.5.3.5 数据防重放的基本要求:通过客户端应用软件发起的身份认证或金融交易消息应能够防止重放攻击。 5. 5 . 4 数据存储 5. 5. 4 . 1 个人理财