Критическая ошибка в криптографическом пакете OpenSSL стала одной из самых серьёзных угроз безопасности за всю историю интернета. На протяжении двух лет через неё можно было выполнять скрытый и совершенно бесследный несанкционированный доступ к большей части узлов Всемирной паутины. Как защитить себя во враждебном сетевом окружении, где разом было утрачено доверие к SSL-сертификатам и защищённому протоколу HTTPS?
Из-за уязвимости Heartbleed под ударом оказались серверы популярных сайтов, компьютеры удалённых пользователей и сетевые устройства сложнее хаба. Компания Cisco представила впечатляющий список оборудования, который подвержен данной ошибке. Другие фирмы сейчас либо готовят аналогичные списки, либо просто игнорируют проблему.
Даже после выхода патча многие узлы в сети останутся уязвимыми неопределённо долго. Авторизация на сайтах и в почте, использование онлайн-банкинга и интернет-магазинов — всё это теперь крайне рискованно. Пользователям следует перестать полагаться исключительно на репутацию брендов и начать самим предпринимать активные шаги. Вот краткий перечень того, как можно повысить свою безопасность:
- проверить домашний роутер по спискам уязвимого оборудования, обновить прошивку (если она вышла после седьмого апреля) или отключить удалённое администрирование;
- выполнять проверку наличия незакрытой уязвимости Heartbleed на всех сайтах, работающих по протоколу HTTPS, перед их посещением;
- сгенерировать стойкие пароли. Их не обязательно хранить или помнить: есть проверенный способ, о котором написано ниже;
- сменить все пароли (а также секретные вопросы для их восстановления);
- перейти (где это технически возможно) на двухфакторную авторизацию.
Теперь обо всех перечисленных этапах подробнее.
Когда стало известно об уязвимости Heratbleed, владельцы сайтов поспешили перейти на исправленную версию пакета OpenSSL и перевыпустили скомпрометировавший себя цифровой сертификат SSL. К сожалению, столь разумно пока среагировали лишь единицы.
Помимо слегка перегруженного сайта Possible, ещё одна форма для проверки любого сайта представлена здесь. Реализована она далеко не идеально — требует прямого указания порта (обычно это 443) и грешит ложноположительными результатами.
Косвенно убедиться в том, что на конкретном сайте проблема была устранена, можно по дате выдачи его сертификата. Он должен быть сгенерирован после седьмого апреля этого года — дня публикации патча. Сделать такую проверку можно на специализированном веб-сервисе. Просто введите имя сайта и… скорее всего, вы убедитесь, что он до сих пор уязвим к данному виду атаки.
Более продвинутая методика тестирования сайта работает на сайте SSL Labs. Недавно в неё была добавлена отдельная проверка на уязвимость Heartbleed.
Коснулась ли ошибка в OpenSSL именно вас, узнать практически невозможно. Её использование не оставляет никаких следов и выглядит совершенно легитимно для всех защитных программ. Поэтому на уровне пользователя в таких случаях срабатывает универсальное правило смены всех паролей доступа.
Здесь возникает новая дилемма: поскольку десятки новых паролей легко забыть, их либо придумывают попроще, либо где-то записывают. Часто это обыкновенная бумажка или текстовый файл.
Брелок — устройство, позволяющее потерять все ключи одновременно.
Более продвинутые пользователи используют менеджеры паролей. В этих программах все данные для авторизации на различных ресурсах хранятся в зашифрованном файловом контейнере, доступ к которому открывается после ввода мастер-пароля — единственного, который в такой схеме приходится помнить.
Главный недостаток метода заключается в том, что, забыв мастер-пароль или повредив базу, пользователь лишается доступа сразу ко всему. Аналогично, в случае удачной атаки на зашифрованный контейнер, такая программа позволяет скомпрометировать все ваши пароли сразу.
К тому же надёжность большинства менеджеров паролей довольно сомнительна. Они сами часто содержат ошибки в реализации криптографических схем или вовсе дублируют данные в открытом виде, забывая удалять их из оперативной памяти и временных файлов. Например, во время аудита программы LastPass 2.0.20 специалисты Sophos обнаружили, что все пароли браузера Internet Explorer сохраняются в дампе памяти.
Не хранить, а творить!
Между тем существует универсальный способ превратить легко запоминающийся и даже очевидный пароль в стойкий ко взлому. Основан он на свойствах хеш-функций и весьма удобен в повседневной практике.
Лёгкий пароль должен содержать какую-то очевидную переменную часть. Например, имя сайта. Помимо неё, надо добавить что-то уникальное и постоянное, называемое «солью». Пусть в нашем примере это будет число сорок два. Выбираем любую хеш-функцию (как вариант — MD5) и вычисляем её, подставляя в качестве исходных данных наш «солёный» пароль.
Таким образом примитивный пароль «vk.com42» превращается в стойкий «EE61518029FF5AF634C1A867B064D600», а «twitter.com42» — преобразуется в «28D1FF535970D9927B099BB0897677CF». Именно эти последовательности из тридцати двух символов и следует использовать для доступа на сайты «ВКонтакте» и Twitter соответственно.
Запоминать их нет смысла, так как легко вспомнить сам метод получения. Нужный пароль отображается сразу после ввода комбинации [имя_сайта + соль] в любом хеш-калькуляторе и переносится через буфер обмена (который потом сразу очищается вручную).
Для Windows это может быть бесплатный DAMN Hash Calculator, а для Android — Hash Droid. Кроме того, существуют онлайн-сервисы вычисления хеш-функций строки или файла через простейшую форму на сайте.
Примечание: Старайтесь использовать только цифры и символы латиницы. Буквы кириллицы имеют разные коды в национальных кодировках. Содержащие их пароли будут по-разному обрабатываться другими хеш-калькуляторами.
Дополнительно можно повысить стойкость таких паролей, внеся в них некоторые модификации. Например, удалить последний знак, поменять местами два первых, использовать одну хеш-функцию и сокращать результат до размера другой… Вариантов масса. Каким будете пользоваться именно вы, узнать практически невозможно.
Когда есть сомнения в надёжности самой схемы авторизации, считают, что атакующая сторона способна перехватить пароль. В таком случае его длина и сложность уже не играют важной роли, а требуется дополнительный уровень защиты.
Двухфакторная схема авторизации подразумевает, что, помимо пароля, легитимный пользователь предоставляет для входа в систему что-то ещё. Это может быть аппаратный ключ, биометрические данные или дополнительный пароль, отправляемый ему после ввода первого по другому каналу связи (например, в СМС).
Именно таким образом уже работает большинство платёжных систем. Есть надежда, что уязвимость Heartbleed простимулирует более широкое внедрение двухфакторных схем аутентификации, обратит внимание пользователей на современные методы защиты данных и поспособствует оздоровлению интернета в целом.