网络安全之身份认证---基于口令的认证

基于口令的认证方式是较常用的一种技术。在最初阶段,用户首先在系统中注册自己的用户名和登录口令。系统将用户名和口令存储在内部数据库中,注意这个口令一般是长期有效的,因此也称为静态口令。当进行登录时,用户系统产生一个类似于时间戳的东西,把这个时间戳使用口令和固定的密码算法进行加密,连同用户名一同发送给业务平台,业务平台根据用户名查找用户口令进行解密,如果平台能恢复或接收到那个被加密的时间戳,则对解密结果进行比对,从而判断认证是否通过;如果业务平台不能获知被加密的时间戳,则解密后根据一定规则(如时间戳是否在有效范围内)判断认证是否通过。静态口令的应用案例随处可见,如本地登录Windows系统、网上博客、即时通信软件等。

基于静态口令的身份认证技术因其简单和低成本而得到了广泛的使用。但这种方式存在严重的安全问题, 安全性仅依赖于口令,口令一旦泄露,用户就可能被假冒。简单的口令很容易遭受到字典***、穷举***甚至暴力计算破解。特别地,一些业务平台没有正确实现使用口令的认证流程,让用户口令在公开网络上进行传输,认证方收到口令后,将其与系统中存储的用户口令进行比较,以确认对象是否为合法访问者。这种实现方式存在许多隐患,一旦记录用户信息的文件泄露,整个系统的用户账户信息连同对应的口令将完全泄露。网上发生的一系列网络用户信息被公开到网上的现象,反映的就是这种实现方式的弊病。另外,这种不科学的实现方式也存在口令在传输过程中被截获的安全隐患。随着网络应用的深入化和网络***手段的多样化,口令认证技术也不断发生变化,产生了各种各样的新技术。为了防止一些计算机进程模拟人自动登录,许多业务平台还增加了计算机难以识别的模糊图形。

基于口令的身份认证容易遭受如下安全***。

(1)字典***。***者可以把所有用户可能选取的密码列举出来生成一个文件,这样的文件被称为“字典”。当***者得到与密码有关的可验证信息后,就可以结合字典进行一系列的运算,来猜测用户可能的密码,并利用得到的信息来验证猜测的正确性。

(2)暴力破解。也称为“蛮力破解”或“穷举***”,是一种特殊的字典***。在暴力破解中所使用的字典是字符串的全集,对可能存在的所有组合进行猜测,直到得到正确的信息为止。

(3)键盘监听。按键记录软件以***方式植入到用户的计算机后,可以偷偷地记录下用户的每次按键动作,从而窃取用户输入的口令,并按预定的计划把收集到的信息通过电子邮件等方式发送出去。

(4)搭线窃听。通过嗅探网络、窃听网络通信数据来获取口令。目前,常见的Telnet、FTP、HTTP 等多种网络通信协议均用明文来传输口令,这意味着在客户端和服务器端之间传输的所有信息(包括明文密码和用户数据)都有可能被窃取。

(5)窥探。***者利用与用户接近的机会,安装监视设备或亲自窥探合法用户输入的账户和密码。窥探还包括在用户计算机中植入***。

(6)社会工程学(Social Engineering)。这是一种通过对受害者心理弱点、本能反应、好奇心、信任、贪婪等设置心理陷阱进行诸如欺骗、伤害等手段,取得秘密信息的手法。

(7)垃圾搜索。***者通过搜索被***者的废弃物(如硬盘、U 盘、光盘等),得到与口令有关的信息。

为了尽量保证安全,在使用口令时通常需要注意以下几点:

(1)使用足够长的口令,不使用默认口令;

(2)不要使用结构简单的字母或数字,尽量增加密码的组合复杂度;

(3)避免在不同平台使用相同的口令,并且要定期更换口令。

