Using Ledger Nano S as a Universal 2nd Factor Authentication (U2F) device
U2F is an open authentication standard that enables Internet users to securely access any number of online services with one single security key instantly and with no drivers or client software needed. U2F was created by Google and Yubico. Simply put, they are security keys or USB devices which store a secret password on the device safely and allow you access to the website by providing a second layer of protection called Two Factor Authentication or 2FA. U2F is more secure as it not only stores the security key, but also the correct domain of the site with key. So a fake phishing website will not be able to authenticate using your key.
Which sites support it?
A plenty of sites already support it. You can check the updated list here or here. Some popular sites where I use U2F are Google, Facebook, Twitter, Github and Gitlab. I would love to use it many other sites, but the support is really slow.
How does it work?
After you register your security key on the website, you simply have to plug in the key and allow the site to authenticate on your key after entering your credentials on that site. If you don’t have your security key with you, then it will fall back to 2FA code or other backup method.
How to use Ledger Nano S as a U2F Device
You have a plenty of options when buying a U2F device. Or, if you already have a Ledger Nano S to store some cryptocurrencies, then you can use it with just a few simple steps. You just have to install an app!
Connect your device, Unlock and Allow manager to control your device.
Go to Manager tab in Ledger Live.
Install the Fido U2F application by clicking on the green download button.
Support me with ETH: 0x681a83007bC52C0bF42B41263Dc498f9Ef7af02A
Read the original guidelines on Ledger Support site alt=»Ledger Nano S — The secure hardware wallet» />
Ledger Nano S Plus and X for Two-Factor Authentication (U2F)
How to use a Ledger Nano S Plus or a Ledger Nano X for two-factor authentication?
Do you know that both Ledger Nano S Plus and Ledger Nano X are also devices for two-factor authentication?
Using Ledger devices to store and manage cryptocurrencies is very common among enthusiasts, traders and investors.
Despite the widespread use of them as “hardware wallets”, most users don’t know that such devices have another, very useful, feature that doesn’t concern cryptocurrencies, at least not entirely.
A Ledger device can be also used as a two-factor authentication tool thanks to the FIDO U2F standard
What I mean is that if you decide not to deal with cryptocurrencies anymore, do not throw your device away. You may take advantage of it on websites and web services which support the FIDO U2F security protocol.
Two-factor authentication
Two-factor authentication is a security process where the user, in order to verify himself, provides two different authentication factors to better protect both his login data and the resources he wants to access.
Two-factor authentication provides a higher security level than access methods based on single-factor authentication, where the user typically provides only one password or a single pin.
Two-factor authentication methods require the user to provide not only something he “knows” (the password) but also something he “owns”, such as a security token, a smartphone, a biometric factor, etc.
Two-factor authentication adds another layer of security to the authentication process, making it harder for hackers the access to user’s devices or online accounts.
Knowing the victim’s password is not enough to pass the authentication check.
Many crypto enthusiasts use two-factor authentication techniques on exchange platforms. The most widespread authentication method is the Google Authenticator app, which is however based on the TOTP algorithm.
“Authenticator” apps remove the need of obtaining a verification code by sms, voice call or e-mail.
In order to access a website, or a web-based service, that supports Google Authenticator or other similar apps, the user must type his username and password: a knowledge factor.
The user is then prompted to enter a six-digit number. Rather than waiting a few seconds to receive a text message, the number is generated by the Authenticator.
These numbers change every thirty seconds and are different for each access. By entering the correct number, the user completes the verification procedure and demonstrates that he owns the right device: a possession factor.
The popularity of one-time password technology is due to its simplicity. In addition to a static credential (username/password) the user provides another dinamically generated authentication factor.
OTP technology is compatible with all the main platforms (desktop, laptop, mobile) and legacy systems, making it a very popular choice among second factor protocols.
Despite its usefulness and simplicity, OTP technology is not immune to phishing and man-in-the-middle attacks. Here is what can happen.
An hacker creates a fake website, designed to lead people to submit their login credentials. When a user falls into the trap and enters his information (username, password and one-time password), these data will be immediately intercepted by the hacker to access to the victim’s account.
The increased sophistication of attack techniques against OTP schemes was a motivating factor in the development of FIDO U2F protocol. Here is why this is better than the former.
When a user registers a U2F device for his account, a public/private key pair is generated.
After setting it up, when the user attempts to log in, the service provider sends a challenge to the client. The client compiles the requested information, which are then signed by the U2F device (using the private key) and sent to the server (to the service provider).
The real-time response scheme of the U2F protocol is able to face OTP vulnerabilities, such as phishing and several kinds of man-in-the-middle attacks.
Since the request is issued by the legitimate server, if a fake site or a man-in-the-middle manipulates the stream, the server will detect an anomaly in the response and will deny the access.
How to set up Ledger Nano as a U2F device
FIDO U2F is a two-factor authentication method being developed by FIDO Alliance and supported by both Ledger Nano S Plus and Ledger Nano X.
In order to get started you need a Ledger Nano S Plus or a Ledger Nano X updated to the latest firmware version. The Ledger Live app must be installed as well.
Here are the step by step instructions:
1) open the “Manager” in the Ledger Live;
2) connect and unlock your Ledger device;
3) if required allow the “Manager” on your device;
4) find “FIDO U2F” in the apps catalog;
5) click on the “Install” button of the application;
6) open the “FIDO U2F” app from the device dashboard.
In order to enable the two-factor authentication for websites or web services that support FIDO U2F, go to the security settings of the website or service and follow the instructions to register the device.
As for crypto exchanges, Binance, Bitfinex and Coinbase already support such authentication protocol. In order to find out if you can use the U2F protocol for a specific exchange, simply check the security section of the settings.
Beyond the cryptocurrencies field you can still take advantage of the U2F technology in many online services: e.g. Facebook, Google, GitHub, Dropbox and many others.
Security tips
Always make sure you set an alternative access method. You can register a second key, with another U2F device, or a different authentication factor, such as the Google Authenticator.
Registering a second access method is essential, because if you remove and install again the FIDO U2F app — whatever the reason — you will need to reconfigure it for each service.
After updating the Ledger firmware all apps must be reinstalled, and this involves the reset of the counter. This makes impossible to access the service using the device’s FIDO U2F app, hence you must reconfigure the service.
The FIDO U2F app of the Ledger device maintains an internal counter which changes every time U2F is used to access a third-party service.
That said, whenever you want to update the Ledger firmware or install again the FIDO U2F app, take the following precautions:
1) use an alternative tool — such as an Authenticator app — to log in to the services you wish to access;
2) once logged in, go to the security settings of the services where you use FIDO U2F. Then remove the FIDO U2F authentication method that you had set up with your Ledger device;
3) register again your Ledger device as an authentication method.
Video tutorial: set up Fido U2F with Ledger Nano X for Google account
As an example, in this video tutorial you can learn how to secure a Google account using your Ledger Nano X with Fido U2F.
Hopefully this article helps you figure out how to use a Ledger Nano as a key for Two-Factor Authentication (U2F). Should you have any doubts or questions, ask me in the comments below.
Use Ledger wallet as Security Key for Google and other online accounts
Google allows its users to add an extra level of security for their accounts, via 2-Factor-Authentication (2FA). With this option enabled, users have to authenticate themselves through a different channel, in addition to providing the account password, in order to gain access to the account.
The second level of authentication may be done via SMS OTP, Google Authenticator app, or a USB Security Key. Many users might prefer to use the USB Key for this purpose, because it’s hardware-based, faster and more secure compared to the other options. Also, it seems kinda cool to be able to unlock your account by plugging in a USB key.
Many companies issue hardware products built specifically for this purpose. Such USB devices are usually based on the FIDO U2F standards and are compatible with any website or service which use the same standards for 2FA.
For example, YubiKey is one such popular device that can be used to authenticate yourself on Google and other services that support the FIDO U2F standards. To unlock your Google account via 2FA, you just need to plug in the device to your compute, and press the physical button at the back of the device when asked, in order to login to your account.
But if you are a cryptocurrency holder who uses a hardware HD wallet like Ledger, you could also use the same hardware wallet as a USB Security Key for 2FA, instead of using a dedicated device such as YubiKey.
This article explores how you can set up your Ledger Wallet as a USB Key for unlocking your Google account using 2FA. But the same method holds true for setting up USB Key-based 2FA for other FIDO U2F supported services as well.
In order to set up your Ledger Wallet for 2FA, first you need to ensure that the FIDO U2F app is installed on your Ledger Nano S or Ledger Blue device. If not, follow the steps below to install the FIDO U2F app:
- Download and install the Ledger Manager Chrome app on your computer.
- Connect your Ledger Wallet to your computer and provide the Wallet Pin.
- Launch the Ledger Manager app and install the FIDO U2F app on your Ledger device.
Once installed, your Ledger device is ready to serve as a USB Security Key for your Google Account.
Now, you need to set up your Google account in such a way that it can be unlocked by plugging in your Ledger Wallet device (or any USB Key). Follow the steps below to configure your account for 2-Step Verification via USB Security Key:
- Turn on 2-Step Verification for your Google account, if not already done.
- Connect your Ledger Wallet to your computer and provide the Wallet Pin to unlock it.
- Click on Add Security Key link from the available 2-Step-Verification options.
- Click Next on your computer and then open the FIDO U2F app on your Ledger device. You will get a prompt to authenticate yourself.
- Choose yes on the Ledger device. The device will now be configured to work with your Google account.
From now on, whenever you need to sign in to your Google Account from your computer, you need to plug in the Ledger Wallet, open the FIDO U2F app on the device, and confirm authentication from it.
Note: It is recommended to have a secondary 2-Step Verification option enabled, such as OTP or Google Authenticator, along with USB Security Key. This will allow you to use alternative methods for 2-Step Verification while logging in from browsers in which USB Security Keys are not supported (for example, Safari, mobile browsers, etc.).
Although this article is meant specifically for Ledger Wallet users, this workaround is also applicable for any other hardware HD wallets that supports FIDO U2F features.
Now that you know how to use your Ledger Wallet as a USB Security Key for 2FA, you no longer need to invest on a separate device. And for those of you who aren’t familiar what hardware HD wallets are all about, you can check out our dedicated article on the same.
Двухэтапная аутентификация в браузере с помощью USB-токена U2F
U2F — открытый протокол универсальной 2-факторной аутентификации, разработанный FIDO Alliance.
В альянс входят компании Google, PayPal, Lenovo, MasterCard, Microsoft, NXP ,Visa и другие.
Протокол поддерживается браузером Chrome с версии 38. Работает из коробки без драйверов в Windows/MacOS/Linux.
На текущий момент поддерживается сервисами Google, LastPass, WordPress.
В статье описывается опыт использования токена Yubikey NEO с поддержкой NFC и OpenPGP card, недостатки двухфакторной аутентификации по SMS.
Почему двухэтапная аутентификация по SMS бывает опасна
Сейчас очень популярна двухэтапная аутентификация при помощи SMS или звонка.
Безусловно, это удобно, и такая дополнительная проверка в большинстве случаев эффективна. Для защиты от автоматизированных атак, фишинга, подбора паролей, вирусов, восстановления утраченного доступа и прочего.
Но в случае, если ваша персона стала мишенью профессиональных мошенников, привязанный телефон может сыграть роковую роль. Чаще всего телефонный номер, к которому привязан аккаунт не является секретом, обычно это основной контактный номер. Почти все сервисы сообщают его первые или последние цифры любому желающему, если попытаться восстановить доступ к аккаунту. Поэтому выяснить номер связанный с аккаунтом несложно.
Узнать, на кого оформлен номер в России не составляет большого труда. Достаточно почитать эксперимент ребят из Roem.ru.
Получив персональные данные владельца номера, мошенники рисуют поддельную доверенность, водительские права или паспорт, и отправляются в ближайший филиал оператора сотовой связи.
Полномочия перевыпустить SIM-карту имеет любой рядовой сотрудник самого захудалого салона мобильной связи.
Забавно, что у большинства операторов в профиле абонента нет даже фотографии владельца номера, хотя паспорт они зачем-то ксерят. То есть достаточно нарисовать паспорт с совпадающими реквизитами и вклеить подходящую фотографию.
У операторов есть опция запрета перевыпуска SIM-карты по доверенности, однако это иллюзорная защита, потому как номера успешно перевыпускаются по поддельным водительским правам и паспортам.
Мегафон:
moscow.megafon.ru/help/servic. sti.html#21123
Для подключения услуги наберите на телефоне команду *105*508#.
Отключить услугу может только владелец номера при личном визите в салон «МегаФона» с документом, удостоверяющим личность.
Билайн
moskva.beeline.ru/customers/help/safe-beeline/ugrozy-mobilnykh-moshennikov/zapret-deystvyi-po-doverenosti
Для установки запрета необходимо обратиться в один из офисов «Билайн» с паспортом или позвонив по номеру 0611.
МТС
При личном визите в офис попросить, чтобы в комментариях к номеру указали, что все действия имеет право совершать только владелец с паспортом.
В Украине ситуация еще хуже, так как большинство номеров анонимны.
У оператора Kyivstar для перевыпуска SIM-карты требуется показать чек последнего пополнения счета и назвать три номера, на которые совершались звонки.
Хорошие сервисы, например, многие банки, сохраняют вместе с телефонным номером еще и IMSI (International Mobile Subscriber Identity) — уникальный идентификатор SIM-карты. В случае, если IMSI изменился, то привязка номера считается аннулированной и процедуру привязки нужно пройти заново.
К сожалению, таких сервисов не очень много.
Проверить IMSI любого номера можно с помощью HLR-запроса smsc.ru/testhlr
Рецепт для параноиков: у smsc.ru есть удобные библиотеки для Python, PHP, Perl, Ruby, Java, C#, Delphi, C++, позволяющие, в том числе, посылать HLR-запросы. Можно проверять IMSI своих номеров, например, два раза в сутки, и в случае его изменения бить тревогу. При самом дорогом тарифе один запрос стоит 0.2 рубля, выходит примерно 150 рублей в год за один номер. Через эту же библиотеку можно послать SMS с тревогой. Рекомендую 😉
Существуют и другие способы обхода подтверждения через мобильный телефон, такие как установка переадресации, перехват голосовой почты и т.д. Но их описание выходит за рамки данной статьи.
U2F — FIDO Universal 2nd Factor
По задумке U2F аутентификатором выступает аппаратный модуль: USB-токен, SIM-карта или NFC брелок, который хранит ключи и самостоятельно выполняет криптографические операции. При этом ключи предустановлены при производстве и никогда не покидают токен.
- Пользователь авторизуется на веб-сайте/в приложении с помощью логина-пароля
- Сервер проверяет учетные данные и, если они верны, генерирует челендж для токена и отправляет его пользовательской программе, в данном случае, браузеру
- Браузер передает челендж токену, который может затребовать на свое усмотрение действия от пользователя. В моем случае это прикосновение пальцем к контактной площадке. Но это может быть, например, ввод пинкода, биометрическая проверка или вообще отсутствие таковых
- Токен возвращает программе ответ, который передается на сервер
- Аутентификация выполнена
На текущий момент поддержка U2F есть в Google Chrome, начиная с 38 версии. Вероятно, в ближайшее время будет добавлена в FireFox.
Уже поддерживается для авторизации в аккаунтах Google и Lastpass, есть плагин для WordPress, Django и библиотеки на разных языках.
Модули для Linux PAM, OpenSSH и прочего.
Таблица сервисов поддерживающих OTP/U2F авторизацию — www.dongleauth.info
Личный опыт использования токена Yubikey NEO
Самые продвинутые U2F устройства производит компания Yubico.
Дистрибьютор в России — yubico.ru
Я купил самый навороченный на текущий момент брелок — Yubikey NEO.
- OpenPGP smartcard — определяется как ICCID ридер со вставленной OpenPGP картой версии 2.0
- NFC — можно использовать со смартфонами и как ключ для СКУД. Может работать как карта Mifare Classic в режиме эмуляции
- OTP и TimeOTP — определяется как hid клавиатура и по нажатию вводит одноразовый пароль. Time Based OTP через программный апплет (замена google authenticator)
- PIV smartcard — (Personal Identity Verification) американский государственный стандарт смарткарт
По дефолту устройство работает в режиме Yubico OTP (фирменный протокол одноразовых паролей), определяется только как HID-клавиатура и по нажатию на кнопку печатает одноразовые пароли на основе ID устройства.
Включить режим U2F нужно через фирменную утилиту, которая есть под Windows/Mac/Linux.
Я предпочел включить режимы U2F и ICCID для работы в качестве OpenPGP карты.
На этом все. U2F сразу работает, никакие драйвера устанавливать не требуется.
Проверить работу можно в демо-приложении demo.yubico.com/u2f
Привязка токена к Google-аккаунту происходит крайне просто:
После привязки токена он становится вторым фактором по умолчанию, при этом нельзя отключить альтернативный способ: либо SMS, либо TOTP.
Альтернативным вторым фактором я выбрал TOTP. Я использую программную реализацию TOTP через 1Password (то же, что и Google Authenticator, только на десктопе). Yubikey NEO тоже умеет TOTP, при этом ключ для генерации паролей сохраняется в токене и не может быть извлечен. Но так как пароли генерируются на основании времени, нужно держать запущенным программный апплет для передачи времени в токен, что мне не понравилось.
Я также бегло исследовал другие функции устройства.
OpenPGP карта сразу заработала с GnuPG 2.0.27 из пакета gpgtools.org.
Карта версии 2.0, ключи только RSA и не длиннее 2048 бит.
Работа с картой возможна и через NFC, например, на Android с помощью http://www.openkeychain.org/. Прелесть такой связки в том, что все операции с закрытым ключом выполняются на карте, ключ никогда не покидает карту и не может быть извлечен из нее.
К сожалению, на днях была найдена уязвимость в реализации OpenPGP в Yubikey NEO, позволяющая обойти ввод пин-кода и выполнить операцию с приватным ключом. И, так как обновление прошивки на устройствах запрещено из соображений безопасности, исправить баг нет возможности. Компания Yubico обещает заменить кривые железки всем желающим.
У меня как раз оказалась уязвимая версия прошивки 1.0.8
Эмуляция Mifare Classic — самая непонятная для меня функция. При попытке общаться с ней, как с обычным Mifare Classic, карта ведет себя странно.
Карта имеет 7-байтный UID
Физически RFID-метка работает довольно хорошо, несмотря на маленькую антенну, ридер в метро «схватывает» с 3 сантиметров.
Заключение
По сравнению со всеми аппаратными токенами, которыми мне доводилось пользоваться, технология U2F — это крайне удобно. Не нужно возиться с импортом сертификатов, установкой драйверов, никаких Java-апплетов и прочего.
Я протестировал работу на Windows 7, Mac OS 10.10 и Ubuntu 14.0.4. Во всех системах Chrome сразу подхватывал токен без установки драйверов. В целом, развертывание видится настолько простым и понятным, что справится даже ребенок.
А наличие полностью открытых спецификаций, плагинов и библиотек позволит прикручивать U2F к любым приложениям.