Почему важно иметь одинаковые требования к паролям1
Пост был взят с Reddit и переведен. Приятного чтения!
Лет двадцать с лишним назад я работал в техподдержке маленькой компании, которая поставляла небольшому количеству пользователей платное веб-приложение. Звонки поступали сначала нетехнической поддержке клиентов, потом первой линии техподдержки, потом второй — мне, а если я сталкивался с чем-то необычным, то обращался к команде разработки. Важная деталь: одной из функций приложения было скачивание запароленных PDF-файлов с защищенной авторским правом информацией. Они открывались с помощью учетки от нашего сайта — это слегка защищало от их нелегального распространения. DRM для бедных.
Клиент: Я скачал PDF, но пароль не подходит.
Я: Ничего страшного. Разлогиньтесь, пожалуйста, на сайте. Сохранен ли там пароль?
Люди часто сохраняли пароль в браузере и забывали.
Клиент: Нет, каждый раз ввожу заново.
Я: Понял... Тогда наберите его, пожалуйста, в «Блокноте» и вставьте на сайт.
Клиент: Ага, сделал, зашел на сайт и сейчас скачаю PDF.
Я: Отлично. Когда откроете PDF, вставьте, пожалуйста, туда тоже пароль из «Блокнота».
Клиент: Все равно пароль неправильный.
Еще немного поковырявшись, я попросил у него пароль (обычно я так не делаю) и попробовал ввести сам. Результат тот же. На сайт заходит нормально, PDF не открывается.
Я такого раньше не видел, так что взял у клиента контакты и пошел к разработчикам. Мы перепробовали все стандартные решения, а потом разработчик попросил у меня пароль. Там было одно слово, имя собственное.
Разраб: Сейчас, проверю по базе. (Пишет SQL-запрос.)
Я: А что, так можно? Это же дыра в безопасности?
Разраб: Почему? Доступ есть только у нас. Посмотрим... Так, кажется, понял. Он забыл, что пароль пишется с большой буквы.
Я: Прости, чего?
Разраб: Давай покажу.
Он зашел на сайт, написав пароль с большой буквы, и успешно открыл PDF.
Я: Как это работает? У него же другой пароль. Без заглавной буквы. Я сам под ним заходил!
Разраб: Короче, пароли для PDF чувствительны к регистру, а для сайта нет. Так что он выставил пароль, забыл про большую букву, и сайт продолжал работать, а PDF нет.
Я: Как... почему?.. А, ладно, не хочу знать.
Перезвонил клиенту, попросил его ввести пароль с большой буквы, и все отлично заработало.