网站登录安全解决方案

275

背景

政府涉密项目,需要比较高的安全性。

解决方案

CA单向认证

HTTPS证书,客户端认证服务端的合法性即可,服务端的证书信息发送CA根证书服务器进行认证。

CA双向认证

常见于银行U盾,客户端认证服务端的合法性,服务端也要认证客户端的合法性,比单向认证多了一个服务端需要验证客户端的操作。
缺点:需要采购USB Key,易丢失;不方便,登录要带个usb key;

密码+短信验证

密码口令+手机短信验证身份。
缺点,短信开销费用高,每次登录都要查收短信,比较依赖运营商短信送达率。SIM卡有被劫持的风险(这一点实现难度并不高,故而很多安全性要求极高的应用都没有采用这个做法。)

指纹登录

相对安全和便捷。
缺点:需要硬件支持,而且需要一人一机,无法更换机器登录。而且密码学中,密码一定具有可以被替换的属性的,手机之所以用指纹,是因为手机具有一人一机器的特性,记住密码也是基于系统底层层面。而PC端的web网站中,就几乎没有人这么去做;

两步验证

两步验证的安全性非常高,使用范围也很广,目前很多安全性要求高的网站应用都采用的这个,举例:谷歌,阿里云,iCloud账号都采用了两步验证。银行以前的动态口令显示也是类似机制。
缺点:你需要再开发一个基于Time-based One-Time Password(TOTP)机制的两步验证的app,开发量增加,用户每次登录需要再打开一个app开随机密码;使用手机两步验证APP时,用户需要首先安装并设置好APP,包括对需要验证的账户的绑定,用户学习成本高。

加强密码口令要求

一定要包含特殊字符,大小写字母和数字;并使用Bcrypt加密算法替换现在的MD5加密,自动加盐,可防彩虹表攻击。安全性高。
缺点:就是加密速度较慢,可能会拖慢系统运行速度,现有密码均不能登录,需要给所有人先重新设置密码,判断他是首次登录的话,则强制修改密码。