В мае Гугл представил passkeys, или ключи доступа, — альтернативу традиционным паролям. В октябре компания объявила вход по ключу доступа основным способом аутентификации. С 10 октября пользователи начали видеть сообщения с предложением использовать ключ доступа вместо пароля. Разбираемся, что даёт ключ доступа, в чём его преимущество и как сделать свой.
Что такое аутентификация
Аутентификация — это когда нужно подтвердить, что мы это именно мы, а не кто-то другой.
Например, когда нам звонит контакт с именем «Мама», мы рассчитываем услышать при ответе голос мамы. Это аутентификация по голосу.
Когда мы входим в систему по логину и паролю, то логин — это то, как мы представляемся системе, а пароль — когда мы подтверждаем, что это точно мы (потому что предполагается, что, кроме нас, пароль не знает никто).
Если пара «логин-пароль» совпадает с тем, что хранится в системе, — аутентификация прошла успешно и мы дальше можем делать то, что нам нужно. А вот за то, что нам можно делать, а что — нет, отвечает авторизация. Подробнее об отличиях авторизации от аутентификации мы писали в отдельной статье: https://thecode.media/autorize/.
Что такое ключ доступа
Passkey, или ключ доступа, — это тот же пароль, но который придумываете не вы, а специальный алгоритм. Для этого нужно отдельное приложение на телефоне, специальная флешка или другое устройство, которое генерирует ключи доступа.
Принцип работы ключа доступа основан на асимметричном шифровании. При создании ключа доступа создаются два длинных электронных ключа:
- открытый — он хранится на сервере;
- закрытый — хранится только на устройстве пользователя и никуда не передаётся.
Когда сервер использует доступ по ключу, он отправляет на устройство какое-то сообщение и просит подписать его закрытым ключом. Зашифрованное сообщение отправляется обратно на сервер, а он его уже расшифровывает своим открытым ключом. Если всё расшифровалось верно — значит, пользователь подписал всё действительно своим ключом и он тот, за кого себя выдаёт.
В этом смысл ключа доступа — аутентификация на основе того, что закрытый ключ хранится только у нас и только мы знаем, как получить к нему доступ. Для доступа к ключу обычно используют биометрию (приложить палец к датчику отпечатков пальцев или посмотреть в камеру) или код разблокировки. В любом случае нам нужно какое-то дополнительное устройство, к которому физически имеем доступ только мы. Чаще всего таким устройством выступает смартфон — он всегда под рукой и настроен на наше лицо или отпечатки.
Короче, ключ доступа — это часто более высокий уровень безопасности, потому что он привязан и к устройству, и к нам персонально (по коду доступа или биометрии).
Стандарт ключей доступа разработала FIDO Alliance (Fast IDentity Online), и, помимо Гугла, его поддерживают компании Эпл и Микрософт.
Как работает вход по ключу доступа
При создании ключа доступа система создаёт уникальную комбинацию зашифрованных данных из двух частей. Одна часть хранится на устройстве и содержит данные для разблокировки, другая — на сервере и содержит дополнительный ключ. Устройство и сервер как бы договариваются между собой, что такой учётной записи соответствуют такие данные разблокировки и такой ключ шифрования.
Теперь разберём по шагам, что происходит, когда мы хотим войти в сервис с помощью ключа доступа.
- Мы заходим на сайт и вводим свой логин.
- Сервер смотрит свои записи и понимает, что у пользователя с этим логином настроен вход по ключу доступа.
- Сервер отправляет сообщение на устройство пользователя и просит его подписать закрытым ключом.
- На наше устройство приходит уведомление о том, что такой-то сервер просит подтвердить вход.
- Для входа мы прикладываем палец к сканеру, смотрим в камеру или вводим пароль от приложения — так мы подтверждаем, что это действительно мы.
- Приложение шифрует своим закрытым ключом сообщение от сервера и отправляет его обратно.
- Сервер расшифровывает сообщение своим открытым ключом, и, если всё в порядке, — разрешает вход на сайт.
Почему ключи доступа лучше паролей
- Не нужно помнить все пароли, достаточно помнить один простой или использовать биометрию.
- Нет угрозы утечки данных из базы паролей. Большинство людей использует одну комбинацию «логин-пароль» на всех сайтах, и достаточно взломать их в одном месте, чтобы получить доступ к остальным.
- Ключ доступа нельзя взломать, подобрав или перехватив. Для подтверждения личности нужно иметь физический доступ к устройству. Это делает ключи доступа надёжнее двухфакторной аутентификации.
- Ключ доступа нельзя украсть с помощью технологий фишинга, то есть через сайты-подделки, которые выглядят как официальные.
- Ключи доступа можно использовать в разных браузерах и операционных системах. Главное, чтобы под рукой было устройство, которое может подтвердить личность пользователя.
- Аутентификация по ключу доступа примерно на 40% быстрее, чем по паролю.
- Ключи доступа работают с разных устройств.
Почему ключи доступа хуже паролей
Кажется, что с ключами доступа мы решаем все проблемы, связанные с паролями, но это не так. Есть несколько причин, почему ключи доступа хуже паролей:
- Если вы потеряли устройство — вы не войдёте в сервис, если там не настроен альтернативный ввод по паролю. Но даже если настроен, сайты часто отправляют СМС-подтверждения на телефон, который уже утерян.
- Если код разблокировки знаете не только вы или если вы добавили в телефон отпечатки пальцев жены, мужа, друга или кого угодно ещё — всё, безопасности нет, другой человек может пользоваться всеми сервисами от вашего имени.
- Если Гугл заблокирует вашу учётную запись, то вы не сможете войти на все сайты, которые привязаны к доступу по Гугл-ключу.
Зачем это Гуглу
Гугл — это огромная база данных о пользователях, которую можно использовать, чтобы рекламировать подходящие товары и услуги целевой аудитории. Чем дольше человек пользуется этими сервисами, тем больше и более точные сведения о нём можно собрать, а потом продать рекламодателям.
Чтобы все и дальше продолжали пользоваться его продуктами, Гугл часто создаёт действительно полезные вещи (например, вход по ключам доступа), и они делают нашу жизнь проще и комфортнее. Получается, что удобно всем: гугл сильнее привязывает к себе пользователей, а мы получаем действительно безопасный вход на сайты.
Как создать ключ доступа для Гугл-сервисов
Для создания ключа понадобится что-то из этого:
- ноутбук или ПК с операционной системой не ниже Windows 10, macOS Ventura или ChromeOS 109:
- мобильное устройство с операционной системой не ниже Android 9 или iOS/iPad OS 16.
Ещё нужно установить один из браузеров:
- Chrome 109 или новее;
- Edge 109 или новее;
- Safari 16 или новее.
Кроме этого, для создания и использования ключа доступа на устройстве должны быть включены:
- блокировка экрана;
- Bluetooth (если, например, ключ используется на смартфоне для входа с ПК).
Чтобы создать ключ доступа, нужно согласиться его использовать по всплывающей подсказке, которая будет появляться при каждой аутентификации в сервисах Гугл. Если подсказка не появляется, перейдите по ссылке https://www.google.com/account/about/passkeys/ — там расскажут, что делать дальше.