Миграция была совершенно безболезненной, LastPass импортирует практически из любого источника, который вы можете себе представить. После импорта вы можете проанализировать свои сохраненные учетные записи на наличие таких проблем, как надежность пароля, дублирование или любые другие проблемы, которые могли быть скомпрометированы. Как работает этот скомпрометированный анализ, я еще не изучал, но я предполагаю, что он использует некоторый процесс поиска с использованием ранее скомпрометированных баз данных аутентификации.

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

Обновление паролей

Поэтому, когда я проходил процесс решения этих проблем, я был очень встревожен, если честно. Невероятно, в каком плачевном состоянии находится безопасность, и особенно вход в систему.

Я не проводил никаких исследований о том, как LastPass работает с точки зрения заполнения форм, но, черт возьми, у него есть работа. В большинстве случаев ему удается поместить пароли в нужные поля, и процесс обновления пароля проходит без сучка и задоринки.

Проблемы, которые я видел во многих случаях, непростительны и, откровенно говоря, сбивают с толку на техническом уровне. Удивительно, как много сайтов считают пароль длиной более 16 или 20 символов слишком длинным. Тот, кто принимал эти технические решения, абсолютно не разбирается в безопасности и должен быть отстранен от процесса принятия технических решений. Многие другие сайты не допускают использование специальных символов, что еще больше снижает потенциальную сложность принимаемых ими паролей.

Другие сайты запретили LastPass автоматически заполнять поля пароля в веб-формах, а затем также блокировали копирование и вставку в какой-то чрезвычайно ошибочной глупой идее, которая каким-то образом делает вещи более безопасными. Это не так, и я смотрю на вас, argos.co.uk.

Аргументы здесь в том, что буфер обмена, память, используемая для хранения скопированных элементов, может быть скомпрометирован. Ну, вот в чем дело, если буфер обмена вашего пользователя скомпрометирован, вы ни черта не можете с этим поделать. У пользователя есть гораздо более серьезные проблемы, чем ваша веб-форма входа. Аргумент с буфером обмена просто глупый, если вы услышите его от кого-то на техническом совещании, спокойно объясните, насколько ошибочна эта идея, нам нужно убить эти идеи.

Интернет-форумы

Кроме того, существует множество вариантов программного обеспечения для онлайн-форумов. Такие вещи, как vBulletin, phpBB и т.д. др. У них ужасно плохие процессы входа в систему, и, как правило, они размещаются на сайтах без SSL/TLS, что означает, что учетные данные отправляются в виде простого текста — худшее нарушение безопасности, которое может совершить сайт. Это полное издевательство над всей концепцией безопасности, поскольку ее просто нет.

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

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

Динамические формы

Сайты также иногда динамически загружают текстовые поля для изменения логина или пароля. LastPass может иногда обнаруживать это автоматически, или используя расширенные параметры для повторного сканирования страницы, можно обновить их. Хотя во многих случаях и это не удается. Опять же, часто кажется, что они неправильно настроены или как-то нестандартно реализованы.

LastPass виноват?

Здесь стоит сказать, что во многих случаях я мог бы указать пальцем на LastPass, но, честно говоря, виноваты бесчисленные реализации и ошибки со стороны разработчиков сайта.

Понятно, что многие поля формы сами по себе неправильно настроены, плохо названы или иным образом реализованы нестандартно.

Потерянные учетные данные

Также удивительно, как много крупных компаний портят свои отношения с пользователями, изменяя процессы входа в систему и делая это совершенно неправильно. Когда я проходил этот процесс миграции и обновления, я обнаружил невероятное количество учетных записей, которые только что исчезли.

Конечно, некоторые из этих учетных записей не использовались какое-то время, но наверняка эти компании предпочли бы сохранить эти данные, а не просто стереть историю с клиентом? Если учетная запись исчезла, весьма вероятно, что моя история заказов последовала за ней через цифровую заглушку.

Я также сталкивался со всевозможными проблемами переноса аккаунта. Заполнение миграционных форм, которые полностью нарушены, несмотря на многократное повторение инструкций. В некоторых случаях мне приходилось капитулировать и обращаться за помощью в их отделы поддержки. Это именно то, что компании должны делать все возможное, чтобы избежать. Поддержка со стороны их сотрудников не бесплатна, для них это стоит времени и денег.

Перепостинг кошмаров

Это также невероятно глупо и тревожно распространено. По какой-то причине сайтам часто требуется, чтобы вы отправляли другие данные вместе со сбросом пароля. Спрашивать подробности, такие как имя, фамилия, адреса или даты рождения, даже если вы их не меняете.

