Всем привет! Меня зовут Валерий Кузьменков, я работаю аналитиком информационной безопасности в Positive Technologies (если интересно, чем занимается мой отдел и почему специалисты этого направления уникальны на рынке, читайте другой наш пост). Начну немного издалека: специалисты по кибербезопасности множество раз пытались похоронить символьные пароли, но сделать это все никак не удавалось. Вместо них предлагали использовать то ПИН-коды, то графические ключи, а с приходом нейросетей хотели даже идентифицировать пользователей по манере ввода символов с клавиатуры.  Многих исследователей до сих пор занимает идея о том, что в паролях было бы здорово использовать эмодзи: комбинаций с ними намного больше, а запоминать их в разы легче. И вот, наконец, у меня появилось время поизучать, сможет ли это нововведение повысить безопасность наших аккаунтов и окупятся ли усилия, потраченные на его внедрение.  «Золотым стандартом» паролей сегодня принято считать комбинацию из не менее восьми символов, которая, помимо букв английского алфавита обоих регистров, содержит цифры и специальные символы.  Давайте рассчитаем точное число вариантов для пароля такой длины. В современном английском алфавите 26 букв, а для записи всех чисел мы используем 10 арабских цифр — от 0 до 9. В группу специальных символов, в свою очередь, входят ! " # $ % & ' ( ) * + , -. / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ и пробел. Отмечу, что некоторые разработчики ограничивают использование определенных символов, но я не буду брать это в расчет.  Итого: 33 спецсимвола. Получается, что для каждого символа в пароле предусмотрено 95 вариантов. Для желающих меня проверить привожу подробный расчет: 26 букв верхнего регистра + 26 букв нижнего регистра + 10 цифр + 33 спецсимвола = 95. Тогда полному 8-символьному паролю будет соответствовать 958 вариантов, или 6 634 204 312 890 625, если перевести в числовое выражение. Далее я буду отталкиваться от этого числа.  В настоящее время насчитывается 1809 эмодзи — это значительно больше, чем число вариантов, приходящихся на один символ в пароле. Сколько эмодзи нужно, чтобы максимально приблизиться к числу вариантов, которые дает «золотой стандарт»?    18094 = 10 709 131 895 361 18095 = 19 372 819 598 708 049 Выходит, хватит и пяти. Как заявляет Microsoft, у пользователей возникают проблемы с запоминанием паролей, если их длина превышает 10 символов. В нашем случае длина пароля ровно вполовину меньше. Звучит многообещающе. А какие тогда у эмодзи минусы? Хотелось бы мне посмотреть на пароль в виде эмодзи для BIOS, но, думаю, лучше не стоит. Не все приложения, как известно, поддерживают Unicode. Хотя некоторым это не нужно. Наверное. Переход к паролям, состоящим из символов этого стандарта, всегда связан с трудностями. А если речь заходит об эмодзи, где у части человеческих пиктограмм можно поиграть с модификатором оттенка кожи (подробнее о проблемах с ним можно почитать здесь), миссия становится почти невыполнима. Например, важно, чтобы у всех пользователей внешний вид эмодзи был одинаковым, а пароль совпадал побитово. Боюсь, что попытки реализовать «эмоциональные» пароли будут измеряться тоннами седых волос разработчиков со всего мира. При этом любому из них может достаться за того парня, который сделал как проще, а не как надо. Пользователи не станут разбираться, кто виноват: они будут свято уверены в том, что проблема в приложении (или сайте), которое почему-то не желает принимать правильный пароль, а не в их любимой клавиатуре. Что делать, если приложение требует использовать в пароле спецсимволы и буквы разного регистра по аналогии с «золотым стандартом»? Придется добирать обязательные символы, чтобы при регистрации наш эмодзи-пароль с формальной точки зрения был признан надежным. С одной стороны, уровень безопасности повысится, что, конечно, радует, а с другой — мы получим монстра Франкенштейна. Смотрите, какой красавец: Для пользователей это означает смену раскладок клавиатуры, переключение регистров и долгий поиск экрана с восклицательным знаком, решеткой и долларом — в общем, сплошные неудобства. Как результат, в качестве паролей они будут выбирать простейшие комбинации, так как их легко вводить. И вот это уже выглядит не очень безопасно. Если не удается воспользоваться клавиатурой, где эмодзи привычно представлены в виде картинок, можно попробовать ввести пароль с помощью уникального кода, присвоенного каждому эмодзи. Как это сделать — описано в этой статье. А теперь вопрос на засыпку: вы знаете код эмодзи 🔑 в ОС Windows?  Нет? Тогда можете запомнить — Alt + 128273, вдруг пригодится. А после останется выучить еще 1808 😊. Далее умножаем наш пароль из пяти эмодзи на 6 и получаем 30. Вот мы и посчитали общую длину пароля, которая равняется 30 символам. Увы, это в три раза больше, чем, по мнению Microsoft, удобно будет запомнить пользователям. На этом приключения не заканчиваются: возможно, вам потребуется приложить дополнительные усилия и провести даже целое расследование, чтобы ввести верный символ.  Можете попробовать объяснить пользователям, как из U+1F511 получается Alt + 128273. А затем посмотреть (не забыв вооружиться секундомером), как быстро они ваши разъяснения забудут. Как вам идея?  Эмодзи «ключ» в Unicode имеет следующий код: U+1F511. Берем его вторую часть (1F511) и переводим ее из шестнадцатеричной системы счисления в десятичную. Для этого необходимо воспользоваться стандартным калькулятором Windows, скорее всего на компьютере коллеги (обычно пользователи сталкиваются с подобной проблемой, когда не могут войти в свою систему). Переводим калькулятор в режим Programmer (не забудьте после операции вернуть ему первоначальный вид). Получаем — 128273. Чтобы напечатать нужный эмодзи в пароле, зажмите клавишу Alt на клавиатуре и введите полученное шестизначное число. Возможно, потребуется также объяснить пользователям, где искать коды символов эмодзи. Сможете быстро найти на клавиатуре эмодзи с Санта-Клаусом? Напомню, вариантов совсем немного — всего около 1800 😂. А еще в разных приложениях эмодзи расположены не так, как вы привыкли. Как вы считаете, где на картинке ниже DVD, а где optical disk? Несмотря на визуальную схожесть, для любой программы это совершенно разные эмодзи, которые она ни за что не перепутает. А вот пользователи могут легко ошибиться. Более того, изображения одного и того же эмодзи в разных приложениях и на разных клавиатурах могут сильно отличаться.  Вот как выглядит тот же самый оптический диск в Твиттере: Идем дальше: как вам разница между black large square, black medium square, black medium small square и black small square? А ведь на экране смартфона они будут выглядеть сильно меньше. Использование стандартного пароля вкупе со спецсимволами предполагает, что у пользователей есть более 6 квадриллионов вариантов. Выбирай — не хочу. Но они ленятся придумывать сильные пароли и продолжают писать в поле для ввода password, который, кстати, замыкает пятерку самых популярных паролей как в России, так и в мире за 2021 год (7,6 млн и 21 млн использований соответственно). Как думаете, удастся ли кибербезопасникам когда-нибудь убедить пользователей не брать для паролей символы с первого экрана, если до сих пор мы не можем донести до многих, что ставить галочку «Сохранить пароль» при входе в веб-приложения — это плохая идея? Ну заблокируем мы первый экран, тогда в ход пойдут символы со второго. Пользователи всегда найдут способ упросить себе жизнь. Например, начнут использовать распространенные сочетания эмодзи. Кстати, а вы узнали пароль из картинки на превью? Это correct horse battery staple (со скобкой вышла неудача, пришлось импровизировать). А еще есть игра «Угадай известный фильм по эмодзи». Думаю, многие пользователи просто копипастнут оттуда понравившиеся варианты или будут использовать их для вдохновения. Как и злоумышленники. Да, наверное, они сами будут эти варианты составлять. Идея использовать эмодзи в качестве паролей не лишена привлекательности, и в ней есть рациональное зерно. Так, например, техногигант Apple и некоторые производители сетевого оборудования ее уже воплотили. Если тоже захотите реализовать эту возможность, имейте в виду, что проект будет неизбежно сопряжен с трудностями технического характера. Если (читайте: когда) что-то пойдет не так, специалистам по кибербезопасности и разработчикам не хватит ромашкового чая 🌼🍵, чтобы успокоить нервы и разрешить проблемы. А еще эти пользователи… они умудряются испортить любую хорошую идею!