Хранение общего ключа для приложения Rails - PullRequest
2 голосов
/ 31 мая 2009

Одно из моих приложений на Rails будет зависеть от секретного ключа в памяти, поэтому все его функции будут доступны только после перехода администратора на определенную страницу и загрузки действительного ключа.

Проблема в том, что этот ключ должен храниться в безопасном месте, поэтому никакие другие процессы на той же машине не должны иметь к нему доступа (поэтому memcached и файловая система не подходят). Хорошей идеей было бы просто сохранить ее в некоторой переменной конфигурации в приложении, но вновь созданные экземпляры не будут иметь доступа к этой переменной. Есть мысли, как реализовать это на RubyEE / Apache / mod_passenger?

Ответы [ 4 ]

3 голосов
/ 31 мая 2009

действительно нет способа достичь этой цели. (это та же проблема, что и у всех систем DRM)

Нельзя хранить секреты в операционной системе. Ваше приложение должно иметь ключ где-то в памяти, а ядро ​​операционной системы может читать любую область памяти, какую захочет.

Вы должны быть в состоянии доверять операционной системе, а это значит, что вы также можете доверять операционной системе для надлежащего обеспечения прав доступа к файлам. Это, в свою очередь, означает, что он может хранить ключ в файле, который может прочитать только пользовательский процесс rails.

Подумайте об этом так: даже если у вас вообще не было ключа, что может помешать злоумышленнику на сервере просто изменить сам код приложения, чтобы получить доступ к отключенным функциям?

1 голос
/ 31 мая 2009

Я бы использовал файловую систему с доступом только для чтения к владельцу файла и гарантировал, что процесс ruby ​​- единственный процесс, принадлежащий этому пользователю. (используя chmod 400 file)

Вы можете усложнить это, но все сводится к использованию пользователей и разрешений Unix.

0 голосов
/ 31 мая 2009

Как насчет обработки его как обычного пароля и использования соленого хеша ? Как только пользователь проходит аутентификацию, он получает доступ к функциям веб-сайта.

0 голосов
/ 31 мая 2009

Шифровать это сильно в файловой системе?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...