TwinKey — новое бесплатное приложение для двухфакторной аутентификации

Привет! Я из тех, кто регулярно проверяет давление в шинах и следит за безопасностью своих аккаунтов, используя сложные пароли и 2FA, где это возможно. Я пользовался Google Authenticator, но однажды приложение показало мне пустой лист вместо кодов. Конечно, я всё восстановил с помощью резервных ключей, но доверие было потеряно.

Оказалось, я не один такой: другие пользователи тоже сталкивались с такой же проблемой. Какой-либо поддержки от разработчика они не получали, как и отсутствовал вменяемый способ сделать резервную копию аккаунтов.

Пользователи Google Authenticator периодически теряли данные своих аккаунтов
Пользователи Google Authenticator периодически теряли данные своих аккаунтов

Относительно недавно Google добавил синхронизацию и стал хранить всё в своём облаке. Но проблемы, видимо, остались:

Пользователи продолжают терять свои аккаунты
Пользователи продолжают терять свои аккаунты

Я же перешёл на Sentinel Authenticator, купил подписку, чтобы снять все ограничения, и проблем не знал, но приложение обрастало ненужными мне функциями, внешне становилось всё сложнее и сложнее, поэтому решил, что надо просто написать своё.

Учиться разработке под iOS я начал в далёком 2014 году. Мне всегда нравилась экосистема Apple и их подход. Был опыт командной разработки, но в какой-то момент понял, что можно просто писать свои приложения, да и возможность была. Так, в 2021 появился RedCalendar — трекер цикла для девушек, а сейчас TwinKey — приложение двухфакторной аутентификации для iPhone, написанное на SwiftUI.

Эту статью я начал писать ещё летом (в те дни, когда у нас была попытка «госпереворота»). Мы с женой лежали на Nissi Beach и думали, как вовремя уехали на Кипр. Из-за палящего солнца подсветка телефона горела на максимум, аккумулятор таял на глазах и статью я отложил. Прошло 5 месяцев и это дольше, чем ушло на написание самого приложения, которое я отправлял на проверку в AppStore прямо из машины, когда уже выехали из своего города.

Приложение написано на новом модном SwiftUI. Зря что ли курсы проходил?
Приложение написано на новом модном SwiftUI. Зря что ли курсы проходил?

Данные хранятся в связке ключей, защищены надёжным 256-битным шифрованием AES и, благодаря iCloud Sync, всегда актуальны на каждом устройстве. Вы можете в любой момент удалить приложение но, установив заново, сразу получить свои коды. Сейчас оно доступно на русском, английском и испанском языках, поддерживает тёмную тему.

Аккаунты можно добавлять как классическим способом (отсканировав QR-код), так и выбрав фотографию с кодом из галереи (странно, но популярные аутентификаторы так не умеют). Есть и режим для гиков, где всё можно настроить ручками.

Добавляя или редактируя аккаунт, сложно что-то сделать не так или испортить
Добавляя или редактируя аккаунт, сложно что-то сделать не так или испортить

Кнопку для удаления аккаунта убрал поглубже, а при редактировании ключ отображаю в режиме чтения. Есть и система бекапов, позволяющая сохранить как все ключи, так и выборочно некоторые, чтобы поделиться ими с человеком, которому доверяете.

Итак, чем же TwinKey может быть лучше Google Authenticator, Microsoft Authenticator или Twilio Authy? Если использовать привычные шестизначные коды со сроком жизни в 30 секунд, разница между приложениями будет в дизайне и количестве шагов, которые придётся сделать, добавляя код. Но что если немного поиграться с настройками и организовать какую-то нестандартную ситуацию, которая вполне нормальна для используемого в 2FA алгоритма TOTP?

Вот три кода, содержащих в себе данные аккаунтов. Время жизни первого — 200 секунд, второй — классический, третий — восьмизначный.

Добавим эти коды в разные приложения и посмотрим, что они нам будут генерировать в одно и то же время.
Добавим эти коды в разные приложения и посмотрим, что они нам будут генерировать в одно и то же время.
Слева направо: TwinKey, Google Authenticator, Microsoft Authenticator, Authy (первые два и так понятно, да).
Слева направо: TwinKey, Google Authenticator, Microsoft Authenticator, Authy (первые два и так понятно, да).

TwinKey и Google Authenticator создают одинаковые коды, но второй не демонстрирует реальное время жизни для кода, длительностью 200 секунд (кружок съедается синхронно с остальными, потом начинается заново). Microsoft Authenticator и Authy неправильно генерируют долгий код, не дружат с тёмной темой, а первый ещё и с 8-значными кодами.

Этой статьёй я хотел напомнить вам о необходимости дополнительно защищать свои аккаунты (и проверять давление в шинах): написав про TwinKey впервые в своём телеграм-канале, я был искренне удивлён, что многие из моих друзей вообще не знают, что такое двухфакторка, при этом у них угоняли аккаунты, которые можно было защитить.

55
19 комментариев

Предложение для расширения.

Было бы здорово иметь версию под ПК, причём без требования сначала заводить акк на смартфоне, и только затем подключить ПК версию. Конкретно интересует Ubuntu.

Название приложения кстати приятное. За тёмную тему плюс.

3
Ответить

Спасибо, Сергей. Конечно, в планах версия для ПК (правда Mac) и часов. А там посмотрим, что дальше…

Ответить

Нахрена пилить свой отдельный 2FA с хранением в keychain если у эппловского менеджера паролей и так есть 2FA с хранением в keychain.

Какой-то велосипед

Ответить

Раз такие приложения есть, значит они кому-то нужны, не думали? У эппловского менеджера паролей нет интерфейса, да и не хранят обычно всё в одной корзине. Об одном из неявных преимуществ я вскользь написал: приложение можно удалить и ни одного кода в телефоне не будет. С такими рассуждениями, можно вообще пароли в заметках хранить.

1
Ответить

Для себя

Ответить

А аппка для AppleWatch есть(будет) ?

Ответить

В планах да: для часов и компьютера

Ответить