Как подписать данные в базе данных MySQL безопасно (доверенная временная метка)? - PullRequest
4 голосов
/ 21 октября 2010

В настоящее время я планирую проект, в котором важна безопасность пересмотра данных базы данных. Это означает: мы хотим иметь возможность доказать, что данные в базе данных не были закалены, так как они были импортированы - ни один пользователь не изменил значение, ни администратор БД не вошел в базу данных и не изменил его.

Каков наилучший способ достичь этого?

До сих пор мне больше всего нравится идея подписывать строку базы данных: я создаю хэш MD5 для всех полей в строке, а затем отправляю его на сервер подписи с метками времени (, посмотрите википедию ) и сохранить созданную подпись со строкой. С этого времени мы можем доказать, что никто не изменил строку с момента создания этой марки.

Есть идеи получше? И, если вам нравится идея так же, как мне, какой сервер меток времени я должен использовать и как я могу получить к нему доступ? Сервер Verisign Timestamp , кажется, используется довольно часто, но я не смог найти никакой документации о том, как использовать его в «сыром» виде, например. без инструментов подписи кода Microsoft и т. д.

Спасибо!

1 Ответ

1 голос
/ 05 января 2011

Серверы с метками времени, как правило, не бесплатны.

В качестве альтернативы вы можете использовать HMAC-MD5 (или HMAC-SHA1) и использовать пароль, который известен только авторизованному пользователю. Пароль, конечно, не используется напрямую, лучше через PKCS # 5 или, по крайней мере, хешируется с начальным числом. Без пароля никто не может проверить или воссоздать HMAC-MD5

...