Проблемы здесь связаны с атаками «человек посередине» (MITM). В сочетании с некоторыми другими проблемами, описанными здесь, учетные записи могут быть легко заблокированы, если POST изменится во время передачи. Разработчики сайта всегда должны требовать абсолютный минимум данных в любом цикле запросов и ответов. Это еще более важно при решении задач безопасности.

Если это не очевидно из макета формы, вы можете в конечном итоге нажать кнопку отправки, и LastPass решит, что все прошло хорошо. Без сомнения, потому что сайт вернул ответ с кодом состояния HTTP 200 OK, но в ответе были подробные ошибки. Бум, теперь данные вашей учетной записи не синхронизированы в хранилище паролей с данными, которые есть на сервере. Ваш логин теперь не работает для этого сайта. На сервере все еще есть ваш старый пароль, а у LastPass есть то, что он считает вашим новым.

Правила пароля в рулетке

Эта проблема совершенно непростительна со стороны разработчиков сайта. Введите надежный пароль из 25 символов, нажмите кнопку «Отправить», а затем появится ошибка, сообщающая вам, что пароль должен быть не менее 6 символов.

Ну, э… ладно. Я мог бы попытаться выяснить, каковы ваши правила пароля, но об этом действительно следует позаботиться с помощью модульного тестирования. Форма входа должна сообщать о любых правилах пароля, прежде чем вы разрешите размещение формы. Или, по крайней мере, проведите проверку на стороне клиента, а не ждите, пока сервер ответит ошибкой, и только затем дайте пользователю подсказку о ваших правилах пароля.

Это также следует за другой проблемой, когда сайт решает изменить свои правила паролей и игнорирует тот факт, что все их старые пользователи имеют пароли, которые больше не соответствуют новым правилам. У меня был один случай, когда процесс входа позволил мне войти, но форма смены пароля отклонила старый пароль, поскольку он не соответствовал новым правилам. Совершенно нелепо.

Очевидным и простым решением этой проблемы является применение новых правил только в полях «Новый пароль» и «Подтверждение нового пароля». Позвольте учетным записям медленно мигрировать оттуда, и если это более серьезная проблема, принудительно смените пароль при следующем входе в систему.

Пожалуйста, пришлите нам свой пароль… Снова?

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

Вы как-то не доверяете своему первоначальному результату входа в систему? Вы уже установили личность пользователя во время начального процесса входа в систему, единственная причина, по которой они могут даже попасть на экран управления учетной записью, заключается именно в том, что вы их идентифицировали? Если вы чувствуете необходимость сделать это, возможно, у вас есть проблема в другом месте? Если вас беспокоит длительный сеанс, возможно, у вас есть тайм-аут бездействия в сеансе сервера? Большинство современных веб-серверов имеют эту встроенную возможность. Хотя я бы сказал, что некоторые аспекты проблем безопасности должны быть приняты как пользователем, так и разработчиками сайта.

Подсказки? ржу не могу

Пожалуйста, дайте подсказку, чтобы вы могли вспомнить свой пароль …

h*jTyKj%^ZiCqwldlE!@R@xIL*A^vs&NqQ8⁸tCT0C5uTF3$Ag

Э… серьёзно, ребята, подсказки глупы даже в лучшие времена, не делайте их обязательными… никогда.

На самом деле я даже столкнулся с сайтом местного правительства, который считал, что достаточно показать мне текст подсказки, а не какой-либо реальный процесс сброса/восстановления пароля. Серьезно, у меня от этого челюсть отвисла. Невероятно глупо. Вы должны отправить им электронное письмо, чтобы сбросить пароль. Буквально, невероятно.

Еще одна совершенно ужасная идея, которую используют некоторые реализации подсказок, часто называют «контрольными вопросами». Вам предоставляется раскрывающийся список фиксированных вопросов, из которых вы выбираете, а затем даете ответ. Это плохая идея на любом уровне. Некоторые из этих вопросов могут показаться довольно безобидными, но некоторые из ответов могут предоставить полезные метаданные, если базы данных будут скомпрометированы и опубликованы гнусной стороной. Я также думаю, что было бы безопасно предположить, что эти комбинации вопросов и ответов не зашифрованы и хакеру не составит труда соединить их с данными из других источников.

Отправка паролей по электронной почте!?? Просто нет

Я поражен тем, как часто я видел это. Вы меняете свой пароль на сайте на что-то хорошее и надежное. Отлично. Затем любезные разработчики отправят вам его обратно по электронной почте В ОБЫЧНОМ ТЕКСТЕ, чтобы помочь вам его запомнить. Ребята, вы только что нагадили по-крупному. Вы взломали любую систему безопасности, которая, по вашему мнению, у вас есть.

