Краткая история паролей от П до Ь: рождение, смерть и зомби-апокалипсис
Это краткий пересказ, пожалуй, самой грустной статьи о паролях за всю их историю, опубликованной в 2014 году в New York Times. История дает две главные характеристики парольной защиты: она создает кучу проблем, и, во многих случаях, все равно не работает. Пароли — настолько плохая концепция защиты, что их уже не раз хоронили и СМИ, и специалисты по безопасности, и научные исследователи. Но воз и ныне там, пароль по-прежнему остается главным методом отделения публичного от приватного, и такую ситуацию, после похорон-то, вполне можно официально считать цифровым зомби-апокалипсисом.
Сегодня я попробую проанализировать, что именно плохого в паролях (короткий ответ — всё), что можно с этим сделать, а также поделюсь парой интересных исторических наблюдений.
Все было плохо с самого начала
По версии журнала Wired, необходимость в паролях впервые возникла при строительстве компьютерных систем с общим доступом на основе разделения времени. В 60-х, когда компьютеры стоили очень дорого и занимали очень много места, это был единственный адекватный способ поделить вычислительные мощности между всеми желающими. Из системы Сompatible Time-Sharing System, разработанной в Массачуссетском технологическом в 1961 году, растут ноги множества современных технологий, включая концепцию Unix-подобных систем. С высокой степенью вероятности, авторизация по паролю впервые появилась там же.
При разработке CTSS стоял выбор между паролями и тем, что сейчас называется подсказками, вроде девичьей фамилии матери. Выбор в пользу паролей был очевиден: требовалось меньше памяти для их хранения и обработки. Системы безопасности при этом отсутствовали. В 1966 году в коде системы появилась ошибка, которая каким-то образом поменяла местами текст приветственного сообщения для пользователей и список паролей. В результате при каждом входе в систему можно было лицезреть пароли всех пользователей. Но еще раньше, в 1962 году, пароли пользователей украл один из аспирантов MIT: ему было положено всего 4 часа машинного времени, и он таким образом смог пользоваться чужими квотами. Сделать это было просто: каждый пользователь мог заказать печать файла, указав его имя и имя пользователя-владельца. Зная, что база паролей хранится в файле UACCNT.SECRET у пользователя M1416, аспирант смог распечатать всю базу целиком (больше воспоминаний о CTSS тут).
А ведь стало еще хуже
А из-за чего собственно сыр-бор? Новостной фон уже много лет не предполагает никакой реабилитации парольной защиты, но 2016 год все же стал особенным из-за огромного числа утечек паролей к различным популярным сервисам. Перечислю только основные:
» Mail.ru, Yahoo и Microsoft, всего около 300 миллионов паролей — база была скорее всего собрана в результате фишинга.
» LinkedIn — всплыла утечка 2012 года, с почтовыми адресами и хешированными паролями без соли (эксперты утверждают, что до 90% паролей можно расшифровать за трое суток).
» Tumblr — утекли хешированные пароли с солью, но на всякий случай администрация соцсети инициировала принудительный сброс.
» Вконтакте — 100 миллионов паролей открытым текстом, утекли старые пароли 2012 года, в соцсети утверждают, что это был не взлом.
» Twitter — 32 миллиона паролей, предположительно украденных с помощью фишинга и вредоносного ПО.
» Форум Ubuntu — 2 миллиона паролей украдены через SQL-иньекцию.
» Еще 2 миллиона паролей с форума игры Dota 2, как и в случае с Ubuntu, была атакована непропатченная система vBulletin. Пароли хешированы и посолены, но до 80% поддаются расшифровке.
» Dropbox — сброс паролей после всплытия утечки 2012 года. Предположительно была взломана учетная запись одного из сотрудников компании.
» Предположительно скомпрометированы 1,7 миллиона паролей службы синхронизации Opera.
» Rambler — почти 100 миллионов паролей, также датированные 2012 годом.
Пароли крадут у пользователей. У владельцев сервисов. По пути между первыми и вторыми. Продают на черном рынке, и выкладывают в открытый доступ. Взламывают сайты или используют фишинг. Сервис Have I Been Pwned? известного специалиста по безопасности Троя Ханта позволяет проверить, нет ли в утечках пароля, ассоциированного с вашим почтовым адресом. На данный момент там находятся базы со 136 ресурсов, а количество паролей превышает 1,4 миллиарда.
С высокой вероятностью ваши пароли четырехлетней давности доступны в сети почти открытым текстом. Утечки выходят боком и владельцам сайтов, изначально вроде бы не пострадавшим: их начинают атаковать, предполагая использование одного и того же пароля пользователем на разных сервисах. Вот примеры из недавних. Пароли пришлось сбрасывать сервису GoToMyPC после сообщений о взломе аккаунтов для удаленного доступа к рабочему столу. Аналогичную операцию пришлось провести сервису GitHub. Той же Mail.ru (и не ей одной) приходится мониторить утечки и сбрасывать пароли для доступа к своим сервисам на регулярной основе. Я уже говорил, что от паролей одни проблемы?
But why?
Все просто: мы используем слишком простые пароли. Выборку самых популярных паролей делают чуть ли не после каждой утечки, вот здесь есть показательный пример:
123456
password
12345
12345678
qwerty
123456789
1234
baseball
dragon
football
Дракон!11
Вот этот анализ компании WPEngine дает информацию по типичной длине паролей, чаще всего это от 6 до 9 символов. 11 и более символов используют менее 5% пользователей. Простые пароли выходят боком владельцам серверов. Открытым текстом базу паролей почти никто не хранит, но распознать хешированые пароли а-ля 111111 достаточно просто (подробнее о хешировании простым языком тут). Упомянутая выше утечка LinkedIn содержала только хешированные пароли, поэтому предполагается, что большинство паролей там можно расшифровать достаточно быстро. Добавление соли (случайных данных) усложняет атаку с использованием словаря, но не спасает от брутфорса — когда необходимо получить пароль конкретного пользователя, и этот пароль простой, атака остается реальной.
Но и это не все. По данным отсюда, примерно две трети пользователей используют одинаковые пароли на разных сервисах, сохраняют пароли открытым текстом, в том числе в электронном виде, забывают пароли, что побуждает использовать более простые комбинации. По нашим данным (PDF) примерно половина пользователей сохраняет пароли на своих устройствах в том или ином виде. Типовая длина пароля — 8–12 символов, более 20 символов используют только 3 процента пользователей.
Добавим к этому попытки активной кражи паролей пользователей, как с помощью вредоносного ПО, так и с помощью фишинга. По самым свежим данным «Лаборатории», фишинговые страницы были заблокированы у 8,7% пользователей. Утечка паролей открытым текстом как правило происходит именно в результате фишинга и атак вредоносного ПО. Крадут пароли из браузеров, таргетируют отдельные сервисы, такие как Steam. Типичной тактикой является кража всего, что плохо лежит — разберемся потом.
На этом фоне проблемы на стороне серверов, тем более вопросы перехвата паролей по пути кажутся не столь серьезными. На стороне сервера добавляет хаоса сложность инфраструктуры и нюансы работы, можно вспомнить хотя бы (исправленную) небезопасность одноразовых паролей приложений для Google. Сетевой перехват напрямую затрагивает пароли, когда они передаются открытым текстом по незащищенным каналам, но такое возможно все реже. Расшифровка кук, как это недавно было проанализировано на примере алгоритмов 3DES и Blowfish, остается пока чисто теоретическим упражнением, да и угон сессии напрямую к проблемам паролей не относится. Остаются атаки man-in-the-middle: условия для них создаются как на стороне пользователя, так и из-за небезопасной инфраструктуры. Пример последней — небезопасные точки доступа.
И что делать?
Сразу отметем попытки заставить людей использовать более безопасные пароли. Во-первых, заставить не получится. Во-вторых, это не решает проблему повторного использования паролей на разных сервисах. В-третьих, сложный пароль можно в первом приближении сравнить с использованием защищенного ключа для тех же соединений по SSH: ключи не генерируются руками, и в общем-то сложные пароли тоже не должны. Последнее возможно при использовании менеджеров паролей, это вполне надежный метод несмотря на взломы уже этих сервисов (например Lastpass в прошлом году). Увы, он остается весьма специализированным и вряд ли станет массовым. Туда же идет биометрия: уже давно понятно, что в текущей реализации (отпечаток пальца на телефонах, например) лишь дополнительный способ защиты вместе с паролем (еще более коротким, чем на десктопах!).
В отличие от менеджеров паролей, единственным массовым методом защиты пользовательских данных остается мультифакторная авторизация. Реализованная через телефон или через специальное приложение а-ля Google Authenticator и Яндекс.Ключ — такая схема либо полностью исключает многоразовое использование пароля, либо дополняет его рандомным кодом авторизации. Это очень круто, но в данной концепции один пароль заменяется другим, а значит остается возможность перехвата. Примеры перехвата банковских кодов авторизации вредоносным ПО уже есть. Предположу, что это рабочее, но временное решение проблемы, равно как и, например, попытки Microsoft ограничить использование небезопасных паролей на работе с помощью «больших данных» об утечках и кибератаках.
А вот реальное будущее наступит, когда пароли заменят данными о пользователе — в 1961 году на это не хватало ресурсов и памяти, а теперь и того, и другого в избытке. Google до конца этого года намерен допилить проект Abacus, идентифицирующий пользователя по поведению — по сути, о нас будут собирать большой объем информации, от манеры ходьбы до паттернов при наборе текста, и на основе множества признаков достаточно достверно отличать авторизованного пользователя от черт знает кого.
100% надежности уже не будет никогда
Да, ко всем предложенным методам — от менеджеров паролей, двухфакторной авторизации и до поведенческого анализа и биометрии можно предъявить претензии. Биометрию обходят силиконовыми пальцами, менеджеры паролей взламывают или угоняют мастер-пароль. Мультифакторную авторизацию обходят с помощью вредоносного ПО на смартфонах и мошенничеством с SIM-картами (а в перспективе еще и взломом сотовых сетей). Ни одно из решений не защищает полностью от фишинга — с ним в любом случае придется бороться отдельно.
И это, к сожалению, нормально. Золотой век интернета, когда вирусы были белыми и пушистыми, а почту почти ни у кого не ломали, был вызван тем, что и данные, хранящиеся за паролем были никому не нужны. Такое больше не повторится. Надо понимать, что любой метод защиты, применяемый лично вами, вашим банком или почтовым сервисом, не дает стопроцентной гарантии от взлома. Проблема парольной защиты в том, что в случае по умолчанию она в принципе небезопасна, как забор без ворот. Даже повсеместное внедрение двухфакторной авторизации (до него еще далеко, увы) значительно уменьшит количество успешных атак. Пока владельцы сайтов, форумов и прочих чатов переживают, что дополнительные меры защиты приведут к оттоку пользователей, сливы паролей будут продолжаться. На данный момент спасение утопающих находится в руках самих утопающих, пользователь по большому счету сам отвечает за защищенность свои аккаунтов. Изменить ситуацию может только волевое усилие одного из лидеров рынка (как у Apple с разъемом для наушников, только осмысленнее), за которым пойдут другие. И вот тогда наступит светлое будущее. И знаете что. При всей ущербности парольной защиты сегодня, совершенно не факт, что это будущее нам понравится.
Комментарии (1)
12 сентября 2016 в 12:31
0↑
↓
> Сразу отметем попытки заставить людей использовать более безопасные пароли.Это примерно как: «Сразу отметём попытки заставить солдат соблюдать устав и дисциплину». Или хотя бы как: «Сразу отметём попытки заставить работников соблюдать трудовую дисциплину и технику безопасности».