Golang LicenseServer授权服务器的设计 与 RSA 密钥对的应用

时间:2024-12-09 14:03:32

//TODO 待写文章

目录:

1.为什么要写授权服务器  LicenseServer

2.授权服务器的设计思路

3.授权服务器所使用到的加密技术

1.为什么要写授权服务器

为了防止别人拿到二进制后,自己搭建服务器,制作私服而损害公司利益;授权服务器只是增加破解难度而已,逆向破解二进制那也就没办法的,这里不考虑逆向。

2.授权服务器的设计思路

LS=LicenseServer

CS=CenterServer

LS使用HTTP协议,LS与CS之间使用RSA加密数据通信(不用HTTPS,因为要加上自己的密码)

流程是:

1.启动LS,监听HTTP端口 (同时加载 RSA私钥配置 ) ,LS与CS是完全隔离的。

2.启动CS,加载RSA公钥配置,加载程序写死密码,构造本机信息,结合写死密码首次加密,通过RSA公钥进行二次加密,发送给LS

3.LS收到消息,通过RSA私钥进行首次解密,结合写死密码二次解密(算法与CS保持一致),获得CS的启动信息,本地进行数据库查询,验证是否存在配置,存在返回OK,否则返回失败,使用RSA公钥签名,签名数据包含CS信息。

4.CS收到消息,通过RSA私钥,记性签名验证,成功,检查返回结果,OK,则启动,否则 授权失败,禁止启动。

LS使用RSA私钥进行数据的签名,CS验证数据合法性;CS发送信息包括RSA公钥,以及本机信息,和内存中的固定密码,利用RSA公钥加密数据,传送给LS让LS进行验证

ssh-keygen生成的默认密钥对格式,pem 和one-line pem格式

pkcs#1是什么

PKCS 全称是 Public-Key Cryptography Standards

参考链接:

PKCS 15 个标准 https://www.cnblogs.com/jtlgb/p/6762050.html

pkcs1与pkcs8格式RSA私钥互相转换  https://blog.****.net/duan19056/article/details/52104966