Пароли Outlook
26 августа 2006
Рубрика: Интернет и сети.
Автор: .

pic

Предлагаем читателям статью “Пароли Outlook”, которую прислал нашей редакции Иван Орлов, ведущий программист компании Passcape Software
Всё, что Вы хотели знать о паролях в MS Outlook, теперь в одной статье!

Специалисты в области компьютерной безопасности, работающие в компании Passcape Software, сегодня рады объявить о выходе в свет новой статьи, в которой подробным образом анализируются методы шифрования данных, использовавшиеся в ранних версиях MS Outlook и использующиеся в настоящее время.

Эксперты компании Passcape Software сумели втиснуть без малого энциклопедический объем знаний в формат обычной статьи. Каждый, кто пользуется MS Outlook, найдёт в этой статье не только много полезной информации, но также и ответы на наиболее частые вопросы, связанные с шифрованием данных в почтовых клиентах. Простым и понятным языком статья описывает принципы шифрования и особенности паролей, использующихся в PST файлах. Авторы сумели обстоятельно рассказать о том, каким образом пароли хранятся в PST файлах и все очевидные преимущества и недостатки, связанные с особенностями их шифрования. Статья наглядным образом объясняет, почему при определённых условиях Ваши данные могут оказаться в распоряжении третьих лиц и, что наиболее важно, повествует о том, как подобные проблемы решаются в последних версиях MS Outlook.

Отдельное внимание в статье уделено технике хранения паролей учетных записей почты.В этой связи авторы статьи представили собственную хронологическую периодизацию совершенствования паролей учетных записей электронной почты. Проводя некую аналогию с различными эпохами истории человечества, специалисты компании Passcape Software отчётливо выделяют четыре периода: доисторический период, каменный век, средневековье и эпоха технологического прогресса. Каждому из периодов в статье дана определённая характеристика. Завершая изложение своих мыслей, связанных с особенностями использования паролей в MS Outlook, авторы пытаются предположить, какие связанные с паролями нововведения ожидают пользователей в последующих версиях программы. Статья адресована широкому кругу читателей: как специалистам в области компьютерной безопасности, так и обычным людям, которые регулярно пользуются почтовыми клиентами.

Пароли Outlook (оригинал статьи на русском языке находится здесь)

Пароли Outlook

                  Используйте надежные пароли, представляющие комбинацию прописных и строчных букв, цифр и символов. Пароли, не содержащие набор таких элементов, являются ненадежными. Надежный пароль: Y6dh!et5. Ненадежный пароль: House27.

Из документации к программе MS Office Outlook

Введение

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

Пароли PST файлов

Итак, начнем с того, что .PST файл в Microsoft Office Outlook представляет собой файловое хранилище данных на локальном компьютере, в котором в упорядоченном виде хранятся контакты, заметки, почтовые сообщения и другие элементы. Файл .PST может использоваться в качестве стандартного расположения для доставки почтовых сообщений. Его также можно использовать для упорядочения и резервного копирования данных.

Чтобы защитить содержимое .PST файла, а также ограничить доступ к нему посторонних лиц, можно установить пароль длиной до 15 знаков (см. рисунок 1). В этом случае принято считать, что без знания оригинального пароля открыть .PST файл невозможно. Посмотрим, действительно ли это так.

pic
Рисунок 1. Диалог ввода пароля для PST файла

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

Самое интересное заключается в том, что алгоритм подсчета хэша пароля представляет собой не алгоритм хэширования, а простой подсчет контрольной суммы CRC32. CRC32 — алгоритм проверки целостности данных, но уж никак не хэширования. Microsoft по неизвестной причине решила использовать именно его вместо более стойких, например, SHA. Доставшись по наследству от старых версий Outlook, MS долгое время не меняет этот алгоритм, руководствуясь, по всей видимости, соображениями совместимости. Хотя, с другой стороны, непонятно, почему это не было сделано с выходом Outlook 2003 (формат .PST Outlook 2003 имеет 64 битную внутреннюю адресацию, поддержку Unicode и несовместим с предыдущими версиями).