为克服静态口令带来的种种安全隐患,动态口令认证逐渐成为口令认证的主流技术。顾名思义,动态口令是指用户每次登录系统的口令都不一样,每个口令只使用一次,因而也叫一次性口令(OTP , One Time Password),具有“一次一密”的特点,有效保证了用户身份的安全性。但是如果客户端与服务器端的时间或次数不能保持良好的同步,就可能发生无法使用的问题。OTP的原理是采用一类专门的算法(如单向散列函数变化)对用户口令和不确定性因子(如随机数)进行转换生成一个一次性口令,用户将一次性口令连同认证数据提交给服务器。服务器接收到请求后,利用同样的算法计算出结果与用户提交的数据对比,对比一致则通过认证;否则认证失败。通过这种方式,用户每次提交的口令都不一样,即使***者能够窃听网络并窃取登录信息,但由于***每次窃取的数据都只有一次有效,并且无法通过一次性口令反推出用户的口令,从而极大地提升了认证过程的安全性。 OTP 从技术上可以分为3种形式:“挑战—应答”、时间同步和事件同步。
动态口令的3种方式
(1)“挑战—应答”。“挑战—应答”认证机制中,通常用户携带一个相应的“挑战—应答”令牌。令牌内置种子密钥和加密算法。用户在访问系统时,服务器随机生成一个挑战并将挑战数发送给用户,用户将收到的挑战数手工输入到“挑战—应答”令牌中,“挑战—应答”令牌利用内置的种子密钥和加密算法计算出相应的应答数,将应答数上传给服务器,服务器根据存储的种子密钥副本和加密算法计算出相应的验证数,和用户上传的应答数进行比较来实施认证。不过,这种方式需要用户输入挑战数,容易造成输入失误,操作过程较为繁琐。近年来,通过手机短信实现OTP验证码用得比较广泛。是目前主流的OTP验证方式,目前被广泛用于交易系统以及安全要求较高的管理系统中。

(2)时间同步。原理是基于动态令牌和动态口令验证服务器的时间比对,基于时间同步的令牌,一般每60 s产生一个新口令,要求服务器能够十分精确地保持正确的时钟,同时对其令牌的晶振频率有严格的要求,这种技术对应的终端是硬件令牌。目前,大多数银行登录系统采用这种动态令牌登录的方式,用户持有一个硬件动态令牌,登录到系统时需要输入当前的动态口令以便后台实现验证。近年来,基于智能手机的软件动态令牌逐渐受到青睐,用户通过在智能手机上安装专门的客户端软件并由该软件产生动态口令完成登录、交易支付过程。

(3)事件同步。事件同步机制的动态口令原理是通过特定事件次序及相同的种子值作为输入,通过特定算法运算出相同的口令。事件动态口令是让用户的的密码按照使用的次数不断动态地发生变化。每次用户登录时(当作一个事件),用户按下事件同步令牌上的按键产生一个口令,与此同时系统也根据登录事件产生一个口令,两者一致则通过验证。与时钟同步的动态令牌不同的是,事件同步令牌不需要精准的时间同步,而是依靠登录事件保持与服务器的同步。因此,相比时间同步令牌,事件同步令牌适用于非常恶劣的环境中,即便是掉进水中也不会发生失步问题。

基于口令认证是目前使用最为广泛的身份认证技术,静态口令认证主要用于系统登录时的身份验证如门户网站、网上银行的登录。而在银行支付、网上银行转账、交易时一般采用静态口令+动态口令组合的方式进行认证。例如,在支付宝中交易时,支付宝系统要求用户同时输入支付口令及与该账户绑定的软件动态令牌。招商银行在进行低额度交易、转账时采用静态口令与短信动态验证码,这种双重保障的方式可以大大提高使用的安全性。

原文地址:https://blog.51cto.com/victorly/2355330

时间: 2024-11-01 11:47:35

网络安全之身份认证---基于口令的认证的相关文章

Oracle OS认证和口令文件认证方法

OS认证 1.在SQLNET.ORA(位于$ORACLE_HOME/NETWORK/ADMIN目录中)文件中,使用vi编辑,注释掉#SQLNET.AUTHENTICATION_SERVICES = (NONE)该行. 2.检查当前OS用户是否属于DBA组. 3.执行sqlplus / as sysdba 登录数据库. 口令文件认证 1.在SQLNET.ORA(位于$ORACLE_HOME/NETWORK/ADMIN目录中)文件中,使用vi编辑,修改为SQLNET.AUTHENTICATION_S

.Net Core权限认证基于Cookie的认证&授权.Scheme、Policy扩展

