根据 PSD2,多因素身份验证的元素必须是独立的,因此一个元素的妥协不会危及另一个元素。
这是指令中的文章:
*第 9 条
元素的独立性,
- 支付服务提供者应确保对第六条、第七条和第八条所述强客户认证要素的使用在技术、算法和参数等方面采取措施,确保违反其中一项要素不损害其他元素的可靠性。
- 通过手机、平板电脑等多用途设备使用强客户认证要素或认证码的,支付服务提供者应采取安全措施,降低多用途设备被盗用的风险。
- 就第 2 款而言,缓解措施应包括以下各项: (a) 通过安装在多用途设备内的软件使用单独的安全执行环境;(b) 确保软件或设备未被付款人或第三方更改的机制,或减轻此类更改后果的机制。*
问题是在这种情况下什么可以被认为是独立的?
让我们想象以下场景:
客户使用他/她的手机浏览器访问网上银行网站。身份验证需要密码和另一个元素(基于拥有)。
如果第二个因素是通过 SMS 向手机发送一次性密码,则一个恶意软件就足以破坏手机,安装键盘记录程序来窃取密码,并在 SMS 到达时窃取它。
基于此通过 SMS 的 OTP 是不行的。
现在让我们假设 SMS OTP 被推送通知取代(客户应事先安装银行的移动应用程序)。确切实施的可能性很小:
通过推送发送 OTP
弹出一个批准窗口,用户需要点击批准按钮(就像谷歌一样)
弹出一个验证码,用户需要解决它
使用软令牌生成 OTP
等等。
在上述任何一种解决方案的情况下,如果攻击者可以利用手机操作系统中的漏洞并获得root权限,他就可以窃取客户密码并至少在理论上使用第二个身份验证因素来验证交易(通过安装一些一种远程访问工具)。
由于用户体验的原因,硬令牌也不可行。
Android 和 iOS 使用的单独沙箱是否可以被视为满足指令以下部分的安全执行环境?
通过安装在多功能设备内的软件使用分离的安全执行环境
什么是既符合法规又方便客户的有效解决方案?