Таким образом, хэш пароля представляет собой 32 бита его контрольной суммы. Давайте рассмотрим подробнее механизм работы CRC32:

pic

Как можно видеть из отрывка исходного текста, на вход подается пароль (pPassword), на выходе получаем его контрольную сумму. Уязвимость CRC32 заключается в том, что длина получаемой свертки пароля в 32 бита явно недостаточна, поэтому контрольные суммы двух различных паролей могут совпадать! Например, одинаковая контрольная сумма у паролей 1 и orxgnm или у mozart и 2920347097. И если вы думаете, что такие коллизии большая редкость, то сильно заблуждаетесь.

Удивительная вещь эти коллизии. Часто наблюдается обратная зависимость: чем сложнее пароль, тем проще найденная для него коллизия. Возьмем пример из той же документации Outlook, отрывок которой не случайно был выбран в качестве предисловия для этой статьи. Нашему «надежному» паролю Y6dh!et5 запросто можно найти замену — более простую комбинацию всего из 5 символов — JlSfw.

Еще одно любопытное наблюдение. Если контрольная сумма, хранимая в .PST равна нулю, то считается, что пароль не задан. Но если мы знаем, что встречаются пароли с одинаковыми контрольными суммами, то можно предположить, что существуют и такие, контрольная сумма которых тоже равна нулю. Они и вправду есть. Вот только часть большого списка: 1Rj78C, 5J8j84, ArTniW. Crc32(«1Rj78C»)=0, Crc32(«5J8j84»)=0, Crc32(«ArTniW»)=0. Задав один из таких паролей, мы в результате получим незащищенный .PST файл, и при следующем доступе к нему Outlook пароль не запросит. Не верите? Попробуйте сами.

Экспериментальным путем было выяснено, что при использовании метода прямого перебора, для подбора пароля к хэшу Outlook понадобится в среднем не более минуты. Однако криптоанализ CRC32 показал, что данный алгоритм является полностью обратимым для коротких паролей (до 4 символов) и частично обратимым для всех остальных. Это означает, что можно практически сразу найти оригинальный пароль или его аналог, который будет неотличим для Outlook. Было доказано, что для нахождения коллизии (пароля, контрольная сумма которого будет такая же, как и у оригинального) потребуется не более 7 печатных символов.

Шифрование PST файлов

Если посмотреть опции PST файлов (см. рисунок 2), то можно заметить, что Outlook кроме всего прочего позволяет еще шифровать содержимое. В этом случае, контрольная сумма пароля не лежит в открытом виде в .PST файле, а дополнительно кодируется с помощью одного из алгоритмов шифрования. Давайте рассмотрим эти алгоритмы.

При создании нового .PST, Outlook предлагает на выбор 3 типа файла:

  • шифрование отсутствует
  • шифрование со сжатием
  • стойкое шифрование.

pic
Рисунок 2. Создание нового PST файла.

Если шифрование PST файла отсутствует, то все данные пользователя: контакты, письма, пароли и т.д., будут лежать в открытом, доступном другим пользователям виде. И их можно будет просмотреть, например, из текстового редактора.

Алгоритм шифрования со сжатием создан таким образом, что каждому кодируемому символу соответствует другой, взятый из специальной таблицы. Вот этот алгоритм:

pic

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

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

pic

Для восстановления блока данных необходимо знать идентификатор блока, без которого процесс расшифровки будет выглядеть несколько затруднительно. Хотя, если внимательно присмотреться к исходному тексту алгоритма, легко заметить, что при шифровании используется только 16 бит идентификатор блока, что позволяет значительно сократить количество возможных вариантов при подборе ключа шифрования, используя метод прямого перебора.

Техника хранения паролей учетных записей почты

