На самом деле вы дважды сообщаете системе о том, кто вы. По логике вещей все, что от вас должно требоваться в этом случае, – набрать пароль. И это не снизит безопасность вашей системы. Вероятность угадывания чьего-либо имени и пароля зависит от выбора пароля, его длины и т. д. Тогда как определить чье-либо онлайновое имя можно довольно просто. На самом деле оно обычно не скрывается, чтобы через него можно было взаимодействовать с его владельцем. Плохо подобранный пароль (например, использование в качестве пароля клички вашей собаки) является самой частой причиной недостаточной безопасности.
Утверждение, что ввод двух разных цепочек символов увеличивает надежность, ошибочно. Если онлайновое имя состоит из j символов, а пароль – из k символов, то пользователь для входа в систему должен ввести j+k символов, и только k символов из этой суммы являются неизвестными для потенциального нарушителя вашей безопасности. Если пароль был выбран случайным образом (что является самым лучшим методом) из набора в q символов, вероятность угадать учетную запись пользователя с первой попытки равна 1/q↑k.
Удлинение пароля даже на один символ и отказ от использования имени уменьшают вероятность угадывания пароля на величину q и избавляют пользователя от необходимости вводить лишние j-1 символов, к тому же в двух полях (вместо одного). Убрав поле для имени и увеличив минимальную длину пароля на один символ, мы получаем большую степень безопасности, используем меньше экранного пространства и достигаем большей простоты использования. Мы не теряем ничего. Для некоторых программ имеет смысл использовать менее банальные методы обеспечения безопасности (как, например, использование «отпечатков голоса» (voiceprinting) или пальцев, или других неизменяемых физических характеристик пользователя), хотя в этом случае вы не сможете сказать своему доверенному лицу, как войти под вашей учетной записью.
Здесь возникает следующий вопрос: как обеспечить уникальность символьных паролей? Как избежать случаев, когда два или более пользователей выберут одинаковый пароль? Можно предоставить системе самой назначать пароли. Однако это приведет к тому, что генерируемые системой пароли будут плохо запоминаемыми (как, например,
Существует много способов создания запоминающихся паролей, и вы всегда можете дать пользователю возможность выбора из пяти или шести таких способов. Например, вы можете предложить компьютеру случайно выбрать два прилагательных и одно существительное из большого словаря и предоставить вам такой список:
• эксклюзивный уродливый тюлень;
• вкусный человекоподобный оракул;
• старая свободная папайя;
• цветущий маленький лабиринт;
• скверная репообразная история,
из которого пользователь сможет сам выбрать наиболее ему понравившийся вариант. В английском словаре возможно около двух триллионов подобных комбинаций. Даже пробуя по миллиону комбинаций в день, вы будете подбирать пароль более 25 лет. Такая безопасность достаточна.
Когда предлагается идея улучшить интерфейс веб-сайта или компьютерной системы, упростив процесс входа запросом только пароля, она обычно отклоняется по одному или двум основаниям. Либо программисты говорят, что так делать нельзя, либо они говорят, что в этом случае они теряют возможность контролировать процедуру входа. Тем не менее, кто-то другой, конечно, все-таки сохраняет этот контроль.
6.4.4. Автоповтор и другие приемы работы с клавиатурой
В настоящее время, скорее всего, рядом с вашим компьютером имеется обычная буквенно-цифровая клавиатура. Множество попыток реформирования клавиатуры (например, раскладка Дворака) оказались бессильными для того, чтобы преодолеть инерцию многих миллионов людей, которые научены вслепую набирать на клавиатуре с раскладкой QWERTY. Все, что мы можем сделать в качестве разработчиков интерфейсов, – это ходить где-нибудь с краю и делать небольшие улучшения, не требующие серьезного переучивания. Приведу некоторые из тех улучшений, которые мы можем предпринять.
Для того чтобы начался автоматический повтор, в большинстве клавиатур требуется удерживать клавишу в нажатом положении в течение 500 мс. Это является примером фиксированной задержки. Однако имеет смысл не использовать в интерфейсах фиксированный интервал задержки. Любая фиксированная задержка может оказаться как слишком большой, так и слишком малой, в зависимости от пользователя и обстоятельств. В данном случае задержка в 500 мс может быть слишком короткой в тех ситуациях, если вы задумались над тем, что собираетесь ввести дальше. Когда вы очнетесь, то можете обнаружить, что на странице появились пара строк с одним символом, наподобие ssssssssssssssssssss. (Мой кот является мастером в использовании компьютера таким образом.) Для пользователя, имеющего небольшую скорость набора или страдающего от какого-нибудь неврологического или физиологического расстройства, задержка в 500 мс перед автоповтором может также быть слишком короткой.