Безопасная архитектура CouchDB

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

Как при таком дизайне я могу защитить как локальные, так и центральные базы данных?

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

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

Спасибо, Идо.


person Ido Ran    schedule 19.10.2011    source источник


Ответы (1)


Я не думаю, что могу дать какой-то умный совет, касающийся дивана, поскольку все вопросы касаются общих вопросов безопасности, но вот они:

  • Для начала убедитесь, что связь между узлами зашифрована. CouchDB изначально поддерживает SSL, начиная с версии 1.1, поэтому для более ранних версий вам придется разместить его за каким-либо прокси-сервером, который будет обрабатывать SSL (nginx, mod_proxy от apache, лак), или ограничить доступ с помощью VPN.

  • Проверьте роли и разрешения пользователей. Запретите все, что не должно быть разрешено. Требовать действительных пользователей и т. д.

  • Убедитесь, что если кто-то прошел аутентификацию, это не означает, что вы можете ему доверять. Убедитесь, что вы тщательно проверяете все данные — широко используйте validate_doc_update функции. Убедитесь, что все получают доступ к данным, к которым у них действительно есть доступ. Опять же аутентификация не означает авторизацию.

person Slartibartfast    schedule 19.10.2011
comment
К вашему сведению, начиная с версии 1.1 CouchDB имеет встроенную поддержку SSL. - person ahmedyha; 20.10.2011