Пароль должен быть длиной от 6 до 100 знаков содержать буквы разных регистров и цифры: Пароль должен содержать буквы разных регистров — как его придумать и создать?
Содержание
Пароль должен содержать буквы разных регистров — как его придумать и создать?
Пароль должен содержать буквы разных регистров — как его придумать и создать?
При регистрации на сайтах от пользователей зачастую требуют придумать такой пароль, который бы содержал в себе буквы разных регистров (т.е. не только строчных, но и прописных). Для чего это нужно? Каким должен быть пароль, отвечающий современным требованиям безопасности работы в сети, и как его создать? Ответим на эти вопросы.
Зачем в пароле буквы разных регистров?
Компьютерные программы или даже целые операционные системы относятся к буквам по-разному. Например, в Windows в одной и той же папке нельзя хранить файлы (или другие папки) с одинаковыми именами, независимо от того, как они написаны — большими (в верхнем регистре), маленькими (в нижнем регистре) или и большими, и маленькими буквами любого алфавита. К примеру, рядом с файлом «Документ.doc» нельзя создать файл «документ.doc» или «ДОКУМЕНТ.DOC» — системой оба названия являются одинаковыми. А вот в Linux и основанных на ней операционных системах (к примеру, Ubuntu) в одну и ту же папку можно разместить файлы/папки с одинаковыми именами, если в них используются буквы разных регистров. Т.е. для Linux файлы «документ.doc» и «ДОКУМЕНТ.DOC» являются совершенно разными.
Примерно то же самое можно сказать и о паролях. Каждый символ в пароле имеет свой уникальный код. И код этот отличается для большой буквы «А» и для строчной «а». И благодаря этому, как минимум, вдвое увеличивается устойчивость парольной фразы к взлому методом перебора, т.е. к брутфорс-атакам либо атакам по словарю.
Для справки — брутфорс-атака предполагает поочередный перебор всех возможных символов, из которых может быть создан пароль. Если бы защищенная паролем веб-система (файл, программа, сайт и т.д.) одинаково воспринимала бы и большие и маленькие буквы, тогда список возможных символов для перебора сократился бы на 26 единиц (при использовании в пароле английских букв). Кажется, что это немного. Но если пароль состоит из 10 знаков, то в сумме эти 26 больших букв создают дополнительные варианты написания парольной фразы. А чем больше вариантов, тем сложнее пароль взломать.
Какой пароль может считаться надежным?
Исходя из вышесказанного, пароль, в котором присутствуют и большие, и маленькие буквы — однозначно, в разы надежнее парольной фразы, состоящей из буквы только в верхнем или только в нижнем регистре. Однако наличие обоих разновидностей букв не делают пароль отвечающим современным требованиям кибербезопасности. Он также должен:
- Содержать, как минимум, 8 (лучше 12-14) знаков.
- Содержать цифры и, если это позволяет форма регистрации, спецсимволы. Например, скобки, математические знаки, знаки препинания, буквы иностранных алфавитов (вплоть до иероглифов) и т.п.
Существуют и другие требования к создаваемым паролям, но приведенные выше — такие, которыми нельзя пренебрегать.
Как создать сложный пароль?
Создать пароль с маленькими и большими буквами можно вручную (вот подробная инструкция) либо при использовании специализированных на этом программ — генераторов сложных паролей. При самостоятельном создании сложного пароля можно, например, использовать такой простой способ:
- Напечатайте несколько английских или русских слов, переключив клавиатуру в английскую раскладку. Для примера это будут слова — «eto moy parol».
- Некоторые из букв переведите в верхний регистр, чтобы получилось что-то вроде — «eTO moY PaRol».
- Теперь вместо пробелов (можно еще и в начале или в конце), вставьте цифры, а лучше двух или трехзначные числа (можно дату какую-нибудь вставить) — «eTO18moY12PaRol1989».
- Если система, в которой осуществляется регистрация, позволяет использовать спецсимволы, не будет лишним использовать и их — «%eTO18$moY12$PaRol1989%».
В нашем случае получился довольно длинный пароль, состоящий из 23 знаков. Если система не позволяет использовать такие длинные парольные фразы, просто удалите некоторые символы.
Гораздо проще создавать надежные пароли, используя для этого генераторы — утилиты для компьютера или скрипты, размещаемые на различных сайтах. Также можно использовать систему хранения паролей MultiPassword, в которую встроен генератор надежных паролей.
В качестве другого примера рассмотрим сервис AZPassword, который предлагает сразу три способа создания сложных паролей:
1. Генерация пароля (или одновременно нескольких — вплоть до 50 штук) по параметрам. Просто задаем желаемую длину (до 30 знаков), затем указываем программе, какие символы использовать в пароле — цифры, спецсимволы, русские/английские буквы в верхнем/нижнем регистре:
2. Создание пароля на основе введенной фразы, закодированной посредством алгоритма шифрования Base64. Довольно интересная функция. Нам нужно ввести в соответствующее поле программы любую фразу (можно даже любые символы, доступные на клавиатуре), после чего утилита, используя алгоритм Base64, сгенерирует надежный пароль.
3. Создание пароля путем кодирования введенной фразы алгоритмом ROT47. Функция, аналогичная предыдущей, но в результате шифрования в парольной фразе будут присутствовать спецсимволы.
Заметим, что шифрование одной и то же фразы алгоритмами Base64 и ROT47 всегда приводит к одному и тому же результату, независимо от того, выполняется ли кодирование в программе AZPassword или где-либо еще (например, на каком-нибудь сайте). Эта особенность метода позволяет быстро генерировать пароль непосредственно перед его вводом в форму авторизации на сайте, в компьютерной системе и т.д. Достаточно лишь точно вписать фразу (последовательность символов), на основе которой был изначально сгенерирован пароль.
Для надежного хранения паролей рекомендуем использовать систему MultiPassword:
- Современные технологии защиты (AES-256, RSA, PBKDF2, HKDF).
- Оконечное шифрование данных.
- Двойная защита паролей и другие технологии защиты паролей.
Почему пароль должен содержать буквы разных регистров?
- Пароль должен содержать буквы разных регистров — что это значит?
- Основные требования к надежному паролю
- Как создать надежный и запоминающийся пароль?
Во время регистрации на многих сайтах пользователи сталкиваются с необходимостью создания пароля, в котором должны присутствовать буквы, как в верхнем, так и в нижнем регистре (т. е. заглавные и строчные). С чем связано это требование? Как создать пароль, который удовлетворит не только это, но и все прочие требования кибербезопасности?
зачастую требуют придумать такой пароль, который бы содержал в себе буквы разных регистров (т.е. не только строчных, но и прописных). Для чего это нужно? Каким должен быть пароль, отвечающий современным требованиям безопасности работы в сети, и как его создать? Ответим на эти вопросы.
Пароль должен содержать буквы разных регистров — что это значит?
Начнем с базовых понятий. Любые отображаемые компьютером на экране буквы и символы имеют свой уникальный код. Одна и та же буква в верхнем и нижнем регистре в «понимании» компьютера — совершенно разные символы. Конечно, многое зависит от программного обеспечения. Оно может быть настроено так, что одна и та же буква в разных регистрах будет восприниматься компьютером одинаково (просто программа автоматически конвертирует большую букву в строчную). Но мы эти моменты рассматривать не будем.
В случае с паролями наблюдается та же картина — каждый символ в нем имеет свой уникальный код. И этот код будет отличаться для одной и той же буквы, напечатанной в верхнем и нижнем регистре. Т.е. 26 букв английского алфавита умножаем на 2 и получаем уже 52 буквы, из которых можно придумать парольную фразу. Вместе с этим на несколько порядков увеличивается и общее количество уникальных паролей, что можно составить из 52-х букв. Главный вопрос здесь — в чем смысл? А смысл в том, что чем больше возможных комбинаций парольной фразы можно придумать, тем сложнее его подобрать методом перебора, т.е. взломать.
Подобные способы взлома предполагают перебор всех возможных символов, из которых может состоять пароль. Если бы защищенный паролем объект (не только сайт, но и какой-нибудь архив или PDF-документ) одинаково воспринимал бы и прописные и строчные буквы, тогда список возможных символов для перебора был бы в разы короче, чем в случае, когда большие и маленькие буквы воспринимаются им (защищенным объектом) как разные символы.
Ответим на наш основной вопрос: пароль должен состоять из букв разных регистров для того, чтобы усложнить жизнь злоумышленникам, пытающимся взломать какую-нибудь учетную запись в интернете или получить доступ к личной информации, что хранится, к примеру, в зашифрованном электронном документе.
Основные требования к надежному паролю
Наличие букв в верхнем и нижнем регистре еще не делает пароль соответствующим всем современным требованиям кибербезопасности, а их довольно много. Вот основные:
- Длина пароля должны составлять, как минимум, 8 символов.
- В пароле также должны дополнительно присутствовать цифры и, если это возможно, спецсимволы (математические знаки, звездочки/проценты/решетки, знаки препинания и т.п.).
- Нельзя использовать в паролях распространенные слова целиком (т.е. напечатанные неразрывно), даже если они написаны с использованием прописных и строчных букв — они относительно легко подбираются методами взлома по словарям.
Вообще, правил для создания надежного пароля — довольно много. Но приведенные выше требования, особенно первые два — базовые, и ими нельзя пренебрегать.
Как создать надежный и запоминающийся пароль?
Создать сложный (т.е. устойчивый к взлому) и одновременно запоминающийся пароль можно самостоятельно либо при использовании специализированных программ — генераторов паролей. При самостоятельном создании парольной фразы можно, например, прибегнуть к следующему простому способу:
- Переключаем клавиатуру в английскую раскладку и печатаем 2-3 русских слова, например — «dobroe utro».
- Переведем произвольные буквы нашего пароля в верхний регистр, чтобы получилось как-нибудь так: «Dobroe utrO».
- Если форма регистрации позволяет использовать пробелы — его можно оставить, если нет — удалим (или можно чем-нибудь заменить). Допустим, что пробелы использовать нельзя, заменим его дефисом, получится — «Dobroe-utrO»
- Разбавим пароль парой цифр и/или спецсимволов (если возможно — и тем и другим). Например — «02Dobroe-utrO!»
В итоге, мы получили 14-значный пароль, в котором присутствуют и большие, и маленькие буквы, и спецсимволы, и цифры. И его довольно просто запомнить — начинается с «02», «доброе утро» английскими буквами через дефис (первая и последняя буквы — прописные), заканчивается восклицательным знаком «!».
Проще создавать надежные пароли, используя программные генераторы — это могут быть утилиты для компьютера, расширения для браузеров, скрипты, размещаемые на различных специализированных сайтах, и т.д. Взять, к примеру, бесплатную программу AZPassword. Она предлагает три способа создания сложных паролей:
- Генерация пароля (или нескольких — до 50 штук) по параметрам. Задаем длину (до 30 знаков), указываем, какие символы использовать в пароле — цифры, спецсимволы, русские/английские буквы в верхнем/нижнем регистре, генерируем:
1
- Генерация пароля на основе введенной фразы, которая впоследствии будет закодирована программой AZPassword при использовании алгоритма шифрования Base64. Нужно лишь ввести в программу любую фразу на любом языке или просто набор случайных символов и нажать кнопку генерации:
- Генерация пароля путем кодирования введенной фразы алгоритмом ROT47. Функция работает по тому же принципу, что и предыдущая, но в результате шифрования в парольной фразе будут присутствовать спецсимволы.
Заметим, что шифрование одной и то же фразы алгоритмами Base64 и ROT47 всегда приводит к одному и тому же результату, независимо от того, где именно выполняется ли кодирование — в программе AZPassword, на сайте с аналогичной функцией, мобильном приложении и т.д. Эта особенность позволяет быстро генерировать пароль непосредственно перед его вводом в форму авторизации на сайте, форму разблокировки архива, PDF-документа и т.п. Достаточно лишь точно вписать фразу, на основе которой был изначально сгенерирован пароль.
Буквенно-цифровые символы и требования к буквенно-цифровому паролю
Буквенно-цифровой пароль содержит цифры, буквы и специальные символы (например, амперсанд или хэштег). Теоретически буквенно-цифровые пароли труднее взломать, чем пароли, содержащие только буквы. Но их также может быть сложнее создать и запомнить.
Почти 80 процентов из нас сбрасывают свои пароли каждые 90 дней из-за того, что просто забыли. Трудно думать о том, чтобы сделать пароли еще более сложными.
Но этот простой шаг может помочь защитить важные активы компании и ценные данные.
Что такое буквенно-цифровой пароль?
Ваш пароль содержит простые буквенные символы? Если вы вводите что-то вроде «пароль», чтобы войти в систему, у вас нет буквенно-цифрового пароля. Если вы должны нажать «[email protected]$», вы следуете правилам, которые мы здесь обсуждаем.
Если ваша компания разрешает требование буквенно-цифрового пароля, вы должны использовать пароль с:
Письма. Учитывается все от А до Я. Возможно, вам потребуется смешать версии в верхнем и нижнем регистре.
Номера. Все от 0 до 10 работает.
Специальные символы. Включены необычные символы от тире до знака доллара и круглых скобок.
Покопайтесь в математике, и вы поймете, почему эти шаги важны.
Если ваш пароль состоит всего из шести букв, у хакера есть 26 6 вариантов угадывания. Если ваш пароль содержит 12 символов, включая цифры и символы, у хакера есть 72 12 возможностей. Чтобы подобрать такой пароль, требуется гораздо больше времени.
Стандартных буквенно-цифровых правил не существует. Некоторые компании просят больше персонажей, а другим нужно меньше.
Создайте идеальный буквенно-цифровой пароль: примеры
Если вашей компании требуются буквенно-цифровые пароли, вы должны проявить изобретательность, чтобы соблюсти все правила и положения.
Например, для Гарвардского университета требуются следующие пароли:
Длинный. Пароли должны содержать не менее десяти символов, но учащиеся могут использовать до 100 символов.
Разные. Учащиеся должны использовать не менее пяти уникальных символов.
Буквенно-цифровой. Средства записи должны включать прописные буквы, строчные версии и специальные символы.
Как должен выглядеть пароль для такой компании?
Идеальный пароль:
Рандомизированный. Не используйте ничего идентифицируемого, например, ваше имя, адрес или имя питомца.
Легко запомнить. Фразы труднее забыть, чем случайные строки данных.
Взбитые. Не ставить цифры и символы стопкой в начале и в конце.
Давайте представим, что мы только что закончили смотреть «Анатомию страсти». Мы нигде не писали о шоу в социальных сетях, и мы не работаем в качестве сценариста или актера для шоу. Мы могли бы использовать эту программу для создания буквенно-цифрового пароля для Гарварда.
Вот несколько примеров буквенно-цифровых паролей с этой теорией:
[электронная почта защищена]&At0m
([электронная почта защищена]&at0My
Гр8йз&АТОМИ!
Когда вы придумаете идеальный пароль, не записывайте его на стикере на мониторе и не делитесь им с лучшим другом. Думайте об этом как о тщательно охраняемом секрете, который может защитить вашу компанию.
И помните, что хакеры могут взломать даже самый надежный пароль. Лучший способ усилить пароль — добавить еще один фактор, например, что-то, что у вас есть. Хакеру намного сложнее манипулировать и взломать так называемую «двухфакторную аутентификацию». Мы написали технический документ об этой практике и рекомендуем вам ознакомиться с ним.
Ссылки
Исследование: 78% людей забывают свои пароли, а затем прибегают к сбросу. (декабрь 2019 г.). Цифровой информационный мир.
Каковы требования к паролю и почему они важны? Гарвардский университет.
Математика взлома паролей. (апрель 2019 г.). Научный американец.
Как создать хороший и надежный пароль. (май 2021 г.). Киберновости.
Как создать идеальный пароль. (май 2016 г.). Хранитель.
python — Генерация случайных строк с заглавными буквами и цифрами
Для тех из вас, кому нравится функциональный Python:
из itertools import imap, starmap, islice, Repeat частичный импорт из functools из строки импортировать буквы, цифры, соединение из случайного выбора импорта join_chars = частичное (соединение, sep = '') тождество = лямбда о: о def irand_seqs(symbols=join_chars((буквы, цифры)), length=6, join=join_chars, select=choice, breakup=islice): """ Генерирует неограниченную последовательность соединенных случайных символов, каждый из которых имеет определенную длину :param symbols: символы для выбора, [по умолчанию string.letters + string.digits, цифры 0–9, строчные и прописные английские буквы.] :param length: длина каждой последовательности, [по умолчанию 6] :param join: метод, используемый для соединения выбранного символа, [по умолчанию ''. join генерирует строку.] :param select: метод, используемый для выбора случайного элемента из данной совокупности. [по умолчанию random.choice, который выбирает один элемент случайным образом] :return: неопределенный итератор, генерирующий случайные последовательности предоставления [:param length] >>> из инструментов импортировать irand_seqs >>> строки = irand_seqs() >>> a = следующий(строки) >>> утверждать isinstance(a, (str, unicode)) >>> утверждать len(a) == 6 >>> утверждать следующий(строки) != следующий(строки) """ return imap(join, starmap(breakup, repeat((imap(select, repeat(symbols)), None, length))))
Он генерирует неопределенный [бесконечный] итератор из соединенных случайных последовательностей, сначала генерируя неопределенную последовательность случайно выбранных символов из заданного пула, затем разбивая эту последовательность на части длины, которые затем соединяются, он должен работать с любой последовательностью, которая поддерживает getitem, по умолчанию он просто генерирует случайную последовательность буквенно-цифровых букв, хотя вы можете легко изменить, чтобы генерировать другие вещи:
, например, для генерации случайных наборов цифр:
>>> irand_tuples = irand_seqs(xrange(10), join=tuple) >>> следующий(irand_tuples) (0, 5, 5, 7, 2, 8) >>> следующий(irand_tuples) (3, 2, 2, 0, 3, 1)
, если вы не хотите использовать next для генерации, вы можете просто сделать его вызываемым:
>>> irand_tuples = irand_seqs(xrange(10), join=tuple) >>> make_rand_tuples = partial(далее, irand_tuples) >>> make_rand_tuples() (1, 6, 2, 8, 1, 9)
Если вы хотите генерировать последовательность на лету, просто установите соединение с идентификатором.