基于 SM 国密算法改进的 Kerberos 身份认证系统。
系统依赖SM算法:duanhongyi/gmssl
其中:
-
AS_REQ = { timestamp } Kclt, UserA, nonce, iv
-
Challenge = challenge_msg
-
Response = { response_msg } hash
-
TGT = { UserA, Kclt-kdc } Kkdc
AS_REP = TGT, { Kclt-kdc, timestamp, nonce } Kclt, iv
-
TGS_REQ = TGT, { UserA, timestamp } Kclt-kdc, ResourceB
-
Ticket = { UserA, Kclt-srv } Ksrv
TGS_REP = { Kclt-srv } Kclt-kdc, Ticket
-
CS_REQ = { UserA, timestamp, nonce } Kclt-srv, Ticket, pub_key_a
-
CS_REP = { timestamp, nonce } Kclt-srv, pub_key_b
-
创建数据库:
CREATE DATABASE IF NOT EXISTS kerberos DEFAULT CHARACTER SET utf8;
-
在
conf/config.py
下完成 MySQL 配置; -
运行
console/migrate.py
构建数据表; -
运行
kerberos/register/RegServer.py
和kerberos/register/RegClient.py
完成认证双方的注册; -
依次启动
kerberos/KDC.py
、kerberos/ServerB.py
、kerberos/ClientA.py
模拟完整的身份认证过程。
系统共包含 3 个服务:
- KDC 默认占用 9000 端口
- ServerB 默认占用 9001 端口
- RegServer 默认占用 9002 端口