1с количество символов нового пароля должно быть не менее 7

Обновлено: 07.07.2024

Что делать, если программа 1С при активации запрашивает пинкод из 15 цифр, а у вас он состоит из 16 символов и полностью его ввести невозможно?

Акция. Скидка 50% на переход с базовой версии 1С в облако 1С:Фреш !
Льготный переход с базовых версий 1С:Бухгалтерия, 1С:Управление нашей фирмой, 1С:Розница и 1С:Зарплата и управление персоналом в облако 1С:Фреш со скидкой более 50% ! Облачные версии программ 1С не требуют активации программных лицензий и ввода пинкодов, не привязываются к какому-то конкретному компьютеру и позволяют работать с любого устройства, имеющего доступ в интернет.

Как правило, подобная проблема возникает при некорректной переустановке базовых версий программ на платформе 1С:Предприятие 8, осуществляемой пользователем самостоятельно. При первичной установке осложнения возникают редко.

Важно!
Обратите внимание, что все нижесказанное относится к установке Базовых версий типовых программных продуктов 1С на технологической платформе 1С:Предприятие 8.*. Особенности установки базовых версий специализированных отраслевых решений см. в сопроводительной документации к программному продукту.


Сначала немного теории

Для понимания причин возникновения проблем необходимо обратить внимание на три важных момента:

    Пин-код для активации Базовой версии 1С:Предприятие 8.* состоит из 16-ти символов.
    При активации Базовой версии система предлагает ввести все 16 цифр одной строкой.

Активация программной лицензии 1С:Предприятие 8. Базовая версия с помощью пинкода из 16 символов

Таким образом может быть несколько причин возникновения проблемы:

В первом и втором случае можно посоветовать быть более внимательным при установке.

В остальных случаях необходимо произвести установку (или переустановку) правильно и до конца.

Краткую инструкцию по установки базовой версии 1С:Предприятие см. в статье Инструкция по установке 1С:Бухгалтерия 8 Базовая версия.

Важно! Обратите внимание, что Базовые версии программ 1С имеют ограниченное количество активаций пинкода для получения лицензии - Фирма "1С" предоставляет возможность с помощью пинкода от комплекта Базовой версии получить лицензию только три раза (одна основная активация + две резервные на случай изменения параметров компьютера). В случае, если лимит из трех раз активаций был израсходован, для следующей активации лицензии необходимо приобрести еще один комплект программного продукта такой же версии и получить лицензию с помощью пинкода из нового комплекта. Переустановка программы при этом не требуется, все данные сохраняются, новый пинкод дает возможность активировать программную лицензию еще три раза.

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

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

После установки запускаем 1С.

Установка 1С:Предприятие

В окне выбора информационной базы нажимаем "Добавить". В появившемся окне выбираем "Создание новой информационной базы".

Установка 1С:Предприятие 8 Базовая версия

В новом окне выбираем "Создание информационной базы из шаблона" и выбираем нужный шаблон. Далее можете задать наименование конфигурации и расположение информационной базы "На данном компьютере или на компьютере в локальной сети", после этого укажите каталог расположения информационной базы и параметры запуска (если устанавливаете базовую версию на платформе 1С:Предприятие 8.3, то параметры по умолчанию будут как на рисунке ниже). В указанном каталоге будет создана новая информационная база из шаблона, который вы указали ранее.


Установка базовой версии 1С Предприятие 8

Не обнаружена лицензия для использования программы 1С:Предприятие!

Нажимаем "Да". Далее выбираем способ получения лицензии "Автоматически", если всё было сделано правильно, то программа предложит активировать базовую версию "Укажите пинкод (16 цифр) для получения лицензии:"


Что собственно нам и требовалось. Вводите свой пин-код и активируйте программу.
Подробнее по установке конфигурации см. Руководство пользователя из комплекта программы.

Причины

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


Вариант создания информационной базы без конфигурации не поддерживается в базовых версиях программ 1С. При этом база данных создается, но при ее запуске программа начинает запрашивать пинкод из 15 цифр для получения лицензии версии ПРОФ.
2. Второй наиболее частой причиной возникновения проблемы является то, что в списке шаблонов конфигураций нет ни одного шаблона базовой конфигурации.