Недавно у меня был сценарий на сайте, который я создавал, где во время покупки лицензии автоматически создавалась учетная запись управления. Так как это предполагало создание особого вида учетной записи пользователя. Для базы данных также требовался ненулевой пароль. В фоновом режиме сервер автоматически сгенерирует пароль, выполнит обычный процесс хэширования и соления и сразу же выбросит простую текстовую версию.

Это оставило учетную запись пользователя с паролем, которого никто никогда не знал. Затем на адрес электронной почты, связанный с новой учетной записью, была отправлена ​​ограниченная по времени одноразовая токенизированная ссылка для сброса, а не сам пароль. Учетная запись также была помечена для принудительного сброса пароля. Таким образом, сервер все равно никогда не примет сгенерированный пароль. Если срок действия токена истек до того, как пользователь попытался войти в систему в первый раз, он может использовать процесс забытого пароля для создания другого токена.

Чувствительность к регистру

Имена пользователей и пароли обычно чувствительны к регистру, что означает, что «привет» — это не то же самое, что «ПРИВЕТ» или даже «Привет». Символы верхнего и нижнего регистра не равны, а строки, которые их содержат, очевидны для разработчика, в меньшей степени для обычного пользователя. У меня было несколько сценариев, когда я заканчивал «разделенными записями» в LastPass. Кажется, что непосредственно перед входом в систему POST-запрос некоторый JavaScript на странице заглавной буквы моего имени пользователя перед отправкой его по сети на сервер. Это смутило LastPass, и вместо того, чтобы обновить существующую запись в моем хранилище, он создал новую. На мой взгляд, это попахивает каким-то странным запахом кода сайта или базы данных, особенно если учесть, что имя пользователя было адресом электронной почты.

Войти или не войти… Регистрация?

Иногда это странный сценарий. Формы входа и регистрации находятся на одной странице/форме. Это странно и сбивает с толку, особенно для менеджера паролей. Когда я просматривал свои сохраненные учетные данные, я обнаружил много случаев, когда учетные данные сохранялись несколько раз. Часто с префиксом поддомена, например «register.». Создание учетной записи и регистрация существующего пользователя на вашем сайте — это две совершенно разные задачи, и их не следует смешивать. Добавление страниц/URL-адресов на сайты для таких основных функций вряд ли является серьезной задачей для разработчика. Наличие форм на страницах с различными действиями — это хорошо, но не должно заставлять разработчика «стесняться страницы», продолжайте, создайте другую страницу, вы знаете, в этом есть смысл!

Код проекта!!!?? Неееет Точно нет?

Один из процессов смены пароля, который меня по-настоящему шокировал, был в Code Project. Форма смены пароля представляет собой дурацкую всплывающую подсказку, прикрепленную к фрагменту текста, оформленному в виде ссылки. Когда я ввел сгенерированный LastPass пароль, мне сообщили, что он очень надежный. Неудивительно. Затем меня встретило странное сообщение о том, что мой текущий пароль неверен. Затем я также не мог щелкнуть какие-либо ссылки на сайте, и мне нужно было отключить вкладку, чтобы сайт снова заработал. Все очень странно.

OAuth

OAuth был попыткой получить право входа в систему. Хотя это не механизм аутентификации как таковой, он пытается объединить вход в систему. Сокращение количества паролей, которые есть у пользователя, а также количества раз, когда пароль отправляется по сети. Любой, кто следил за историей OAuth, знает, что его изобретатель отказался от OAuth2 во время создания спецификации по причинам, слишком многочисленным и сложным для этой статьи.

Достаточно сказать, что нам очень нужны новые усилия по стандартизации.

Я просто оставлю это здесь… да, это с реального сайта…

… и нет, вы не должны… никогда.

Будущее??

Во-первых, я ни в коей мере не считаю себя экспертом по безопасности. Я оставлю это прозвище таким, как Тэвис Орманди, Трой Хант, Стив Гибсон и Мокси Марлинспайк. Сказав это, я тоже не новичок в безопасности.

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

Идее системы, защищенной паролем, уже более 50 лет. Приложено много усилий для улучшения таких вещей, как OAuth и SQRL. У OAuth есть свои проблемы, и ни одна из ближайших вещей не кажется панацеей, в которой мы нуждаемся.

Одна интересная идея, с которой я недавно столкнулся, — это вход в электронную почту без пароля, который использует Medium. Сначала я был настроен скептически, но, использовав его и подумав, в этом сценарии есть много достоинств. Это подходит не для каждой ситуации, но нам нужно такое оригинальное мышление, чтобы решить эту проблему.

Итак, чего же вы ждете, скачайте менеджер паролей… идите… хлопайте.

Первоначально опубликовано на jammer.biz.