返回 AI 资讯
社区讨论LinuxDo 最新

【长文】对于此次 Apple Pay 「盗刷」事件的复盘、分析和不严谨结论

就在这几天前后爆发了一场中小规模的 Apple Pay 盗刷问题,使得对于此项技术和功能的质疑越发严重。特此以不是那么严谨的形式,从不同角度分析和复盘此次事件的起因、经过和技术细节。尽量以客观真实的方式阐述事件,本文章不针对任何组织或主体,如果有疑问,欢迎各位指出。 起因 根据小红书等平台的消息,在 9 月 26 日晚上出现了首次对于中国银行卓隽万事达信用卡的盗刷情况,且可以出现交易的类型为 Apple Pay 虚拟卡,在 Apple Wallet 中也可以看到卡片的交易详情。此后在很短的时间内盗刷仍在延续,并且…

内容摘要

作者:#StarFox 板块:#搞七捻三 就在这几天前后爆发了一场中小规模的 Apple Pay 盗刷问题,使得对于此项技术和功能的质疑越发严重。特此以不是那么严谨的形式,从不同角度分析和复盘此次事件的起因、经过和技术细节。尽量以客观真实的方式阐述事件,本文章不针对任何组织或主体,如果有疑问,欢迎各位指出。 起因 根据小红书等平台的消息,在 9 月 26 日晚上出现了首次对于中国银行卓隽万事达信用卡的盗刷情况,且可以出现交易的类型为 Apple Pay 虚拟卡,在 Apple Wallet 中也可以看到卡片的交易详情。此后在很短的时间内盗刷仍在延续,并且扩散到了中国银行的所有种类的万事达借记卡,从单币种到全币种完全覆盖,至此盗刷仍在进一步扩大,逐步地在招商银行、农业银行等银行也出现了相同的盗刷问题。 至 27 号,目前盗刷的大浪头已经过去,但仍有小部分在不断盗刷,好多漏洞点已被补上,至今还有不少持卡者正通过报警和 dispute 等方式寻求款项争议的帮助。经过案例整合后发现,绝大部分盗刷卡片的卡组织都是 Mastercard 万事达 。 目前卡类型没有具体的限制,主要以信用卡为主,借记卡也掺杂在其中,但主要比例不是很大,并且不涉及某个卡种、币种或其他的类型,只要是 Mastercard 万事达卡再加上 Apple Pay 绑定就存在着相关问题风险。 技术概述 在找到此次 Apple Pay 盗刷事件的主要核心问题所在,最需要的应该是先简单了解一下 Apple Pay 的盗刷、Apple Pay 的支付流程和简单的技术细节 首先要知道,Apple Pay 为什么一直被说为安全,是因为它采用 tokenization 标记化支付技术。 所谓 tokenization 标记化支付,可以简单理解为,之前你想要付款买一个东西,是需要你信用卡的信息才能够向你的信用卡扣款。你每次拿着实体卡向别人支付,实际上也只不过是把这套信息给了商家,让商家用这套信息扣款罢了。 但这样的话就出现一个问题:你无论向哪个商户付款,你给商户的信息永远是一套。那么只要有一个别有用心的商户拿到了你这套信息,他不再需要你的实体信用卡,就可以依靠这个信息直接向你的信用卡扣款,这样就会很危险,很容易被盗刷。 但是 Apple Pay 的 tokenization 不会把你真实的信用卡信息直接透露给商家,它会根据你真实的信用卡信息生成一套假的信用卡信息,每次都用这套假的信用卡信息向别人刷卡,并且每次的信息都会根据本地的加密算法进行刷新。这样的话,在不同的商户那里拿到的信息都不一样,商户也没有办法通过拿到的信息再扣款,因为这个信息用过一次就失效了。 将卡片添加到 Apple Pay 时,你输入卡片信息后,iPhone 会将信息经 Apple 服务器转发至银行服务器。银行服务器校验你能否开通 Apple Pay,若可以,便生成一个专门留存在你设备上的、为设备打造的设备虚拟卡号(DPAN,Device-PAN),再将虚拟卡号及加密密钥全部发送到你的 iPhone,由 iPhone 存储到一块单独芯片——Secure Element 芯片中。这块芯片与手机其他存储芯片分开,普通应用完全没有权限访问,甚至有的系统组件也不能访问 Secure Element 中的信息。 在你准备进行交易时,会打开 Apple Wallet,通过 Touch ID 或 Face ID 校验身份,用生物验证技术解锁 Secure Element 中的数据。此时,Secure Element 会完全在本地,通过银行传过来的 DPAN 和安全加密算法,生成一个一次性的支付信息,也就是 cryptogram。 之后 cryptogram 和 DPAN 会通过 NFC 传递给 POS 机,而加密算法和你的真实设备卡号都不会从 iPhone 中流出去。这样的话,商户那边拿到你的 cryptogram 之后只能用一次,第二次就用不了了,这便是 Apple Pay 的一个简单运作机制。 问题出在了哪里? 由于目前官方机构并没有发文,也没有一个明确的调查报告,万事网联中国及万事达中国已经发文要成立专项调查小组,但是具体的信息并没有传出,目前只能根据网上传出的信息来拼凑真实状况。以下信息皆为小道消息或推测,切勿完全当真。 1.DPAN设备虚拟卡号泄露问题 首先第一点,DPAN 及设备虚拟卡号它是从你的真实卡号生成出来的一个虚拟设备卡号,跟你的真实卡号是不一样的,但是为了让更多的 POS 机好识别,一般来说,DPAN 是按照银行卡卡号的格式走的,假如说你银行卡的卡号是 1234-1234-1234-1234,那么虚拟卡也就是 DPAN 的格式也是 1234-1234-XXXX-XXXX。卡号由卡 BIN 和卡号后半段组成。卡 BIN 是一张卡的卡头,也可以成为卡的信息。一般来说,同一个卡组织、同一家银行、同一个卡种、同一个地区,它们的前几位都是相同的。 当然也有不少卡组织有自己的 tokenization range 卡号池,这样的话同一卡组织内也不完全要求同样的 BIN,会从相关的卡池中直接随机一个卡 BIN 出来,这样就和原来卡号完全不一样了 而后半部分就是设备卡信息和真实卡不同的地方,这部分通常根据加密算法随机生成,这样的话就可以实现和原卡号后几位隔离开 但是,有一些信息指出,在有些卡组织(或某家银行)的内部交易中,似乎并没有严格按照加密的要求和规定,每次虚拟卡号的后 8 位或后 4 位随机生成,而是按照发卡顺序以 0001、0002、0003 的顺序按顺序生成。这样的话,不法分子或盗刷者在没有经历过真实 Apple Pay 交易的情况下便可轻松知道在某一个数字范围内的大批量卡号全部都是真实的,都可以用,便相当于直接获取了大批量的 DPAN 名单。 2.DPAN权限系统问题 问题又一次出现了,按理说 DPAN 会受到 DPAN 权限管理系统和 tokenization 的限制,只有在此银行允许通过线下或者线上交易的时候,DPAN 才是有效的,在其余场景下,只要没有获得授权,DPAN 都是没有用的,哪怕你获得了也只能干看。它本身虽然在很多国内草台班子的银行中被作为新开卡或者新开户在银行系统里处理,但它本身不应该拥有作为一个银行卡的完整权限,它应该是受限的,仅能在特定用途中被使用。 但是问题出现了,根据部分信息指出,很多银行的系统里错误地将 DPAN 虚拟设备卡片这张卡当成了一张具有完整权限的普通银行卡,并且没有对于使用这个卡号进行交易进行限制,也就是说,只要他人得到了这个卡号,就可以用这个卡号去进行交易。这使得 DPAN 在泄露之后又具有了可用权限。 3.三要素境外交易漏洞 但银行在进行境外线上交易的时候其实还是有很多防线的,最简单的防线就是三要素和 3DS。三要素就是卡号、卡有效期和 CVV 验证号,只有说输入完 3 个信息全部输入正确才能够进行交易;而 3DS 就是需要在输入三要素之后,进行银行的手机预留手机号验证或邮箱验证,相当于二次验证。这样的话不法分子得不到全量信息,看起来也没有什么问题的样子。 但是事实证明,在好多的银行内部并没有实现完全强制的三要素验证,也就是说在部分环境下,哪怕用户只输入三要素中的 2 个,比如说卡号和有效期,不输入 CVV 或者不做 3DS,也能完成验证。 卡号在前面说了,由于银行系统的问题,使得原来不能在线上用的 DPAN 变得可用,而有效期这个问题就更好解决了。虚拟卡的有效期都是按照开卡日期开始计算,一般有一个固定的 5 年或者几年,而万事网联的 Apple Pay 上线日期又很固定,有大量的用户都集中在上线的前一天、上线的第一天或第二天等日期内进行交易,进行新增的卡片。只要不法分子用几个常见的开卡日期做推算,在开卡日期基础上加 5 年或者几年,就可以直接推算出虚拟卡片的有效期,相当于 2 个要素都有了,就直接就可以实现在网站上直接扣款,无需进行验证。 另外,由于一部分 checkout 网站的不完善,不法分子通过伪装声明自己的付款是 Apple Pay 付款,因此骗过了 checkout 系统的眼睛,使得 checkout 不再校验 CVV 或者其他的安全措施。 于是在这 3 个漏洞的共同驱动下,最终导致只要不法分子拿到 DPAN 和有效期就可以直接刷。而且由于 DPAN 在银行系统中的记录是专门为 Apple Pay 等手机支付所提供的,所以就会被显示,所以交易信息就会被推送到 Apple Wallet 上,就会被认定为通过 Apple Pay 交易,于是到最后就被认定了,Apple Pay 被盗刷。 疑问? 1.为什么安卓手机没有被盗刷,反倒苹果的 Apple Pay 被盗刷了? 根据现有的资料和数据来说,主要是由卡组织提供的服务出现了问题。而目前支持 Mastercard 万事达及万事网联卡添加的 X pay 平台仅有苹果的 Apple Pay 一家,其他的华为 Pay、小米 Pay、荣耀 Pay 都不支持通过 Mastercard 万事达卡支付,自然也就不会有这个问题。 2.我之前使用了 AirCard 这个项目,更改了卡片,是不是这个项目有后门不安全? AirCard 这个项目的源码是公开的,虽然有些人会说安装的发行版本不一定是完全依照着源码构建的,但是 AirCard 所利用的漏洞其实是对于 Apple Wall

资讯来源

LinuxDo

原文链接

打开原文
【长文】对于此次 Apple Pay 「盗刷」事件的复盘、分析和不严谨结论 · AI 资讯 · AIGOOD - AIGOOD