На главную
Пароли для шифрования
Как мы увидели, обыск, кража и грабёж среди бела дня, - все требуют от нас шифрования данных.
Давайте ещё раз разберём эту тему (мы уже неоднократно касались криптографии, например, Удалённый обмен ключами).
Для начала давайте инвентаризируем то, что мы хотим зашифровать.
Среди контейнеров информации у нас есть
1. Неаппаратные носители информации, такие как бумага
2. Аппаратные носители информации:
2.1. Жёсткие диски (HDD и SSD)
2.2. Переносные накопители (флешки)
2.3. Иные накопители
3. Логические диски
4. Файлы и папки
5. Ключи и пароли
1. Неаппаратные носители информации, такие как бумага
Что касается неаппаратных носителей, то есть бумаги, то шифрованию, они, по сути, не подлежат. Если только вы не зашифруете файл, а потом в 16-ричном виде не запишите его на листок бумаги. Это можно сделать с помощью 16-ричного редактора HxD. Однако, пароль для расшифровки этой бумаги вам нужно будет помнить наизусть, а для расшифровки иметь компьютер.
Любые системы ручного шифрования абсолютно непригодны с точки зрения стойкости шифрования.
Зашифровав вручную, вы можете лишь отсрочить расшифровку текста до того момента, пока специалисты не дойдут до компьютера со специальным ПО.
----------------------------------------------------------------
Пароли
Вы можете записывать части важных паролей на бумагу.
Таким образом, вы можете сами лично помнить одну часть пароля, а другую записать на бумаге.
То, что вы помните, всё равно должно быть очень стойко.
Я уже рассказывал зачем это нужно: если у вас получится уничтожить бумагу с паролем, то даже если вас будут пытать, вы всё равно ничего не расскажете. От того, расскажете вы или нет может зависеть как ваша дальнейшая жизнь, так и жизнь других людей.
Например, бандиты вас могут убить, но не получить ваши деньги (если они у вас есть). Они достанутся вашим наследникам. А если бандиты захватят ваши деньги, на них они смогут купить оружие и продолжить свою преступную деятельность, убив ещё кого-нибудь.
На всякий случай, вы можете записывать пароли с перестановкой букв (это обсуждали и в разделе Оккупация). Например, пароль 123456 записывать как 654321. Либо как 123654, либо как 135246, либо как 012345. Здесь вы можете придумать много вариантов.
Это годится только для того, чтобы люди не могли просто ввести пароль, если найдут лист бумаги. Они вынуждены были бы подбирать его с помощью спец. средств, однако подберут такие перестановки они очень быстро.
---------------
Неважные пароли
Если вы решили просто зашифровать жёсткий диск, но не храните на нём важной информации, то вы можете использовать пароль, записанный только на бумаге. Но даже в данном случае рекомендуется хоть как-то удлинить пароль словом, которое вы знаете наизусть.
Для таких программ, как VeraCrypt и Keepass, вы можете использовать неважные пароли длинной от 12 символов. Пароли должны быть сгенерированны программой для генерации паролей, предполагается, что они содержат латинские символы разного регистра (большие и маленькие буквы) и цифры (то есть цифролатиница).
Неважными могут считаться пароли, которые защищают информацию, при попадании которой в открытый доступ, к противнику, к случайным шантажистам и так далее, вы не предвидите никаких проблем.
Если вы обрабатываете на компьютере важную информацию, то системный диск стоит считать важным. На системном диске могут храниться такие вещи как:
1. Резервные копии документов, созданные текстовыми редакторами и другим ПО
2. Различного рода изображения для предпросмотра документов, их метаинформация (где, когда). На этих изображениях могут быть хорошо видны уменьшенные изображения фотографий
3. Файлы подкачки и файлы гибернации, если это не отключено в системе
4. История использования вами файлов, которая может указать, что какие-то файлы у вас на компьютере вообще есть (что может указать на связь с определёнными людьми, владение вами определённой информацией)
5. Какие-либо другие файлы, которые система или программы хранят на системном диске, но мы об этом не подозреваем
---------------
Важные пароли
Для паролей, состоящих из слов, считайте, что одно слово - это примерно 1,5 символа. Слова не должны быть цитатами из опубликованных произведений. Например, слова "электровозный слонопотам" можно засчитать за три символа. Пароль "электровозный слонопотамов съел яблочный морок и закусил кораблём" можно считать за 10,5 символов. Однако, его так сложно запомнить и так долго вводить, что легче запомнить случайный 10-тисимвольный пароль.
Итак, пароль делится на две части: одна записана на бумаге, вторая запомнена наизусть.
Бумажная часть важных паролей для программ с защитой от перебора, таких как VeraCrypt и Keepass (см. ссылки в списке сервисов) должна быть как минимум 15-ть символов.
Так как это бумага (легко записать и больше символов), рекомендуется использовать пароли не менее 26-ти цифролатинских символов.
Для той части пароля, которую вы помните наизусть (не записывали никуда), нужно использовать как минимум 12-15 символов (если пароль случайно сгенерирован). Если не боитесь забыть, то лучше 17 символов, а ещё лучше 26.
Для OpenSSL всё зависит от величины параметра -iter. В целом, величину, которая даёт задержку секунда или более на вашем компьютере, можно считать вполне достаточной для паролей в 15-17 символов.
Для программ шифрования без специальной защиты от перебора (вы не видите, что она долго считает ключ из пароля), например, для 7-zip, пароли должны быть не менее 17-19-ьт символов, но лучше брать не менее 26-ти символов. Если вы записываете часть пароля на бумаге, то и на бумаге - 26, и по памяти - тоже 26. То есть в сумме не менее 52-х символов.
Пароли для 7-zip можно использовать только один раз, второй раз шифрование осуществлять с другим паролем, так как у 7-zip нет открытого вектора инициализации. Пароль достаточно нестойко удлиннить (можно даже ввести изменяемую часть в название архива, а остальную часть пароля использовать неизменную для разных архивов) - но каждый раз пароль должен быть разным.
26 символов - это на момент 2020 года. Каждые 12 лет нужно добавлять по одному символу (то есть в 2032 году нужно брать 27-мь символов).
Есть и другие оценки, по которым достаточно всего лишь 17 символов на момент 2020 года для программ без защиты от перебора.
Программы с защитой от перебора применяют к паролю трудоёмкие криптографические функции, которые в результате дают ключ шифрования. То есть пароль специально довольно долго преобразуется в ключ шифрования, несмотря на то, что можно было бы и быстрее.
Чем больше трудоёмкость такой функции преобразования, тем меньше паролей может перебрать один и тот же компьютер противника за единицу времени. Поэтому, необходимая длина таких паролей слабо растёт с прогрессом компьютерной техники (вместо этого увеличивается параметр трудоёмкости криптографической функции).
В OpenSSL такую роль как раз играет параметр -iter, которые задаёт количество итераций перебора паролей.
Чем больше итераций, тем больше расчётов нужно выполнить для того, чтобы по паролю узнать ключ. А значит, чем больше итераций, тем надёжнее защита пароля от перебора.
Как я уже говорил выше, 15-17 символов достаточно (на момент 2020-ого года), если на вашем компьютере перебор идёт более секунды.
В целом, нужно считать, что защита от перебора в 1 секунду и более удлинняет пароль на 2-3 символа (перебор в 4-ре секунды удлиняет всё равно на те же 2-3 символа).
Самое плохое в программах без защиты от перебора то, что перебор может осуществляться по так называемым радужным таблицам - это таблицы уже предвычисленных паролей. Такой перебор может быть более быстрым за счёт того, что часть вычислений для всех паролей уже сделано заранее.
На момент 2020-ого года случайный цифролатинский пароль в 17-19 символов будет достаточен для программ без защиты от перебора, если с защитой от перебора считать достаточным 15-17-ть символов.
Как я уже сказал, оценки могут быть разные, то есть бывают рекомендации и по 26-ть символов - и они имеют свои основания.
VeraCrypt, по-умолчанию, также вводит большое количество итераций вычисления паролей. Количество итераций настраивается там с помощью параметра PIM - его можно просто использовать по-умолчанию.
KeePass имеет настраиваемую систему вычислительных задержек для защиты пароля.
Для этого он предлагает два алгоритма: AES-KDF и Argon2.
Я рекомендую использовать Argon2.
Для домашних компьютеров вполне подходит более быстрая схема Argon2d (Argon2i для тех компьютеров, на которых может быть запущено вредоносное ПО, даже если это ПО не привелигированное).
В Argon2 имеются три параметра: количество итераций, память и параллелизм.
Установите параметр "параллелизм" в значение, равное количеству ядер на вашем компьютере. То есть для процессора с 4-мя ядрами это будет значение "4".
Далее установите объём памяти. Посмотрите в диспетчере задач Windows или другом приложении объём свободной оперативной памяти. Желательно устанавливать данный параметр в значение не ниже 512 Мб, так как это значение влияет на стойкость. Чем выше это значение, тем больше памяти будет требоваться и вам, и противнику для вычисления ключа по паролю. А память - это деньги и дополнительные проблемы.
Помните, что если у вас будет не хватать объёма оперативной памяти, то вы не сможете расшифровать базу данных. Например, если у вас будет запущено много приложений или виртуальная машина, то свободной памяти может стать очень мало. Так что будьте аккуратны.
Указание значений ниже 128 Мб не имеет смысла (тогда лучше указывать большее количество итераций с меньшим объёмом памяти). Так что, если у вас нету даже такого объёма, тогда можно указывать и 1 Мб (можно указывать и что-то среднее, но это не повлияет на результат значительно). Почему именно 128 Мб? Параметр должен быть существенно выше, чем количество видеопамяти, которое приходится на один видеопроцессор (шейдерный блок) в современной видеокарте. Например, для современной на 2020-ый год видеокарты может быть порядка 512 универсальных процессоров на 4096 Мб видеопамяти. 4096/512=8 Мб видеопамяти на процессор.
Это означает, что если противник приспособит видеокарту к перебору паролей, то он получит одновременно с одной видеокарты 512 процессорных ядер, но только если ему хватит видеопамяти. Если ваш параметр "память" будет 4 Мб при параллелизме 4 - то противнику нужно будет 4 Мб видеопамяти на 4 ядер, а у видеокарты имеется 8*4=32 Мб на 4 ядра. То есть он сможет эффективно подключить все ядра видеокарты для расчётов даже при параметре "память" 32 Мб.
Давайте посмотрим, сколько сможет использовать противник видеопроцессоров для параметра "память" 512 Мб при параллелизме "4". 4096*4/512=32. То есть противник сможет использовать только 32 видеопроцессора вместо наличных на карте 512-ти. Видеокарта будет использована только на 6,25%.
После того, как вы выбрали и значение "параллелизм", и значение "память" можно приступить к выбору значения "количество итераций". От величины этого значения будет линейно зависеть вычислительная трудоёмкость перебора паролей.
Давайте введём в "количество итераций" значение "1" и нажмём кнопку "тест". Через какое-то время мы получим диалоговое окно с сообщением по типу "Трансформация ключа заняла 0,677 сек". Нам нужно добиться, чтобы ключ расшифровывался хотя бы 0,7 секунды. Ещё лучше, если он будет шифроваться секунды 3.
0,677 - это почти 0,7. Так что если мы введём в "количество итераций" число "2", то мы получим время, большее, чем 0,7 (я получил "1,093 сек"). В принципе, это уже хорошая задержка.
Если же нам нужно вычислять 3 секунды, то давайте поделим 3/0,677, это будет 4,43. То есть надо умножить количество итераций примерно на 5. Так как сейчас у нас 1, то 1*5 - это будет 5. Введём в "количество итераций" значение "5". Несмотря на мои старания, лично у меня получилась задержка в 2,388 сек. Я введу на обум ещё 3 - то есть всего 8 итераций. Получил 3,729 сек. Можно было бы ввести и 7 - тоже получилось бы время, большее 3-х секунд.
В общем, перебором мы подобрали количество итераций на нужную нам задержку. Напомню, задержка должна быть, хотя бы, 0,7 секунды, но мы уже подобрали даже на 3 секунды (на 1 секунду - 2 итерации, на 3 секунды - 7 итераций).
Данные параметры для каждого компьютера будут разные.
Если у вас плохо со свободной оперативной памятью, можно выбрать значения по-другому.
По-прежнему выбираем значение "параллелизм" равное количеству ядер вашего процессора (не видеокарты). Например, "4". В параметр "память" введём 1 Мб. В параметр "количество итераций" введём "1000". Получили значение задержки "1,1 сек". Можем оставить, если нас устраивает значение выше 1 секунды. А можем и увеличить до 4000 - тогда операция будет проходить почти 4,5 секунды. Чем дольше - тем лучше. Но и ждать при расшифровке придётся дольше не только противнику, но и вам.
Давайте сравним. В первом варианте настроек (для односекундной задержки) будут работать 4096*4/512=32 видеопроцессора примерно 1 секунду. За это время они переберут 32/4=8 вариантов пароля.
Во втором случае будут работать 512 видеопроцессоров, которые переберут 512/4=128 вариантов пароля.
То есть, если нужна защита именно от перебора с помощью видеокарт, вариант с большим параметром "память" - лучше.
Вариант с параметром "память" 1 Мб нужен, если у вас мало свободной оперативной памяти.
Параметр "параллелизм" обычно не имеет смысла ставить меньше вашего количества ядер, т.к. это замедлит работу алгоритма без существенных плюсов.
------------
Резюмируя:
Для неважных паролей с защитой от перебора:
Часть пароля на бумаге - 12 символов или более.
Часть по памяти - хотя бы одно слово, а лучше 12-ть случайных символов по памяти.
Для программ без защиты от перебора неважные пароли должны быть длиннее:
Часть пароля на бумаге - 17 символов или более.
В случае, если квантовые компьютеры покажут себя, длины паролей придётся удваивать (см. следующую главу с примером расчёта длины пароля - обсуждение квантовых компьютеров в конце).
Для важных паролей:
Для программ с защитой от перебора: VeraCrypt, для KeePass с задержкой хотя бы 0,7 секунды и для OpenSSL с большим параметром -iter:
Часть пароля на бумаге - 26 символов (15 минимум). Причём вводите не то, что записываете, а нечто немного другое (переставляйте местами символы, как обсуждалось выше).
Часть по памяти - 17-ть или более символов (12 минимум). Имеются в виду случайно сгенерированные символы.
Для остальных вариантов (без защиты пароля)
Часть пароля на бумаге - 26 символов (19 минимум)
Часть по памяти - 26-ть символов (19 минимум)
Замечание к удвоению длины паролей при квантовых вычислениях также верно. Возможно, скоро нам придётся запоминать наизусть пароли в 50 символов.
Также, см. замечания ниже по запоминанию пароля. Возможно, стоит записать на бумаге пароль и в 50-60 символов, так как пароли в 25-ть символов не так плохо запоминаются даже непроизвольно. Часть пароля на бумаге нужна для того, чтобы при пытках из вас не могли выпытать этот пароль (если вы его успели уничтожить).
Рядом с бумагой с паролями всегда нужно хранить средство для уничтожения бумаги (например, коробок спичек).
Разумеется, вы можете использовать пароли и большей длины.
Ещё один момент. Когда вы записываете что-то на бумагу, а потом длительное время вводите пароли, то за несколько месяцев можно непреднамеренно выучить пароль и в 26-ть символов. Поэтому, стоит задуматься над тем, чтобы либо регулярно (по мере запоминания) сменять части паролей (записанные на бумаге), либо делать пароли ещё более длинными. То есть такими длинными, чтобы длина незапомненной части пароля была бы всё равно достаточной для защиты от перебора: то есть 26 или, хотя бы, 17-19 символов.
Таким образом, это может быть уже 26+18=44 символа или более.
Обычно трудно менять пароли от криптографии.
Для VeraCrypt смена пароля приводит к перешифрованию диска.
Для KeePass смена пароля проста. Однако, если база данных доступна в резервных копиях в интернете, то злоумышленники могут иметь старую версию базы данных, от которой вы уже запомнили, но ещё не забыли пароль.
Чтобы НЕ запомнить пароль, вводите его по отдельным буквам и в ином порядке, не так, как написано. Никогда не читайте сразу несколько букв. Потому что тогда вы запоминаете эти буквы.
Чтобы было удобнее вводить пароль по буквам, его можно записать тройками или четвёрками букв, но вводить их в ином порядке. Грубо говоря, записано 0123 4567 7890, а вводите вы 0897 0213 7564.
Как запоминать пароли.
Для некоторых людей запоминание пароля - дело лёгкое. Для кого-то - трудное.
Желательно, перед тем, как назначать пароль, некоторое время его учить. То есть сгенерировать его ранее, в идеале, за полгода, чем будете использовать, сохранить в надёжной парольной базе (или вообще не сохранять, см. ниже) и постоянно тренировать его ввод.
Запоминание происходит при вспоминании. То есть, чтобы запомнить, вам нужно сначала попытаться
* вспомнить часть пароля
* затем, если не вспомнили, прочитать её
* потом ввести по памяти.
Например, нужно запомнить пароль IXqKuZTVOw6C6ugEbrThuhnTv .
Для начала, его можно разбить на группы символов, удобных для запоминания.
Мне удобно следующее разбиение
IX qKuZ TVO w6C6 ugEbr Thuhn Tv
Его можно даже генерировать по группам. То есть не генерировать весь пароль, а сначала запомнить только его часть.
Пароль записывать нельзя. Но так его проще запомнить.
Поэтому, мы будем записывать пароль на воображаемом листе бумаги.
Представьте себе лист бумаги и запишите пароль, разбитый на группы.
Группы лучше расположить в две строки, вот так: (сначала вводим верхнюю левую, потом нижнуюю левую, потом верхнюю вторую слева и т.п.)
IX TVO ugEbr Tv
qKuZ w6C6 Thuhn
Смысл такого расположения в том, что вы запоминаете в какой строке группа. Если вы забудете какую-то одну группу, будет легче вспомнить потом, где именно она находилась и, таким образом, проще будет вообще её вспомнить.
Желательно не просто представлять себе, как вы записываете один символ или группу, а стараться записать две или четыре группы сразу. То есть представить себе их взаимное положение.
Теперь можно учить каждую группу в отдельности.
Такие группы можно смотреть прямо из менеджера паролей (записать во вкладке "Дополнительно" и поставить флажок "защита памяти"). Далее пытаться вводить их по памяти. Можно просто вводить многократно пароль, запоминая его по группам. То есть прочитали "IX", запомнили, ввели. Прочитали "qKuz", запомнили, ввели. И так далее.
На группы можно и не разбивать.
Далее нужно каждый день по многу раз записывать в мыслях этот пароль, стараясь записывать его вообще по-памяти хотя бы частично. Для напоминания о том, что нужно заучить пароль можно пользоваться таймером на мобильном устройстве или в сервисах (см. "Web-таймер").
Затем нужно сделать перерыв хотя бы на пол дня. Нужно принять пищу пару раз, чтобы отвлечься, или поспать, принять душ. А потом попробовать вспомнить пароль снова.
После того, как перерывы по пол дня не страшны, можно увеличивать перерывы до нескольких дней. Затем сделать перерыв на пару недель. И снова повспоминать пароли несколько раз за день. И снова перерыв на пару недель. Можно немножко психологически расслабиться и подумать, что пароль вы уже запомнили и можно не напрягаться - это поможет забыть пароль. Потом нужно вспомнить его снова.
Для проверки, можно не вспоминать пароль примерно 30-40 дней. Если он вспомнился, значит его можно использовать (лучше ещё чуть потренировать, чтобы мозг осознал, что вам он снова нужен). Если столько дней нет, нужно подождать хотя бы неделю (7-мь дней).
Конечно же, можно записать изучаемый пароль на бумагу. Но кто сказал, что бумагу никто не прочитает? (см. негласный обыск). Разумеется, потому бумагу нужно будет уничтожить.
Для выучивания неважных паролей также, можно запоминать часть пароля, записанного на бумагу.
Сначала используете пароль, полностью записанный на бумаге.
Запоминаете 2 первых символа и начинаете их вводить по памяти. Когда почувствуете уверенность (или когда выучите следующие за ними 2 символа), эти символы замарываете той же самой ручкой, что писали пароль.
Затем учите следующие 2 символа. Замарываете их. И так далее. Замарывать лучше тогда, когда вы уверенно их вспомнили даже после перерыва.
Разумеется, часть символов лучше сразу заучить наизусть. А остальные символы записать на бумагу не в последовательности ввода, а в другой последовательности (как я уже указывал выше).
Для более лёгкого выучивания, всегда сначала пытайтесь ввести пароль по памяти, сколько получается. Потом проверяйте, то ли вы ввели.
Если забыли что-то, поправляйтесь.
Вводите пароль не посимвольно, а по группам из 3-4-х символов, которые вы сначала пытаетесь вспомнить, если не получилось - читаете, запоминаете и вводите по памяти.
Так как заучивание происходит при вспоминании (воспроизведении), то чем больше вы будете вспоминать, пусть даже кратковременно, тем лучше.
Можно также просто вспоминать, какие ещё группы символов есть в пароле, даже если вы не помните точную их позицию.
Чем плох такой способ?
1. После длительного перерыва (отпуска, весёлых или длительных выходных, новых впечатлений, командировок, конференций) пароль может быть забыт. Желательно вводить его каждый день, причём так, чтобы точно видеть, что пароль введён верно.
Если просто вспоминать пароль, то, иногда, можно случайно вспомнить ошибочный пароль (например, перепутать регистр букв или забыть пару букв) и уже дальше вспоминать ошибочный пароль, заучивая его.
Потом вспомнить верный пароль будет очень сложно. Если же сразу найти ошибку, то вспомнить верный пароль будет проще.
2. Если бумажку вы потеряете - то вы не сможете вспомнить пароль.
3. Если бумажку найдёт противник - он получит невымаранную часть пароля. В частности, в начале эксплуатации противник получит вообще весь пароль. Если у злоумышленника есть много вычислительных ресурсов, то он сможет получить очень много
4. Противник может не просто украсть бумажку, но ещё и вернуть её. То есть вы можете даже не знать, что у вас украден пароль. И украсть его могут ещё до того, как вы его будете использовать.
Поэтому следует предпочитать способы, где вы сначала учите пароль, а потом уже используете.
В то же время, если пароль нужно использовать прямо сейчас, и нужен стойкий пароль, то, возможно, имеет смысл выучить наизусть 12 символов и ещё 14-16 доучивать потом таким способом. Так как выучить 25-ть символов сразу затруднительно. Также, сразу можно выучить 4-6 символов и какой-нибудь удлинитель пароля (см. ниже), а остальные символы доучивать по бумажке.
Хранить такую бумажку нужно либо в защищённом помещении (желательно, хотя бы под несложным мебельным замком), либо в кармане. Карман не должен быть внешним, то есть ни одна его часть не должна быть видна, когда одежда на вас надета.
Положите в карман монетку. Переверните одежду вверх ногами, потрясите. Если монетка выпала, значит карман для хранения такой бумаги не подходит.
При записывании пароля, обращайте особое внимание на то, на чём лежит ваш лист бумаги. Так как при записывании, слабые оттиски написанного часто остаются на двух-трёх листах под той бумагой, на которой вы пишите.
Если у вас уже есть криптографический пароль, то вместо бумаги, вы можете шифровать новый пароль старым (пока не выучите новый). Однако, в таком случае, если старый пароль подберут либо украдут, то и новый пароль будет скомпрометирован.
В этом способе, лучше всего, если вы шифруете новый пароль, но храните его бережно, в месте, где его тяжело украсть.
Нестойкие удлинители паролей
Если вам нужно срочно выучить стойкий пароль, а вы не можете, то его можно не просто записать на листе бумаги. Можно попробовать искусственно его удлинить чем-то не очень стойким.
----------------
Например, вы любите музыку. Вы можете добавить к паролю что-то легко для вас запоминающееся типа "ЦиклопыСоколовБуниатишвиллиСохиевРахманинов2". И вводить всё это на английской раскладке, как будто вводите на русской. Это добавление к тому паролю, который на бумаге записан.
Аналогично, можно добавлять туда каких-либо хорошо известных вам деятелей искусства, техники и т.п. Но не особо известных общественности. Грубо говоря, "Людвиг ван Вальдштейн 17701827". Людвиг ван Бетховен - композитор и пианист. 1770-1827 - это годы его жизни. Граф Вальдштейн - это его товарищ, тоже пианист. Заменяем фамилию Бетховена на Вальдштейна - и поехали.
----------------
Всё это не очень стойко и подходит как удлинитель. Когда больше ничего не остаётся делать.
Иногда специально придумывают и выучивают стихи или прозу. Например:
"Он выбил решётку взмахнувши крылом и стражу решил заклевать под окном. Клюёт и бросает".
Вводить такие пароли довольно тяжело, да и не каждая программа примет такой длинный пароль.
Но, в целом, их и подбирать тяжело.
----------------
Можно вводить и какой-либо сильно искажённый известный стих.
"Май дядья самых честных сплавил И по реке их всех отправил"
Либо
"Мой дядя самых честных правил Свет мой зеркальце скажи Идёт направо - песнь заводит".
Здесь объединены сразу три разных строки из разных стихов. Так как перебор разных строк, особенно, взятых не из начала стихотворенья, может быть довольно трудоёмким.
При этом всё равно можно вводить чуть искажённо
"Мой дЯдя самых честных правил Свет мой зЕркальце скажи ИдЁт направо - песнь заводит".
В данном случае, первая ударная буква в слове, где больше одного слога, пишется в верхнем регистре. Разумеется, коверкать можно как хочется, любым способом. Чем тяжелее угадать способ, тем более стойкий пароль.
"Мой тётя самых строгих правил Тьма мой керкальце скажи Стоит направо - песнь мяучит" (налево - сказку промурчит :) ) (для кого-то такие искажения хорошо запоминаются, для кого-то - плохо; всё индивидуально).
Такие длинные пароли тяжело вводить: очень легко ошибиться и вот, снова, надо вводить ещё раз. Причём не понятно, это ты подзабыл пароль или просто неверно ввёл.
----------------
Ввод букв на клавиатуре в каком-либо порядке. Например, "qeyi[afhl'cb,/" - эта строка получена путём набора слева на право сверху вниз клавиш клавиатуры в порядке: через одну, через две, снова через одну, снова через две и т.п.
Вам нужно использовать какой-то свой порядок. Но это ещё менее стойко, чем стихи. Кроме этого, на другой клавиатуре может быть немного другой порядок клавиш - и, о ужас, ввести пароль так как надо уже не получится. На клавиатурах даже одной фирмы часто различается порядок клавиш рядом с клавишей Enter и иногда, положение кнопки слева от клавиши "1". Кроме этого, вы не сможете ввести пароль без клавиатуры (с экранной клавиатуры, например).
Такой пароль хорош только если вы привязаны к одной клавиатуре и стараетесь избегать опасных мест (с возможным нестандартным положением клавиш), но, всё равно, такой удлинитель не очень стоек. При его использовании, старайтесь использовать пару мнемоник минимум.
----------------
Мнемоники над стихами
Берём стих
"Но вот багряною рукою заря от утренних долин"
Набиваем из него каждый третий символ (на английской раскладке или на русской - как удобно):
" nfz.e.f hy k". Как видите, получился не очень разнообразный пароль.
Добавляем к нему количества букв в словах
"23854285"
Получаем " nfz.e.f hy k23854285".
Естественно, вы можете и должны использовать другие мнемоники. Главное, чтобы о них никто не знал.
----------------
Использование фонетического алфавита ИКАО в качестве удлинителей.
Это самая плохая мнемоника из всех (её легче всего перебрать). Допустим, вы сгенерировали случайный удлинитель в виде символов "rv5".
Далее пароль вы записываете с помощью фонетического алфавита ИКАО (его легко найти в интернете).
Например: "РомеоВикторФайф" или тоже самое, но на английском "RomeoVictorFive".
Это можно использовать только как удлинитель, в то время как пароль в виде стихов, если он не очень важен, может быть использован даже отдельно без стойкой части, сгенерированной случайно.
----------------
Удлинитель в виде стойкого пароля
Если у вас есть несколько примерно одинаково стойких паролей, то вы можете использовать на них удлинитель в виде стойкого пароля: то есть один удлинитель используется в разных паролях.
Это плохо тем, что если переберут один из паролей, узнают такой стойкий удлинитель и для всех других паролей. Те пароли будет перебрать проще.
Удлинитель в виде стойкого пароля должен использоваться в паролях общей длиной от 17-ти случайно сгенерированных символов, чтобы перебор каждого пароля был достаточно сложен (с учётом квантовых компьютеров - 34 символа).
Не используйте стойкие пароли от криптографии в качестве удлинителей в других паролях, исключая случаи, когда информация, которая была ими зашифрована, уже не актуальна (не важно, удалена она или нет, важна, что злоумышленник не может оттуда извлечь ничего полезного).
----------------
Вводить длинные пароли, обычно, тяжелее, чем короткие: делается довольно много ошибок, да и ввод занимает время (особенно, когда есть задержка). Поэтому, чрезмерно длинных паролей лучше избегать, если это возможно. Иногда проще выучить короткий, но случайный, чем вводить кучу слов.
Опять же, что вам лично проще учить и вводить - это индивидуально. Кому-то сложнее одно, кому-то сложнее другое.
----------------
После того, как вы запомнили удлинитель, попытайтесь его вспомнить через пару минут. Иногда кажется, что запомнить его легко, но буквально через полминуты оказывается, что вы не можете вспомнить пароль верно: вам кажется, что всё хорошо, но - нет, пароль не подходит.
Вы можете комбинировать методики удлинителей. Вплоть до того, что использовать только их.
Но я не рекомендую это делать.
В любом случае, никогда не говорите, какие вы используете удлинители и используете ли их вообще.
Выучивание пароля с помощью генерации по частям
Ещё один способ выучивания пароля состоит в том, что вы генерируете 4-6 символов и сразу их заучиваете (можно заучить и большее количество символов сразу, в зависимости от вашей памяти: 8, например).
Никуда не вводите и не записывайте его. Повторяете про себя минимум день и, как минимум один раз, после сна.
На следующий день (на следующую неделю, если есть время) вы генерируете ещё 4-ре символа и тоже их заучиваете.
Далее каждые 2 дня заучиваете по 2-4 символа.
После запоминания первых 12-14 символов, каждые 4-ре дня заучивайте по 2-4-ре символа. Обычно, заучивать пароли, длиннее 14 символов, довольно тяжело, так как начинают забываться целые блоки символов, поэтому делать это надо неторопясь.
После того, как пароль полностью выучен, вы можете сначала зашифровать им информацию, которая имеется у вас в расшифрованном виде.
Хотя бы пару недель, с перерывами (а лучше дольше, выше я уже указывал), пробуйте расшифровывать информацию. Может быть такое, что вам кажется, что вы запомнили пароль, но реально каждый раз вы вспоминаете разный пароль. Поэтому, нужно проверять, что вы вспоминаете именно один и тот же пароль.
После того, как вы убедились, что его точно и надёжно запомнили, его можно использовать.
Помните, что зашифровывать частью пароля что-либо нельзя, так как противник сможет подобрать этот частичный пароль. Даже если зашифрована неважная информация, важно то, что он подберёт часть пароля. Шифровать можно только всем паролем целиком.
Конечно же, вы можете выучить 17-ть символов пароля этим, сложным, способом, а остальные доучить по бумажке или сделать с помощью "удлинителя". Но это будет хуже, чем выучить все этим способом.
Неожиданное забывание пароля
Убедитесь, что вы вспоминаете пароль не только по прошествии одного дня, но и после относительно долгого перерыва (минимум - неделю). Так как человек часто склонен забывать после длительного перерыва даже то, что он помнил долгое время, но вспоминал каждый день. Поэтому, всегда убеждайтесь, что способны вспомнить пароль после того, как долго его не вспоминали.
Кроме этого, даже если вы хорошо выучили пароль, его можно забыть, если будете его вводить без вспоминания.
Так, когда вы его вводите, вы можете использовать либо механическую память, то есть вводить пальцами то, что пальцы сами набирают, либо вводить, проговаривая про себя, но чётко не вспоминая.
При этом пароль либо не вспоминается вообще, либо вспоминается плохо. То есть он, постепенно, забывается.
Чтобы осуществить правильное вспоминание, перед вводом попробуйте проговорить пароль про себя, а также представить его себе визуально. Вспомните, какие буквы там нижнего регистра, а какие - верхнего. А если это смесь латиницы и кириллицы, обратите внимание на то, какой раскладки каждый символ. Бывает так, что даже когда пароль на английском, человек запоминает его по-русски. Например, букву "y" (вай) проговаривает как "у" (у) - выглядят они почти одинаково, букву "j" случайно называет про себя "джи" (хотя джи - это "g"), букву "e" (и) называет буквой "е" (йэ) и так далее. Человек вводит пробелы в пароле, но не осознаёт, что они тоже в пароле есть. При вспоминании пароля он может вспомнить пароль, но эти перепутать указанные или аналогичные символы.
Поэтому, всегда лучше представлять себе пароль как визуально, так и звуком, обращая внимание на регистр символов и другие нюансы. Перед вводом один раз, и после правильного ввода один раз.
Кроме этого, можно в уме представлять себе, как вы записываете пароль на бумаге (от руки). Это тоже помогает запомнить пароль.
Можно представить себе, что пароль записывается в две или три строки и запоминать ещё и в какой строке расположен блок. Тогда, если какой-то блок вы забудете, вы сможете понять, где именно он был (между какими двумя блоками).
Аналогично, можно представлять себе, что пароль записывается разными цветами в определённом порядке (синий-красный), чтобы потом заметить, что вы не ввели какой-то из блоков.
Помните, что удлинители тоже забываются. Их тоже надо тщательно повторять, обращая внимание на регистр символов, пробелы, порядок и склонение слов.
Бумага с паролем, которым ещё ничего не зашифровано, важна. Но при попадании её в руки противника важно лишь, чтобы остальные люди, знающие этот пароль, узнали бы о компрометации этого пароля. Чтобы этот пароль нигде бы не использовался ни до компрометации, ни после.
Поэтому, если вы несёте на бумаге кому-то новый, ещё нигде не использованный пароль - это допустимо. После получения пароля, бумага будет уничтожена, а пароль надёжно сохранён или запомнен.
Если же бумага будет утеряна, вы просто не будете использовать этот пароль.
Исключение, если у вас смогли украсть эту бумагу, а потом вернуть. Поэтому, желательно носить бумагу с собой как можно меньше времени: даже если у вас её украдут, может не хватить времени её вернуть.
Бумага должна быть в чём-то, что трудно открыть незаметно прямо на вас (молнию и пуговицу открыть просто, тугую кнопку - трудно; внутреннюю молнию - тоже не легко, если она на одежде) и что всегда при вас (одежда, которую вы не снимаете; если сняли - считайте, что пароль пропал).
Также можно транспортировать пароль в заклеенном конверте в сумке. Сумка должна быть всегда при вас, конверт должен быть в папке, чтобы его было труднее незаметно вытащить, либо должен быть во внутреннем закрывающемся кармане сумки - внешние застёжки сумки обычно очень легко открываются незаметно для владельца (даже когда застёжка рядом с рукой).
Пример пароля
Давайте попробуем сделать неважный пароль для примера с использованием приёмов выше.
Я ленивый, так что хочу запомнить всего 4 случайных символа. Генерирую их с помощью программы генерации паролей. Допустим, это "fAaK". Я буду вводить их перед удлинителем.
Весь остальной пароль будет удлинителем. Я выберу стих, из которого буду вводить первые три буквы каждого слова. Для слов из одной и двух букв (предлогов) буду вводить ещё и число букв в этом слове.
Вместо стихов возьму прозу: "Мне холодно, мне одиноко. Стужёный ветер несёт льдинки града мне прямо в лицо...".
Значит, из этой прозы по мнемонике получится "Vyt[jkvytjlbCnedtnytckmluhfvytghz1kbw".
Общий пароль получается "fAaKVyt[jkvytjlbCnedtnytckmluhfvytghz1kbw".
Ввод пароля занял 35 секунд. Всего в нём 41 символ. Стойкость пароля примерно 16 символов (1 символ на обрезанное слово и ещё 4 случайных символа). Если проза нигде не опубликована и не будет опубликована, то пароль можно считать довольно стойким.
Какие пароли нужно запоминать
Запоминать нужно только те пароли, которые невозможно записать в менеджере паролей.
Как я уже упоминал, в списке сервисов указан менеджер паролей Keepass. У него есть клоны под Linux (указаны на сайте Keepass).
Когда я запускаю компьютер с шифрованным жёстким диском, мне приходится вводить пароль наизусть (возможно, частично по бумажке). Потому что я не могу использовать менеджер паролей. При этом, длина пароля выбирается как для важного пароля. В принципе, вы можете и не шифровать жёсткий диск: из-за этого не устанавливаются обновления операционной системы (если это - VeraCrypt).
Далее следует загрузка операционной системы. У меня полностью отключена возможность удалённых логинов, так что требования к паролю не очень сильные. ОС уже защищена тем, что находится на зашифрованном жёстком диске. В таком случае, пароль от ОС можно хранить полностью на бумаге, не утруждая себя запоминаниями чего-либо. Длина пароля может выбираться как для неважного. Собственно, пароль на ОС обычно неважный, даже если диск не зашифрован, и может храниться на листочке целиком, если вы не боитесь, что листок у вас сопрут (дети, воры и т.п.). Вы можете запоминать часть пароля, а часть записывать на листе бумаги. Главное - не потеряйте листок.
Далее у меня есть пароль от базы данных менеджера паролей. Он полностью отличен от пароля от жёсткого диска и от других паролей тем более. Его приходится помнить наизусть.
Также у меня есть ещё пара криптографических паролей, которые я помню наизусть.
Хотя база данных KeePass расположена на зашифрованном жёстком диске, она защищена отдельно.
Во-первых, из-за того, что компьютер противник может захватить во включённом состоянии, в то время как KeePass будет заблокирован и пароли не достанутся злоумышленникам.
Во-вторых, в связи с тем, что база данных резервно копируется в сеть. Поэтому, ей нужно быть надёжно зашифрованной.
Все остальные пароли я беру из базы данных KeePass или зашифрованных файлов.
Это касается и паролей к зашифрованным файловым контейнерам.
Смена пароля
Если нужно сменить пароль от сайта, я копирую запись в KeePass и добавляю к её имени "old". Потом генерирую новый пароль и ввожу его в основную запись. Когда база данных сохранена, я могу войти на сайт с помощью старого пароля из записи с пометкой "old", затем поменять пароль, сохранив новый в основной записи.
Таким образом, какое-то время у меня сохранено оба пароля, чтобы не удалить случайно тот, что нужен.
После смены пароля я выхожу с сайта. Затем вхожу на сайт, внимательно контролируя, что я ввожу пароль для входа именно из основной записи (новый). Если всё получилось, то запись с пометкой "old" можно отправить в корзину или удалить.
Часть паролей хранятся в зашифрованных текстовых файлах, но, в принципе, можно использовать отдельные базы KeePass.
Когда сменять пароль
Пароли для криптографии, обычно, не меняются либо меняются перед вводом новой информации. То есть они должны быть стойкими на всю жизнь шифротекста (зашифрованной информации).
С чем это связано?
Предположим, что у вас украли шифротекст. Пока ничего страшного. Ведь он зашифрован, а пароля у злоумышленника нет.
Если пароль слишком слабый, то злоумышленник его подберёт. И сделает он это вне зависимости от того, смените вы пароль или нет. Ведь у него копия, всё ещё зашифрованная старым паролем.
Поэтому, менять пароль от криптографии имеет смысл, если:
1. Вы усиливаете шифрование, переходя на другой алгоритм
2. Вы сменили программу шифрования
3. Вы вводите новую значимую информацию и хотите защитить её новым паролем. Сначала надо сменить пароль, а потом уже вводить эту новую информацию.
4. Если у вас есть неуверенность в стойкости пароля или другие причины его сменить
Остальные пароли, обычно, хранятся в менеджере паролей.
Пароль имеет смысл менять в следующих случаях:
1. Теперь вы считаете, что пароли должны быть длиннее (или теперь на сайте позволено их делать длиннее).
2. Пароль, по каким-то причинам, был слишком коротким и пришло время его менять (его могли подобрать за это время).
3. Поступило сообщение (в прессе и т.п.) о том, что сайт взломали или вам пришло сообщение о просьбе сменить пароль.
Руки от клавиатуры вверх!
Проверьте, не фишинговое ли сообщение, чтобы не ввести свой пароль где-то совсем на другом сайте.
В таком случае, лучше поменять пароль ещё пару раз через каждые две недели-месяц (уязвимости на сайте могут исправляться несколько дольше, чем об этом говорят вслух).
4. Это важный сайт и вы считаете, что на нём стоит сменить пароль профилактически.
5. Вы установили новую операционную систему или сменили устройство (если старое было взломано, то злоумышленник уже не узнает новый пароль).
6. Если вы заметили косвенные признаки взлома. Например:
* в логах сайта (если такие имеются) указано, что вы входили на него тогда, когда вы на него, вроде бы, не входили.
* в логах сайта (если такие имеются) указано, что вы заходили с незнакомых IP-адресов.
* вам пришла sms с кодом двухфакторной аутентификации, когда вы её не запрашивали (если её можно запросить только при вводе пароля, то стоит серьёзно задуматься на тему того, как вы потеряли пароль).
* кто-то что-то удалил из вашего почтового ящика, и, вроде бы, это были не вы (или совершил другие действия)
7. Если вы вводили свой пароль где-то на чужом компьютере (обязательно смените пароль как можно быстрее на своём компьютере!). (также не вводите пароль с клавиатуры в присутствии чужого человека)
8. Если у вас чувство, что за вами следят или другое беспокойство, и вы хотите сменить пароль.
Бывают такие случаи, когда сайт однократно взламывают. Потом данные с него продают в течении нескольких лет. Профилактическая смена пароля служит, в том числе, для этих целей. Если кто-то стащил такую базу, то если вы не меняли пароль несколько лет, то пароль в этой базе всё ещё актуален. И ваш аккаунт можно украсть.
Если же вы меняете пароли профилактически, то злоумышленник может продать кому-то уже устаревшую запись - ей уже нельзя будет воспользоваться для кражи пароля.
Расчёт длины пароля.