本项目为一个基于Python语言实现的安全键(SKey)身份验证协议的代码包,适用于需要增强安全性的用户和系统。包含详细的文档与示例,便于理解和使用。
本项目包含文件:设计报告(Word格式)及客户端和服务端的Python代码。使用的编程语言为Python 3.9版本,在Pycharm IDE环境中实现。
主要功能包括:
1. S/Key协议的身份认证。
2. 用户登录日志记录。
S/Key协议认证过程如下:
1. 客户端连接服务器,提示用户输入用户名,并将该信息发送到服务器。
2. 服务器在存储的用户信息字典中查询是否有对应的用户名。根据结果向客户端反馈不同的消息。
3. 客户端接收到反馈后进行判断:
- 如果用户名不存在于系统内,则接受来自服务器发来的Seed值,将其与输入的用户名连接起来并执行一次MD5哈希运算;接着对生成的结果前8位和后8位做异或操作得到S。随后依次对S进行1次、2次...n次MD5计算以获取第n个至第一个口令,并将首个口令发送回服务器保存在用户信息字典中,后续登录则使用剩余的(第二个到第n个)密码。
- 若用户名已存在但生成的所有n个口令均已用完,则需重新初始化该过程。此步骤与上述针对新用户的处理方式相同。
以上是本项目关于S/Key协议认证的具体实现描述。