我读了很多关于RSA,加密,许可证密钥等,但我仍然感到困惑。c#,如何存储和检查生成的许可证密钥?
我们可以在本地由客户安装(他们通常应该选择SaaS的版本,但有些人可能不希望它) 应用程序有不同的模块等。(漂亮的标准)
我们后端的Web应用程序存储客户数据和许可证/购买的模块,并可通过SSL访问。
“客户”会定期检查发出的许可证是否仍然有效。
什么还不是很清楚我是如何存放许可证密钥和/或数据,如“有多长许可证有效期”
我的想法至今:
只是它保存在一个表(明文)和定期许可证检查可确保许可证的有效性,即使用户篡改数据库中的数据。 (用户可以在短时间内访问他不应该使用的部分)
加密并将其保存在表中。这意味着,我要么
使用共享密钥
使用私有/公共密钥:因此,无论有公钥(客户端)解密或将其发送到后端解密并将其发送回客户端。
我只是有一种感觉加密整个事情是一个开销。
我不是安全和/或密码学方面的专家。
所以我的问题是
- 检查/存储许可证(及其数据)时,什么是最好的做法是什么?
谢谢。
编辑:
我删除的问题 “?是SSL不够”在最后一段中,因为我意识到这是一个不同的话题。
谢谢,这意味着创造的私有/公共密钥加密(RSA例如)我的“自己”的实施,是否正确? 或者我需要一些证书(如X509)? – Arikael
或者会/可能/我应该使用安装在后端的SSL证书吗? – Arikael
“你自己的实施”是什么意思?当然.net包括PK加密/签名类(例如RSA),但您需要一对密钥才能使用它们。看到例子[这个问题] [http://stackoverflow.com/questions/28099187/rsa-signing-in-c-sharp-for-licensing] – derpirscher