Средства проверки подлинности

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

Employee_ID

Standard_Title

Base_Pay

345

Помощник копировщика

Fskj%7^edhn00

697

Финансовый директор

M0x8900f56543

694

Контролер ввода данных

Cvc97824%^34f

Не взламывая шифр, злоумышленник может получить важные сведения из контекста, в котором хранятся зашифрованные данные. Поскольку оплата труда финансового директора заведомо выше, чем оплата труда помощника копировщика, то значение, зашифрованное как M0x8900f56543, должно быть больше, чем значение, зашифрованное как Fskj%7^edhn00. В таком случае любой пользователь с разрешением ALTER на эту таблицу может дать помощнику копировщика повышение, заменив его данные в поле Base_Pay простым копированием из поля Base_Pay финансового директора. Этот прием называется прямой подменой и обходит шифрование как таковое. Эту опасность можно исключить, перед шифрованием добавив к неформатированному тексту сведения о контексте. Эти сведения используются для проверки того, что данные неформатированного текста не были перемещены.

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