|
|
№ 6 ноябрь-декабрь 2006 г.
Тема номера:
СОЦИАЛЬНАЯ ИНЖЕНЕРИЯ
|
О ШИФРОВАНИИ ПАРОЛЕЙ В СУБД ORACLE
Ю. Е. Пудовченко, к. ф. м. н.
Компания «Открытые технологии» |
|
|
Вопрос об алгоритме шифрования паролей в СУБД Oracle практически не освещен в русскоязычной литературе и Интернете, хотя имеет важное значение для безопасного хранения данных. Система шифрования паролей является достаточно консервативным элементом СУБД, ибо ее изменение влияет на возможность/невозможность подключения клиентов к базе данных. Таким образом, частое изменение этой подсистемы СУБД нежелательно.
Видимо, этот фактор сказался на том, что подсистема шифрования паролей была неизменной на протяжении многих лет, по моим оценкам – около 15. Изменение системы шифрования повлекло бы за собой ряд сообщений ORA-xxxxx, информирующих об ошибках в системе шифрования, а в технической документации были бы упомянуты причины и способы их решения. На основании отсутствия этих проблем в технической документации и Интернете мы и делаем вывод о том, что в СУБД Oracle подсистема шифрования паролей была неизменной достаточно длительное время.
О подсистеме шифрования паролей в СУБД Oracle до определенного момента вообще не было ничего известно, несмотря на то, что ее система шифрования не может быть секретной, поскольку эта СУБД эксплуа-тируется во всем мире, а не только в защищенных ВЦ США.
Первый факт, получивший огласку: в СУБД Oracle не различаются строчные и заглавные символы. Затем эксперименты с прослушиванием сетевых пакетов показали, что клиентский пароль не передается на сервер в открытом виде. Следовательно, обработка клиентского пароля осуществляется на клиенте, а для защиты пароля используется какой-то алгоритм шифрования, и, скорее всего, этот алгоритм – DES, поскольку другого общедоступного сертифицированного алгоритма, существовавшего на протяжении последних 15 лет, в США нет.
Постепенно стало очевидно, что в СУБД Oracle на все инсталляции используется один и тот же ключ, потому что шифрование осуществляется на клиенте. Однако при этом клиент может подключаться ко всем базам данных, независимо от аппаратной платформы, числа битов, версий ОС и версий Oracle. Иными словами, проинсталлировав клиента у себя в ПК под Windows, я могу подключаться к любой базе данных Oracle. Таким образом, значение ключа не является функцией, зависящей от версии СУБД, типа инсталляции (клиент или сервер) и версии ОС. Очевидно, что сам собой напрашивается вывод о том, что ключ является константой, единой для всех инсталляций СУБД, а ее значение «зашито» в каждом дистрибутиве и даже конкретно в каждом исполняемом файле sqlplus. Таким образом, взяв один дистрибутив, можно было узнать ключ, а узнав ключ, – расшифровать и получить в открытом виде пароль!
А вот это уже в голове не укладывалось: подобная криптосистема – это ошибка с точки зрения криптографической защиты или компания сознательно пожертвовала безопасностью в угоду удобствам эксплуатации? Однако детали этой конструкции были покрыты мраком. Погружаться в декомпилирование кода СУБД не было возможности, поэтому данный вопрос так и остался открытым.
Последним штрихом для создания полноценной картины явилось опубликование 18 октября 2005 года исследования «An Assessment of the Oracle Password Hashing Algorithm» авторов Joshua Wright и Carlos Cid, в котором описан алгоритм шифрования паролей в СУБД Oracle.
< ... >
|
|
Полную версию статьи смотрите на страницах журнала «Защита информации. Инсайд» |
Обращайтесь!!!
e-mail: magazine@inside-zi.ru
тел.: +7 (921) 958-25-50, +7 (911) 921-68-24
Предыдущая статья СОДЕРЖАНИЕ НОМЕРА Следующая статья
|