Freeotp перенести на другой телефон
Как быть, если двухфакторной аутентификации и хочется, и колется, а денег на аппаратные токены нет и вообще предлагают держаться и хорошего настроения.
Данное решение не является чем-то супероригинальным, скорее — микс из разных решений, найденных на просторах интернета.
Итак, дано
Домен Active Directory.
Пользователи домена, работающие через VPN, как многие нынче.
В роли шлюза VPN выступает Fortigate.
Сохранение пароля для VPN-клиента запрещено политикой безопасности.
Политику Fortinet в отношении собственных токенов менее чем жлобской не назовешь — бесплатных токенов аж 10 единиц, остальные — по очень некошерной цене. RSASecureID, Duo и им подобные не рассматривал, поскольку хочется опенсорса.
Предварительные требования: хост *nix с установленным freeradius, sssd — введен в домен, доменные пользователи могут спокойно на нем аутентифицироваться.
В моем примере — CentOS 7.8.
Логика работы предполагается такая: при подключении к VPN пользователь должен ввести доменный логин и OTP вместо пароля.
Настройка сервисов
В /etc/raddb/radiusd.conf меняется только пользователь и группа, от имени которых стартует freeradius, так как сервис radiusd должен уметь читать файлы во всех поддиректориях /home/.
Чтобы можно было использовать группы в настройках Fortigate, нужно передавать Vendor Specific Attribute. Для этого в директории raddb/policy.d создаю файл со следующим содержимым:
После установки freeradius-ldap в директории raddb/mods-available создается файл ldap.
Нужно создать символьную ссылку в каталог raddb/mods-enabled.
Привожу его содержимое к такому виду:
В файлах raddb/sites-enabled/default и raddb/sites-enabled/inner-tunnel в секции authorize дописываю имя политики, которая будет использоваться — group_authorization. Важный момент — имя политики определяется не названием файла в директории policy.d, а директивой внутри файла перед фигурными скобками.
В секции authenticate в этих же файлах нужно раскомментировать строку pam.
В файле clients.conf прописываем параметры, с которыми будет подключаться Fortigate:
Конфигурация модуля pam.d/radiusd:
Дефолтные варианты внедрения связки freeradius с google authenticator предполагают ввод пользователем учетных данных в формате: username/password+OTP.
Представив количество проклятий, которое посыпется на голову, в случае использования дефолтной связки freeradius с Google Authenticator, было принято решение использовать конфигурацию модуля pam так, чтобы проверять только лишь токен Google Authenticator.
При подключении пользователя происходит следующее:
- Freeradius проверяет наличие пользователя в домене и в определенной группе и, в случае успеха, производится проверка OTP токена.
Пользователь должен залогиниться на сервер с freeradius и из-под своей учетной записи и запустить приложение Google authenticator, которое и сгенерирует для пользователя QR-код для приложения. Вот тут на помощь и приходит shellinabox в комбинации с .bash_profile.
Конфигурационный файл демона находится в /etc/sysconfig/shellinabox.
Указываю там порт 443 и можно указать свой сертификат.
Пользователю остается лишь зайти по ссылке, ввести доменные креды и получить QR-код для приложения.
- Пользователь логинится на машину через браузер.
- Проверяется доменный ли пользователь. Если нет, то никаких действий не предпринимается.
- Если пользователь доменный, проверяется принадлежность к группе администраторов.
- Если не админ, проверяется настроен ли Google Autheticator. Если нет, то генерируется QR-код и logout пользователя.
- Если не админ и Google Authenticator настроен, то просто logout.
- Если админ, то опять проверка Google Authenticator. Если не настроен, то генерируется QR-код.
Настройка Fortigate:
- Есть возможность аутентификации по OTP на Fortigate опенсорс решением.
- Исключается ввод доменного пароля пользователем при подключении по VPN, что несколько упрощает процесс подключения. 6-цифровой пароль ввести проще, чем тот, который предусмотрен политикой безопасности. Как следствие, уменьшается количество тикетов с темой: «Не могу подключиться к VPN».
Update:
Как и обещал, докрутил таки до варианта с challenge-response.
Итак:
В файле /etc/raddb/sites-enabled/default секция authorize выглядит следующим образом:
Двухфакторная аутентификация стала важной мерой безопасности для многих людей, но она также может быть источником беспокойства. Когда Вы меняете или обновляете телефон, Google Authenticator не переносит коды автоматически — Вам нужно сделать это вручную.
К счастью, нетрудно перенести коды Google Authenticator с одного телефона на другой, хотя, это может быть немного трудно. Google задумал это намеренно. Не должно быть слишком легко получить коды аутентификации из любого места, кроме устройства, которое Вы используете для двухфакторной аутентификации, иначе само назначение 2FA будет спорным.
Тем не менее, вот что Вам нужно знать, чтобы перенести Google Authenticator (и все Ваши коды аутентификации) со старого телефона на новый. Процесс для iOS и Android один и тот же.
Перенос Google Authenticator на новый телефон
Прежде всего, не делайте ничего с Google Authenticator на Вашем старом телефоне. Оставьте это на время, иначе Вы можете остаться без способа ввода кодов 2FA перед настройкой нового телефона. Начните с установки Google Authenticator на новое устройство — Google Authenticator для iPhone.
Или Google Authenticator для Android.
Далее Вам понадобится компьютер. Откройте страницу двухэтапного подтверждения Google в браузере и войдите в свою учетную запись Google, когда она попросит Вас. В разделе «Приложение Authenticator» на странице нажмите «Изменить телефон».
Выберите тип телефона, на который Вы переходите, и нажмите «Далее».
Теперь Вы должны увидеть экран «Настройте приложение Authenticator» со штрих-кодом. Откройте Google Authenticator на новом телефоне и следуйте инструкциям для сканирования штрих-кода. Нажмите «Настроить аккаунт», а затем «Сканировать штрихкод».
После сканирования нужно ввести одноразовый код, чтобы убедиться, что он работает.
Перенесите свои коды Google Authenticator для других сайтов
Теперь Вы переместили коды аутентификации Google на новый телефон, но единственная настроенная Вами служба — это Google. Вероятно, у Вас еще есть множество других приложений и сервисов, подключенных к Google Authenticator — возможно, Slack или Dropbox или другие. Вам нужно будет перенести каждый из них по одному. Это трудоемкая часть, на которую мы ссылались ранее.
Но в целом процесс прост, даже если Вам нужно немного поискать настройки. Выберите сайт или сервис, который указан в Вашей старой копии Google Authenticator (на старом телефоне), и войдите на его веб-сайт или откройте приложение. Найдите настройку 2FA для этого сайта. Вероятно, он находится в разделе учетной записи, пароля или безопасности на веб-сайте, хотя, если у службы есть мобильное или настольное приложение, оно может быть там.
Как только Вы найдете нужные элементы управления, отключите 2FA для этого сайта. Вам, вероятно, потребуется ввести пароль для сайта или код аутентификации, поэтому Вам понадобится старый телефон и его Google Authenticator.
Наконец, снова включите 2FA, на этот раз сканируя QR-код с помощью Google Authenticator на новом телефоне. Повторите эту процедуру для каждого сайта или службы, перечисленных в Вашем старом Google Authenticator.
Включить 2FA на более чем одном устройстве одновременно
В идеальном мире 2FA позволяет Вам подтвердить свои учетные данные с помощью мобильного телефона или другого устройства, которое Вы всегда носите с собой, к которому только у Вас есть доступ. Из-за этого хакерам очень трудно подделать систему, потому что (в отличие от получения кодов с помощью SMS, который не особенно безопасен), у них нет простого способа получить вторую авторизацию, предоставляемую через локальное существующее приложение.
Когда Вы добавляете новый сайт или сервис в Google Authenticator, он использует секретный ключ для создания QR-кода. Это, в свою очередь, информирует Ваше приложение Google Authenticator о том, как создавать неограниченное количество одноразовых паролей на основе времени. После того, как Вы отсканируете QR-код и закроете окно браузера, этот конкретный QR-код не может быть восстановлен, и секретный ключ будет храниться локально на Вашем телефоне.
Если бы Google Authenticator мог синхронизироваться между несколькими устройствами, тогда секретный ключ или его коды аутентификации должны были бы где-то жить в облаке, делая его уязвимым для взлома. Вот почему Google не позволяет Вам синхронизировать коды на разных устройствах. Однако есть два способа поддерживать коды аутентификации на нескольких устройствах одновременно.
Во-первых, когда Вы добавляете сайт или службу в Google Authenticator, Вы можете сканировать QR-код на нескольких устройствах одновременно. Веб-сайт, который генерирует QR-код, не знает о том, что Вы его отсканировали. Вы можете сканировать его на любое количество дополнительных мобильных устройств, и каждая копия Google Authenticator, через которую Вы сканируете тот же штрих-код, будет генерировать один и тот же шестизначный код.
Мы не рекомендуем поступать таким образом. Прежде всего, Вы распространяете свои коды аутентификации на несколько устройств, которые могут быть потеряны или украдены. Но, что более важно, поскольку они на самом деле не синхронизированы, Вы рискуете отключить различные устройства друг от друга. Если Вам нужно, например, отключить 2FA для определенной службы, а затем повторно включить ее только на одном устройстве, Вы можете больше не знать, какое устройство имеет самые актуальные и правильные коды аутентификации.
Используйте Authy
Возможность синхронизировать Ваши коды аутентификации между устройствами не предоставляется Google Authenticator. Если Вы хотите использовать все коды 2FA на нескольких устройствах, мы рекомендуем использовать Authy.
Он работает со всеми сайтами и службами, использующими Google Authenticator, шифрует коды с помощью предоставленного Вами пароля и сохраняет их в облаке. Это значительно упрощает перенос нескольких устройств, а зашифрованная облачная синхронизация обеспечивает баланс безопасности и удобства.
Благодаря Authy Вам не нужно настраивать двухфакторную аутентификацию для всех Ваших устройств при каждом переходе на новый телефон. Мы рекомендуем перейти с Google Authenticator на Authy, чтобы облегчить процесс перехода на новый телефон в будущем.
Все активные пользователи сети имеют десятки важных и нужных учетных записей на разных сайтах.
Большинство из них защищены банальным паролем, который при этом совпадает с кодом доступа от ряда других ресурсов.
Как обезопасить любую учётку
Во-первых, проверьте пароль на повторения. Такая довольно полезная фишка появилась еще в iOS 12.
Если пароль будет неоригинальным (повторяться с другими сайтами и сервисами), iPhone подскажет это.
Перейдите в меню Настройки – Уведомления – Показ миниатюр и измените параметр на Если разблокировано или Никогда.
Если смартфон окажется в чужих руках, то злоумышленники не смогут получить приходящий по СМС или в уведомлении пароль для авторизации.
Эта опция доступна по пути Настройки – Сотовые данные – SIM-PIN. Простой четырехзначный пароль не позволит мошенникам использовать сим-карту в другом телефоне для получения одноразового пароля по СМС.
Эти три простых шага позволят минимизировать риск потери доступа к своим учётным записям на сайтах и сервисах с двухфакторной аутентификацией.
Как еще усилить защиту
Следующим шагом по усилению защиты будет переход на двухфакторную аутентификацию по коду.
Получать пароль для авторизации на сайте лучше не по СМС, а из специальных 2FA-приложений (two-factor authentication). Так вы не будите зависеть от оператора связи и уровня сигнала, а еще код не получится узнать путем клонирования вашей СИМ-карты.
Такие приложения аутентификаторы привязываются к сервису или сайту и в дальнейшем генерируют код для авторизации. Алгоритм создания пароля, чаще всего, основывается на текущем времени.
Каждые 30 секунд программа генерирует код, который состоит из части ключа сервиса и точного текущего времени. Приложению не нужен доступ к сети или дополнительные данные для генерации кода.
Большая часть сайтов и сервисов не ограничивает пользователей в используемом 2FA-приложении, однако, некоторые разработчики вынуждают использовать только свои программы аутентификаторы.
Подобным способом можно защитить учетные записи Gmail, Dropbox, PayPal, Facebook, Twitter, Instagram, Twitch, Slack, Microsoft, Evernote, GitHub, Snapchat и многих других сайтов/сервисов/приложений.
Какие приложения можно использовать для двухфакторной аутентификации
Если нужные вам сервисы работают с любыми 2FA-приложениями, на выбор доступны следующие альтернативы:
1. Google Authenticator
Одно из самых популярных приложений для двухфакторной аутентификации от компании Google кажется слишком простым и недоделанным.
В основном окне программы можно добавить токен для авторизации на новом сайте или удалить один из существующих. У программы нет абсолютно никаких настроек и параметров.
В приложении нет дополнительной авторизации при запуске по паролю, Face ID или Touch ID. Однако, больше всего расстраивает отсутствие средств для резервного копирования.
В случае смены гаджета придется заново переподключать все сайты к программе.
2. Microsoft Authenticator
Приложение от Microsoft сильно похоже на предыдущую программу, но здесь разработчики немного постарались. Пользователю можно скрыть любые добавленные токены, чтобы они не были видны сразу при запуске приложения.
Кроме этого при авторизации на сайтах и сервисах Microsoft можно не вводить генерируемый код, а просто нажать на кнопку подтверждения прямо в программе.
3. FreeOTP Authenticator
Компания Red Hat, которая занимается выпуском ПО на основе операционной системы Linux, разработала свое приложение для двухфакторной аутентификации.
Программа не имеет дополнительной защиты, но зато предлагает пользователю расширенные параметры создаваемого токена. Самые отъявленные параноики могут вручную выбрать алгоритм шифрования, тип защиты и длину генерируемого кода.
Еще приложение FreeOTP имеет открытый исходный код, который изучается энтузиастами на предмет уязвимостей и ошибок.
4. Яндекс.Ключ
Разработчики из Яндекс используют отличную от других подобных сервисов схему шифрования, которая подробно описана здесь. К сожалению, собственные сервисы компании работают лишь с фирменным приложением Яндекс.
Программу можно защитить паролем или сканером Touch ID.
К минусам приложения можно отнести тот факт, что программу не обновляли несколько лет, а еще разработчикам не рассказали о выходе iPhone X с новым соотношением сторон экрана.
5. Authy
Одно из самых мощных и функциональных решений в данной нише. Для начала использования сервиса потребуется регистрация по номеру телефона, что для многих может стать недостатком.
Хранящиеся в облаке бекапы зашифрованы и защищены паролем, который нужно помнить для развертывания базы на другом девайсе.
Клиенты Authy есть не только для iOS или Android. На сайте разработчиков доступны программы под macOS, Windows и Linux, а еще есть расширение для браузера Chrome.
Сам уже несколько лет пользуюсь сервисом и рекомендую именно его.
Это лишь самые популярные приложения аутентификаторы. В App Store можно найти еще несколько десятков подобных программ от менее известных разработчиков. В основном они отличаются дизайном и имеют схожий функционал.
Как настроить двухфакторную аутентификацию
Рассмотрим процедуру включения защиты на примере учетной записи Gmail.
1. Выберите подходящее приложение аутентификатор и установите его на смартфон или компьютер.
2. Включите двухфакторную аутентификацию в своей учетной записи Gmail.
3. В настройках двухэтапной аутентификации укажите способ авторизации через приложение.
4. Отсканируйте предоставленный QR-код через приложение и сохраните токен для входа.
5. Подтвердите привязку аккаунта путем ввода пароля из приложения.
Теперь для авторизации в своей учетной записи на новом устройстве или на старом после разлогинивания кроме пароля потребуется ввести код из приложения аутентификатора.
Так ваши данные будут максимально защищены в случае кражи или утери смартфона, либо, если злоумышленники узнают пароль.
(18 голосов, общий рейтинг: 4.72 из 5)
Если вы выполняете сброс телефона, переходите на новый телефон или просто хотите скопировать данные на второе устройство, нужно выполнить следующие действия по копированию данных, чтобы не потерять коды доступа.
Переход на другой телефон
Google позволяет перенести данные на другой телефон. Откройте страницу двухэтапной верификации вашего аккаунта и нажмите кнопку «Изменить» в разделе «Приложение Authenticator«.
Выберите тип нового телефона и отсканируйте показанный код на новом телефоне. Обратите внимание, что на старом телефоне приложение Google Authenticator работать перестанет.
Восстановление доступа
Непредвиденные ситуации случаются каждый день — у кого-то сломался телефон, кто-то потерял и приобрел новый. Существует возможность восстановить доступ в Google Authenticator, перенести на другой телефон свои данные. О восстановлении нужно позаботиться заранее, желательно распечатать или сохранить QR-код, который выдается при подключении программы. Такая мера предосторожности признана самой качественной среди тех, кто уже терял свой аккаунт. Это самый простой вариант, как перенести Google Authenticator на другой телефон.
Ключ требуется хранить в безопасном месте, ни в коем случае его нельзя передавать незнакомым или ненадежным людям, ведь он дает доступ ко многому. Неприятности с программой начинаются тогда, когда этот код не был записан. Если такое произошло, то для того, чтобы восстановить доступ Google Authenticator, перенести на другой телефон свои данные, придется обращаться в поддержку каждого сервиса, к которому он был привязан.
Резервное копирование и восстановление данных Google Authenticator [нужен root]
Если на вашем устройстве Android открыт root-доступ, можно использовать приложение Titanium Backup для того, чтобы сделать резервную копию данных приложения Google Authenticator. Из соображений безопасности другие приложения не могут считывать эти данные, именно поэтому требуется root-доступ.
Найдите приложение Authenticator на закладке Backup/Restore и сделайте резервную копию данных. Скопируйте резервную копию из папки TitaniumBackup на устройстве на компьютер. Вы сможете восстановить эти данные впоследствии на новом устройстве.
Обратите внимание, что такой метод не будет работать с устройствами, работающими на разных версиях операционной системы Android, но он идеально подходит, если вам нужно восстановить телефон после сброса.
Настройка Google Authenticator
Воспользоваться этим приложением сможет каждый, независимо от версии Android. Оно не занимает много места и загружается из официального магазина. Отправляйтесь в GooglePlay, вводите название программы и начинайте установку Google Authenticator:
Оно может работать оффлайн, для генерации кодов не требуется подключение к интернету. Интерфейс очень простой, запутаться нереально, ничего лишнего тут нет.
При первом запуске вы ещё и увидите гайд по использованию. Прочитайте подсказки, чтобы быстрее разобраться в работе аутентификатора:
Как видите на изображении выше, чтобы воспользоваться приложением, в него необходимо добавить свои аккаунты. К примеру, это могут быть профили бирж криптовалют. Жмём начать и попадаем к списку выбора способов для подключения аккаунтов:
Можно отсканировать QR код или воспользоваться текстовым ключом. Разницы нет, используйте любой вариант, какой вам удобнее. На этом этапе необходимо зайти в личный кабинет сайта, где вы подключаете 2FA и активировать эту функцию:
Для примера мы воспользовались QR кодом. Аккаунт сразу добавляется в приложение и начинает генерировать числовые коды. Рядом с ним установлен таймер, только пока он не закончится, код считается действительным:
Аналогично вы можете добавить сколько угодно аккаунтов и для каждого из них будут генерироваться коды. Они показаны на главной странице приложения, в настройки есть инструкция по использованию, синхронизация времени и режим для переключения на тёмный дизайн приложения.
Извлечение данных в ручном режиме [нужен root]
Если у вас открыт root-доступ к устройству, вы можете извлечь данные вручную, хотя для этого потребуется немного больше усилий, чем в предыдущем способе.
Для того, чтобы выполнить это, adb потребуется root-доступ. Если у вас есть кастомная прошивка, скорее всего, у вас уже есть adb с root-доступом. Если у вас установлена стоковая прошивка, вам потреюуется приложение типа adbd Insecure. Его можно купить в Google Play или . Переведите adbd в небезопасный режим с помощью этого приложения.
Примечание: Если у вас есть проводник с root-доступом, вы можете скачать файл базы данных из папки /data/data/com.google.android.apps.authenticator2/databases/dataна компьютер.
После того, как вы перевели adb в небезопасный режим, можно подключить устройство Android к компьютеру и скачать базу данных Google Authenticator с помощью команды adb:
adb pull /data/data/com.google.android.apps.authenticator2/databases/databases
Затем можно использовать редактор sqlite для просмотра и изменения содержимого этого файла. Если вы используете программу sqlite3 для комадной строки, выполните следующую команду:
sqlite3 ./databases select * from accounts;
Вы увидите ключи Google Authenticator, которые можно добавить на новое устройство.
Читайте также: