![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Есть старая дилемма о том, какие придумывать пароли. Запоминающиеся могут быть подобраны.
Стойкие к подбору - забываются, их приходится записывать, это риск утечки.
Я хочу рассказать не про использование ключей вместо паролей, не про двухфакторную авторизацию, не про хранилище паролей, защищённое мастер-паролем... Нет, я хочу предложить способ делать стойкие и при этом запоминающиеся пароли.
Для запоминания информации часто придумывают мнемонические правила. Оказывается, что запомнить связную последовательность слов, лучше ещё и зарифмованую, проще, чем просто последовательность цифр, хотя, казалось бы, информации получается не меньше. Для любой условно-случайной последовательности можно придумать мнемоническую фразу, такую, чтобы она была не только синтаксически корректна, но даже осмысленна и зарифмована. Например, фраза для запоминания десяточной записи корня из двух 1.41421356237... по количеству букв в словах звучит так: "Я Катя, я дура, но я вот нашла корень из два!" (можно сказать и "корень из двух", потому что после тройки идёт семёрка, и поэтому тройку можно округлить до 4).
Но придумывать мненомические правила для случайно сгенерированных паролей трудно.
Я предлагаю идти от обратного. Можно придумывать псевдо-мнемонические фразы и смотреть, что они кодируют. То есть, фразы, которые запоминаются, рифмованы, но при этом с немного странным построением и отвлечённом смыслом. Примерно как белые палиндромы, которые на первый взгляд звучат, как палиндромы, но палиндромами не являются. Например, фраза "в Амстердаме как-то раз Коля написал рассказ" по первым буквам кодирует пароль "vAktrKnr". "Ты поедь в Америку, походи по берегу" - "TpvAppb". Подобную фразу запомнить не сложнее, чем слово-пароль, но при этом такой пароль уже не подбирается, даже если знать общий принцип его формирования, потому что возможных фраз много больше, чем слов (это следует из мнемонических правил для запоминания произвольных длинных последовательностей), и совсем не трудно придумать фразу, которая почти наверняка не встречалась ни в каком имеющемся тексте. Можно делать разные пароли на разных сайтах, привязывая мнемонические фразы к сайту по смыслу, тогда не будет проблемы запомнить, какой пароль от какого сайта, и утечка одного пароля не даст доступ к другим ресурсам. Фразу необязательно делать рифмованой - можно любой запоминающейся.
Конечно, у такого пароля энтропия (мера случайности) будет меньше, чем у случайно сгенерированного пароля той же длины, но при этом думаю, что его стойкость будет вполне достаточна для того, чтобы его не подобрали. И уж точно выше, чем у словарного пароля с модификацией некоторых букв или добавлением пары цифр. Но, конечно, делать пароль на основе распространённой фразы вроде "без труда не выловишь и рыбку из пруда" или строчки из любимой песни - плохая идея. Фраза должна быть уникальна.
Стойкие к подбору - забываются, их приходится записывать, это риск утечки.
Я хочу рассказать не про использование ключей вместо паролей, не про двухфакторную авторизацию, не про хранилище паролей, защищённое мастер-паролем... Нет, я хочу предложить способ делать стойкие и при этом запоминающиеся пароли.
Для запоминания информации часто придумывают мнемонические правила. Оказывается, что запомнить связную последовательность слов, лучше ещё и зарифмованую, проще, чем просто последовательность цифр, хотя, казалось бы, информации получается не меньше. Для любой условно-случайной последовательности можно придумать мнемоническую фразу, такую, чтобы она была не только синтаксически корректна, но даже осмысленна и зарифмована. Например, фраза для запоминания десяточной записи корня из двух 1.41421356237... по количеству букв в словах звучит так: "Я Катя, я дура, но я вот нашла корень из два!" (можно сказать и "корень из двух", потому что после тройки идёт семёрка, и поэтому тройку можно округлить до 4).
Но придумывать мненомические правила для случайно сгенерированных паролей трудно.
Я предлагаю идти от обратного. Можно придумывать псевдо-мнемонические фразы и смотреть, что они кодируют. То есть, фразы, которые запоминаются, рифмованы, но при этом с немного странным построением и отвлечённом смыслом. Примерно как белые палиндромы, которые на первый взгляд звучат, как палиндромы, но палиндромами не являются. Например, фраза "в Амстердаме как-то раз Коля написал рассказ" по первым буквам кодирует пароль "vAktrKnr". "Ты поедь в Америку, походи по берегу" - "TpvAppb". Подобную фразу запомнить не сложнее, чем слово-пароль, но при этом такой пароль уже не подбирается, даже если знать общий принцип его формирования, потому что возможных фраз много больше, чем слов (это следует из мнемонических правил для запоминания произвольных длинных последовательностей), и совсем не трудно придумать фразу, которая почти наверняка не встречалась ни в каком имеющемся тексте. Можно делать разные пароли на разных сайтах, привязывая мнемонические фразы к сайту по смыслу, тогда не будет проблемы запомнить, какой пароль от какого сайта, и утечка одного пароля не даст доступ к другим ресурсам. Фразу необязательно делать рифмованой - можно любой запоминающейся.
Конечно, у такого пароля энтропия (мера случайности) будет меньше, чем у случайно сгенерированного пароля той же длины, но при этом думаю, что его стойкость будет вполне достаточна для того, чтобы его не подобрали. И уж точно выше, чем у словарного пароля с модификацией некоторых букв или добавлением пары цифр. Но, конечно, делать пароль на основе распространённой фразы вроде "без труда не выловишь и рыбку из пруда" или строчки из любимой песни - плохая идея. Фраза должна быть уникальна.