基于Python实现的SKey身份认证协议
资源下载地址:https://download.csdn.net/download/sheziqiong/85621996
SKey 身份认证协议的代码实现
本项目为课程实验内容,简单模拟了通过S/Key协议进行身份认证的过程。
运行环境
系统:Arch Linux
语言:Python 3.9
IDE:Pycharm
实现的功能
- S/Key协议身份认证
- 用户登录日志记录
本项目中S/Key协议认证过程
- 客户端连接服务器,提示用户输入用户名,将输入的用户名发送到服务器
- 服务器在用户信息字典中查询,根据用户名是否存在向客户端发送不同的反馈信息
- 客户端收到反馈信息,根据内容判断:
- 用户名不存在,接受服务器发送的 Seed,与用户名首尾相连后进行一次 MD5 哈希,然后前 8 位与后 8 位进行异或运算,得到 S。对 S 进行 MD5 运算 1 次,得到第 n 个密码;2 次得到第 n-1 个密码;…;n 次得到第 1 个密码。将第一个密码发送到服务器保存在用户信息字典中,依次使用第 2 到 n 个口令进行登录。www.biyezuopin.vip
- 用户名存在,但是生成的 n 个口令已使用完,则进行初始化,过程和用户名不存在的情况一样。
- 用户名存在,且 n 个口令未使用完,则直接提示用户输入口令。
- 用户输入口令,然后输入验证码(若输入错误,则验证码重新生成,提示用户再次输入,直到输入正确)发送到服务器,服务器接收到客户端发送的口令之后,对其进行一次 MD5 哈希运算,将所得结果与用户信息字典中的上一个口令进行比较,根据是否一致发送不同的反馈信息给客户端。
- 客户端收到反馈,若两者一致,则允许登录;否则不允许登录。
对于每一次登录,无论是否成功,都需要记录,记录信息包括时间、用户名、登录是否成功。
结果分析
服务器端正常情况下没有任何输出,只会记录日志文件。
客户端连接上服务器后输入用户名(初始,不存在该用户,进行注册并生成新的口令):
[]
手动将生成的口令复制到本地文件中,然后使用第 1 个口令(实际是生成的第二个口令,因为真正的第一个口令已经发送到了服务器端进行保存)登录,登录成功。www.biyezuopin.vip
[]
然后再次登录,此时仍使用第一个口令,查看结果,发现登录失败。
使用第二个口令尝试,登录成功。
当四个口令使用完后,再次尝试登录,重新生成口令。
注册一个新的用户,确保服务器在多个用户存在的前提下仍能正常工作。
[]
对于每一次的用户登录,服务器均会记录日志,对于以上登录过程,记录的日志内容如下图所示。
资源下载地址:https://download.csdn.net/download/sheziqiong/85621996
基于Python实现的SKey身份认证协议相关推荐
- 身份认证协议攻击:黑客不希望你了解的事情
身份认证协议是计算机网络中实现身份验证和授权的基本机制.随着互联网的发展,越来越多的应用程序需要提供对远程用户的访问控制和身份认证机制.为了更加安全和可靠地实现身份认证,人们不断地提出新的身份认证协议 ...
- 身份认证协议攻击怎么解决
身份认证协议是计算机网络中实现身份验证和授权的基本机制.随着互联网的发展,越来越多的应用程序需要提供对远程用户的访问控制和身份认证机制.为了更加安全和可靠地实现身份认证,人们不断地提出新的身份认证协议 ...
- 一种基于区块链的数字身份认证方案
一种基于区块链的数字身份认证方案 0 摘要 1 概要介绍 1.1 企业化 1.2 联盟式 1.3 用户中心化 1.4 本文创新点 2 方案基础知识介绍 2.1 密码学工具与算法 2.1.1 随机数 2 ...
- Web服务统一身份认证协议设计与实现
单点登录(SSO)是目前比较流行的企业业务整合的解决方案之一,它的机制是在企业网络用户访问企业网站时作一次身份认证,随后就可以对所有被授权的网络资源进行无缝的访问,而不需要多次输入自己的认证信息.We ...
- 网络信息安全课程:对于匿名身份认证协议的学习
有关匿名协议的基本概念整理 匿名身份认证的基本概念 匿名性 广泛存在于通信.认证等领域的安全需求,指系统中的某些信息对除了相关实体之外是不确定的或无关联性的. 过程 匿名性 发送方 发送者的匿名性 通 ...
- 基于量子密钥的经典身份认证系统
说在前面:2021.4.8,天气晴朗,心情不是很美好,刚刚和老师聊完,老师说不要去轻易否定一篇论文一个人,想起自己平常表现,表示很羞愧,大概这就是自己目前眼光局限性.反正不是很美好的样子,不知道啥时候 ...
- Python+OpenCV人脸识别身份认证系统设计:专栏总述
本专栏依托于Python编程语言,在内容上尽可能涵盖了人脸识别的各个技术模块,从人脸数据采集.数据预处理.数据分析.人脸识别模型的训练到最后的人脸识别,均有详细的操作步骤和注释代码,能帮助学习者从零开 ...
- 基于 Token 的多平台身份认证架构设计
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 一点一滴的Beer 来源 | https:// ...
- 前后端分离中使用基于jwt的token进行身份认证
基于jwt的Token认证机制可以看之前的文章: 基于JWT的Token认证机制实现 在前后端分离中,我们与前端约定一种身份认证机制.当用户登录的时候,我们会返回给前端一个token,前端会将toke ...
最新文章
- lanmp环境的搭建
- Select2控件的多选
- [Android]用架构师角度看插件化(1)-Replugin入门剖析
- android的窗口机制分析------ViewRoot类
- 骨骼动画实现秘密!闲鱼 Flutter 互动引擎告诉你
- eclipse中经常用到的快捷键
- 爆款专栏《Python 黑科技》目录导航丨进度:12/50
- 阿里云 Debian 9.2 安装 Java Web 环境
- R之data.table速查手册
- 网上五花八门的单片机教程,到底应该怎么整理学习过程
- org.n3r.idworker idworker-client生成唯一id
- C语言union类型和C语言 uchar类型的个人见解
- go语言中错误处理方式
- 简简单单 谁说雅虎助手卸载不掉(转)
- 用python实现模拟轮盘抽奖游戏
- 联通手机卡网速的修改
- opendevops_codo项目研究
- MacBook超好用的流程图软件推荐
- Red Gate 破解
- Consider defining a bean of type ‘com.netflix.client.config.IClientConfig‘ in your configuration