网探咨询热线
135-3996-0231
随着移动互联网的广泛应用,移动金融服务迎来了井喷式增长的时代,移动金融APP的开发与应用也是成几何级数量递增,针对其的攻击持续不断,这些攻击直接影响到公民的客户信息及财产安全问题,提升移动金融APP的安全性已迫在眉睫。
金融APP安全设计与开发:
认证方式方面,应满足金融APP身份认证要素相互独立,金融APP的手势密码应满足至少为四个连续不间断的点;金融APP的短信验证码、图形验证码应满足使用时间限制为60秒,并且只能使用一次,短信验证码具备随机性,在短信验证码所在的短信内容要包含验证码的发送方、用途和有效时间,图形验证码不能作为独立的身份认证要素,需要配合其他认证方式一同使用;金融APP在新设备首次登陆,要满足2种及以上的身份认证方式进行认证。
认证信息安全部分,金融APP应在输入账号密码、银行卡支付密码、网络支付交易密码等环节,替换输入框原文、逐字符加密、字符加密、自定义安全软件键盘、防键盘窃听的方式,满足输入信息无法被明文获取;金融APP应对用户输入信息进行安全输入保护,保证无法获取输入信息;金融APP应具备认证失败的处理机制,如认证失败结束会话、限制认证失败次数和金融APP自动退出等措施;在认证失败时,只提供模糊的认证失败信息,失败信息中不能有用户账号、交易金额等敏感数据。
密码设定与重置方面,金融APP的密码应满足至少为6位,包含数字、大写字母、小写字母和特殊字符中的两种及以上组合;金融APP要具备密码复杂度校验,需要检测不能设置与用户身份证号、出生日期、手机号等相似度过高的交易密码;修改或重置密码时,需要采用数字证书、生物特征信息等两种及以上的要素进行双因子认证;金融APP在设置密码、修改密码的页面,需要明确有效的提示用户,不能与常用软件、网站设置相同或相似的用户名密码,可以通过页面的方式引导客户用户设置独立的支付密码。
逻辑安全设计方面,要采用自动化检测和渗透测试等针对金融APP认证、校验等功能进行测试,保证流程和功能逻辑设计合理且无法被绕过,不存在逻辑漏洞;必须对金融APP的代码进行检查,与已知安全漏洞进行对比,保证金融APP中不存在调用已知安全漏洞的函数、敏感数据的硬编码。软件权限控制方面,通过代码扫描或者行为检测工具,确保收集个人信息的权限遵循最小化原则;金融APP在申请权限时,明确弹出申请权限的目的,并表达清晰且经用户授权同意;当用户拒绝权限申请时,只能再提示一次,用来解释申请该权限的原因和无此权限的后果,金融APP不能频繁申请该权限,如1秒申请一次等情况。
风险控制方面,金融APP采取合理的登录风险控制策略、多点登录策略、长期未登录控制策略、交易风险控制策略,针对不同的资金交易业务场景,金融APP将相关信息上送至后端风险控制系统;用户拒绝非必要的权限申请,金融APP应正常提供业务。回退和异常处理方面,金融APP需要具备回退机制,如交易失败或交易完成前撤销等情况;金融APP发生故障时,未出现泄漏用户敏感数据的情形,如金融APP崩溃时,不泄漏用户姓名、银行卡账号、交易数据等敏感数据;交易出现异常时,金融APP提示的报错信息内容中不能包含用户银行卡密码敏感数据。
组件安全部分,应该将金融APP所使用系统组件和第三方SDK列出清单,并对照已知漏洞库中信息,进行排查,确保金融APP未使用存在已知漏洞的系统组件和第三方SDK;要将金融APP中第三方SDK所申请使用的权限列出清单,然后进行动态检测,检查在金融APP运行时第三方SDK实际申请使用的权限清单,进行对比检查,确保不存在第三方SDK未经授权的情况下收集客户端金融APP信息和个人信息的情况。接口安全方面,金融APP需要对接口进行安全保护,保证其他金融APP无法进行非授权的接口调用;金融APP需要对所有初入的URI进行校验和安全处理;金融APP需要使用安全的接口。
抗攻击能力方面,金融APP应具备抗攻击能力,可以抵御GDB、IDA等工具和Ptrace调试等静态分析、动态调试的操作;必须需要使用代码加壳、代码混淆、检测调试器等手段对APP进行保护,进行细粒度的代码加壳,采用独立的虚拟化保护技术;金融APP可以通过签名、加密等方式对APP本地资源文件、数据文件、配置文件、代码文件进行完整性保护,使APP具备抵御篡改、替换或劫持的能力;金融APP可使用第三方的安全输入控件,如第三安全键盘SDK,该SDK具备抵御攻击的能力;金融APP具有H5页面篡改、网页源代码暴露、穷举登录尝试、重放攻击、 SQL 注入、跨站脚本攻击、钓鱼、木马以及任意文件上传、下载等已知漏洞的防范能力。
客户端应用软件环境检测方面,满足金融APP在运行时具备运行环境的检查能力,包括:系统是否越狱或Root,运行环境是否可信、设备造假,通过修改器篡改手机硬件参数信息,伪造成新设备等等,并能向后台系统反馈设备环境信息。
通过满足上述逻辑设计安全、密码算法及密钥管理的安全要求,可规避金融APP本身缺陷和安全漏洞的产生;满足安全功能设计可以提高金融APP抗攻击能力,规避金融APP被逆向篡改的恶意分析、权限滥用导致的隐私泄露等安全风险;身份认证安全可进一步提高金融APP的入口安全,而数据获取、数据访问控制、数据传输、数据存储、数据展示及数据销毁全生命流程的数据安全,能够确保金融APP资产信息的保密性、完整性、可用性及抗抵赖性。在金融APP设计与开发过程中,应确保上述方面内容得到执行,才能有效的保护金融APP的安全稳定运行,保护客户信息和资金安全。
需要了解金融APP、小程序搭建,可以直接咨询网探科技——专业的app开发公司,需要了解app开发报价、开发方案,可以在线直接咨询我们。
声明:网探科技文章如需转载请注明原创来源。本站部分文章和图片来源网络编辑,如存在版权问题请及时沟通处理。文章观点仅代表作者本人,不代表网探立场。
请提交您的联系信息,快速获取专属您的需求解决方案!