Разный вывод PRF при использовании платформенной или кроссплатформенной аутентификации вложения.

Вопрос или проблема

Я использую расширение prf для паролей, которое доступно начиная с iOS 18 и macOS 15. Я использую фиксированный, жестко закодированный ввод prf при создании или получении учетных данных. После создания пароля я пытаюсь получить учетные данные и извлечь вывод prf, что работает отлично, но я получаю разные выводы prf для одних и тех же учетных данных и одного и того же ввода prf в следующих сценариях:

При входе напрямую (платформенный аутентификатор) на мой MacBook/iPhone/iPad я постоянно получаю “вывод prf X” для всех трех устройств.

Когда я использую свой iPhone/iPad для сканирования QR-кода на моем MacBook (кроссплатформенный аутентификатор), я постоянно получаю “вывод prf Y” как на своем iPad, так и на iPhone.

Это задумано? Есть ли способ получить детерминированный вывод prf как для платформенных, так и для кроссплатформенных аутентификаторов, используя одни и те же учетные данные и ввод prf?

Ответ или решение

Вопрос, который вы подняли, касается использования расширения PRF для паролей в контексте аутентификации с использованием платформенных и кроссплатформенных аутентификаторов. На первый взгляд, вы столкнулись с разницей в выходных значениях PRF даже при использовании одного и того же входного значения для одного и того же идентификатора, но в разных сценариях аутентификации.

Объяснение поведения PRF

Во-первых, важно отметить, что различная обработка PRF (Pseudo-Random Function) при аутентификации может быть намеренной. Платформенные аутентификаторы (такие как Touch ID или Face ID на iOS и macOS) могут использовать специфические для платформы механизмы, которые влияют на итоговый результат PRF. В случае кроссплатформенной аутентификации, когда вы используете QR-код для сканирования, принцип работы может отличаться, что и приводит к генерации другого выходного значения.

Причины различий

  1. Параметры аутентификации: Платформенные аутентификаторы могут включать дополнительные параметры, такие как уникальные идентификаторы устройств или данные о сессии, которые могут влиять на генерацию выходного значения.
  2. Метод генерации: В зависимости от того, используется ли криптографическая библиотека, относящаяся к конкретной платформе или кроссплатформенной, может отличаться алгоритм генерации PRF, что также приведет к различиям.
  3. Состояние устройства: Аутентификация на разных устройствах может учитывать текущее состояние устройства (например, учетные записи пользователя, настройки безопасности и прочее).

Решения и рекомендации

  1. Проверка настроек: Убедитесь, что обе среды (платформенная и кроссплатформенная) используют одни и те же настройки конфигурации и одинаковые параметры среды. Проверьте, что входные данные PRF идентичны.

  2. Использование идентификаторов: Рассмотрите возможность использования фиксированных и идентифицируемых параметров, которые будут одинаковыми для всех устройств.

  3. Документация и обновления: Ознакомьтесь с документацией и спецификациями PRF от разработчиков системы или библиотек, которые вы используете. Возможно, были введены обновления или изменения, влияющие на поведение функционала.

  4. Поддержка: Если проблема сохраняется и вы не можете вывести одно и то же PRF-выходное значение в обеих средах, рекомендуется обратиться в техническую поддержку платформы или в сообщество разработчиков, работающих с API аутентификации. Возможно, у других разработчиков также есть аналогичные проблемы или решения.

Заключение

Ваша проблема с различиями в PRF-выходных значениях между платформенными и кроссплатформенными аутентификаторами, вероятнее всего, связанна с внутренними различиями в их логике работы. Чтобы гарантировать детерминированный выход, важно обеспечить консистентность всех параметров, связанных с аутентификацией.

Оцените материал
Добавить комментарий

Капча загружается...