理论教育 安全协议:口令协议概述

安全协议:口令协议概述

时间:2023-10-28 理论教育 版权反馈
【摘要】:认证密钥协商协议使得通信双方能够双向认证并协商建立共享的会话密钥。针对口令的攻击通常包括以下几种。离线字典攻击是指主动窃听者根据记录一个或多个会话中传递的消息排除大多数的可能口令。在线字典攻击意味着攻击者试图在一次在线事务中使用一个猜测的口令。口令猜测失败会被发现并且服务器会将其记入日志。口令认证协议大多数使用了基于Diffie-Hellman的密钥协商并把共享口令用于认证。我们使用表4.6中的符号。

安全协议:口令协议概述

认证密钥协商协议使得通信双方能够双向认证并协商建立共享的会话密钥。通信双方可以预先共享长的、随机的高熵密钥,也可以预先共享短的、容易记忆的低熵口令。高熵密钥经常存储在计算机的安全存储器中,或者使用特殊的设备来存储密钥,如抗篡改加密服务器或智能卡。但是,这些方法要么不太方便,要么成本太高,例如抗篡改设备成本高,携带不便,公钥需要的存储空间大。由于基于口令的机制允许人们选择自己的口令,并且不需要辅助设备生成或储存,因此基于口令的机制广泛应用于认证密钥协商。

针对口令的攻击通常包括以下几种。

(1)暴力攻击:也称为穷举攻击。尝试遍历整个口令空间中的所有口令,直到找到正确的口令。理论上,只要拥有充足的时间和计算资源,就可以使用暴力攻击手段穷举所有口令。如果用户的口令较短,很容易被穷举出来,因而很多系统都建议用户使用长口令。

(2)字典攻击:大部分人为了方便记忆选用的口令都与自己周遭的事物有关,例如身份证号、生日、车牌号码、电话号码等。字典攻击尝试遍历口令字典里存储的每一条口令,直到找到正确的口令。字典中的口令是由用户选择的概率比较大的那些口令组成,并按照被选择的概率从高到低排列的。字典攻击包括离线字典攻击和在线字典攻击。离线字典攻击是指主动窃听者根据记录一个或多个会话中传递的消息排除大多数的可能口令。在线字典攻击是指攻击者在线猜测口令,直到能够正确地登录系统。在线字典攻击意味着攻击者试图在一次在线事务中使用一个猜测的口令。口令猜测失败会被发现并且服务器会将其记入日志。一般可使用账号加锁、延迟响应或者验证码来抵抗在线字典攻击。

(3)网络数据流窃听:攻击者通过窃听网络数据,如果口令使用明文传输,则可被非法截获。大量的通信协议(比如Telnet、FTP、POP3)都使用明文口令,而攻击者只需通过窃听就能分析出口令。

(4)认证信息拷贝/重放:有的系统会将认证信息进行简单加密或Hash后进行传输,攻击者可以使用拷贝/重放方式实现登录。

(5)肩窥攻击:肩窥指使用直接的观察来获取信息,就如从某人的肩膀上方来查看。在拥挤的公共场所,肩窥是窃取信息的一种有效方法。肩窥也可以使用望远镜或者其他视觉增强设备来远距离实现。通过在隐蔽处偷窥或者使用相机、录像机等辅助方法,记录用户登录过程中在键盘或屏幕中输入或操作的信息来获得用户口令。(www.daowen.com)

(6)社交工程攻击:社交工程就是指采用非隐蔽方法盗用口令等,例如,冒充是处长或局长骗取管理员信任得到口令等;冒充合法用户发送邮件或打电话给管理人员,以骗取用户口令等;通过钓鱼网站获取用户口令等。社交工程攻击主要利用人性的弱点获得用户的身份认证信息,而攻击过程中所使用的方法带有较强的欺骗性,用户常常难以发觉欺骗过程,从而上当造成安全口令信息的泄露。

(7)间谍软件攻击:例如,通过硬件或者软件键盘记录器记录用户使用键盘输入计算机系统的信息;通过鼠标记录器监听鼠标操作事件(移动、单击等事件)以及鼠标指针在屏幕上的移动轨迹和位置相对坐标等;通过屏幕捕获器截获用户计算机屏幕上显示的全部或者部分区域的信息。

(8)污迹攻击:污迹攻击是指攻击者针对触摸屏设备利用用户在屏幕操作时留下的污迹来推断用户口令。对于文本口令来说,攻击者可以根据用户点击留下的污迹位置,来猜测用户点击的数字。对于图形口令来说,攻击者可以根据用户绘制口令时留下的污迹图形来猜测用户口令。

(9)拖库与撞库攻击:拖库是指攻击者入侵网络服务器,把注册用户的口令数据库全部盗走的行为,因为谐音,也经常被称作“脱裤”。由于很多用户在不同网站使用的是相同的用户名和口令,因此攻击者获取用户在A网站的口令信息就可以利用该口令信息尝试登录B网站。撞库就是指攻击者通过收集已泄露的用户名和口令信息,生成对应的字典表,尝试批量登录其他网站后,得到一系列可以登录的用户账号。

(10)垃圾搜索:攻击者通过搜索被攻击者的废弃物,得到与攻击系统有关的信息,如果用户将口令写在纸上又随便丢弃,则很容易成为垃圾搜索的攻击对象。

口令认证协议大多数使用了基于Diffie-Hellman的密钥协商并把共享口令用于认证。我们使用表4.6中的符号。这里介绍的许多协议都是客户端-服务器协议,客户端的行为和服务器的行为有所不同。客户端总是拥有明文口令π,而服务器有时仅保存π在某个单向函数下的镜像。为了避免混乱,我们一直用A表示客户端,B表示服务器。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