Что такое специальные символы для пароля

Для ввода имени пользователя и пароля разрешается применять следующие символы. Имя пользователя и пароль следует вводить с учетом регистра.

Заглавные латинские буквы: от A до Z (26 символов)

Строчные латинские буквы: от a до z (26 символов)

Цифры от 0 до 9 (10 символов)

Символы: (пробел) ! " # $ % & ‘ ( ) * + , — . / : ; ? @ [ ] ^ _`

Имя пользователя для входа в систему

Пробелы, двоеточия и кавычки не допускаются.

Оно не может состоять только из цифр, и поле нельзя оставлять незаполненным.

Длина ограничивается 32 символами.

Пароль для входа в систему

Максимально допустимая длина пароля для администраторов и супервайзера составляет 32 символа, тогда как для пользователей длина ограничивается 128 символами.

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

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

Виновником в этом случае является конкретный (и особенно большой) банк, который не допускает использование специальных символов (любого рода) в своих паролях: просто [a-Z 1-9]. Есть ли у них веская причина для этого? Кажется, что противодействовать такой стойкости паролей, особенно для системы, защищающей такую ценную информацию, нецелесообразно.

Единственное, что мне удалось придумать, — это слабая попытка помешать SQL-инъекциям, но при этом предполагается, что пароли не хешируются (что, я надеюсь, не соответствует действительности).

9 ответов

Одно из объяснений, которое я не видел здесь, заключается в том, что многие финансовые учреждения тесно интегрированы со старыми системами и связаны с ограничениями этих систем.

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

(урок здесь заключается в том, что если вам нужно быть совместимым со старой системой, разрешите в будущем устранить эти ограничения).

Как насчет стоимости поддержки? Допустим, что мы позволили любому создать пароль, состоящий из € chars. Ура, мы можем использовать специальные символы в наших паролях. Но подождите — как же мы можем ввести этот пароль, если хотим получить доступ к нашему банку с мобильного телефона? Проще набрать € с нашей клавиатуры, чем с мобильного телефона.

Читайте также:  Amd radeon hd 5700 series обновить драйвер

А как насчет каникул? Мы находимся в Великобритании, где доступ только к британской клавиатуре. Вместо € мы можем легко набрать £ . Слово easily здесь очень важно. Для некоторых обычных пользователей проблема с набором символов для «новой» клавиатуры может быть проблемой. Как он будет пытаться решить это? Он, вероятно, позвонит в службу поддержки банка, чтобы попросить их сменить пароль или попросить why the € character dissapeared from his keyboard .

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

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

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

Безусловно, есть преимущество безопасности, заключающееся в том, что в других полях, вводимых пользователем, не допускается использование специальных символов, которые не хэшируются и могут использоваться для различных атак, таких как SQLi или XSS (на администратора банка, просматривающего учетную запись). Тем не менее, эти угрозы, как правило, решаются путем всегда использования связанных параметров в SQL и всегда санации пользовательского ввода перед отображением / сохранением в БД.

Мое другое предположение состоит в том, что они хотят иметь собственные правила, которые могут отличаться от других мест, поэтому вы не можете легко использовать свой стандартный надежный пароль (который может быть утерян) и должны придумать что-то уникальное для их сайт.

Читайте также:  Как отправить сообщение всем людям в вк

РЕДАКТИРОВАТЬ: При дальнейшем размышлении, в зависимости от языка, я могу придумать, по крайней мере, три специальных символа ASCII, которые должны быть повсеместно запрещены / удалены, поскольку позволяют им только искушать судьбу. В частности:
(null — ascii 0), поскольку он обычно используется для обозначения конца строки в языках стиля C (возможно, пользователи изменяют память после конца строки). Также возврат каретки и переводы строки
(ascii 13) и
(ascii 10), поскольку они часто зависят от системы, являются ли разрывы строк
или ,./<>?;’:"[]<>|[email protected]#$%^&*(-=_+ , и это вызывает неизбежное, я могу только войти в систему из окон не моя машина mac / linux. На самом деле, вполне разумно разрешить печатную версию ascii (32-126) и запретить непечатный ASCII. 0-31 и 127.

Но если под специальными символами вы подразумеваете юникод, а не символы ASCII (например, 2b 41 38 41 2d , то для простоты реализации из нескольких операционных систем / клавиатур / браузеров кажется разумным не допускать использование специальных символов. Представьте, что в вашем пароле есть строчная буква pi. Было ли это греческим пи (π), который является кодовой точкой 0x3c0, или коптским строчным пи (ⲡ), который является кодовой точкой 0x2ca1 — будет работать только один, и этот тип проблемы схожих символов с разными кодовыми точками будет существовать в Юникоде. Ваш хэш, который работает биты не смогут приравнять два π, поэтому, если вы попытаетесь войти в разные места, вы можете ввести разные символы.

Точно так же, хотя эта проблема является единственной, которую программист может в значительной степени контролировать и пытаться исправить, допуская, что символы Юникода создают проблемы кодирования. То есть для ваших основных символов ascii все представлено однобайтовым числом. Тем не менее, существует множество различных схем для кодирования Unicode. Это UTF-7, UTF-8, UTF-16, UTF-32, Latin-1 (iso-8859-1), кодировка Latin-N и (для некоторых кодировок) порядок байтов (младший или старший порядковый номер) ? Кодовая точка Unicode для pi (0x3c0) будет представлена как байты CF 80 в UTF-7, FF FE c0 03 в UTF-8, FF FE 00 00 c0 03 00 00 в UTF-16 и A1 в UTF-32. Вы не сможете представить пи в Latin-1 (в ней только 95 дополнительных печатаемых символов), но если в вашем пароле есть ¡ĄĦЁ‘ก”Ḃ и вы используете разные кодировки, вам, возможно, придется представлять его из любого из следующих символы %co_de% (которые в некоторых латинских N могут обозначать A1).

Да, на веб-странице может быть определен набор символов, но пользователи могут переопределить набор символов на странице в своем браузере или скопировать и вставить данные из другого места в другой кодировке. В конце дня может быть проще просто запретить эти символы.

Читайте также:  Gta 5 зависает намертво

В этом разделе приведена информация об особенностях применения специальных символов в ИД пользователей и паролях.

В обычной ситуации ИД пользователя может содержать только символы a-z, A-Z, DBCS, точку (.) и символ подчеркивания (_). Диакритические знаки, такие как умляут, недопустимы. Пароль может содержать только символы a-z, A-Z, точку (.) и символ подчеркивания (_). Диакритические знаки, такие как умляут, и символы DBCS недопустимы.

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

Поля формы с информацией о пользователе Допустимые символы Неподдерживаемые символы
ИД пользователя Буквы a-z, A-Z, точка (.) и символ подчеркивания ( _ ) Диакритические знаки
Пароль / Подтверждение пароля Буквы a-z, A-Z, точка (.)и символ подчеркивания ( _ )
Примечание: Вход в систему будет запрещен, если пароль содержит специальные символы, в том числе символы DBCS.Это произойдет даже в том случае, если пользователь успешно зарегистрировался в портале с паролем, содержащим символы DBCS.
Диакритические знаки и символы DBCS
Имя Все символы н/д
Фамилия Все символы н/д

Примечание: Для изменения параметров проверки по умолчанию выполните следующие действия:

  1. Откройте файл /shared/app/config/puma.properties и внесите в него следующие изменения:
    • Добавьте допустимые символы имени пользователя в ключ puma.UID.extra_chars.
    • Добавьте допустимые символы пароля в ключ puma.PASSWORD.extra_chars.
    • Добавьте допустимые специальные символы в ключ puma.group.extra.
    • Добавьте специальные атрибуты короткого ИД группы в ключ puma.group.cn.
    • Измените максимальную длину имени группы, заданную в ключе puma.group.cn.max.
    • Измените минимальную длину имени группы, заданную в ключе puma.group.cn.min.
    • Сохраните внесенные изменения.
    • Перезапустите WebSphere Portal.

    Связанная информация

    Library | Support | Terms of use | Feedback
    Information Center last updated: Friday, November 19, 2004
    IBM WebSphere Portal for Multiplatforms 5.1 | (c) Copyright IBM Corporation 2000, 2004

    Оставьте ответ

    Ваш адрес email не будет опубликован. Обязательные поля помечены *