在身份认证中,如果某个Action需要权限才能访问,最开始的想法就是,哪个Action需要权限才能访问,我们写个特性标注到上面即可,[TypeFilter(typeof(CustomAuthorizeActionFilterAttribute))] /// <summary> /// 这是一个Action的Filter` 但是用作权限验证 /// </summary> public class CustomAuthorizeActionFilterAttribute : Attri

openssh远程登录服务器端和基于密钥的认证机制

ssh服务的最佳实践方案:1.更换服务端口,不要使用默认的22号端口:2.禁止使用sshv1:3.合理的设置登录用户的黑名单和白名单:4.设置空闲会话的超时时间,将其改的短一些:5.需要利用防火墙来配合设置ssh的安全访问规则:6.监听固定的IP地址而不是0.0.0.0:7.如果必须使用口令认证机制,则需要使用足够复杂的密码:~]# tr -dc A-Za-z0-9 < /dev/urandom | head -c 30 | xargs~]# openssl rand -base64 30 |

网络安全之身份认证

在网络环境下的信息世界,身份是区别于其他个体的一种标识.为了与其他个体有所区别,身份必须具有唯一性.当然,唯一性也是有范围的,如电话号码,在一个区域内是唯一的,如果考虑多个区域,可能会有相同的号码,但只要再添加区域号段,又能唯一区分开来.网络环境下的身份不仅仅用于标识一个人,也可以用于标识一个机器.一个物体,甚至一个虚拟的东西(如进程.会话过程等).因此,网络环境下的身份是只在一定范围内用于标识事.物.人的字符串.一.身份认证概述 网络环境下的认证不是对某个事物的资质审查,而是对事物真实性的确认

Openssl建立CA,在组织内部基于ca的认证

Openssl建立CA,在组织内部基于ca的认证 1.给自己生成一对密钥 2.自签署证书 节点:1.生成密钥对   2.申城证书签署请求    3.把请求发送给CA CA: 1.验证请求者信息     2.签署证书 一.建立CA服务器 /etc/pki/CA/private用于存放CA的私钥 1.(umask 077:openssl genrsa -out /etc/pki/private/cakey.pem 2048)   生成密钥 2.req -x509 自签署证书,常用于CA自己签署自己的

基于数字证书认证的 IPSec VPN 配置

一.数字证书的相关术语 1.数字签名 数字签名基于哈希算法和公钥加密算法,对明文报文先用哈希算法计算摘要,然后用私钥对摘要进行加密,得到的一段数字串就是原文的数字签名数字签名与原文一起传送给接收者.接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比.如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性. 2.数字证书 数字证书是由权威机构发行的,用来证明自己的身份和验

使用 AngularJS &amp; NodeJS 实现基于 token 的认证应用(转)

认证是任何 web 应用中不可或缺的一部分.在这个教程中,我们会讨论基于 token 的认证系统以及它和传统的登录系统的不同.这篇教程的末尾,你会看到一个使用 AngularJS 和 NodeJS 构建的完整的应用. 一.传统的认证系统 在开始说基于 token 的认证系统之前,我们先看一下传统的认证系统. 用户在登录域输入 用户名 和 密码 ,然后点击 登录 : 请求发送之后,通过在后端查询数据库验证用户的合法性.如果请求有效,使用在数据库得到的信息创建一个 session,然后在响应头信息中

iSCSI之基于用户的认证及基于配置文件创建iSCSI

承接上文 ->http://11107124.blog.51cto.com/11097124/1884645 被之前discovery的target信息会保存在此(discovery 的数据库) [[email protected] mnt]# cd /var/lib/iscsi/ [[email protected] iscsi]# ls ifaces  isns  nodes  send_targets  slp  static [[email protected] iscsi]# ls s

使用 AngularJS & NodeJS 实现基于 token 的认证应用

传统的认证系统 在开始说基于 token 的认证系统之前,我们先看一下传统的认证系统. 用户在登录域输入 用户名 和 密码 ,然后点击 登录 : 请求发送之后,通过在后端查询数据库验证用户的合法性.如果请求有效,使用在数据库得到的信息创建一个 session,然后在响应头信息中返回这个 session 的信息,目的是把这个 session ID 存储到浏览器中: 在访问应用中受限制的后端服务器时提供这个 session 信息: 如果 session 信息有效,允许用户访问受限制的后端服务器,并且