Скорее всего список шаблонов пуст потому, что установка программы была выполнена не до конца.
Если в списке нет ни одного доступного шаблона базовой конфигурации, то его необходимо установить с помощью полного установочного дистрибутива конфигурации.
Если в дальнейшем планируется загрузка архива информационной базы из файла выгрузки с расширением .dt (по умолчанию 1Cv8.dt), то можно воспользоваться старым дистрибутивом на диске из комплекта поставки. Если же требуется создать новую информационную базу для дальнейшего использования, то устанавливать шаблон со старого диска не имеет смысла и необходим дистрибутив актуальной версии.

Вы можете запросить полный установочный дистрибутив актуальной версии конфигурации "Бухгалтерия предприятия, редакция 3.0" напрямую в нашей компании даже если Вы приобретали программу в другом месте (потребуется подтвердить лицензионность программного продукта). Стоимость отправки актуального дистрибутива базовой версии на email составит 500 руб.
Если же Вы приобретали программу "1С:Бухгалтерия 8 Базовая версия" в нашей компании, то дистрибутив мы вышлем Вам бесплатно.

Для того чтобы программно задать пароль пользователя в 1С, нужно сначала получить нужного пользователя информационной базы. Для этого используется метод НайтиПоИмени() менеджера пользователей информационной базы.

Установка нового пароля

Для установки нового пароля пользователя 1С, его нужно записать в свойство Пароль пользователя информационной базы. Это свойство недоступно для чтения, поэтому, записав туда пароль, прочитать его уже не удастся.

После установки пароля свойство ПарольУстановлен пользователя информационной базы примет значение Истина. Пароль начнет работать после перезапуска системы.

Установка требований к сложности пароля в 1С

