身份验证如何在加密中工作?

幻翠


任何一套系统(不管是C/S类型还是B/S类型的)都离不开权限体系,而权限体系又依懒于身份认证体系。小到大家日常使用的微博、微信、网站等,都离不开登录场景,大到你的银行卡都是需要设置密码的。所以说身份认证对于一套系统而言是必不可少的,身份认证的安全性尤为重要!

何为身份认证?

身份认证有很多种说法,比如“身份证验”、“会话认证”等,它是指计算机网络系统对操作者身份进行确认的过程,以判断操作者是否有权限进行资源的访问和操作,这样才能最大程度保证系统和数据的安全性。

身份认证的方式有哪些?

最早期的身份认证机制很简单,就是判断用户名和密码是否能和数据库中的记录匹配上。而随着网络上的攻击类型越来越多,身份认证体系也发生了不少变化,目前常见的身份证认方式有以下几种:

  • 静态密码

  • 短信验证码

  • 动态口令牌

  • USB Key

  • 生物识别(指纹、面部识别等)

  • 多种认证的结合

利用各种加密技术,确保身份认证过程的安全性

上面说到的身份认证方式离不开加密技术,如果要保证身份验证过程的安全就需要确保认程过程是在加密环境下执行的,具体该如何在加密环境中工作呢?我整理出了主要的思路供大家参考:

1、各种密码要加密存储以防爆库、拖库

特别是静态密码不能明文存储在数据库中,万一数据库被爆那所有用户的密码全部会泄露。

2、多重加密方式进行混淆加密,增加破解难度

像我们熟知的MD5其实是不可逆的,但网上为什么有所谓的“MD5破解”网站呢?其实原理也很简单,这类网站收集各类密码,然后以明文和MD5加密的方式共同存储入库,下次别人检索一个MD加密过的密码时就把它和数据库中进行对比,然后找到明文,这种做法在业内称为“碰撞”。

3、选择HTTPS而不是HTTP协议进行数据传输

HTTP协议在传输数据的过程中是明文的,如果请求被中间人拦截那黑客可以轻易看到你的请求数据(密码会直接暴露出来),这是极不安全的;而HTTPS在HTTP的基础上加了SSL层以保证数据是加密传输的,破解起来难度极大(除了在本地安装证书进行抓包,这种不能算的)。

所以银行业系统对外访问时都是以HTTPS协议访问。

4、避免本地键盘勾子截获密码

大家有没有注意到,银行网银系统不少都要安装它们提供的安全控件?安装了这些控件后才会出现密码输入框?因为客户端电脑上的安全性是不能保证的,如果客户电脑上中毒了可能会被黑客植入键盘勾子程度,它可以截获键盘上的所有按键输入!

所以安全性高的站点都会开发一个控件用来输入密码,这类控件可以防止键盘勾子,从而保证密码输入过程中不会被后门程序获取到。


以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!

网络圈


身份验证 授权在身份验证期间,将用户提供的凭据与本地操作系统上的授权用户的数据库中的凭证或通过身份验证服务器进行比较。如果凭证匹配,并且经过身份验证的实体被授权使用该资源,则该过程完成并且用户被授予访问权限。认证因素使用用户ID和密码对用户进行身份验证通常被认为是最基本的身份验证类型,它取决于用户是否知道两条信息:用户ID或用户名以及密码。由于这种类型的身份验证仅依赖于一个身份验证因素,因此它是一种单因素身份验证。

一个 认证因素 表示一些片,可用于验证到一系统中的用户请求访问数据或属性的。一句古老的安全格言认为,认证因素可以是“你知道的东西,你拥有的东西或者你拥有的东西”。这三个因素对应于知识因素,占有因素和内在因素。知识因素:“你知道的东西。” 知识因素可以是由用户拥有的信息组成的任何认证凭证,包括个人识别号(PIN),用户名,密码或秘密问题的答案。


分享到:


相關文章: