身份认证与系统安全

如何证明你是你?

这个问题初看十分可笑,但细思又十分深奥…

我们可以根据一个人的生物特征判断他的身份。关系亲近的人,能远远地从一个人的走姿,身高猜测出他的身份。而一般的朋友,碰个面或听个声音就能认出对方是谁。但在严肃的场合,如何知道谁是谁或证明谁是谁一直是个复杂的问题,小到查看身份证,大到检测DNA。

同样的,在虚拟世界里,检验一个人的身份一直是个难题。检验强度也可以像真实世界里一样分为好几个等级。只有正确区分用户的身份,才能防范黑客冒充正常用户进入系统,进行不当操作。

认证方法

口令认证

口令认证是最常见也是应用最广泛的认证方法,也就是我们平常所用的密码认证。用户输入密码进行身份认证,输入的密码作为口令,可直接作比较也可经过一些密码学方法再进行比较,如果比较通过,则验证通过,可认为用户是合法的。

这里的认证仅凭借口令只有真正的用户才知道这个点。但人在系统面前是脆弱的,黑客可以根据用户以往密码推测口令,可以根据用户个人信息进行猜测,也可以进行强力破解。对于那些没有良好的安全意识的用户,这个认证方法明显不能保证他们的权益。

在这里,用户需要使用强密码,且需要定时更改密码。

手势认证

这里的手势密码就是九宫格或十六宫格,原理也类似口令认证。

密钥文件+口令认证

在现实里,密钥文件可以想象成通过门禁的IC卡,也可以是一串大门钥匙。在虚拟世界里,是公钥密码的私钥。

用户先生成一组公钥密码,并把公钥放在系统里,私钥则自己保管。每次进行验证,用户先把口令经私钥加密再发送,系统收到密文,先解密再进行比较,如果比较通过,则验证通过。

密钥文件和口令缺一不可,认证强度大大提升,黑客入侵难度直线提升。在这里,密钥文件的价值比口令的价值更高,因为即使黑客知道了口令但没了密钥文件仍然无法进行认证,但如果黑客得到了密钥文件,他可以进行口令破解,那这个认证系统的强度就会下降一个层次。

丢了密钥文件如同丢了家门钥匙一样危险,当发现密钥文件可能被其他人窃取时,需要尽快更新密钥文件,且把当前密钥文件作废。另外,需要给密钥文件设置一个有效时间,过了时间则密钥文件失效,即使密钥文件被黑客偷偷窃取也能把损失降到最低。

实时口令

这里的实时口令一般用作双重认证,指的是系统在用户登录后向用户预存的邮箱或手机号发送动态验证码,用户使用收到的信息进行登陆。这种方法安全性很高,单次使用单次有效,不存在口令泄露和口令爆破等问题。

重中之重在于确保是“真正”的用户在系统留下真实有效的联系方式,且接收过程没有被黑客截获。

生物特征认证

这方面在移动端使用广泛,指纹认证,面容认证,声纹认证等。

指纹认证出现时间最早,目前技术已经非常成熟,大致分为光学式和电容式两种。

电容式:

光学式:

原理:

系统通过传感器收集指纹,然后获取特征生成信号存储和比较。

面容认证是近几年才出现和发展的。技术实现方面可以分为图像识别,结构光识别和红外识别。

图像识别用过的都说坑…
结构光和红外识别是属于比较先进的,在安全性方面官方说比指纹更加安全,可以防御2D图像,假脸等攻击。

声纹识别也是一种基于生物特征的认证方法,目前我只在微信登录上见过。
实现原理:可以将说话人声纹信息与库中的已知用户声纹进行1:1比对验证和1:N的检索,并且还需要将说话人所读出的数字声音与云端动态给定的数字内容进行验证。最终,仅当声纹+内容都匹配即验证/检索成功。

这些新兴的认证方法难以伪造,具有唯一性和独有性,能准确的识别出用户的身份。且这些特征难以更改,可信度极高,等同于数字身份证,用于虚拟世界身份认证是最合适不过的。

不过目前这些认证技术都是以方便为目的,当进行重大事项处理和多次认证失败时,都会强制进入口令认证。换个角度说,生物特征不可被更改,存在风险,口令可更改,且生成和保存依赖用户,更能突出使用者是用户。

认证危机

安全是双方的,尽管用户方面做到了极致,但如果系统不安全,则用户的权益还是无法得到保障。

系统处理不当

我们平常用的网页用户登陆,常用的验证方法一般是口令登录或接收动态密码登录。

使用帐号密码的口令登录形式的系统,不仅用户需要具有较高的安全意识,开发者也要具有安全意识。对于非正常用户输入的“错误”密码,如果系统处理不当,则可能存在sql注入这样的风险。若在身份验证方面没有完善的审核验证,则可能出现越权访问这样的逻辑漏洞。

用户登录后如果会话保存不当或系统存在会话被窃取风险,黑客就能使用当前用户的会话信息进行身份“冒充”,登录系统。这些漏洞都不是认证的问题,但却能打破身份认证的规则。

信息保存不当

身份认证不仅需要一套良好的软件体系支持,还需要硬件支持。如果认为所有密码认证的形式都是系统返回认证通过或不通过就完成了,那就太简单了。以iPhone为例,数据在磁盘上全盘加密,使用aes256算法,密钥存在闪存里,一关屏就丢弃,直到用户传入口令当作密钥进行解密。如果强行读取数据,得到的不过是毫无规律的密文。

如果数据都是以加密的形式保存,那么即使被黑客读取到也不怕信息泄露。但如果信息直接保存,只对用户提供权限限制,那被强制读取的可能性还是有的。就好像数据库存放着数据,尽管系统设置了未登录或已登录的用户有哪些读取范围,但若黑客获取了整个数据库,那数据自然暴露无疑。这种没有经过认证即可非法访问的数据泄露,也不属于认证问题,只是这样损害了正常用户的权益。

社工

这里的社工包含多个方面,无所不能的黑客能疯狂搜集用户信息,如用户曾经有哪些喜好,用户的生日日期和手机号码,这些都能推测出用户密码。黑客甚至能获知用户在其他地方所使用的密码进而推测出当前系统密码。

用户都是凭借记忆储存密码,密码毫无规律则容易遗忘,所以密码一般是身边事物的组合,若系统认证安全可靠,则黑客可能会从用户身上下手。

但强制自己使用毫无规律的强密码过于麻烦,所以建议大家定期更改密码,且不同重要等级的帐号要使用不相关的密码以防被黑客猜测破解。

发表评论

电子邮件地址不会被公开。 必填项已用*标注