Выполнение входа в систему на ПК посредством сенсорного ввода традиционно было довольно громоздким процессом. Требования, предъявляемые к надежности паролей, растут — приходится вводить цифры и символы в разных регистрах — поэтому ввод длинного сложного пароля на экранной клавиатуре может занять до 30 секунд. Мы убеждены, что работа с Windows 8 должна происходить быстро и эффективно, а работа начинается с выполнения входа в систему.
На рынке сенсорных устройств были опробованы многие способы решения данной проблемы, одним из канонических примеров является ввод числового ПИН-кода. ПИН-код является отличным решением: почти каждый видел или использовал подобный код ранее, а на сенсорном экране легко использовать дополнительную клавиатуру. Тем не менее и это решение можно улучшить.
Использование последовательности цифр зачастую является проблематичным, поскольку люди лучше всего запоминают наименее безопасную последовательность. Типичные последовательности цифр, такие как 1111 или 1234, ненадежны. Также если злоумышленник обладает персональными данными человека (большинство из которых не так уж и сложно получить), то он может вывести ПИН-коды, составленные на основе известных личных дат. В этом случае от использования числа, являющегося личным для человека, может пострадать безопасность данных. Мы решили изменить подход. И разработали быстрый и удобный способ сенсорного входа в систему, который является личным для каждого пользователя.
Персонализированный вход в систему
Графический пароль состоит из двух взаимодополняющих компонентов. Он содержит изображение из вашей коллекции изображений и набор жестов, рисуемых поверх изображения. Вместо выбора из готового набора изображений Майкрософт вы сами предоставляете картинку, что увеличивает и безопасность, и запоминаемость пароля. Вы решаете, какая это будет картинка и какие ее части важны для вас. К тому же вы видите изображение, важное именно для вас, — подобные изображения часто отображаются на экране блокировки телефона.
В своей основе графический пароль разработан таким образом, чтобы выделять важные для вас части изображения, и требует ввода набора жестов, что позволяет выполнять соответствующие действия быстро и надежно. Чтобы определить наилучший набор жестов для решения подобной задачи, мы раздали набор изображений ряду участников исследования и попросили их выделить части изображения, важные для них. И все, участники не получили больше никаких указаний. Мы выяснили, что люди выполняют три основных действия: указывают расположение, связывают области или обозначают траектории, обводят области. Мы соотнесли данные действия с касанием, линией и кругом соответственно. Это минимальный обнаруженный нами набор жестов, позволяющий людям выделить наиболее важные для них части изображения.
Жестам линии и круга присуще свойство, добавляющее дополнительный уровень персонализации и безопасности: направление. При рисовании круга или линии на выбранном изображении Windows запоминает то, каким образом они были нарисованы. Поэтому тот, кто пытается воспроизвести графический пароль, должен знать не только выбранные части изображения и порядок их выделения, но также направление, начальные и конечные точки нарисованных линий и кругов.
Мы также исследовали использование произвольных жестов. При изучении данной концепции (как во время итераций разработки, так и во время исследования) мы обнаружили главный недостаток подобного способа: время, необходимое для входа в систему. Как было сказано выше, мы искали способ входа, который был бы быстрее, чем ввод с помощью экранной клавиатуры. Для измерения эффективности различных способов входа, опробованных нами в ходе разработки, в качестве точки сравнения мы использовали время входа с помощью экранной клавиатуры. Мы обнаружили следующее: у людей, использовавших свободные жесты, постоянно уходило больше времени на вход. Их действия замедляла сама концепция произвольных жестов, т. к. испытуемые думали, что им нужно быть особо точными (что не так) и указывать мелкие детали на изображении.
Поскольку люди выделяли области изображения вместо мелких деталей, использование ограниченного набора жестов в среднем оказалось в три раза быстрее, чем использование свободных жестов. Также было обнаружено, что при постоянном использовании набора жестов можно выполнить эту задачу в течение четырех секунд, а при использовании произвольных жестов выполнение того же задания занимало в среднем 17 секунд. После многократного использования метода произвольных жестов многие участники просили изменить свои жесты и выбирали вместо них проведение простых линий и указание соответствующих расположений.
Как работает графический пароль
После выбора изображения на него накладывается сетка. Самая длинная сторона изображения разбивается на 100 сегментов. Затем разбивается более короткая сторона и создается сетка, на которой рисуются жесты.
Для настройки графического пароля вы наносите жесты на созданном поле. Отдельные точки определяются их координатами (x,y) на сетке. Для линии запоминаются начальные и конечные координаты, а также их порядок. Порядок используется для определения направления рисования линии. Для круга запоминаются координаты точки центра, радиус и направление. Для касания запоминаются координаты точки касания.
При попытке выполнения входа с помощью графического пароля введенные жесты сравниваются с набором жестов, введенных при настройке графического пароля. Рассматривается разница между каждым жестом и принимается решение об успешности проверки подлинности на основе найденного количества ошибок. Если тип жеста неправильный (должен быть круг, а вместо него линия), проверка подлинности не будет пройдена. Если типы жестов, порядок ввода и направления совпадают, то рассматривается, насколько эти жесты отличаются от введенных ранее, и принимается решение о прохождении проверки подлинности.
Для примера рассмотрим жест касания. Это наиболее простой из трех жестов, как в плане возможных отклонений, так и в плане анализа. При определении соответствия между точкой касания и введенной ранее точкой функция количественной оценки сравнивает расстояние между исходным жестом, введенным как часть графического пароля, и только что введенным жестом. Функция выдает оценку в 100 % для точного совпадения и 0 %, если точка находится достаточно далеко. Точки совпадают, если оценка >= 90 %. Вот визуальное представление оценочной функции для точки в непосредственной близости к 100-процентному совпадению:
Область, которая считается совпадением, это круг с радиусом 3. В этот круг попадает в общей сложности 37 точек (X,Y); касание любой из них будет возвращать совпадение. Для точек линий и кругов выполняются такие же вычисления.
Безопасность и подсчет жестов
При рассмотрении вопроса о количестве жестов, необходимых для задания графического пароля, мы учитывали надежность, запоминаемость и скорость ввода пароля. Требовалось найти баланс между этими, зачастую конкурирующими, свойствами и добиться оптимального взаимодействия с пользователем, которое будет также обеспечивать безопасность. Чтобы определить необходимое количество жестов, соответствующее нашим целям в плане безопасности пароля, мы сравнили графический пароль с другими способами проверки подлинности, а именно с ПИН-кодом и простым текстовым паролем.
Анализ количества уникальных комбинаций ПИН-кода довольно прост. В 4-разрядном ПИН-коде (4 разряда с 10 независимыми возможными значениями в каждом разряде) может быть 104 = 10 000 уникальных комбинаций.
Анализ текстовых паролей может быть упрощен, если предположить, что пароли — это последовательность знаков, состоящая из строчных букв (26), прописных букв (26), цифр (10) и символов (10). В простейшем случае, когда пароль состоит только из n строчных букв, возможны 26n перестановок. Если пароль может иметь длину от 1 до n букв, количество перестановок будет следующим:
Например, 8-буквенный пароль имеет 208 миллиардов возможных комбинаций, что большинству пользователей покажется весьма безопасным количеством.
К сожалению, большинство пользователей выбирают пароли отнюдь не случайным образом. Для своих собственных устройств люди используют обычные слова и фразы, имена членов семьи и т. д.
Для подобного случая предположим, что пользовательский пароль состоит из двух строчных букв, одной прописной буквы, одной цифры или символа; прописная буква и цифра или символ могут находиться в любом месте в пароле. Количество уникальных паролей будет равно следующему значению:
В следующей таблице показано, как размер пространства решений ��еняется в зависимости от размера пароля и используемого набора знаков.
Длина пароля | Уникальные пароли |
1 | нет |
2 | нет |
3 | 81 120 |
4 | 4 218 240 |
5 | 182 790 400 |
6 | 7 128 825 600 |
7 | 259 489 251 840 |
8 | 8 995 627 397 120 |
При рассмотрении графического пароля мы можем провести подобный анализ для каждого типа жеста. В приведенных ниже таблицах учитывается количество уникальных позиций жестов и степень мягкости нашего алгоритма распознавания.
Для простейшего жеста (касания) количество уникальных наборов жестов вычисляется как функция от количества касаний:
Число касаний | Уникальные жесты |
1 | 270 |
2 | 23 535 |
3 | 2 743 206 |
4 | 178 832 265 |
5 | 15 344 276 658 |
6 | 1 380 314 975 183 |
7 | 130 146 054 200 734 |
8 | 13 168 374 201 327 200 |
Круговой жест сложнее касания, но проще линии. В попытке оценить относительную надежность кругового жеста предположим, что злоумышленник знает о том, что радиус гарантированно будет между 6 и 25 (что упрощает подбор кругового жеста), предположим далее, что координаты X и Y расположены между 5 и 95. Это дает злоумышленнику следующее пространство решений для исследования:
Для круга количество уникальных наборов жестов задается как функция от количества кругов:
Число кругов | Уникальные жесты |
1 | 335 |
2 | 34 001 |
3 | 4 509 567 |
4 | 381 311 037 |
5 | 44 084 945 533 |
6 | 5 968 261 724 338 |
7 | 907 853 751 472 886 |
Линия — наиболее сложный из всех трех жестов. Линия определяется двумя точками на нормализованной сетке размером 100 х 100 и порядком задания этих точек, что номинально дает 100 миллионов возможных линий; однако длина линии должна быть не меньше 5, так что количество уникальных линий будет равно 99 336 960. В отличие от попыток подобрать круговые жесты, где злоумышленники могут делать упрощающие предположения, существенно сужающие пространство решений, для линий нет подобных очевидных методов редукции. Линии запросто могут быть короткими отрезками или идти от края до края экрана. Количество совпадений для линий будет следующим:
Число линий | Уникальные жесты |
1 | 1 949 |
2 | 846 183 |
3 | 412 096 718 |
4 | 156 687 051 477 |
5 | 70 441 983 603 740 |
Разобравшись с надежностью отдельных жестов, мы можем объединить эти данные для оценки наборов, содержащих несколько жестов. Для этого просуммируем количество уникальных жестов каждого из трех типов жестов для определенной длины жеста n и возведем сумму в n-ю степень. Результаты приведены в следующей таблице, в которой графический пароль сравнивается с ПИН-кодом и текстовым паролем.
Длина | 10-разрядный ПИН-код | Простой пароль из набора знаков a-z | Пароль из более сложного набора знаков | Графический пароль из нескольких жестов |
1 | 10 | 26 | нет | 2 554 |
2 | 100 | 676 | нет | 1 581 773 |
3 | 1 000 | 17 576 | 81 120 | 1 155 509 083 |
4 | 10 000 | 456 976 | 4 218 240 | 612 157 353 732 |
5 | 100 000 | 11 881 376 | 182 790 400 | 398 046 621 309 172 |
6 | 1 000 000 | 308 915 776 | 7 128 825 600 | |
7 | 10 000 000 | 8 031 810 176 | 259 489 251 840 | |
8 | 100 000 000 | 208 827 064 576 | 8 995 627 397 120 | |
Как можно заметить, использование трех жестов обеспечивает значительное количество уникальных комбинаций жестов и такую же надежность, как у пароля из 5-6 случайно выбранных знаков. Кроме того, три жеста позволяют получить графический пароль, который легко запоминается и быстро вводится.
В дополнение к числу уникальных комбинаций мы повысили безопасность графического пароля с помощью двух мер защиты от атак, связанных с повторными попытками ввода пароля. Аналогично блокировке телефона, происходящей при вводе неверного ПИН-кода, после пяти попыток неправильного ввода графического пароля данная возможность блокируется до выполнения входа с использованием обычного текстового пароля. Кроме того, графический пароль невозможно ввести при работе по сети или удаленно, что предотвращает сетевые атаки на данный компонент операционной системы.
Уточним: графический пароль добавлен в качестве способа входа в систему как дополнение к текстовому паролю, а не как его замена. Следует иметь хорошую подсказку и использовать меры защиты текстового пароля, который по-прежнему может использоваться для выполнения входа в систему (на экране входа предоставляется возможность быстрого переключения между доступными способами ввода пароля).
Защита от следов пальцев на экране
Мы учли некоторые соображения, возникшие при практическом использовании графического пароля. Многие беспокоятся о следах от пальцев, оставленных на сенсорном экране, и о том, насколько просто будет распознать пароль на основе этих следов. Поскольку важен порядок ввода жестов, их направление и местоположение, возможность угадать правильный набор жестов по следам от пальцев представляется весьма маловероятной даже в случае абсолютно чистого экрана, не говоря уже об экране, которым пользуются постоянно.
Потенциальная угроза заключается в том, что следы, оставленные при выполнении входа, могут дать подсказки о введенной последовательности. Можно сравнить три способа выполнения входа (экранная клавиатура, 4-разрядный ПИН-код, графический пароль) по степени трудности угадывания входной последовательности. Предположим наихудший случай:
- Пользователь очистил экран до зеркального блеска.
- Пользователь произвел минимальное количество касаний, необходимых для выполнения входа.
- Пользователь отошел от своего компьютера и больше его не касался.
- Злоумышленник похищает планшетный ПК и может со 100-процентной точностью видеть каждый жест, использованный для проверки подлинности.
Конечно, такой случай весьма маловероятен, но подобный сценарий позволяет сравнить три метода выполнения входа и их потенциальную уязвимость по отношению к такому виду атаки.
При использовании ПИН-кода для каждой цифры на экране останется след от пальца. Если в коде n цифр и каждая из цифр уникальна (наиболее сложный случай при отгадывании пароля), то имеется n! способов ввести ПИН-код. Для типичного четырехзначного кода будет 24 различные комбинации.
В случае экранной клавиатуры также будет n! способов ввести пароль, состоящий из n знаков. В некоторых паролях б��дет использоваться клавиша Shift (или другая клавиша) для переключения между различными наборами знаков. Нажатие данной клавиши, конечно, будет очевидно для злоумышленника, но у него не будет информации о том, когда была нажата клавиша. Если мы сделаем упрощающее предположение о том, что в пароле только один символ введен с одновременным нажатием клавиши Shift, то злоумышленник должен рассмотреть n!·n вариантов пароля.
В случае жестов также будет n! последовательностей. Для каждого круга и линии, использованных в наборе жестов, количество перестановок увеличивается вдвое. Если все жесты — это круги или линии, то возможный набор перестановок совпадает с набором для пароля, в котором используется клавиша Shift: .
В следующей таблице указано количество перестановок для каждого из описанных способов для последовательностей различной длины.
Длина | ПИН-код | Пароль | Пароль с Shift | Только жесты-касания | Жесты из линий и кругов |
1 | 1 | 1 | 1 | 1 | 2 |
2 | 2 | 2 | 4 | 2 | 8 |
3 | 6 | 6 | 18 | 6 | 48 |
4 | 24 | 24 | 96 | 24 | 384 |
Как и ранее, предполагается, что имеется полностью чистый экран со следами только от жестов. Если рассмотреть сценарий, в котором злоумышленник не может извлечь какую-либо полезную информацию из следов на экране — потому что устройство постоянно используется (и экран весь в следах от пальцев) или потому что в качестве устройств ввода используется мышь и клавиатура — то шансы угадать правильную последовательность становятся еще меньше. При наличии трех типов жестов, учете направления и при наложении требования о том, что последовательность должна состоять минимум из трех жестов, возможное количество комбинаций жестов будет равно 1 155 509 083, как было сказано ранее.
В заключительной попытке взлома, которую мы рассмотрели, используются точки интереса, или области, которые часто выбираются различным людьми на изображении. Проведенное исследование показало, что подобный вид взлома почти невозможен: области, выбранные участниками, и виды жестов, нарисованные на них, очень плохо коррелировали в лабораторных испытаниях, однако мы можем проанализировать подобную атаку, предположив, что изображение имеет точек интереса. Если пользователь может применять любое количество касаний, линий и кругов, то общее количество перестановок равно , где n — длина графического пароля. Это дает следующее количество возможных комбинаций:
Длина | 5 | 10 | 15 | 20 |
1 | 75 | 200 | 375 | 600 |
2 | 5 625 | 40 000 | 140 625 | 360 000 |
3 | 421 875 | 8 000 000 | 52 734 375 | 216 000 000 |
4 | 31 640 625 | 1 600 000 000 | 19 775 390 625 | 129 600 000 000 |
Предположив, что в среднем в изображении имеется 10 точек интереса, а длина последовательности жестов равна 3, получим 8 миллионов возможных комбинаций, что делает шансы угадать правильную последовательность с 5 попыток мизерными.
Мы довольны эффективностью графического пароля, однако мы знаем, что есть области, где безопасность имеет первостепенное значение и приемлемо использование только полного пароля. Для этого была реализована групповая политика, предоставляющая администратору домена свободу выбора относительно использования графического пароля. И, конечно, использование графического пароля является необязательным на домашнем ПК.
В начале процесса разработки функции графического пароля мы ориентировались на получение быстрого, удобного и персонализированного способа входа в систему для каждого пользователя Windows 8 — способа, который также обладал бы высокой устойчивостью к взлому. В ходе исследований и улучшений этой концепции мы нашли способ входа в систему, который не только надежен, но и интересен. Нам нравится функция графического пароля и тот персональный оттенок, который она добавляет в Windows 8. Надеемся и вам она также понравится.