Есть параноидальная задача:
необходимо хранить текст ноды (содержание материала) в зашифрованном виде.
Предполагается, что тексты будут содержать конфиденциальную информацию (личные сведения), поэтому хотелось бы предотвратить потенциальную возможность их прочтения сисадминами или в случае взлома сервера.
Какие есть идеи о том, как это организовать?
Комментарии
Шифровать тексты по ключу, ключ хранить в куке у пользователя. И само собой сайт пустить через https, чтобы нельзя было прослушать трафик.
--
Администратор сайта «Drupal — Россия»
на вопросы по Drupal отвечаю только на форумах, не пишите в почту и приватом!
В таком случае шифрование/дешифрование должно происходить на стороне клиента. Вряд ли это реализуется с помощью JS, наверное всё же с помощью Java апплета (как вариант Active-X или расширение для Mozilla), или настольного приложения. В любом случае использование Друпала не выглядит целесообразным.
---
http://drupal5.ru - информация для друпателей
качественные ответы только на качественные вопросы
Мне кажется при желании админ всегда сможет получить доступ к закрытой информации (встроить в скрипт код перехватывающий пароли, сбрасывающий расшифрованный текст куда-то и т.п.)... взломщики так же могут легко модифицировать код под свои нужды...
Мне кажется тут нужны специальные программные разработки и не на php, а на чем-то другом.
> В любом случае использование Друпала не выглядит целесообразным.
Есть варианты с другими CMS или форумами?
> Мне кажется при желании админ всегда сможет получить доступ к закрытой информации (встроить в скрипт код перехватывающий пароли, сбрасывающий расшифрованный текст куда-то и т.п.)... взломщики так же могут легко модифицировать код под свои нужды...
Мне кажется тут нужны специальные программные разработки и не на php, а на чем-то другом.
Ну понятно, что если за дело возьмутся конторы с трехбуквенными названиями :-), то устоять невозможно. Речь все же про борьбу со "случайным любопытством" сисадминов или хакеров, про возможность затруднить дешифрование на "пару-тройку" часов/дней.
> Шифровать тексты по ключу, ключ хранить в куке у пользователя.
Не было ли модулей с подобной функциональностью?
P.s. 04.01.2007 drupal.ru стал показываться без оформления темой - это только у меня так?
Ну понятно, что если за дело возьмутся конторы с трехбуквенными названиями :-), то устоять невозможно. Речь все же про борьбу со "случайным любопытством" сисадминов или хакеров, про возможность затруднить дешифрование на "пару-тройку" часов/дней.
Да нет, тут даже не идет речь о таких конторах... любой знающий php + sql и получивший доступ к серверу сможет получить материалы...
Как выше написал rapitosov@drupal.org, использование Друпала для решения таких задачь не подходит...
Ну вот нашел я модуль для CCK, который шифрует базу данных - http://drupal.org/project/encrypted_text. Это уже хорошо.
Плохо то, что он хранит пароль для дешифрования на сервере - в файле settings.php
Есть вариант для серьёзного проекта заводить собственный сервер с шифрованной файловой системой и отдавать контент по https. CMS тут не при чем, потому как сервер будет защищен от взлома, а что на нем крутится - дело десятое.
---
http://drupal5.ru - информация для друпателей
качественные ответы только на качественные вопросы
> Есть вариант для серьёзного проекта заводить собственный сервер с шифрованной файловой системой
Наверное это было бы окончательным решением шифровального вопроса, но у меня все же не настолько серьезный проект.
Кстати, а от глаза любопытного админа в этом варианте будет ли защита?
Но, если все же задаться целью выжать из Drupal'а по максимуму для такой задачки, что можно придумать еще? Пока самым реальным мне видится вариант, предложенный axel'ем: "Шифровать тексты по ключу, ключ хранить в куке у пользователя."
Подскажите, где почитать инструкции, как друпаловский "сайт пустить через https"?
Зависит от того, будет ли у админа доступ внутрь сервера. Если свой админ, естественно ему нужно доверять, чужой (админ колокатора) не влезет.
Возвращаясь к вышесказанному, если шифровать содержимое и хранить пароль у пользователя, то и расшифровывать информацию нужно у пользователя. К этому прилогаются трудности, описанные выше (кто может реализовать шифрование с помощью JavaScript, и насколько взломоустойчиво такое решение? подменить отсылаемый скрипт и получить данные куки не составит труда).
Читать тут http://ru.wikipedia.org/wiki/SSL , ссылки прилогаются. Ещё тут http://www.google.ru/search?q=apache+ssl Ещё спросить у своего юниксового гуру
Вообще-то настройка апача не сильно сложная, вот с шифрованной системой возможно придется повозится. То есть без грамотного юниксойда тут всё равно не обойдешься.
---
http://drupal5.ru - информация для друпателей
качественные ответы только на качественные вопросы
Подскажите, где почитать инструкции, как друпаловский "сайт пустить через https"?
Это вопрос не столько к друпалу сколько к хостеру, настройке апача и получению ssl сертификата.
Что касается "шифровать текст по ключу, ключ хранить в куке"... вкупе с https - максимум избавит вас от "прослушивания" трафика как мне кажется.
SSL вполне достаточно, что бы избежать перехвата трафика. Зачем городить какое-то дополнительное шифрование?
---
http://drupal5.ru - информация для друпателей
качественные ответы только на качественные вопросы
Вопрос-то был о том, как избежать утечки приватной информации сайта через сисадминов сервера (или других лиц, которые могут иметь доступ к БД сайта, например, администрации хостинга или хакеров в случае взлома сайта). Перехват траффика - это дополнение.
От просмотра БД также - ведь тексты нодов в базе будут лежать зашифрованными, расшифровываться только при доступе к ним пользователя имеющего ключ - afaik это может работать как модуль фильтра (но при этом также придётся ещё отказаться от кеширования нодов, чтобы в таблице cache не было открытых текстов). Сам же ключ будет только в куке на компьютере пользователя, а на сервер передаваться по https и храниться в памяти при обработке ноды.
--
Администратор сайта «Drupal — Россия»
на вопросы по Drupal отвечаю только на форумах, не пишите в почту и приватом!
> От просмотра БД также - ведь тексты нодов в базе будут лежать зашифрованными
А при использовании SSL (без дополнительного модуля шифрования/дешифрования) тексты нодов лежат в базе данных незашифрованными?
(Если они там зашифрованные, то можно обойтись, наверное, без доп.шифрования на стороне клиента. Просто ограничить права доступа.)
Прочитайте про SSL, SLL - это только оболочка для транспортных протоколов.
Смысла шифровать базу, расшифровывая её на сервере никакого нету. Тк злоумышленник получая доступ к серверу, в таком случае, получает вся интересующую информацию.
---
http://drupal5.ru - информация для друпателей
качественные ответы только на качественные вопросы
ssl позволяет передавать данные по открытым каналам в зашифрованном виде, ничего более.
Чтобы предотвратить получение доступа к материалам в случае взлома сервера и любопытного админа, надо как уже писали выше, шифровать данные на стороне пользователя и передавать их на сервер в уже зашифрованном виде. В противном случае их можно перехватить разными способами (например встроив в скрипт друпала закладку).
> про возможность затруднить дешифрование на "пару-тройку" часов/дней.
Пиши яваскрипт, (за-)рас-шифровывающий текст на стороне клиента. Написание скрипта ворующего ключ как раз займёт "пару-тройку" часов/дней.
Как вариант могу предложить корпоративный шлюз - все документы, приходящие от провайдера автоматически дешифруются шлюзом и открыты для итранета.
Можно использовать Средства Криптографической Защиты Информации (СКЗИ). Пока, я думаю, это самый надежный способ защитить информацию от взлома и чужих глаз, несанкционированного изменения и от незаконного присуждения авторских прав.
По стоимости такие средства в среднем 100$ (использование только лицензированных СКЗИ). Можно вмонтировать системы СКЗИ в веб приложения, что бы использовать через веб-интерфейс.
Каким образом это защитит авторские права?... Я заинтригован
Если текст подписан электронной цифровой подписью (ЭЦП), то авторство доказывется однозначно, хоть через суд. В сертификате ЭЦП значится ФИО человека, осуществившего подпись.
А если все это дело еще и зашифровано, то и украсть не смогут. Шифрование в 512 кб ооочень трудно расшифровать, если вообще возможно. Только тогда произведение не публично будет.
Получить бесплатный сертификат SSL с данными только доменного имени можно на startssl.com