При включении этой функции пароль проверяется на соответствие следующим требованиям:

  • Длина не менее 7 символов;
  • Содержит не менее 3-х типов символов:
    • заглавные буквы;
    • строчные буквы;
    • цифры;
    • спец. символы.
    • Не совпадает с именем пользователя;
    • Не является последовательностью символов.

    Можно включить эту функцию программно:

    //Установим временному пользователю требуемый пароль
    ВременныйПользовательИБ . Пароль = Пароль ;

    //Попытаемся записать временного пользователя.
    //Если появится ошибка, значит пароль не соответствует требованиям
    ХорошийПароль = Истина ;

    Как программно проверить пароль пользователя 1С

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

    Пароль из информационной базы мы можем получить только в хешированном виде через свойство СохраняемоеЗначениеПароля пользователя ИБ.

    //Сравним полученный хешированный пароль и хешем пароля в информационной базе
    Возврат ХешированныйНовыйПароль = ПользовательИБ . СохраняемоеЗначениеПароля ;


    Если у пользователя установлен пароль, то в списке пользователей он отображается с пиктограммой с замком. В примере ниже у Иванова задан пароль, у Петрова нет:

    Пароли пользователей

    Параметры информационной базы

    В открывшемся окне нужно установить флаг Проверка сложности паролей пользователей, а также задать минимальную длину пароля:

    Проверка сложности паролей пользователей

    Минимальная длина пароля

    Минимальная длина пароля

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

    1. Длина не меньше параметра Минимальная длина паролей пользователя
    2. В пароле должны употребляться не менее 3-х символов из перечисленных ниже:
    • заглавные буквы
    • строчные буквы
    • цифры
    • спец. символы, например нижнее подчеркивание или тире
    1. Пароль не должен совпадать с именем пользователя
    2. Пароль не должен быть последовательностью символов

    Пример хорошего пароля: 123_Par

    Если включена проверка сложности паролей, то регистр имеет значение.

    Хранение пароля

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

    Алгоритм сохранения пароля следующий:

    1. Из строки с паролем получается хеш с помощью алгоритма SHA-1
    2. Полученный хеш кодируется с помощью алгоритма base64
    3. Первоначальная строка с паролем приводится к верхнему регистру и для нее тоже получается хеш с помощью алгоритма SHA-1
    4. Хеш, полученный на третьем шаге тоже кодируется с помощью алгоритма base64
    5. Строка, полученная на втором шаге объединяется со строкой, полученной на четвертом шаге, между ними ставится запятая. Данная строка сохраняется в базе данных.

    Для проверки можно программно получить сохраненное значение пароля из базы данных, вручную сформировать строку с паролем по вышеуказанному алгоритму и сравнить их:

    ТекПользователь = ПользователиИнформационнойБазы . ТекущийПользователь ( ) ; ПарольВБазе = ТекПользователь . СохраняемоеЗначениеПароля ; ДД 2 = ПолучитьДвоичныеДанныеИзСтроки ( ВРег ( Пароль ) ) ;

    При вводе пароля для него получается хеш, из базы данных получается сохраненный хеш и они сравниваются между собой.

    Восстановление пароля

    Начиная с версии платформы 8.3.15.2107 добавлена возможность восстановления пароля.

    Для возможности восстановления пароля в свойствах пользователя должен быть указан адрес электронной почты, а также снят флаг Пользователю запрещено восстанавливать пароль:

    Пользователю запрещено восстанавливать пароль

    Дополнительные настройки аутентификации

    В открывшемся окне нужно установить флаги Отправка кода на адрес электронной почты и Использовать стандартный сервис отправки:

    Отправка кода на адрес электронной почты

    После выполнения данных настроек в окне ввода логина и пароля появится гиперссылка Забыли пароль:

    Забыли пароль

    Если нажать на данную гиперссылку, то будет открыто окно с запросом адреса электронной почты. Нужно ввести почту и нажать кнопку Получить код:

    Получить код

    На указанную почту придет письмо со следующим содержимым:

    Получить код

    Нужно ввести полученный код подтверждения, указать новый пароль и нажать на кнопку Установить новый пароль:

    Установить новый пароль

    Программа сообщит об успешной установке нового пароля:

    Установить новый пароль

    При необходимости можно использовать свой почтовый сервер. Для этого в дополнительных настройках аутентификации нужно снять флаг Использовать стандартный сервис отправки и указать Параметры отправителя:

    Параметры отправителя

    Там же, в настройках можно указать длину кода подтверждения, указать сколько раз можно неправильно вводить код до блокировки, а также время, через которое можно попробовать получить новый код подтверждения:

    длина кода подтверждения

    Вместо отправки кода подтверждения на почту можно использовать переход по навигационной ссылке, например на страницу в интернете:

    переход по навигационной ссылке

    В этом случае при нажатии на гиперссылку Забыли пароль будет выполнен переход по этой ссылке.

    Отображать гиперссылку "Нужна помощь?"
    Нужна помощь

    По нажатию будет выполнен переход по указанной ссылке. Там можно разместить какую-нибудь инструкцию пользователя по восстановлению пароля.

    Если в настройках пользователя установлен флаг Пользователю запрещено восстанавливать пароль:


    Цитата из справки 1С
    "Длина не менее 7 символов; Содержит не менее 3-х типов символов из перечисленных ниже:
    - Заглавные буквы;
    - Строчные буквы;
    - Цифры;
    - Специальные символы;
    - Не совпадает с именем пользователя;
    - Не является последовательностью символов."

    Для примера я использовал только заглавные и строчные буквы латинского алфавита и цифры

    Специальные предложения

    Electronic Software Distribution

    Интеграция 1С с системой Меркурий

    Алкогольная декларация

    Готовые переносы данных

    54-ФЗ

    Управление проектом на Инфостарте

    Траектория обучения 1С-разработчика

    Не знаю, как Вам , но я не люблю многозначности.
    Намного проще примерно такой код с аналогичной функциональностью
    + В догонку. И еще мне постоянно не везет. Не хватало, чтобы у меня еще цикл назначения пароля выполнялся несколько секунд. ;) Из практики: Исключать надо больше - похожие символы - 1, l, 0, O и т.п. (3) a_titeev, +100500 постоянно проблемы с такими ситуациями Это те самые пароли, которые на стикерах к мониторам приклеивают? :-) А зачем для 1с выдумывать пароли с разным регистром букв, если для авторизации в самой 1с это не важно? Все равно все приводит при проверке к верхнему регистру. (7) dj_serega, в таблице users есть два поля, в которых два sha хранятся от паролей, второе это "Врег(Парол)". Проверяется очень просто, ставите пароль с верхним регистром, пробуете войти с теми же буквами только в нижнем регистре и в без проблем заходите. (10) pumbaE, проверил, действительно)
    На прошлой работе пару лет вводил пароль с двумя заглавными буквами в двух словах)) Я бы ещё исключил J, G и Q - в моей практике в них тоже путаются. Вообще-то лучше не исключать неиспользуемые символы, а задать строку ДОПУСТИМЫХ символов и с помощью ГСЧ выбирать из нее.

    А можно так, сделать обработку для генерации паролей

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

    Информация взята с сайта Уроки 1с . Это не реклама.

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

    Кстати, 1С не запрещает использование пробела в качестве парольного символа, о чем любители брутфорса могут и не догадаться. Да и при использовании сложного пароля, один пробел в середине не вызовет особых неудобств, считаю.

    А еще есть русские буквы )

    Из опыта создания паролей изпользую следующий метод:
    Берутся три случайный цифры, берутся первые три буквы из слов предложения для запоминания, которое может состоять из трёх и более случайных слов и любой символ синтаксиса.
    Пример: 303 Новых Кашалота Помыли Хомут ! - знак восклицания, например. Пароль будет выглядеть так: 303YjdRfiGjvС другой - надо в планировщик задание на запуск от имени пользователя воткнуть.
    С третьей, таблица Users (условное название) и подменить можно.
    Но за мысль спасибо, схомячил. Спасибо за хорошую статью, взял пример Вашего кода, буду делать ;) Gendelf; ilya017; Artios; Hexed; DmitrySinichnikov; avasl; angur; VKislitsin; Famza; KirinaAS; + 10 – Ответить

    Просмотры 21565

    Загрузки 0

    Рейтинг 29

    Создание 22.07.16 15:03

    Обновление 22.07.16 14:24

    № Публикации 536861

    Тип файла Нет файла

    Конфигурация Не имеет значения

    Операционная система Windows

    Вид учета Не имеет значения

    Доступ к файлу Бесплатно (free)

    Код открыт Не указано


    См. также

    Аналог PIVOT в запросе 1С (как выполнить транспонирование таблицы в запросе 1С) Промо

    В статье показывается простой метод реализации аналога оператора PIVOT в запросе 1С без использования соединений.

    12.12.2020 4556 Eugen-S 23

    Что за ? в коде, или Секретный оператор в 1С

    Инкремент, модуль и прочая магия, которая скрыта под символом "?"

    21.10.2021 8361 SeiOkami 41

    Полезные примеры СКД, ч.2

    Еще несколько примеров решения задач в СКД.

    06.04.2021 10865 Neti 8

    Обзор полезных методов БСП 3.1.4

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

    25.03.2021 41345 rayastar 51

    27.01.2016 85831 Serginio 116

    Звуковое управление в 1С 8.3

    В данной статье описано создание библиотеки для звукового управления (выполнение команд голосом) для платформы 1С 8.3. Задача была поставлена так, чтобы модуль функционировал непосредственно на клиенте 1С, осуществляя управление формами, и взаимодействовал с интерфейсом.

    16.03.2021 7226 velemir 33

    Serverless (Faas) в 1С. Создание и вызов Yandex Cloud Functions

    "Я не могу просто взять и скопировать код с гитхаба", "у нас 1С микросервисами окружена", "возможностей мало" - частые фразы 1С разработчиков. которым не хватает возможностей платформы в современном мире. Faas, конечно, история не новая, но нас сдерживало 152ФЗ и задержки по пингам. Для того, чтобы действительно использовать в 1С код, к примеру, на Python, надо было приложить усилия. Теперь всё намного проще - берём и используем.

    28.12.2020 8957 comol 31

    Базовые вещи БСП, которые облегчат жизнь программисту 1С

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

    30.08.2020 20381 quazare 34

    Использование программных перечислений, ч.1: строковые константы Промо

    Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?

    10.12.2016 41156 unichkin 74

    Форма выбора (подбор) в управляемых формах

    Разбор небольших примеров того, как правильно открывать форму выбора (подбора) в управляемых формах, не прибегая к модальным окнам.

    08.05.2020 79399 user5300 19

    Программная работа с настройками СКД

    Нюансы программной работы с настройками системы компоновки данных в отчетах и динамических списках. Обзор всех видов настроек компоновки. Что в каких случаях правильно применять. В качестве примера рассмотрена работа с отборами и группировками.

    27.01.2020 66163 ids79 26

    [СКД] Программное создание схемы компоновки данных

    Сделаем отчет на СКД полностью программно, без использования макета "схема компоновки данных".

    15.01.2020 43916 John_d 22

    Вспомогательные инструкции в коде 1С Промо

    Помогаем редактору кода 1С помогать нам писать и анализировать код.

    15.10.2018 36200 tormozit 106

    Последовательности событий при проведении документа 1С. Шпаргалка + про формы + про расширения

    30.12.2019 35614 kuzyara 38

    Сходство Джаро - Винклера. Нечеткое сравнение строк

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

    25.12.2019 8466 brooho 19

    Полезные процедуры и функции для программиста

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

    07.10.2019 39851 HostHost 41

    Оформление и рефакторинг сложных логических выражений Промо

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

    20.09.2012 82908 tormozit 131

    Таблица значений. Нюансы

    Обзор некоторых аспектов использования общеизвестного инструмента 1С.

    01.10.2019 53323 Yashazz 56

    [Шпаргалка] Программное создание элементов формы

    Программное создание практически всех популярных элементов формы.

    06.09.2019 103263 rpgshnik 75

    Агрегатные функции СКД, о которых мало кто знает

    Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

    05.09.2019 78144 ids79 56

    Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо

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

    11.07.2007 54512 tormozit 51

    Регистры бухгалтерии. Общая информация

    Общая информация о внутреннем устройстве регистров бухгалтерии.

    05.09.2019 46856 YPermitin 25

    Три костыля. Сказ про фокусы в коде

    Три интересных (или странных) костыля в коде, которые могут помочь в повседневных и не очень задачах.

    03.09.2019 30254 YPermitin 81

    Иерархия без "В ИЕРАРХИИ"

    22.08.2019 15101 ildarovich 24

    Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо

    Как сделать метод формы, доступный на клиенте и на сервере одновременно, и сохранить при этом удобство разработки

    10.09.2017 51279 tormozit 74

    Отслеживание выполнения фонового задания

    Запуск фонового задания из модуля внешней обработки. Отслеживание выполнения задания в виде прогресса, расположенного на форме.

    17.08.2019 45360 ids79 22

    Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив

    Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

    08.08.2019 153310 ids79 75

    Фоновое выполнение кода в 1С - это просто

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

    02.08.2019 61108 avalakh 27

    Выгрузка документа по условию Промо

    Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий. А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

    25.04.2019 18046 m-rv 3

    СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты

    Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

    26.07.2019 106258 ids79 17

    Обработчики событий при записи объектов. Зачем и что за чем?

    Программисту, имеющему немного опыта на платформе 1С 8.3, бывает сложно разобраться: ПередЗаписью, ПриЗаписи, ПослеЗаписи, на сервере, на клиенте, в модуле формы, в модуле объекта. Эта шпаргалка была создана в процессе обучения и реального опыта с целью разложить всё по полочкам, чтобы было четкое понимание в каком случае какой обработчик нужно использовать и в какой последовательности они запускаются при записи и проведении документов. Данная статья будет полезна в большей степени начинающим разработчикам. Но и опытным позволит освежить информацию, упорядочить её.

    Знаете, что самое худшее в паролях (а там есть из чего выбирать)? Требования к их сложности.


    «Если мы не решим проблему с паролями при моей жизни, я восстану из могилы призраком и буду вас всех преследовать».

    Пусть эта клятва будет записана на скрижалях Интернета. Я не в курсе, есть ли жизнь после смерти, но рано или поздно выясню, и тогда уж держитесь — у меня грандиозные планы.

    Мир буквально погряз в ужасных правилах создания паролей:

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

    Видели этот классический комикс о паролях от XKCD?


    Разумеется, можно спорить, стоит ли считать «correct horse battery staple» примером хорошей стратегии для создания паролей, но суть аргумента в том, что длина решает.


    Нет, серьезно, решает. Скажу даже больше: зуб даю, что ваш пароль слишком короткий. В наше время, учитывая, насколько развиты облачные вычисления и взлом паролей с помощью GPU, ставить пароль в 8 символов или короче — все равно что вообще его не ставить.

    Тогда, получается, одно правило у нас уже есть: пароль не должен быть коротким. Длинный пароль с большей вероятностью окажется надежным, чем короткий… правда же?

    А что скажете о таком пароле в 4 символа?


    Или о таком, в 8 символов?


    Или о таком, гипотетическом, но вполне реалистичном, в 7 символов?


    «Извините, но ваш пароль должен содержать не менее одного символа из арабского, китайского, тайского, корейского и клингонского, пиктограмму из Wingdings и смайлик».

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



    Наш старый друг Юникод опять за свое.

    Как выясняется, даже простое правило «ваш пароль должен быть разумной длины» работает с оговорками. Особенно если перестать мыслить, как двинутые на ASCII американцы.

    Да и если присмотреться ко всем этим славным длинным паролям… всегда ли они надежны?

    aaaaaaaaaaaaaaaaaaa
    0123456789012345689
    passwordpassword
    usernamepassword

    Конечно, нет. Вы вообще видели живых пользователей в последнее время?


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

    • должны содержать прописные буквы;
    • должны содержать строчные буквы;
    • должны содержать числа;
    • должны содержать специальные символы.

    Когда мы работали над Discourse, я узнал, что окошко авторизации, оказывается, очень сложный компонент софта, несмотря на внешнюю простоту. Главное требование к паролям, которые мы приняли — длина — также было достаточно простым. Пока я писал эту статью, мы уже успели увеличить минимальную возможную длину пароля с 8 до 10 символов. А для модераторов и администраторов и решили поставить нижнюю границу еще выше, на 15 символах.

    Кроме того, я настаивал на том, чтобы проверять, не совпадает ли пароль с каким-нибудь из списка 100 000 самых распространенных. Если проанализировать 10 миллионов паролей, которые попали в общий доступ из-за утечек данных, выясняется, что чаще всего используются следующие 25:

    123456
    123456789
    qwerty
    12345678
    111111
    1234567890
    1234567
    password
    123123
    987654321
    qwertyuiop
    mynoob
    123321
    666666
    18atcskd2w
    7777777
    1q2w3e4r
    654321
    555555
    3rjs1la7qe
    google
    1q2w3e4r5t
    123qwe
    zxcvbnm
    1q2w3e

    Даже эти данные свидетельствуют об излишней зацикленности на системе ASCII. То есть цифры-то, конечно, везде одинаковые, но мне как-то не верится, что среднестатистическому китайцу придет в голову поставить в качестве пароля «password», «quertyuiop» или «mynoob». Так что такие списки необходимо составлять с учетом локализации и прочих параметров.

    (Есть еще интересная мысль: искать популярные короткие пароли в составе длинных, но, как мне кажется, получится слишком много ошибок первого рода)

    Представленная статистика также свидетельствует в пользу того, чтобы делать пароли длиннее. Обратите внимание: из 25 самых популярных паролей только 5 имеют длину в 10 символов и больше. Соответственно, если мы установим минимум в 10 символов, то уже одним этим отсечем 80% списка. Впервые я это выяснил, когда собрал несколько миллионов паролей из утечек данных в рамках исследования для Discourse и отфильтровал те, которые соответствуют нашему новому требованию, чтобы длина пароля была не меньше 10 символов.


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

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

    1. Требования к паролям — полная чушь

    • Они не работают.
    • Они наказывают аудиторию, которую вам нужно привлекать в первую очередь, — тех, кто пользуется рандомными генераторами паролей. Прикиньте, рандомный пароль может и не содержать в себе цифры или символа. Я два раза сверился с учебником по математике, и да, вроде бы такое вполне возможно.
    • Они раздражают основную массу пользователей, отбивая у них охоту с вами сотрудничать и подстегивая искать всякие «остроумные» лазейки. В результате пароли получаются менее надежными.
    • Они часто ошибочны, в том смысле, что предложенный набор правил недостаточен или попросту нелеп. Достаточно посмотреть на любой пример с доски позора, на которую я ссылался выше.
    • Нет, правда, ради всего святого, хватит уже этой ерунды с произвольными требованиями к паролям. Если не верите мне, почитайте рекомендации по требованиям к паролям от NSIT. Вот, так и написано: «избегайте устанавливать правила создания паролей». Хотя, на мой взгляд, тут есть одна неточность, надо было написать: «избегайте устанавливать тупые правила».

    2. Установите минимальную длину пароля в Юникоде


    • Это просто. Пользователи умеют считать. Ну, большинство умеет.
    • Это работает. Статистика подтверждает, что это работает: просто скачайте любой список популярных паролей на ваш выбор и рассортируйте их по длине.
    • Математика не даст соврать. При прочих равных условиях длинный пароль будет более рандомным, чем короткий, а значит, и более надежным.
    • Смиритесь с тем, что даже у этого единственного правила будут исключения. Минимальная длина в 6 символов на китайском сайте — это вполне разумно. С другой стороны, пароль в 20 символов может быть до смешного простым для взлома.
    • Если в ваше поле пароля нельзя ввести (практически) любой символ из Юникода, вы скорее всего что-то делаете не так.
    • Это уже больше относится к частностям реализации, но не забудьте также установить вменяемую максимальную длину пароля.

    3. Сверяйтесь со списком самых распространенных паролей

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

    • у 1.6% пользователей пароль из числа 10 самых популярных;
    • у 4.4% пользователей пароль из числа 100 самых популярных;
    • у 9.7% пользователей пароль из числа 500 самых популярных;
    • у 13.2% пользователей пароль из числа 1000 самых популярных;
    • у 30% пользователей пароль из числа 10 000 самых популярных.

    Проводите исследования. Собирайте данные. Спасайте пользователей от самих себя.

    4. Контролируйте количество энтропии

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


    Я с некоторой грустью осознал, что нас вполне устраивает, чтобы пользователь установил пароль из 10 совершенно одинаковых символов («аааааааааа»). На мой взгляд, самый простой способ избежать такой ситуации — задать минимум в x уникальных символов на общее число y. Так мы и поступаем в последней бета-версии Discourse. Но если у вас есть какие-то другие идеи, будем рады услышать их в комментариях. Чем проще и яснее, тем лучше!

    5. Отлавливайте особые типы паролей

    Стыдно признаться, но, реализуя окошко авторизации для Discourse, мы совершенно забыли про два распространенных случая, которые необходимо отслеживать и пресекать (я упоминал об этом в другой статье):

    • пароль, который совпадает с именем пользователя;
    • пароль, который совпадает с e-mail.

    Также, возможно, вам стоит блокировать еще некоторые разновидности:

    • пароль, который совпадает с URL сайта или именем домена;
    • пароль, который совпадает с названием приложения.

    Пояснение

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

    Пункты с третьего по пятый — это просто оговорки для особых случаев (типа как джину нельзя загадывать желание получить неограниченное число желаний). Тут не нужно каких-то предварительных обсуждений, потому что такие вещи должны быть редкими исключениями. Пользователей нужно останавливать, если они пытаются ввести пароль, совпадающий с именем, или 0123456789, или просто «аааааааааааа», но это должно происходить в рамках проверки данных после ввода, а не в соответствии с предварительно разъясненным правилом.

    Так что, если в двух словах: правило одно — длина. Вводите что ваша душа пожелает, лишь бы количество символов тянуло на нормальный пароль.

    Читайте также: