Слитые хешированные пароли Slack, утечки данных в Twitter, сообщения о взломе менеджера паролей LastPass. И это только малая часть того, чем пестрели новостные ленты в 2022 году. В компании LastPass, призванной надёжно хранить пользовательские пароли, признали, что злоумышленники получили доступ к резервной копии хранилища данных, используя ключи облачного хранилища, украденные у сотрудника LastPass. Мастер-пароли пользователей были скомпрометированы. Не пора ли уже отказаться от паролей и вступить в дивный новый мир беспарольной аутентификации? В этом посте кратко расскажем, как люди раньше хранили ключи к важной информации, как развивались менеджеры паролей и как будет выглядеть беспарольный доступ будущего. Пароли или их эквиваленты использовались на протяжении веков. «Сторожевые слова» использовали древние римляне для получения доступа к охраняемым территориям.  Шифры для кодирования и декодирования сообщений между военными командирами появились в Древней Греции около 400 года до нашей эры. Шифры выполняют ту же функцию, что и сторожевые слова и пароли — обеспечивают безопасность и ограничивают доступ. Одно из самых ранних сообщений об использовании паролей содержится в книге Судей. Два семитских племени — гилеадиты и  эфраимиты — враждовали. Когда гилеадиты тайно проникли на территорию эфраимитов, те, чтобы обнаружить вражеских солдат, требовали от всех подозрительных чужаков произнести слово «shibboleth». Всё потому, что в их языках было тонкое различие в произношении слова shibboleth, а именно: согласного звука sh. По тому, как оно произносилось, определяли «своих». Не прошедших аутентификацию убивали. Подобный способ аутентификации использовался на протяжении всей истории. Во время Битвы при Куртре (1302) фламандцы обнаруживали французов по их неспособности выговорить «Schild ende Vriend» (Щит и друг). Во время фризского восстания (1515–1523) использовалась фраза «Buter, brea, en griene tsiis; wa’t dat net sizze kin, is gjin oprjochte Fries» (Масло, ржаной хлеб и зеленый сыр — кто не может это выговорить, не настоящий фриз). Корабли, экипаж которых не мог это произнести, не впускались в порт и захватывались. А вот относительно современная история, известная как «резня петрушкой». В течение пяти дней в октябре 1937 года в Доминиканской Республике было убито около 35 000 гаитян. Доминиканские солдаты опознавали гаитян, держа в руках веточку петрушки и прося их произнести название. Если человек не мог произнести звук «р» в испанском названии петрушки (perejil), его убивали. Пароли нашли свое применение и в США в эпоху сухого закона в 1920-х годах. Чтобы попасть в нелегальные бары, любители выпить сначала должны были назвать швейцару действующий пароль. Про это рассказывается не только в голливудских фильмах, но и в одной из первых успешных графических компьютерных игр Leisure Suit Larry in the Land of Lounge Lizards (1987), где герой должен назвать пароль, чтобы войти в бар. Фраза «Меня прислал Кен» с тех пор приобрела культовый статус.  С тех пор система управления доступом «если у меня есть секрет, то есть и право на вход» трансформировалась в способ подтверждения личности — «если у меня есть секрет, то я тот, за кого себя выдаю». Вставка символов в определённом порядке, известном только пользователю с правом доступа, стала решением, позволяющим подтвердить свою личность. Первый официальный пароль для компьютеров появился, когда американский учёный Фернандо Корбато представил его концепцию в Массачусетском технологическом институте в 1960 году.  В 1960 году компьютеры в MIT использовались совместно несколькими пользователями в рамках системы CTSS (Compatible Time-Sharing System). Чтобы разные люди могли пользоваться одним компьютером и при этом хранить личные данные, к которым никто другой не имел доступа, Фернандо Корбато предложил первую систему защиты файлов паролем. А уже через некоторое время появились и первые взломщики. Ранние пароли хранились в виде простых текстовых файлов. Докторант Алан Шир, который хотел больше времени проводить за общим компьютером, смог распечатать файл паролей системы и использовал «одолженные» учётные данные для входа в систему под разными именами, чтобы продолжать работу над собственным проектом. Через много лет, в 2014 году, сам Корбато назовет пароли «кошмаром».  Со временем внимание к безопасности паролей возросло, предпринимались попытки сделать их надёжнее.  В начале 1970-х годов криптограф и специалист по обработке данных Роберт Моррис (отец Роберта Таппана Морриса, который в 1988 создаст печально известного червя Морриса) разработал систему в составе ОС Unix, в которой пароли для аутентификации юзеров хранились в зашифрованном виде. Так была разработана концепция хэширования — способа маскировки пароля путём преобразования его с помощью алгоритмов в уникальную строку символов, отличную от оригинального пароля. Исходный пароль не нужно хранить в базе данных.  Чтобы добавить ещё один уровень безопасности, можно также «посолить» пароль — добавить дополнительное значение в конец пароля. «Соление» помогает предотвратить атаки с использованием хэш-таблиц и замедляет атаки перебором и по словарю. В 1988 году червь Морриса стал первым компьютерным червём в интернете. Он заразил каждый десятый компьютер в сети всего за 24 часа после своего появления.  Червь использовал уязвимости в почтовом сервере Sendmail с подбором паролей по словарю. В те годы имя учётной записи (обычно реальное имя пользователя) часто совпадало с паролем. Как и у Алана Шеера, намерения «червя Морриса» были безобидными, но этот инцидент положил начало новой эре кибербезопасности и подкинул хакерам новые идеи для краж паролей. Как устранить пробел? Очевидно, что усложнять и сам пароль, и процедуру аутентификации. Различные компании и регулирующие органы предъявляют свои требования к безопасности паролей. Например, российский приказ Федеральной службы по интеллектуальной собственности от 14 июля 2015 г. N 97 «Об утверждении Положения по организации парольной защиты в Федеральной службе по интеллектуальной собственности» говорит следующее: длина пароля должна быть не менее 8 символов; в числе символов пароля обязательно должны присутствовать прописные буквы английского алфавита от А до Z, строчные буквы английского алфавита от а до z, десятичные цифры (от 0 до 10), неалфавитные символы (@, #,  пароль не должен включать в себя легко вычисляемые сочетания символов (имена, фамилии, наименования рабочих станций и т.д.), а также общепринятые сокращения и термины (qwerty, pa$$w0rd и т.п.); при смене пароля новый пароль должен отличаться от старого не менее, чем двумя символами. Со временем усложнялась и процедура входа. В 1998 году компания AT&T получила патент на двухфакторную аутентификацию (2FA). За двухфакторной последовала многофакторная аутентификация (MFA). MFA состоит из трёх основных элементов: что-то, что вы знаете (пароль), что-то, что у вас есть (телефон или MFA-токен, смарт-карта и т. д.), и что-то, чем вы являетесь (биометрия). Есть и четвёртый вариант, основанный на местоположении. К 2022 году особо ничего не поменялось — люди как использовали слабые пароли, так и продолжают использовать. Самый распространённый пароль в мире — password, и хакерам требуется менее одной секунды, чтобы взломать его. То же самое можно сказать о втором и третьем по распространённости паролях: 123456 и 123456789 соответственно.  Даже сами айтишники время от времени с удовольствием прибегают к «простым решениям». Это стало очевидным, когда хакерская группа OurMine атаковала аккаунты Twitter и Pinterest Марка Цукерберга. Пароль, который выбрал Цукерберг, оказался "dadada". Команда OurMine утверждала, что нашла его благодаря утечке данных на бизнес-сервисе LinkedIn, произошедшей в 2012 году. Если сильный пароль длинный и не интуитивный, то как запомнить всё то множество паролей для разных сервисов? Не на бумажке же записывать. Менеджеры паролей со временем становятся все более удобными инструментами. Они развивались на протяжении 4 поколений, и каждое вносило свои улучшения в безопасность хранения.  Браузерные менеджеры паролей — это первое широко используемое поколение. Несмотря на всё их удобство — это небезопасное решение, так как все пароли, сохранённые в браузерах, не шифруются или шифруются так, что их можно легко расшифровать. Например, самый популярный браузер Chrome использует DPAPI для шифрования паролей в Windows. Любое приложение, запущенное пользователем, может восстановить исходные пароли с помощью CryptUnprotectData. Если браузер помогает заполнить пароли, не запрашивая, мастер-пароль для разблокировки хранилища паролей, значит, он не обеспечивает надёжное хранение. Если браузер может считывать пароли напрямую, то это смогут сделать и вредоносные приложения. А ещё браузеры — это излюбленные цели хакеров, и если браузер будет скомпрометирован, то же самое произойдёт и с паролями. Менеджеры паролей второго поколения используют сложные алгоритмы для защиты паролей с помощью мастер-пароля — ключа к разблокировке хранилища. Password Safe (2002 год) и KeePass (2003 год) — два известных менеджера паролей с открытым исходным кодом и защитой мастер-паролем. Например, в KeePass 2.x  используются алгоритмы ChaCha20 и AES / Rijndael, считающиеся очень безопасными. AES (Rijndael) вступил в силу в качестве стандарта федерального правительства США и одобрен Агентством национальной безопасности для совершенно секретной информации.  ChaCha20 — это преемник алгоритма Salsa20. Его ядром является генератор псевдослучайных чисел, и алгоритм основан на операциях Add-Rotate-XOR (ARX). Зашифрованный текст получается путём проведения операций XOR над открытым текстом с потоком псевдослучайных чисел. Менеджеры паролей третьего поколения — облачные. Они вводят главный секретный ключ для защиты хранилища на стороне облака, но по-прежнему зависят от мастер-пароля на стороне устройства. Облачные менеджеры паролей открывают новую поверхность атаки на стороне облака при синхронизации хранилища паролей с несколькими устройствами через облачный сервис. Доступ к хранилищу, загруженному в облако, могут получить как хакеры, так и недобросовестные сотрудники.  Пример такого облачного менеджера паролей — 1Password. Для решения проблем с доступом к хранилищу в компании разработали алгоритм выведения двух секретных ключей (Two Secret Key Derivation, 2SKD). Менеджеры паролей четвёртого поколения используют преимущества чипов безопасности в смартфонах для защиты хранимых паролей. Эти пароли будут в безопасности на телефоне, даже если мастер-пароль будет раскрыт. Пример такого менеджера паролей — Keepass2Android. Но несмотря на все уровни защиты, атакован может быть любой менеджер паролей. И мы хорошо в этом убедились на примере Last Pass. Буквально на днях инженер LastPass написал о деталях утечки. Вкратце: мастер-пароль пользователя используется для создания мастер-ключа к базе записей в контейнере и шифрования записей. Ключ генерируется как pbkdf2, но количество раундов (чем больше итераций, тем сложнее подобрать ключ) было разным. У новых пользователей по умолчанию были 100100 итераций, а у старых могло быть 5000, что делало их уязвимыми к методу перебора. Пароль по-прежнему критикуют за низкий уровень безопасности, поскольку в его основе лежат принципы, несовместимые с высоким уровнем безопасности. Сам принцип — общий секрет — приводит к двум векторам атаки: Данные в пути: когда пароль может утечь или быть украден через прокси-сервер. Данные в состоянии покоя: когда используются методы хранения с низким уровнем безопасности (обратимое шифрование вместо необратимого хэша, старый протокол типа sha-1, отсутствие соления или хранение пароля в виде обычного текста, прямо как в 60-е). И даже более современные хэш-протоколы остаются потенциально уязвимыми перед лицом современных вычислительных мощностей. При использовании новейшего хэш-протокола типа sha256 получение 8-символьного пароля из его хэша займёт менее суток. Также уязвимое место любой системы — это люди. Они плохо генерируют и запоминают сложные пароли, склонны пренебрегать правилами безопасности, а кроме того людей можно «взломать» методами социальной инженерии. О том, что традиционный пароль должен умереть, Билл Гейтс говорил ещё в 2004 году. В ближайшее время это, вероятно, не произойдёт, но путь к беспарольной аутентификации начался уже давно — от брелоков, содержащих встроенные компоненты аутентификации для доступа к компьютерным системам в 80-х, до биометрического доступа сейчас. Когда AT&T запатентовала первый инструмент MFA, компании включились в развитие беспарольных технологий. В 2004 году Microsoft помогла разработать устойчивую к взлому биометрическую идентификационную карту. Пятого мая 2022 года Apple, Google и Microsoft объявили о планах по расширению поддержки стандарта беспарольного входа в систему, созданного FIDO Alliance  и World Wide Web Consortium. Беспарольную аутентификацию можно разделить на две основные категории факторов владения: владение и биометрия.  Примеры на основе владения включают мобильное устройство, смарт-карту, аппаратный токен, USB-устройство, брелок, жетон или программный токен.  Примерами биометрической аутентификации может быть всё, что связано с уникальными физическими характеристиками человека, например, сканирование сетчатки глаза или отпечатков пальцев, а также распознавание голоса и лица. Например, как Face ID в iPhone. Беспарольную аутентификацию не следует путать с многофакторной аутентификацией. MFA — это процесс проверки, требующий как минимум двух факторов аутентификации. Это может быть любое сочетание факторов, основанных на знаниях (например, пароль), на владении (например, токен) или биометрических (например, сканирование сетчатки глаза). Также не следует путать её и с двухэтапной верификацией (2SV), которая требует от пользователя выполнения ровно двух одинаковых действий, например, ввода пароля, а затем PIN-кода (оба основаны на знаниях). О перспективах беспарольной аутентификации могут сказать рыночные тенденции. Ожидается, что к 2025 году рынок достигнет 25,2 млрд. долларов и постепенно увеличится до почти 53,6 млрд. к 2030 году.  Вероятно, что отрасль кибербезопасности будет адаптироваться и предлагать больше вариантов продуктов без пароля. И мы увидим, как новые нормативные требования по обеспечению безопасности адаптируются к беспарольному миру.  НЛО прилетело и оставило здесь промокод для читателей нашего блога: — 15% на все тарифы VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.  редактор, автор, солдат удачи