2012-02-15 2 views
0

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

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

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

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

Каковы отверстия в этом подходе? Есть ли альтернативные подходы?

Большое спасибо.

MB

+0

Вы действительно просите провести аудит безопасности по своему дизайну или у вас есть вопрос программирования? – Arafangion

+0

http://stackoverflow.com/questions/70450/is-it-worth-encrypting-email-addresses-in-the-database <- Дублировать? – Arafangion

+0

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

ответ

0

Его только в обратном направлении, когда вы думаете о нем, как отношения клиент/сервер. Вместо этого рассмотрите Алису и Боба, где Алиса - сервер, а Боб - клиент.

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

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

Смежные вопросы