注册表中的 Windows 服务机密是否安全?

注册表中的 Windows 服务机密是否安全?

Windows 服务注册表项是否安全存储 - 在磁盘上加密、默认受 ACL 保护或类似保护?

关键在于HKLM\System\CurrentControlSet\Services\{SERVICE_NAME}或类似。

举个例子,假设我有一个在 Windows 上作为服务运行的 java 应用程序,并且它在启动时需要特定于环境的密码/密码短语,将这些作为服务的启动参数放在注册表中是否安全?

我的猜测是否定的,它们是位于磁盘深处某处的明文,c:\windows并且 ACL 不适用于普通注册表项,但我真的找不到任何信息。

后续问题——在服务启动时将秘密传递给服务的最佳方法是什么?

答案1

非管理员无法访问注册表,因此注册表机密对他们来说是安全的。

注册表HKEY_LOCAL_MACHINE\SYSTEM配置单元在文件中实际存在 C:\Windows\System32\config\SYSTEM,在 Windows 运行时无法访问。用户始终可以启动 Linux 并安装该文件,但具备这种知识水平的人如果能够物理访问计算机,无论如何都不会被阻止。

恶意系统服务可以在计算机上执行任何操作,因此没有必要对它保密。

唯一可能的保护是加密数据,但这也无法阻止那些有能力反汇编你的程序并提取算法的人。

保护数据没有万无一失的方法。你所能希望的只是让那些没有一定知识水平或不愿意亲自投入所需时间的人难以做到。

相关内容