@David Chang 邀~
先简单回答一下:二维码支付总体而言是足够安全的,可以相信支付宝、微信、银联等不仅专业,而且会非常认真的对待支付里的任何问题——只是有时候会过于谨慎,以至于在用户体验和风险之间进行平衡时,可能会以损失用户体验为代价来确保足够的安全。

我试试看用最简单的方式让朋友们理解吧。

  • 二维码支付的安全与否,分为二维码部分和支付部分
  • 二维码部分主要看用什么扫码软件:用支付宝钱包、微信基本没问题(除非有漏洞被利用);
  • 支付部分,其实与二维码关系不大,还是手机支付领域的老问题。
  • 支付部分:
    • 以支付宝和微信的技术能力来说,是足够安全的(比如商户POS与平台、用户手机与平台的通讯、用户手机APP的安全性等等);
    • 从支付模式来说,主要是快捷支付模式,这部分问题是快捷支付是否安全;
    • 从风控角度来说,支付宝的经验更为丰富;
    • 从对消费者的保障来说,双方都引入了赔付机制和保险公司;
    • 从监管角度来说,还有央妈盯着,不必太担心;
    • 实际操作环境来说:会不会有钓鱼呢?有可能,需要消费者自己特别注意保持警惕——见下文最末提醒。

    利益相关:我的创业公司是支付宝授权代理商,为客户提供智能WiFi、支付宝和微信相关的解决方案,同时自己在发展商户做小平台运营。

    1. 在二维码支付里,二维码是做什么的?

    简单说:借助二维码生成和识别技术,在商户收银设备、用户手机之间传递交易必要的参数。

    • 发起支付:无论是买方、卖方,首先通过支付APP或者收银系统向支付平台服务器请求发起一笔支付;
    • 生成支付参数:服务器把支付相关的参数通过二维码图片返回给发起方;
    • 交换支付参数:发起方向对方展示二维码;
    • 核实支付参数:对方APP或收银设备扫码后,通过支付平台服务器确认该支付的参数、细节;
    • 确认支付:随后双方用某种方式表示认可支付;
    • 完成:支付平台服务器端完成支付动作,返回信息

    ——二维码最大的作用就是在交换交易参数环节:二维码方便携带参数、方便对方接收和识别。
    ——以上过程中,将二维码换成声波等其它方式,起到的作用也是一样的
    ——类似的,传统支付POS中也有二维码类似的问题,比如假读卡器(复制磁卡信息)、假密码键盘(复制密码,或未经银联安全认证的普通数字键盘)

    补充细节:

    1. 交易必要的参数加密生成二维码:比如当前用户信息(付款方)、商户信息(收款方)、交易流水号、交易时间戳等必要的参数,组合成特定的数据结构并经过一定的加密后,用二维码算法(比如流行的QR)生成二维码图片;
    2. 扫码、识别、提取参数、自动处理:
    • 用户发起交易、生成并出示二维码给商户;反之;
    • ——也就是其它朋友回答的主动扫码还是被动扫码

    2. 其它环节与二维码无关,那么二维码的安全问题在哪里?

    二维码的内容有不同类型,可能是一段文字,也可能是一个超链接地址 Url,等等
    问题出在扫码软件(二维码识别软件)对携带内容为超链接的二维码的处理方式
    一般的扫码软件,遇到内容Url类型的二维码就自动打开浏览器,访问对应的地址。
    这时候,如果二维码不是支付平台服务器生成的,就有可能被假冒的二维码引导自动访问钓鱼网站等,造成用户、商户的损失。
    这时,分两种情况:

    • 商户侧的系统生成假冒的二维码:用户没有足够的能力防范,这时候就有较大的安全隐患了;
    • 用户侧生成假冒的二维码:商户有义务、有能力保障自己的收银系统正确的连接支付平台服务器,不容易被用户侧假冒的二维码所欺骗。

    所以,2014年3月14日,央行叫停二维码支付主要是针对商户侧生成二维码这种模式。而用户侧生成二维码的模式,至少我们用支付宝一直是可以的。

    然而,进一步来看:

    3. 遇到商户侧的系统生成假冒二维码怎么办?

    其实不必太担心。
    因为在支付操作中,用户使用的是专用支付工具,不是一般的扫码软件。例如支付宝钱包(支付宝的支付APP)、微信(腾讯APP带支付功能)、银联钱包(银联的支付APP)。
    而这类专用的支付工具,其内置的扫码功能是不会自动打开浏览器去访问钓鱼网站的。

    具体原因:

    • 二维码采用了特定数据格式:为了防范此类问题、为了竞争,它们采用的二维码算法虽然是公共的,但携带的数据是自己平台特定的数据格式。扫码软件遇到特定数据格式时,才采取后续支付相关的动作,否则视为普通二维码处理;
    • 安全地址过滤:即便识别为普通二维码、内容为Url,这些APP也不会打开通用浏览器,而是由内置浏览器来访问特定Url。甚至在内置浏览器访问Url之前,会先经过服务器识别该Url是否在安全地址白名单,或者在黑名单之中。同时,有专门的安全团队负责维护这样的白名单、黑名单。

    可能的问题来自:

    • 那些专用的支付APP有安全漏洞被利用(绕过了上述安全机制);
    • 用户使用了其它的扫码软件(脱离了上述安全机制)扫描假冒二维码打开了钓鱼网站。

    所以,结论是:
    ——使用对应的支付APP扫描对应的二维码(支付宝对支付宝、微信对微信、银联对银联)
    ——并保持支付APP是最新版本

    4. 额外需要注意的是操作环境安全:免费Wi-Fi

    作为一个智能WiFi系统平台解决方案和运营服务方,我很负责地提醒消费者——你真正要担心的主要是:

    1. 假热点:假冒商户免费Wi-Fi钓鱼;
    2. 泄密:免费Wi-Fi传输不经加密可能存在的泄密(支付APP自己会加密,主要是其它内容如收发电子邮件、论坛和页游登录等等);
    3. 商户路由器被劫持(植入恶意代码):例如DNS劫持引起的钓鱼、中间人攻击、嗅探密码等

    ——所以,敏感操作暂时还是使用3G/4G吧!

    — 完 —

    本文作者:知乎用户(登录查看详情)

    【知乎日报】
    你都看到这啦,快来点我嘛 Σ(▼□▼メ)

    此问题还有 29 个回答,查看全部。
    延伸阅读:
    和「微信」捆绑在一起的「财付通」在未来是否有可能撼动「支付宝」的霸主地位?
    为什么支付宝与中国的网上银行使用用户体验欠佳的「安全控件」,而 PayPal 不使用?

    分享到