登录功能看起来是最基础的,但设计得好不好,直接影响系统的安全性和用户的使用意愿。做得太松有风险,做得太严用户抱怨。
下面按场景说几种做法,以及怎么选。
一、账号密码是基础,但要配几项措施
账号密码是最通用的方式,成本低,用户熟悉。单独用它风险在于密码泄露和弱密码。
配套措施有几项必须做。密码复杂度要求,长度和字符类型都要有要求。登录失败次数限制,连续失败多次锁定一段时间或者要求验证。密码加密存储,绝对不能明文存。
还有一项经常被忽略,首次登录强制改密码。管理员给用户开的初始密码往往是统一的,如果用户不改,等于全单位的密码都是公开的。
二、验证码什么时候需要
验证码的作用是防止自动化的暴力破解和批量注册。登录失败几次之后弹出验证码,是比较常见的平衡做法,既不影响正常用户,又能挡住脚本。
注意区分验证码的强度。四位数字的图形码,现在的识别技术很容易破解。对安全要求高的系统,要用更复杂的形式或者换成行为验证。
还有一类是手机短信验证码。它比图形验证码更安全,但每次登录都要收短信也会让用户烦。常见做法是只在异地登录、换设备、敏感操作时要求短信验证,日常登录不要求。
三、政务和内网系统的常见做法
内网系统如果不联外网,风险相对低,账号密码加登录次数限制通常够用。但仍要注意内部人员的权限控制和操作留痕。
政务类系统往往需要跟统一身份认证平台对接,用上级或者同级的认证服务。这类对接要提前确认对方提供的接口形式,以及认证失败时的处理方式。
涉及敏感数据的系统,通常要求双因素认证。常见的是密码加动态口令,或者密码加数字证书。这类会增加用户的操作步骤,要配套做好使用说明,否则用户会因为不会用而抵触。
四、多系统怎么统一
单位里系统多,每个系统一个账号,用户记不住,管理员也管不过来。统一认证能解决这个问题,具体做法之前单独讲过,这里说几个实施要点。
先统一人员数据。以人事或者组织架构为准,每个人一个唯一标识,各系统的账号都挂到这个标识上。这一步不做,后面会出现身份对应不上的问题。
权限不要跟着统一。统一身份不等于统一权限,各系统能看什么能做什么,仍然由各系统自己管。强行统一会把简单的事情复杂化。
留一个人工兜底的口子。统一认证平台出故障时,要有应急的登录方式,不然所有人都进不去系统。这个口子的使用要记录,事后核查。
最后一点,登录相关的所有动作都要记日志。谁在什么时间什么地点登录过,成功还是失败。这类日志在排查安全事件时是不可替代的。
下一篇没有了
