Средства проверки подлинности
Средства проверки подлинности позволяют исключить прямую подмену зашифрованных полей. Например, рассмотрим следующую таблицу с платежной ведомостью.
Employee_ID |
Standard_Title |
Base_Pay |
---|---|---|
345 |
Помощник копировщика |
Fskj%7^edhn00 |
697 |
Финансовый директор |
M0x8900f56543 |
694 |
Контролер ввода данных |
Cvc97824%^34f |
Не взламывая шифр, злоумышленник может получить важные сведения из контекста, в котором хранятся зашифрованные данные. Поскольку оплата труда финансового директора заведомо выше, чем оплата труда помощника копировщика, то значение, зашифрованное как M0x8900f56543, должно быть больше, чем значение, зашифрованное как Fskj%7^edhn00. В таком случае любой пользователь с разрешением ALTER на эту таблицу может дать помощнику копировщика повышение, заменив его данные в поле Base_Pay простым копированием из поля Base_Pay финансового директора. Этот прием называется прямой подменой и обходит шифрование как таковое. Эту опасность можно исключить, перед шифрованием добавив к неформатированному тексту сведения о контексте. Эти сведения используются для проверки того, что данные неформатированного текста не были перемещены.
Если при шифровании данных указан параметр средства проверки подлинности, то он же потребуется и при расшифровке этих данных. При шифровании хэш средства проверки подлинности шифруется вместе с неформатированным текстом. При расшифровке эти же данные должны быть переданы функции дешифрования. Если данные не совпадают, расшифровка завершается ошибкой, показывая, что данное значение было перенесено с другого места после того, как текст был зашифрован. Рекомендуется в качестве этого параметра использовать первичный ключ таблицы, в которой результат будет храниться как средство проверки подлинности.
См. также