После прочтения данной статьи, у вас может сложиться немного ложное мнение о том, что MS Outlook использует очень слабые и ненадежные алгоритмы шифрования паролей. Однако это не совсем так. Истина, как говорится, познается в сравнении. К тому же, мы проанализировали только шифрование в PST. Давайте теперь рассмотрим и сравним механизмы шифрования паролей учетных записей почты Outlook и других популярных программ.

Большинство популярных почтовых клиентов попросту не заботятся о безопасности хранимых паролей пользователей. Например, Eudora, TheBat! или старые версии Netscape, используют для шифрования архаичный алгоритм BASE64 или его производные. IncrediMail просто накладывает XOR гамму на исходный пароль (язык не поворачивается назвать это шифрованием), старые версии браузера Opera вообще не шифровали почтовые пароли, а хранили их открытым текстом.

Получше обстоит дело с новыми версиями популярных почтовиков, таких как Thunderbird, Opera M2, Outlook Express. Все они используют надежные, проверенные временем алгоритмы с использованием мастеринг ключей. В основном это связка из MD5 + RC4, или SHA + 3DES, либо их возможные варианты. Thunderbird, Opera M2, Outlook Express хранят мастер ключи и ключи шифрования вместе с зашифрованными паролями, что позволяет без труда (ну или почти без труда) выполнить их обратное преобразование.

Что касается Outlook (кстати, не путайте с Outlook Express), то тут наблюдается очень прелюбопытнейшая картина. Всю хронологию развития техники хранения паролей к почтовым ящикам в программе Outlook можно условно разделить на четыре периода:

  • доисторический период
  • каменный век
  • средние века
  • период научно технического прогресса

Теперь подробнее.

Доисторический период — период первого становления на ноги. Говорят, первые версии программы умели шифровать хранимые в реестре пароли по алгоритму BASE64. Что уже само по себе являлось достижением для того времени. Для расшифровки таких паролей достаточно было одного калькулятора или пары-тройки извилин.

Каменный век — Outlook 9x — время первых экспериментов. Появляется новый алгоритм, который, при шифровании паролей, использовал ключ шифрования и уникальный идентификатор записи. Ноу-хау того времени. Данные, зашифрованные по этому алгоритму, невозможно было расшифровать без знания ключа и идентификатора записи. Многие современные почтовые клиенты не могут похвастаться наличием таких алгоритмов в своем арсенале и по сей день. Однако общая идея нового типа шифрования омрачалась одним существенным недостатком — ключ шифрования и идентификатор записи хранились в реестре вместе с зашифрованными данными.

Средние века — Outlook 2000 — первые стандарты. Пароли к почтовым аккаунтам теперь хранятся в защищенном хранилище (protected storage) Windows. Более подробно о protected storage можно будет узнать в одной из последующих статей. Вот вкратце алгоритм расшифровки паролей в защищенном хранилище:
Создается key1 для расшифровки мастер ключа, используя SHA(Salt) + SHA(SID) + SHA(Salt). Salt — глобальная константа. SID — идентификатор пользователя.
Создается key2 для расшифровки мастер ключа, используя SHA(MKSalt) + SHA(key1). MKSalt — двоичные данные, уникальные для каждого мастер ключа, хранимые вместе с ним. key1 — 20 байт данных, полученных на предыдущем шаге.
С помощью алгоритма DES и key2 расшифровывается мастер ключ.
Полученный мастер ключ принимает участие в расшифровке ключа шифрования записи. Ключ шифрования записи хранится вместе с самой записью и различен для каждой записи. Он состоит из 16 байт, половина из которых используются непосредственно для расшифровки, а вторая половина для проверки валидности.
И уже этим расшифрованным ключом записи можно расшифровывать непосредственно саму запись (пароли и др. сенситивную информацию).

