Узнайте, работают ли и как именно Passkeys / WebAuthn в режимах инкогнито или приватного просмотра в Chrome, Safari, Edge и Firefox.
Vincent
Created: August 8, 2025
Updated: August 8, 2025
See the original blog version in English here.
Our mission is to make the Internet a safer place and passkeys provide a superior solution to achieve that. That's why we want to keep you updated with the latest industry insights here.
Все больше компаний внедряют Passkeys на своих сайтах и в приложениях. При этом многие разработчики и менеджеры по продукту задаются вопросом, работают ли Passkeys в режимах инкогнито или приватного просмотра, поскольку это сильно влияет на общее впечатление пользователя.
В этой статье мы постараемся ответить на следующие вопросы:
Эти знания помогут обеспечить бесперебойную работу для пользователей в разных браузерах и операционных системах, делая ваше приложение передовым в области безопасности и удобства.
Recent Articles
📖
WebAuthn pubKeyCredParams и credentialPublicKey: CBOR и COSE
📖
Протокол обмена учетными данными (CXP) и формат обмена (CXF)
🔑
Passkeys и WebAuthn PRF для сквозного шифрования (2025)
📖
Подсказки WebAuthn для учетных данных с открытым ключом / User-Agent
📖
WebAuthn Signal API: Обновление и удаление Passkeys на стороне клиента
Passkeys — это, по сути, криптографические ключи, которые используются для аутентификации пользователей без необходимости вводить традиционные пароли. Они обеспечивают повышенную безопасность, устраняя риски, связанные с кражей паролей и фишинговыми атаками.
Обычно Passkeys надежно хранятся на устройстве, и их функциональность остается неизменной даже в режимах инкогнито или приватного просмотра в большинстве операционных систем, за исключением Windows 10 (см. ниже), при условии, что устройство поддерживает Passkeys.
Режимы инкогнито или приватного просмотра часто используются для работы в интернете, не оставляя следов. Эта функция важна для пользователей, которые ценят конфиденциальность, и крайне необходимо, чтобы методы аутентификации, такие как Passkeys, без проблем работали в этих режимах.
Однако в истории развития WebAuthn велись постоянные дискуссии и вносились улучшения, поскольку поведение было довольно запутанным и несогласованным между операционными системами и браузерами (для справки см. эти старые обсуждения и отчеты об ошибках здесь, здесь и здесь).
Понимание того, как Passkeys ведут себя в разных браузерах и операционных системах, помогает обеспечить совместимость и удобство для пользователей.
Работают ли Passkeys в режиме инкогнито / приватного просмотра?
Windows 10 | Windows 11 | Android 14 | iOS 17.5 | macOS 14 | |
---|---|---|---|---|---|
Chrome | ❌ | ✅ (с доп. экраном) | ✅ | ✅ | ✅ |
Edge | ❌ | ✅ (с доп. экраном) | ✅ | ✅ | ✅ |
Safari | н/д | н/д | н/д | ✅ | ✅ |
Firefox | ✅ | ✅ | ✅ | ✅ | ✅ |
В Windows 10 (22H2) мы обнаружили единственное исключение, когда Passkeys работали ненадежно, и получили два следующих скриншота при попытке использовать платформенный аутентификатор (Windows Hello):
Сообщение об ошибке Passkey в режиме инкогнито Chrome в Windows 10
Сообщение об ошибке Passkey в режиме inPrivate Edge в Windows 10
Когда мы переключились в обычный режим просмотра, все заработало как надо, так что сообщение об ошибке во всплывающем окне вводит в заблуждение.
Более того, если мы пытались использовать кросс-платформенный аутентификатор (например, аппаратный ключ безопасности, такой как YubiKey, или кросс-девайсную аутентификацию через QR-код / Bluetooth), все работало.
Когда мы углубились в проблему и выполнили в консоли браузера две следующие команды, чтобы определить, доступны ли платформенный аутентификатор (PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()
) и условный интерфейс (Conditional UI) (PublicKeyCredential.isConditionalMediationAvailable()
), мы сделали интересное открытие: первый промис вернул false
, а второй — true
. Это не имело смысла, поскольку для работы условного интерфейса (Conditional UI) требуются платформенные аутентификаторы.
Начиная с Chrome 129 (и аналогично в Edge, который основан на Chromium), PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()
возвращает true
даже в режиме инкогнито / InPrivate в Windows 10. Раньше в режиме инкогнито он возвращал false
. Несмотря на то, что теперь возвращается true
, платформенный аутентификатор по-прежнему недоступен для создания новых Passkeys, что нарушает пользовательский сценарий.
Ниже приведена таблица, показывающая возвращаемые значения PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()
в Windows 10 для разных версий и режимов Chrome/Edge:
Браузер/Версия | Обычный режим (W10) | Режим инкогнито/приватный (W10) | Поведение в интерфейсе |
---|---|---|---|
Chrome ≤ 128 (до изменения) | true | false | Нет платформенного аутентификатора в режиме инкогнито |
Chrome ≥ 129 | true | true | Предлагает использовать ключ безопасности вместо платформенного аутентификатора |
Edge ≤ 128 (до изменения) | true | false | Нет платформенного аутентификатора в режиме InPrivate |
Edge ≥ 129 | true | true | Предлагает использовать ключ безопасности вместо платформенного аутентификатора |
Наблюдаемое поведение:
true
, платформенный аутентификатор не появляется при создании Passkey.Последствия изменения:
Это фактически нарушает процесс добавления Passkeys в платформенный аутентификатор в режиме инкогнито/InPrivate. Изменение в Chrome 129+ было сделано в первую очередь для того, чтобы включить функциональность входа с помощью Passkeys в режиме инкогнито. Процессы входа используют тот же механизм для проверки поддержки Passkeys (PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()
), и это изменение обеспечивает их бесперебойную работу. Однако непреднамеренным последствием стал нарушенный процесс создания Passkeys с помощью платформенного аутентификатора в режимах приватного просмотра.
Более подробную информацию об этом изменении можно найти в обзоре исходного кода Chromium и связанном с ним обсуждении в трекере проблем. Для веб-сайтов, стремящихся обеспечить оптимальную поддержку Passkeys, обнаружение режима инкогнито в настоящее время является единственным способом смягчить эту проблему. Определяя, когда пользователь находится в режиме инкогнито/InPrivate в Windows 10 с Chrome/Edge, веб-сайты могут заранее избегать предложения опций платформенного аутентификатора для создания Passkey.
При использовании Windows Hello в качестве платформенного аутентификатора во время создания Passkey в режиме инкогнито (в Chrome) / режиме InPrivate (в Edge) появляется всплывающее окно безопасности. Оно предупреждает пользователей, что Passkey будет сохранен и его можно будет использовать позже в обычном режиме (это поведение было протестировано на Windows 11 22H2). Учитывая один из сценариев использования режима инкогнито, когда пользователь хочет создать учетную запись, не оставляя никаких следов, это предупреждение имеет смысл.
На Android при использовании режима инкогнито (в Chrome) / режима InPrivate (в Edge) поведение аналогично Windows 11: появляется информационное всплывающее окно. Оно сообщает пользователю, что Passkey будет сохранен в менеджере паролей, и любой, у кого есть доступ к менеджеру паролей, также получит доступ к этому Passkey.
В заключение, Passkeys надежно работают в режимах инкогнито и приватного просмотра в большинстве основных браузеров и операционных систем, за некоторыми исключениями при создании Passkeys в Windows 10. Используя решения Corbado, разработчики могут эффективно внедрять Passkeys, а менеджеры по продукту — улучшать пользовательский опыт без ущерба для безопасности.
Enjoyed this read?
🤝 Join our Passkeys Community
Share passkeys implementation tips and get support to free the world from passwords.
🚀 Subscribe to Substack
Get the latest news, strategies, and insights about passkeys sent straight to your inbox.
Related Articles
Table of Contents