Шифрование паролей в СУБД Oracle

       

Математическая модель стойкости парольной защиты


Пусть в информационной системе (ИС) имеется злоумышленник, который в некоторый момент времени начинает атаку на эту ИС путем подбора пароля для какого-либо учетной записи.

Для того чтобы гарантированно подобрать пароль, ему придется выполнить SL попыток, где S - это мощность алфавита, из которого выбираются символы пароля, а L - длина пароля. Если каждая попытка требует ввода C символов (логин + пароль), а злоумышленник вводит символы со скоростью R знаков в секунду, то на каждую попытку ввода пароля требуется C/R секунд. Если в системе предусмотрена задержка D секунд, срабатывающая при вводе неверных реквизитов, то время на одну попытку потребуется C/R+D секунд.

В результате общее время, необходимое, чтобы перебрать всевозможные пароли, выражается формулой

где (D+C/R) определяет полное время, затрачиваемое нарушителем на одну попытку подбора пароля, SL - общее количество возможных паролей.

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

Коэффициент ½ появился потому, что величина SL(D+C/R) есть максимальное время, т.е. время перебора злоумышленником всех возможных значений. А вот среднее значение (математическое ожидание случайной величины, в течение которого система защиты не поддается взлому) равно половине максимального времени для равномерно распределенных случайных величин. Отсюда и коэффициент ½.

Если злоумышленник производит ряд случайных попыток в течение времени t, то вероятность взлома системы защиты за это время есть отношение t/T:

Таким образом, администратор обладает простым и эффективным средством для определения вероятности взлома, в зависимости от конкретных параметров, установленных в конкретной системе.

Предположим, что необходимо вычислить минимальную длину пароля при прочих фиксированных параметрах, чтобы злоумышленник за время t не смог подобрать пароль с вероятностью большей, чем некоторое малое p. Тогда, так как SL = (t*R)/(P*(D+C/R)* C), то можно записать




Попробуем рассчитать нижнюю границу для Тб для СУБД Oracle, для чего сделаем несколько реальных предположений. Пусть нарушитель работает со скоростью 100 символов в секунду (R). Длина логина пусть будет 3 и 6 знаков (SYSTEM и SYS), длина пароля 8 знаков, а задержка отсутствует. В результате, получаем, что злоумышленник будет трудиться

ЛогинДлина логинаДлина пароляТб
System 6 8 123 668 лет
Sys 3 8 194 336 лет
Вроде бы немало лет набегает даже для 8-значных паролей. Но данное расчетное значение справедливо только при низкой скорости ввода паролей и отсутствии других путей, позволяющих получить пароль с меньшей вычислительной сложностью. Однако в действительности в СУБД Oracle это значение намного меньше.

1(обратно к тексту)Не во всех версиях СУБД Oracle выдерживается значение 56 бит. В силу ограничений экспортного законодательства США в 80-90 гг., запрещающего продавать за рубеж ПО и аппаратуру, содержащие стойкие криптографические алгоритмы, длина ключа для экспортных версий СУБД Oracle искусственно занижалась до 40 бит, что облегчает правительству США чтение шифрованной информации. Признание этого факта содержится в "Oracle Database Advanced Security Administrator's Guide" страница 1-4: "Prior versions of Oracle Advanced Security provided three editions: Domestic, Upgrade and Export, each with different key length. Oracle Advanced Security 10g Release 2 (10.2) contains a complete complement of the available encryption algorithms and lengths, previously only available in the Domestic edition. … The U.S. government has relaxed its export guidelines for encryption products. Accordingly, Oracle can ship Oracle Advanced Security with its strongest encryption features to all of its customers" В последние годы экспортный контроль Гос. Департаментом США был значительно ослаблен, поскольку производители ПО и электроники стали нести слишком большие потери (упущенная выгода), из-за этих ограничений.

Содержание раздела