密码
密码是用来控制对系统和服务的访问的秘密字符串。在二维码的语境里,最常见的用途是 Wi-Fi 连接信息中包含的密码。扫描Wi-Fi 二维码后密码会自动填入,省去手动输入复杂字符串的麻烦。即使是 16 个字符以上的随机密码,用二维码也能一瞬间输完,因而做到了安全性与便利性兼顾。
但是,二维码本身并没有把数据加密的功能。存进二维码的密码,任何人扫一下都能以明文读出来。这不仅限于 Wi-Fi 密码,验证令牌、API 密钥等所有秘密信息都是如此。把二维码张贴在公共场所时,应当把其中包含的密码视为已经公开的信息。
实务上的对策因用途而异。如果目的是共享 Wi-Fi 密码,就把访客用的网络单独分出来并定期更换密码。如果要用二维码传递验证信息,就使用一次性密码或带有效期的令牌,把泄露时的影响限制住。SQRC(安全二维码)可以把数据加密,但需要专用读取设备,缺少通用性。最安全的做法是二维码里只放链接,验证交给链接目标的网络服务一侧去做。
还有一点常被忽视:贴在墙上的二维码可以被人不声不响地换掉。有人在原来的贴纸上面盖一张自己做的二维码,把客人引到假的 Wi-Fi 登录页面骗取密码,这类事情已经发生过。定期目视检查贴纸有没有被覆盖、在码的旁边写清正确的网络名称,都是花不了钱的防线。