Очень неплохо и стильно придумано! Основные достоинства данного алгоритма:

  • Мастер ключ един для всех записей. Поэтому достаточно расшифровывать его лишь один раз (шаги 1-3). Это ускоряет весь процесс расшифровки, не снижая уровень безопасности в целом.
  • В шифровании мастер ключа принимает участие SID пользователя, поэтому мастер ключ для каждого пользователя будет разным. Таким образом, становится понятно, что без знания SID (который различен для каждого пользователя) расшифровать данные невозможно. Однако это немного омрачается тем, что SID хранится в реестре вместе с мастер ключом.
  • Данный алгоритм, хотя и был создан более 10 лет назад, устойчив к столь популярному в наши дни виду атак с использованием rainbow tables.

Предложенная схема шифрования, которая, кстати говоря, уже была задействована с выходом Internet Explorer 4, представляла собой большой прорыв в области шифрования данных. Все современные браузеры (Opera, Mozilla, Firefox и Internet Exlorer вплоть до 6 версии) используют похожие схемы шифрования своих паролей. Заметьте также, что свободный полет творческой фантазии самых сильных конкурентов Outlook в лучшем случае остановился в этом, среднем веке.

Период научно технического прогресса — Outlook 2003 — впереди планеты всей. Новая версия популярного почтового клиента использует новый алгоритм шифрования, который является продолжением и логическим развитием предыдущего. Этот алгоритм основан на одной важной детали — привязки к паролю пользователя. Не будем в данной статье подробно описывать механизм его работы, ибо это займет не одну страницу. Скажем лишь, что для расшифровки паролей, зашифрованных этим алгоритмом, необходимо знать как минимум три вещи (см. рисунок 3):

1. Мастер ключ пользователя
2. SID пользователя
3. Пароль пользователя

pic
Рисунок 3. Восстановление паролей учетных записей Outlook 2003.

Вкратце основные достоинства нового алгоритма:

  • Мастер ключ теперь хранится в отдельной папке локального компьютера, доступ к которой частично ограничен.
  • Длина мастер ключа составляет 512 бит, что исключает возможность его подбора даже в ближайшем будущем.
  • Используются новые алгоритмы, в частности SHAHMAC, с изменяемым количеством итераций в цикле (по умолчанию 4000). Таким образом, на порядки снижается возможность подбора пароля методом прямого перебора.
  • Алгоритмы шифрования (как мастер ключа, так и самих данных) полностью настраиваемые. Можно задавать любые, поддерживаемые операционной системой.
  • Можно производить защиту данных на уровне привилегий операционной системы.
  • Привязка алгоритма к паролю пользователя.

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

Заключение

Как видим, с выходом каждой новой версии этой популярной почтовой программы Microsoft привносит что-то новое и неизведанное доселе, доказывая на деле свою заботу о безопасности конечного пользователя. Особенно хорош новый механизм шифрования в Outlook 2003.

Любопытно, что нам приготовит выход следующей версии Outlook 2007? Осмелимся предположить, что PST пароли, которые хранятся в реестре Windows с использованием дополнительного шифрования на базе Outlook 9x (данный метод был описан, когда шел разговор о каменном веке), теперь будут шифроваться по типу Outlook 2003. По крайней мере, это было бы логично. С паролями к почтовым учетным записям трудно что-либо предсказать. Скорее всего, мы увидим дальнейшее развитие нового алгоритма шифрования на базе Outlook 2003, либо новую связку protected storage + пароль пользователя. В любом случае, будем с нетерпением ждать выхода новой версии этой популярной программы, о механизмах шифрования которой будет обязательно рассказано в одной из следующих статей данного цикла.

О компании
Компания Passcape Software довольно молода, ведь основана она была лишь в 2005,
однако к настоящему моменту Passcape Software уже выпустила целую серию программных продуктов, лейтмотивом которой является восстановление паролей к популярным браузерам, почтовым клиентам и некоторым другим программам. За более подробной информацией о компании и её продуктах, пожалуйста, посетите http://www.passcape.com.

Orphus system
Подписывайтесь на канал infoCOM.UZ в Telegram, чтобы первыми узнавать об ИКТ новостях Узбекистана
В Telegram
В WhatsApp
В Одноклассники
ВКонтакте