id: Гость   вход   регистрация
текущее время 21:12 24/11/2017
Автор темы: Гость, тема открыта 15/11/2013 17:50 Печать
Категории: криптография
https://www.pgpru.com/Форум/ОбщиеВопросы/Подскажитевозможнолиреализовать
создать
просмотр
ссылки

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


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


То есть другие группы пользователей не имеют доступа к данным даже если вытащить полный бекап базы данных.


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


Так же приложение которое вносит данные в базу данных, не должно иметь доступа к ним, то есть приложение должно работать по следующей схеме: Шифрование данных неким ключом -> Сохранение данных в БД -> Уничтожение ключа.


 
Комментарии
— SATtva (16/11/2013 07:41)   профиль/связь   <#>
комментариев: 11514   документов: 1035   редакций: 4046
Так же приложение которое вносит данные в базу данных, не должно иметь доступа к ним

Это, простите, как? Пользователь должен шифровать сам с помощью карандаша и бумаги?

Под все требования подпадают только экзотические схемы, требующие поддержки на стороне СУБД.
— Гость (16/11/2013 16:43)   <#>
Обсуждение серверов приложений тут редко приводило к конструктиву (это так, к слову).


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

Можно сделать так, что шифроваться будет сначала симметричным ключом, а потом публичным ключом сервера приложений. Чтобы пользователю получить свои данные, он их запрашивает у сервера, сервер выдаёт ему шифрованную копию, которую пользователь расшифровывает симметричным ключом. Сам сервер симметричного ключа не знает. Если сервер удалил пользователя из списка, он перестаёт предоставлять ему доступ к данным, поэтому наличие симметричного пароля ему уже не поможет. Но это всё равно глупые потуги и неправильная постановка задачи, т.к. требование
старые пользователи не должны иметь доступ к данным.
невыполнимо принципиально: никто не запретит пользователю, пока он имеет доступ, скопировать всю информацию к себе, и эта инфомация у него останется, даже если доступ прекращён сервером. Кроме того, при сговоре сервера и пользователя они всё равно получат доступ к информации. Чем-то напоминает создать пресловутую защиту от копирования информации, что заведомо нерешаемо.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3