PunchI’m a godfather, but don’t interfere in Abiodun’s govt — OsobaThe Jerusalem PostPalestinian-American to challenge John Fetterman for Pennsylvania Senate seat in 2028InquirerAmihan, easterlies to bring rains across parts of PH on Nov. 10CNN TürkHava Durumu (10-11-2026)Observador DesportoSapadores de Lisboa com 130 ocorrências das 0h00 até às 6h00Global NewsFrustration level high for beleaguered CanucksRTL BoulevardCruiseschip dat strandde in Cambodja nu in beslag genomen in SingaporeThe Sydney Morning Herald‘Smitten, yes. Obsessed, no’: Lamarre-Condon tells court about his feelings for TV presenterDaily MailResurfaced video shows moment Russell Brand and his father recall nights 'with prostitutes in Hong Kong'CNN بالعربيةمستوحى من فراء الغزال.. كايلي جينر تختار تصميمًا سعوديًا على السجادة الحمراء بلوس أنجلوسSözcüSon dakika... Cafer Mahiroğlu soruşturmasında ikinci dalga operasyonCumhuriyetAliağa faciasının ardından sanat dünyasından peş peşe taziye mesajları: 'Yüreğimiz yandı'
The Daily Newsstand · Free, Always
Tuesday, November 10, 2026

Smart2FA: 100% автономный 2FA-аутентификатор с нулевым разглашением (Zero-Knowledge)

Translate
Open Source 2FA

Open Source 2FA

Разбор Smart2FA (0xid Edition) 2FA-аутентификатора с открытым исходным кодом, локальным шифрованием AES-256, биометрией и поддержкой десктопа и мобильных устройств.

Безопасность против удобства: дилемма аутентификации

В современной цифровой инфраструктуре двухфакторная аутентификация (2FA) - один из наиболее эффективных способов предотвращения несанкционированного доступа к аккаунтам. Тем не менее большинство популярных приложений-аутентификаторов заставляют идти на нежелательные компромиссы:

  1. Риски централизованной облачной синхронизации: Хранение нешифрованных или управляемых провайдером токенов в проприетарных облаках расширяет поверхность атак, создает единую точку отказа и приводит к привязке к конкретной экосистеме (vendor lock-in).

  2. Избыточная телеметрия и трекинг: Многие коммерческие аутентификаторы собирают аналитику, идентификаторы устройств и метрики использования, нарушая приватность.

  3. Ограничения экспорта и платформенная привязка: Недостаточные возможности экспорта усложняют миграцию между платформами и увеличивают риск потери данных при смене устройства.

Чтобы обеспечить полную автономию пользователей, максимальную защиту данных и высокую производительность, мы создали Smart2FA (0xid Edition) - открытый клиентский аутентификатор с архитектурой Zero-Knowledge, исключающий сбор телеметрии, минимизирующий системные уязвимости и выполненный в стильном индустриальном дизайне.

Ключевая философия: Zero-Knowledge и принцип Local-First

Архитектура Smart2FA базируется на трех основополагающих принципах:

  • 100% Offline по умолчанию: Никаких бэкенд-сервисов, аналитики и внешних сетевых запросов.

  • Криптографическая изоляция на стороне клиента: Все секреты остаются зашифрованными как на диске, так и в памяти до момента явной авторизации пользователем.

  • Портативность и совместимость: Поддержка стандартных форматов RFC, мгновенный пакетный импорт и удобная кроссплатформенная работа: Web, Desktop (Tauri/Rust) и Mobile (Capacitor).

Архитектура и функциональные возможности

1. Надежная криптографическая модель хранилища

Smart2FA никогда не сохраняет мастер-PIN в открытом виде. Схема хранения и расшифровки обеспечивает надежную защиту от атак перебором и дампов локального хранилища:

2fa схема

2fa схема

  • Жизненный цикл PIN в оперативной памяти: Расшифрованное состояние и рабочие секреты хранятся исключительно в энергозависимой оперативной памяти (RAM) в хранилище Pinia. Блокировка приложения, уход со страницы или ее перезагрузка мгновенно очищают память.

  • Биометрическая аутентификация (WebAuthn): На поддерживаемых устройствах (Touch ID, Face ID, Windows Hello) WebAuthn безопасно оборачивает ключ, обеспечивая мгновенный вход в одно касание без ущерба для криптографической стойкости.

  • Автоматическая блокировка: Настраиваемый тайм-аут бездействия (от 30 сек до 30 мин) для минимизации рисков при работе за общими устройствами.

  • Необратимый сброс данных (Panic Wipe): Защитный механизм очистки, требующий явного текстового подтверждения (WIPE), мгновенно удаляет все ключи и локальные данные.

