账户安全在现今互联网环境下一直是一个备受关注的话题。账户安全体系对任何一个平台而言,在保障真实用户个人信息安全以及良好的平台体验层面有着不可分割的作用。本文作者就从业务层面浅谈一下账户安全体系,主要就目前所涉及的几个主要业务点进行分析。
账户安全作为平台风险控制,需要从两个维度去履行自己的职责:一是注册方面,需要防控垃圾注册减少垃圾账号对平台带来的损害,主要防控刷单,薅羊毛,垃圾言论等行为,从根本上给平台制造一个清静的环境;另一方面则是登录,需要防止黑产通过各种手段盗取用户的账号,从而保障用户资金安全以及信息安全等。
目前账户安全体系的防控手段主要在业务以及产品两个层面,注册/登录业务和安全产品。
注册业务 垃圾注册一般电商网站、O2O平台等有补贴、优惠券等资金业务,垃圾注册不可避免。
1、注册方式垃圾注册目前有“机器注册”以及“人工手动批量注册”两种方式:
(1)机器注册
注册机批量扫注册接口,可以利用运营商提供的临时手机号实现短信收发,完成手机注册。
这一类账号特点是:
用户名相似度高,一般为3~5字中文+随机大小写英文; 注册用户ip聚合度高,即同个ip下短时间聚集大量同一来源的账号; 注册请求中大量字段信息为空(设备指纹、机型、行为打点数据)。(部分黑产可实现随机IP使注册账号IP不一致;通过抓包手段获取注册请求后反编译来破解我们的安全产品。)(2)人工注册
此类用户主要为一些薅羊毛用户以及刷单用户,通过购买(注册)一些QQ、微博账号去联合登录产生新的账号,从而图得一些小利。
这类账号特点就比较明显:
同一设备下注册账号数量多; 同IP下聚集多个账号等。 2、防控手段目前针对垃圾注册的防控主要是前端安全组件先设槛,在后端风控策略进行请求拦截以及成功注册账户的清理。
(1)安全组件
目前用于注册的安全组件主要是图形验证码以及设备指纹,用来防机器大批量刷注册接口。
(2)业务限制
对黑产而言,绑定手机号是成本最高的限制,因此目前多数主流的平台注册均需要用户进行绑定手机的限制,从反垃圾注册角度来看,这大大的提高了黑产的注册门槛以及成本。
(3)风控策略
现行的策略主要为实时以及离线两类,分别是即时管控(在线拒绝)和 t+n管控(具体依据各平台自己的策略)。主要的的管控手段从紧到松分为这几种:禁止访问、强制绑定手机、强制改密和强制实名认证等方式。两种方式有各自的利弊,前者直接在线拒绝,若有误杀则会对正常用户有较大影响;后者t+n管控则给了黑产利用账号做坏事的时间,管控可能存在滞后性。
登录业务 登录防控当账号存在一定资金、信息价值时,就会有黑产过来通过各种方式盗取用户的账号。
1、黑产行为 暴破:穷举法,用某种暴力破解软件,一个接一个的试,直到试验出正确的密码,这种破解方式成功率低,耗时久,技术成分低,防御门槛低。 拖库:指网站遭到入侵后,黑客窃取其数据库数据,包括数据库中的用户信息(账号+密码)。 撞库:黑客通过收集互联网已泄露的用户和密码信息,尝试批量登陆其他网站后,得到一系列可以登录的用户。 DDos攻击:分布式拒绝服务攻击,简单来说就是短时间内向服务器发起大量登录请求,从而致使服务器瘫痪或者占用占用服务器资源使正常用户无法登陆。 2、防控手段(1)基础安全
从底层服务器端建立安全机制,采用waf防火墙拒绝恶意攻击的请求。
(2)安全组件
一般采用设备指纹、生物探针、图形验证等方式去拒绝由机器发起的请求,现在各主流网站都会采用以上几种安全组件。
(3)安全校验
基于安全产品或者安全校验来确保用户当前操作环境无风险以及确保当前操作为用户本人,现有的安全产品主要包括数字证书(PC)以及SDK(APP);二次验证方式主要有短信验证、实名验证、银行卡信息验证以及购物信息验证等,会通过用户的一些个人信息去确保当前登录请求为用户本人发起。
WAF:Web应用防护系统(也称:网站应用级入侵防御系统。英文:Web Application Firewall),是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。
设备指纹:通过在网站或者移动端嵌入前端JS脚本或SDK来采集终端用户环境的非敏感设备特征细信息后采用特征匹配算法而形成的一个唯一的设备标识。
生物探针:通过分析用户在页面上的行为特征(如键盘敲击频率、鼠标移动速度,点击位置偏好等),来识别当前操作者是否是用户本人。
安全产品 安全产品基于安全技术的用户安装类的插件产品以及app内部的集成性安全中心。
1、数字证书(1)原理说明
数字证书采用公钥体制(RSA),即利用一对互相匹配的密钥进行加密/解密、签名/验签。当用户通过我们的验证后,我们使用证书认证中心(CA)注1给用户颁发证书,并在服务端保存用户的公钥。通过上一步,用户有了独一无二的密钥,这样就能拿密钥做一些其他人无法伪造的事情:对数据、请求进行数字签名或加密。这样能保证三点:
真实性:保证数据是签名者自己发送的(身份认证),签名者无法否认; 保密性:对数据加密,保证数据不被没有公钥的人解密出来; 防篡改:保证数据、请求是签名后没有修改过。(2)具体流程
先按照双方约定将数据通过单向散列算法(HASH)注2计算得到一个HASH值(为了保证数据在传输过程中没有变动);客户端使用私钥对HASH值进行(签名/加密),并将HASH值、数据和(签名/加密)结果一起发给服务端;服务端收到数据后,使用HASH算法对数据进行比对,再使用公钥(签名/解密)比对。
(3)应用场景
数字证书主要用在PC端,可以作为用在用户登录/支付环节,检验用户当前的操作环境,如无风险,则允许用户进行下一步的操作;若有风险(或未检测到数字证书信号)则需要用户进行校验,确认身份后可进行下一步操作。
2、安全SDK(1)功能作用
安全SDK是为移动端提供的一套安全组件,它相当于移动端的数字证书,在客户端与服务器的电子交易环节中通过身份验证解决对客户端的信赖问题,提升APP自身以及用户的安全性、能够为风控提供一些精准数据做决策、能够给用户更好的使用体验、能够帮助我们更加容易地打击恶意用户。
(2)应用场景
主要用在移动端,通过SDK服务于扫码登录、指纹支付以及电子签名等业务。
3、用户安全中心(1)功能作用
安全中心是前端面向用户的产品,将一些用户操作信息的展示给用户,让用户自主去感知异常,并自主修改密码,修改绑定手机等。下述以现在市面常见的安全中心的主功能做了介绍。
(2)功能模块
安全评分:用户能了解自己账号的安全哪里不足。 安全提升:用户能够根据提示知道如何解决这些不足,提升安全等级。 异常记录查询:用户能查询自己账号有哪些异常记录,并根据提示知道如何解决这些风险。 安全教育:用户能学习到最常见的安全问题以及应对措施。(3)应用场景
用户能够知道自己账号安全评分,并可以根据提示优化自己的评分。 用户可以查询自己账号的异常操作记录,自主判断哪些是有风险的,并可以根据提示解决。 用户能够学到一些常见的安全常识。以上纯属个人对账户安全体系的一点小见解,如有不当之处,还请指正。同时也请安全界的、风控界的各位大牛多多发表意见,欢迎交流。
本文由 @Michael_迹布 原创发布于人人都是产品经理。未经许可,禁止转载。