DDS安全证书存储



我目前正在使用启用了安全插件的DDS进行开发。当应用程序启动时,它会查找CA证书、本地证书和私钥的路径,并将它们加载到内存中以备将来使用。

包含公钥的证书是不敏感的,因为它们通常是以明文形式发送的,并使用CA证书进行检查。所以攻击者不需要访问它。这是正确的吗?

但是,在Ubuntu文件系统上,如何保护私钥?我看到的唯一方法是将密钥设置为只读,用于将运行应用程序的特定用户。但由于特权升级,这似乎不安全。

是否有安全的方法来保护文件系统上的私钥?

关于permissions_ca和Governance/permissions文档,如果这些文档由攻击者更新(攻击者会创建自己的ca并签署新的Governance/Paermissions文件(,那么应用程序是否可以拥有更多权限?这意味着这些文档应该在文件系统上得到保护?

您的大多数问题不是针对DDS安全性的,而是关于DDS安全性所利用的通用公钥基础设施(PKI(机制。

包含公钥的证书是不敏感的通常使用CA证书发送并检查。所以攻击者不需要访问它。这是正确的吗?

是的,这是正确的。DDS安全规范定义的内置插件使用PKI。公钥证书通常不包含任何机密信息。

但是,在Ubuntu文件系统上,我如何保护私钥?

使用"传统"Unix权限只允许文件所有者访问它是常见的做法。例如,默认情况下,Ubuntu上的SSH以这种方式在~/.ssh中存储私钥。此外,该规范允许使用密码短语对私钥进行加密。这也是常见的做法。

这对于您的场景是否足够好取决于您的系统需求。通过实现自定义安全插件,可以与现有更强的密钥存储解决方案(如Windows证书存储或macOS密钥链(集成。规范中定义的可插拔体系结构旨在实现这一点,但此类解决方案的实际可用性取决于您使用的DDS产品。

关于permissions_ca和Governance/permissions文档,如果这些由攻击者更新(攻击者将创建自己的CA签署新的治理/权限文档(,然后,应用程序可以可以拥有更多权限吗?

治理和权限文档都必须由签名机构签名。篡改这些文件会破坏签名验证,因此会被域中的其他参与者检测到。

安全DDS域中的所有参与者都需要信任相同的签名机构才能使该机制发挥作用。攻击者要想成功修改Governance或Permissions文档,就必须能够访问签名机构的私钥。同样,这是公钥基础设施中使用的一种常见技术,类似于公钥证书签名。

尽管有篡改保护,但保护这些文件仍然是有意义的。篡改或删除这些文件的实际结果是拒绝服务,这也是有害的。

最新更新