Разработка кроссплатформенных SDK для EUDI-кошельков: технический анализ (RU)
Изучите архитектуру кроссплатформенных SDK для EUDI-кошельков, с акцентом на модульность, безопасность и удобство пользователя. Узнайте, как проектировать надежные, соответствующие требованиям и интероперабельные решения для.

Модульный дизайнАкцент на многослойную, модульную архитектуру для поддержки различных платформ и развивающихся спецификаций EUDI, обеспечивающую гибкость и удобство обслуживания.
Безопасность прежде всегоВнедрение надежных криптографических мер, интеграция с защищенными элементами и соответствие стандартам eIDAS2 для защиты конфиденциальных идентификационных данных и предотвращения мошенничества.
Бесшовный пользовательский опытПриоритет удобных интерфейсов и интуитивно понятных рабочих процессов для выдачи, представления и управления учетными данными на различных устройствах и операционных системах.
ВзаимодействиеРазработка SDK для обеспечения совместимости с различными реализациями EUDI Wallet, опираясь на открытые стандарты и протоколы для широкого внедрения в экосистеме.
Понимание EUDI Wallet и его технического мандата
Европейский цифровой идентификационный кошелек (EUDI Wallet) представляет собой монументальный шаг к унифицированной, безопасной и ориентированной на пользователя системе цифровой идентификации по всему Европейскому Союзу. В соответствии с регламентом eIDAS2, этот цифровой кошелек позволяет гражданам безопасно хранить и обмениваться своими идентификационными атрибутами, такими как возраст, адрес и профессиональная квалификация, проверяемым и надежным способом. Для разработчиков создание комплектов для разработки программного обеспечения (SDK) для EUDI Wallet представляет собой как значительную возможность, так и сложную техническую задачу. Основная задача — обеспечить высокобезопасный, интероперабельный и удобный для пользователя опыт на множестве устройств и операционных систем.
Кроссплатформенный SDK для EUDI Wallet должен абстрагировать основные сложности различных мобильных операционных систем (iOS, Android) и, возможно, веб-среды, при этом строго придерживаясь технических спецификаций, изложенных Европейской комиссией. Это включает криптографические стандарты, модели данных для проверяемых учетных данных (Verifiable Credentials, VCs) и проверяемых представлений (Verifiable Presentations, VPs), протоколы связи (например, OpenID для выдачи/представления проверяемых учетных данных) и использование защищенного оборудования, если оно доступно. Архитектура SDK должна быть достаточно устойчивой, чтобы справляться с будущими обновлениями этих спецификаций без необходимости полной переработки.
Основные архитектурные компоненты кроссплатформенного SDK для EUDI Wallet
Хорошо спроектированный SDK для EUDI Wallet обычно состоит из нескольких ключевых уровней, каждый из которых отвечает за определенный набор функциональных возможностей. Такой модульный подход имеет решающее значение для кроссплатформенной совместимости, удобства обслуживания и масштабируемости.
-
Уровень абстракции платформы (PAL): Это основа, предоставляющая унифицированный интерфейс для специфичных для платформы функциональных возможностей. Например, он будет абстрагировать доступ к безопасному хранилищу (Keychain на iOS, Keystore на Android), биометрической аутентификации (Face ID/Touch ID, Android BiometricPrompt) и функциям сетевого подключения. Этот уровень гарантирует, что основная логика SDK может оставаться независимой от платформы.
// Пример: Интерфейс безопасного хранилища iOS protocol SecureStorageManager { func saveData(key: String, data: Data) throws func retrieveData(key: String) throws -> Data? } class iOSSecureStorage: SecureStorageManager { // ... Реализация Keychain ... } -
Криптография и уровень безопасности: Это, пожалуй, самый критически важный компонент. Он обрабатывает все криптографические операции, включая генерацию ключей, цифровую подпись, шифрование/дешифрование и взаимодействие с защищенными элементами. Он должен поддерживать различные криптографические алгоритмы (например, ECDSA, EdDSA) и обеспечивать безопасное хранение и использование ключей, часто с использованием аппаратных функций безопасности. Этот уровень отвечает за защиту закрытых ключей, связанных с цифровой идентификацией пользователя.
-
Уровень управления проверяемыми учетными данными (VC): Этот уровень управляет жизненным циклом проверяемых учетных данных. Он включает функциональные возможности для парсинга, хранения и проверки VC, полученных от эмитентов. Он также управляет согласием пользователя на обмен конкретными VC или атрибутами и строит проверяемые представления (VP) в соответствии с запросом от доверяющей стороны.
// Пример: Структура VC (упрощенная) interface VerifiableCredential { id: string; type: string[]; issuer: string; issuanceDate: string; credentialSubject: { id: string; [key: string]: any; }; proof: any; } -
Уровень связи и протоколов: Этот уровень реализует различные протоколы связи, необходимые для взаимодействия с эмитентами и доверяющими сторонами. Это включает OpenID для выдачи проверяемых учетных данных (OID4VCI) и OpenID для представления проверяемых учетных данных (OID4VP), а также, возможно, DIDComm для одноранговых взаимодействий. Он обрабатывает установление безопасного канала, форматирование сообщений и обработку ошибок.
-
Уровень пользовательского интерфейса (UI) (необязательно, но рекомендуется): Хотя SDK может быть исключительно безголовым, хорошо разработанный SDK для EUDI Wallet часто включает настраиваемые компоненты пользовательского интерфейса. Эти компоненты обеспечивают единообразный и соответствующий требованиям пользовательский опыт для общих задач, таких как принятие учетных данных, согласие на представление и биометрические запросы. Этот уровень должен быть разработан с учетом тематизации и настройки, чтобы позволить интеграторам соответствовать их бренду.
Стратегии кроссплатформенной реализации
Для достижения истинной кроссплатформенной совместимости разработчики могут использовать несколько стратегий:
-
Нативный код с общей основной логикой: Наиболее распространенный подход включает написание платформенно-специфичных оберток (например, Swift/Kotlin), которые предоставляют унифицированный API общей основной логике, написанной на языке, таком как C++ или Rust. Эта основная логика обрабатывает сложные криптографические слои, управление VC и протоколы, обеспечивая согласованность и сокращая дублирование усилий. PAL здесь имеет решающее значение для соединения основной логики с нативными функциями платформы.
-
Кроссплатформенные фреймворки (например, React Native, Flutter): Для SDK, которые включают компоненты пользовательского интерфейса, могут использоваться фреймворки, такие как React Native или Flutter. Эти фреймворки позволяют разработчикам писать единую кодовую базу, которая компилируется в нативные приложения iOS и Android. Однако доступ к глубоко нативным функциям, таким как защищенные элементы, часто все еще требует платформенно-специфичных модулей или плагинов, которыми будет управлять PAL.
-
WebAssembly (Wasm): Для веб-реализаций EUDI Wallet или SDK, предназначенных для встраивания в веб-приложения, компиляция основной логики в WebAssembly может предложить значительные преимущества в производительности и безопасности, позволяя выполнять сложные криптографические операции непосредственно в браузере.
Практический пример: Поток выдачи учетных данных
Рассмотрим пользователя, получающего учетные данные «Подтвержденный возраст». SDK будет:
- Доверяющая сторона (например, интернет-магазин) запрашивает подтверждение возраста.
- SDK инициирует поток OID4VP, запрашивая у пользователя согласие на представление его учетных данных «Подтвержденный возраст».
- После одобрения пользователя и биометрической аутентификации SDK строит подписанное проверяемое представление, содержащее атрибут возраста.
- SDK безопасно передает это VP доверяющей стороне.
- Доверяющая сторона проверяет подлинность VP и содержимое учетных данных с помощью модуля проверки SDK.
Соображения безопасности, соответствия и интероперабельности
Успех SDK для EUDI Wallet зависит от его способности соответствовать строгим стандартам безопасности и соответствия, обеспечивая при этом широкую интероперабельность.
-
Соответствие eIDAS2: Приверженность техническим стандартам и правовым требованиям регламента eIDAS2 имеет первостепенное значение. Это включает защиту данных (GDPR), безопасную обработку персональных данных и использование квалифицированных электронных подписей или печатей, где это применимо.
-
Интеграция с защищенными элементами: Где это возможно, использование аппаратных защищенных элементов (например, TEE на Android, Secure Enclave на iOS) имеет решающее значение для защиты криптографических ключей и конфиденциальных данных от продвинутых атак. SDK должен предоставлять механизмы для безопасной генерации, хранения и использования ключей в этих средах.
-
Доказательства с нулевым разглашением (ZKPs): Хотя первоначально они не являются строго обязательными для всех случаев использования EUDI Wallet, продвинутый SDK может рассмотреть поддержку ZKP. Это позволяет пользователям доказывать конкретные факты о своей личности (например, «Мне больше 18 лет») без раскрытия базовых конфиденциальных данных (например, их точной даты рождения), значительно повышая конфиденциальность.
-
Интероперабельность с децентрализованными идентификаторами (DIDs): Ожидается, что экосистема EUDI Wallet будет интегрироваться с децентрализованными идентификаторами, которые предоставляют глобально уникальный, постоянный и криптографически проверяемый идентификатор для отдельных лиц и организаций. SDK должен поддерживать разрешение DID и протоколы связи на основе DID, такие как DIDComm.
-
Аудит и ведение журналов: Комплексные возможности аудита и ведения журналов необходимы для соответствия требованиям и отладки. SDK должен безопасно записывать соответствующие события, такие как выдача учетных данных, представление и попытки доступа, без ущерба для конфиденциальности пользователя.
Как Didit помогает
Didit предоставляет надежную, универсальную платформу идентификации, которая может значительно ускорить разработку и интеграцию функциональных возможностей EUDI Wallet. Наша платформа предлагает полный набор примитивов идентификации, включая передовую биометрию, безопасную проверку личности и обнаружение мошенничества, все это оркестрируется через единый API. Для разработчиков, создающих SDK для EUDI Wallet, модульная архитектура Didit и подход, ориентированный на соответствие требованиям, могут служить мощным бэкендом, обрабатывающим сложности безопасного управления идентификацией. Наша сертификация iBeta Level 1 для обнаружения живости, сертификаты SOC 2 Type II и ISO 27001, а также соответствие GDPR гарантируют, что базовые процессы проверки личности соответствуют самым высоким стандартам, требуемым для EUDI. Используя Didit, вы можете сосредоточиться на пользовательских аспектах вашего SDK для EUDI Wallet, будучи уверенными, что основная инфраструктура проверки личности и безопасности обрабатывается экспертом.
Готовы начать?
Разработка кроссплатформенного SDK для EUDI Wallet — это сложная, но благодарная задача. Сосредоточившись на модульной архитектуре, уделяя приоритетное внимание безопасности и соответствию требованиям, а также обеспечивая бесшовную интероперабельность, разработчики могут внести свой вклад в будущее безопасной, конфиденциальной и ориентированной на пользователя цифровой идентификации. Изучите техническую документацию Didit, чтобы узнать, как наша платформа идентификации может поддержать ваши инициативы EUDI Wallet. Хотите увидеть ее в действии? Посмотрите наше демонстрационное видео продукта или посетите наш Демо-центр. Для прямых запросов обращайтесь по адресу hello@didit.me.