«Никогда не было серьезных инцидентов безопасности, вызванных утечкой учетных данных npm, но наша работа по обеспечению безопасности никогда не заканчивается».
Это не был заголовок, с которым npm выступила, когда недавно объявила о поддержке двухфакторной аутентификации, но именно эта строка привлекла мое внимание. Просто замечательно видеть, что эти критически важные части инфраструктуры веб-разработки воспринимают безопасность всерьез.
Но это лишь половина дела — теперь нам всем также нужно защитить наши аккаунты с помощью 2FA. После настройки 2FA вам понадобятся и пароль, и устройство для генерации одноразового кода, чтобы аутентифицироваться в npm. Это значительно усложняет задачу для любого, кто захочет захватить ваш аккаунт и, что еще важнее, ваши пакеты npm.
Без лишних слов, вот как защитить ваш аккаунт npm с помощью 2FA и Authy.
Чтобы воспользоваться этой дополнительной мерой безопасности, вам потребуется последняя версия npm — 5.5.0. Перейдите в командную строку и выполните:
Убедитесь, что вы также вошли в свой аккаунт npm. Попробуйте выполнить новую команду `profile`
чтобы проверить это.
Если вы вошли в систему, вы увидите информацию о своем профиле. Если нет, вы получите сообщение об ошибке, и вам следует выполнить:
И заполнить свои данные для аутентификации клиента. После входа в систему вы можете проверить свой аккаунт с помощью `npm profile get`
.
Я собираюсь настроить 2FA с помощью приложения Authy. У него есть ряд функций, которые отличают его от других приложений-аутентификаторов, таких как поддержка нескольких устройств, мобильные и десктопные приложения, а также возможность шифрования и резервного копирования ваших кодов 2FA. Если у вас еще нет приложения Authy, вы можете найти все загрузки на сайте Authy.
Мы вошли в профиль npm, приложение Authy готово. Давайте включим 2FA.
Вернувшись в командную строку, у вас есть два варианта включения двухфакторной аутентификации. При включении в режиме `auth-only`
вам всегда потребуется второй фактор для аутентификации в npm. Если вы выберете `auth-and-writes`
он также понадобится при обновлении аккаунта или публикации пакета. Второй вариант является наиболее безопасным и используется по умолчанию, поэтому мы будем использовать его.
Если вы хотите включить 2FA только для аутентификации, просто выполните:
Вас попросят ввести пароль от аккаунта npm, и после правильного ввода вам будет показан QR-код.
Да, QR-код в командной строке — теперь я видел их везде! И нет, вы не можете использовать этот QR-код для доступа к моему аккаунту, я уже отозвал его.
Возьмите приложение Authy, добавьте новый аккаунт и отсканируйте штрих-код.
Затем введите код, чтобы подтвердить, что вы правильно настроили приложение. В случае успеха вы увидите четыре резервных кода, которые нужно сохранить на случай потери устройства аутентификации. Это важно, но с Authy менее критично, так как вы можете настроить приложение на шифрование и резервное копирование кодов, чтобы всегда иметь к ним доступ, пока можете войти в свой аккаунт Authy.
Если вы успешно пройдете эти шаги, при следующей попытке опубликовать пакет или обновить профиль вас попросят ввести OTP-код. Снова откройте приложение Authy, найдите приложение и скопируйте код, и ваше действие будет успешно завершено.
Вот я обновляю свой профиль и показываю, что двухфакторная аутентификация включена для auth-and-writes.
Я хочу поблагодарить npm за то, что они делают возможным сохранение безопасности всех тех пакетов, которые они обслуживают. Если вы только что настроили двухфакторную аутентификацию для своего профиля, то я хочу поблагодарить и вас за то, что вы делаете экосистему Node.js более безопасным местом.
Если вы хотите реализовать двухфакторную аутентификацию для собственного приложения, обязательно ознакомьтесь с Twilio 2FA API. Вы можете создать обычный процесс 2FA как с SMS, так и с кодами на основе токенов, а также использовать расширенные функции, такие как OneTouch, который превращает 2FA из копирования кодов в простое взаимодействие «одобрить» или «отклонить».
Если вы рады видеть, что npm внедряет 2FA, поддержите их в Twitter!