很抱歉,如果这里有人问过并回答过,那么简单搜索并没有给我太多帮助。随意更正标签,并提供以下问题的链接或主题的讨论。另外,我在某种程度上了解Windows,而不是Linux,所以这些问题可能显得微不足道。
某些Windows应用程序使用注册表和其他一些不起眼的地方存储他们的激活数据,试用期还剩下几天,只是该软件已经安装在此操作系统上。
Linux中有类似的地方吗?
如果存在,那么数据是多么容易被发现,因为你不仅拥有root访问权限,而且几乎所有的源代码都可以调整内核并强制获取内容?
如果没有办法在Linux中保护这些数据,所有其他条件相同,它对Linux商业软件的可用性有多大影响?
答案 0 :(得分:6)
你所说的是默默无闻的安全性 - 不,Windows中的注册表并不比Linux中任何深度隐藏的文件更难以存储数据。
也就是说,Linux中的程序通常将数据存储在用户主目录中以点.
开头的文件中(表示这些文件的隐藏性)。通常这些地方不是很模糊,例如Qt有一个类QSettings
,它在Windows中使用系统注册表,但在Linux中,数据存储在.config/CorporationName/ProgramName.conf
中。许多其他程序也以这种方式存储数据。对你的数据视而不见,你当然可以使用你喜欢的任何加密,阻碍方案 - 比Windows注册表更加模糊。
Windows风格的注册表不可用会妨碍商业软件的可用性吗?即使是一个小因素(但我不相信),平台上存在更严重的问题(/特征),这使得编写商业和封闭软件变得更加麻烦。 (但并非不可能)
答案 1 :(得分:2)
无论您使用哪种操作系统,都不应该通过混淆来依赖安全性。这是最容易破解的事情。无论您在何处存储数据,都应对其进行加密,并且只能在运行时将其解密一段时间。 更好,如果您使用的是存储在您控制的服务器上的用户帐户,请将数据存储在那里并在身份验证/授权期间执行检查。
答案 2 :(得分:1)
理论上唯一安全的解决方案是IMO获取网络连接,并将数据存储为加密字符串,并且只能在完全由您控制的中央服务器上解密。 Windows也是如此。
答案 3 :(得分:0)
存储机密数据有多种选择:
简单的加密文件(可以用gpg完成)
加密容器(例如使用truecrypt,dm-crypt)
加密分区或磁盘(dm-crypt)
不要忘记,您也应该使用加密交换。