2. TOTP-движок RFC 6238 и удобство в реальном времени

  • Широкая поддержка протоколов: Работает на базе библиотеки otpauth, поддерживает алгоритмы SHA-1, SHA-256 и SHA-512, коды из 6, 7 или 8 цифр, а также произвольные периоды обновления (30 с / 60 с).

  • Наглядная индикация таймера: Динамический индикатор оставшегося времени, предупреждающе окрашивающийся в красный цвет за 5 секунд до смены кода.

  • Копирование в один клик: Мгновенное копирование кода в буфер обмена с информативными всплывающими toast-уведомлениями.

3. Гибкий ввод, автокатегоризация и импорт из Google Authenticator

  • Встроенный сканер QR-кодов: Быстрое распознавание камерой через html5-qrcode с автоматическим парсингом URI otpauth://.

  • Пакетная миграция из Google Authenticator: Сканирование стандартного QR-кода экспорта «Перенос аккаунтов» (Transfer Accounts) из Google Authenticator и импорт всех учетных записей за одну операцию.

  • Умное определение категорий: Автоматическое распределение токенов по цветовым категориям (Work, Crypto, Finance, Social, Email, Gaming, Other) на основе имени сервиса (например, GitHub -> Work, Binance -> Crypto) и удобные вкладки фильтрации.

4. Зашифрованный экспорт и импорт (формат .oxid)

  • Экспорт всего хранилища в зашифрованный контейнерный файл .oxid с меткой времени, защищенный ключом AES-256 на основе PIN-кода экспорта.

  • Такие зашифрованные файлы можно безопасно хранить в холодном хранилище или передавать по открытым каналам без риска раскрытия секретов.

5. Кроссплатформенность: Desktop и Mobile

  • Tauri v2 (Rust Backend): Высокая производительность, минимальный размер бинарного файла, интеграция с системным треем и поддержка сворачивания в трей в фоновом режиме.

  • Мобильная сборка на Capacitor: Готовность к развертыванию на Android-устройствах.

  • Индустриальный интерфейс:

Технологический стек

  • Фронтенд: Vue 3 (Composition API & <script setup>), Pinia 2, Vue Router 4, Tailwind CSS.

  • Десктопная платформа: Tauri v2 (Rust).

  • Мобильная база: Capacitor.

  • Безопасность и TOTP: crypto-js, otpauth, html5-qrcode.

Идеи для дальнейшего развития

Для постоянного совершенствования безопасности и функционала рассматриваются следующие возможности:

  1. Поддержка аппаратных ключей безопасности (FIDO2 / YubiKey): Использование физического токена для защиты мастер-ключа хранилища.

  2. Зашифрованная P2P-синхронизация по локальной сети: Безопасная бессерверная синхронизация между десктопом и смартфоном через локальный WebRTC или анимированные QR-коды.

  3. CLI-утилита: Консольный инструмент для разработчиков для получения TOTP-кодов прямо в терминале при работе с SSH или в CI/CD пайплайнах.

Открытый исходный код и репозиторий

Smart2FA - это проект со 100% открытым исходным кодом под лицензией Apache License 2.0. Вы можете изучить кодовую базу, скачать релизы или принять участие в разработке:

Репозиторий на GitHub: https://github.com/technologiespro/Smart2FA

Инструменты наиболее полезны тогда, когда они решают реальные практические задачи пользователей.

Какие функции или интеграции были бы наиболее ценны для вашей повседневной работы и безопасности?

Делитесь своими идеями, предложениями и отзывами в комментариях или открывайте issues в репозитории GitHub!

P.S. В следующей версии я планирую отказаться от использования crypto-js. Версия 4.2.0 последняя из опубликованных версий этой библиотеки. В текущей кодовой базе Smart2FA она не содержит критических уязвимостей и выполняет свои задачи, однако в контексте современной веб и мобильной разработки сама библиотека считается устаревшей. В будущих мажорных релизах планирую перевести модуль src/lib/crypto.js на использование нативного API window.crypto.subtle (с переходом на алгоритм AES-GCM) это позволит повысить производительность и уменьшить объем зависимостей.

View the original on Хабр →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.