用于通过 tls 网络进行安全客户端访问的设备指纹
我们想要创建一个唯一的机器 ID - 密钥指纹,以便用它来识别安全网络(可能是 ssl/tls)上的 PC,以便我们确定服务器将数据传送到特定的 PC,并且不向窃取许可证的人提供。这些电脑将运行 Linux 操作系统。我们应该怎样做呢?
We want to create a unique machine id - key fingerprint, in order to use it to identify a PC(s) over a secure network (probably ssl/tls), so that we are sure that the server delivers to the certain PC , and not to someone who has stolen the license. The pc(s) will be on Linux OS. How should we do it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
几个建议。
创建一个独特的哈希算法,将计算机名称和 MAC 地址哈希在一起,将哈希发送回安全服务器,并将其存储在本地计算机上的二进制文件中。通信时,您的协议要求客户端将其哈希码指纹发送到服务器以在通信之前进行身份验证。
生成一组有效的许可证密钥(另一个散列),并将其存储在特殊文件中。当应用程序第一次启动时,它会向服务器注册密钥和计算机信息(即:计算机名称)或用户名/密码组合。与#1 一样,计算机必须将唯一密钥发送到服务器以在通信之前进行身份验证。设置您的服务器代码,以便同一密钥不能来自两个不同的设备。
查看此 stackoverflow 答案同样的问题。 作者对一个非常相似的问题有一些有趣的见解。
Couple of suggestions.
Create a unique hashing algorithm that hashes the computer name and MAC address together, sends the hash back to the secure server, and stores it in a binary file on the local machine. When communicating, your protocol then requires the client to send it's hashcode fingerprint to the server to authenticate before communicating.
Generate a set of valid license keys (another hash) that you store in a special file. When the application boots for the first time, it registers the key and computer information with the server (ie: computer name) or username/password combo. As with #1, the computer must send the unique key to the server to authenticate before communicating. Set up your server code so the same key cannot come from two different devices.
Check out this stackoverflow answer to the same question. The author had some interesting insights to a very similar question.