Как подписать данные в MySQL Batabase Revision Safe (надежное временное метка)?
-
10-10-2019 - |
Вопрос
В настоящее время я планирую проект, в котором важна безопасность данных базы данных. Это означает: мы хотим иметь возможность подтвердить, что данные в базе данных не были смягчены, поскольку они были импортированы - ни один пользователь не изменил значение, ни один администратор DB вошел в базу данных и изменил его.
Как лучше всего это добиться?
До сих пор мне нравится идея подписания строки базы данных лучше всего: я создаю хэш MD5 всех полей в строке, а затем отправляю его на сервер подписчиков времен (Посмотрите на Википедию) и хранить созданную подпись с помощью ряда. С этого времени мы можем доказать, что никто не изменил строку, так как эта марка была создана.
Есть лучшие идеи? И, если вам нравится идея так же сильно, как и я, какой сервер TimeMant мне следует использовать и как я могу получить к ней доступ? А Verisign TimeStamp Server Похоже, используется много, но я не мог найти никакой документации о том, как использовать ее «RAW», например, без инструментов Signer Microsoft и т. Д.
Благодарю вас!
Решение
Серверы марки времени обычно не являются бесплатными.
В качестве альтернативы вы можете использовать HMAC-MD5 (или HMAC-SHA1) вместо этого и используйте пароль, который известен только авторизованному пользователю. Пароль, конечно, не используется напрямую, лучше через PKCS#5 или, по крайней мере, хэшируется с семенем. Без пароля никто не может проверить или воссоздать HMAC-MD5