首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为Rails应用程序存储共享密钥

为Rails应用程序存储共享密钥
EN

Stack Overflow用户
提问于 2009-05-31 16:44:11
回答 4查看 466关注 0票数 2

我的一个Rails应用程序将依赖于内存中的密钥,因此只有当管理员转到某个页面并上传有效密钥时,它的所有功能才可用。

问题是这个密钥需要安全地存储,所以同一台机器上的其他进程都不能访问它(所以memcached和文件系统不合适)。一个好主意是将其存储在应用程序的某个配置变量中,但新产生的实例将无法访问该变量。有没有想过如何在RubyEE/Apache/mod_passenger上实现这一点?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-05-31 17:27:48

真的没有办法实现这个目标。(这是所有DRM系统都有的问题)

你不能对操作系统保密。您的应用程序必须将密钥放在内存中的某个位置,并且操作系统内核可以读取它想要的任何内存位置。

您需要能够信任操作系统,这意味着您还可以信任操作系统来正确实施文件访问权限。这反过来意味着可以将密钥存储在只有rails-user-process可以读取的文件中。

这样想一想:即使你根本没有密钥,怎样才能阻止服务器上的攻击者简单地更改应用程序代码本身来访问禁用的功能?

票数 3
EN

Stack Overflow用户

发布于 2009-05-31 17:11:19

我将使用文件系统,只对文件所有者具有读访问权限,并确保ruby进程是此用户拥有的唯一进程。(使用chmod 400 file)

您可以获得比这更复杂的内容,但这一切都归结为使用unix用户和权限。

票数 1
EN

Stack Overflow用户

发布于 2009-05-31 16:47:11

在文件系统中对其进行大量加密?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/932423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档