[О блоге] [наверх] [пред] [2020-05-19 11:56:46+03:00] [77bac39259bd3c6e37101de76b3fb6b1c5795fd8]
Темы: [input]

Про мышечную память и клавиатуры

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

Две недели находился вдалеке от компьютеров, не притрагиваясь ни к одной
клавиатуре. И когда ехал в электричке домой, уже в Московской области,
то начал думать про бытовые дела. Как я дома включу компьютер (хотя он
наверное и не выключался, чтобы помогать distributed.net), введу свои
парольные фразы... и тут я начал вспоминать свои парольные фразы. Две
основные у меня: одна на ~100, другая на ~120 символов. И в электричке
осознаю что я толком не помню ни одной. Бросает в пот, ведь у меня же по
большей части всё зашифровано, а потеря "ключа" равносильна потери
информации всей. Моё настроение резко упало ниже плинтуса.

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

Брюс Шнайер относительно недавно признавал что рекомендация о частой
смене паролей является плохой:
https://www.schneier.com/blog/archives/2017/10/changes_in_pass.html
https://www.schneier.com/blog/archives/2014/03/choosing_secure_1.html
https://www.schneier.com/blog/archives/2016/08/frequent_passwo.html
точнее эта рекомендация актуальна была именно для "паролей", тогда как
сейчас, уже давно, необходимо использовать парольные фразы. Если фраза
сильна, имеет много энтропии, то не надо париться. Смена фразы может
обернутся её потерей (забыли, как я почти) или сильным упрощением
(ослаблением) или утечкой (где-нибудь записали) -- риски неоправдано
высоки, опять же, если фраза является хорошей и сильной. Или, как
показывают исследования в его ссылках, люди для галочки могут чуть-чуть
изменять существующий пароль/фразу, делая это для галочки, но не внося
никакой дополнительной энтропии, превращая это в бессмысленное занятие.

    [оставить комментарий]
    комментарий 0:
    From: David Rabkin
    Date: 2020-05-21 08:52:57Z
    
    >одна на ~100, другая на ~120 символов.
    
    Что-то многовато. На хрена? У меня около двадцати символов. Покритикуй.
    
    >люди для галочки могут чуть-чуть изменять существующий пароль/фразу, делая это
    для галочки, но не внося никакой дополнительной энтропии,
    
    Насколько я понимаю, за энтропию хеш функция отвечает. Поэтому изменение одного
    символа достаточно. Очень удобно в случае детей. У меня двое, у них пароли
    отличаются на один символ.
    
    комментарий 1:
    From: Sergey Matveev
    Date: 2020-05-21 09:09:19Z
    
    *** David Rabkin [2020-05-21 11:52]:
    >Что-то многовато. На хрена? У меня около двадцати символов. Покритикуй.
    
    Если это парольная фраза, то в ней используются низкоэнтропийные
    символы: целые слова, возможно немного изменённые. В обычном английском
    тексте энтропии ~1-2 бита/символ. Если в пароле/парольной фразе более
    рандомные слова/буквы (изменённые по регистру, замены "o" на "0", и
    т.д.), то это добавляет, допустим, ещё 1-2 бита к энтропии на символ.
    20 символов, получается, это 4*20 = 40 битов энтропии, что мало и,
    очевидно, можно банально brute-force-ить.
    
    100-120 символов, при самом плохом раскладе, дают 100-120 бит энтропии,
    что предостаточно.
    
    >Насколько я понимаю, за энтропию хеш функция отвечает. Поэтому изменение одного
    >символа достаточно.
    
    Ни в коем случае! Хэш вообще не вносит энтропию. Попробовать пароль
    "foobar" или хэш от него -- ничем не отличается. Кол-во энтропии в них
    одинаково.
    
    комментарий 2:
    From: David Rabkin
    Date: 2020-05-22 15:39:43Z
    
    *** Sergey Matveev [2020-05-21 09:09]:
    >В обычном английском тексте энтропии ~1-2 бита/символ.
    
    Скорее всего, я не понимаю термин энтропия в паролях. Вероятность в букве—26
    по числу букв в алфавите. Поэтому количество подборов в плохом случае—26 в
    степени количества букв: 26 в степени 20 равно много. Добавление цифр и
    символов качественно ничего не меняет. Поэтому, на фиг.
    
    >Хэш вообще не вносит энтропию.
    
    Я имел в виду, что подобрать пароль к хешу от 1ochendlinnyiparol и от
    2ochendlinnyiparol одинаково затратно. Так почему бы не использовать такой
    паттерн?
    
    комментарий 3:
    From: Oskar Sharipov
    Date: 2020-05-22 18:30:36Z
    
    > Я имел в виду, что подобрать пароль к хешу от 1ochendlinnyiparol и от
    2ochendlinnyiparol одинаково затратно.
    
    Это правда, если "взлоумышленник" без раздумий запустил перебор символов. Надо
    считать, что люди, собирающиеся перебрать ваш пароль, -- умнее вас. Тогда зная
    паттерн генерирования пароля и фраз, в чем смысл перебирать (52+10)^N символов
    (английские буквы и цифры), если можно призадуматься и перебрать существующие
    русские слова в разном порядке? Или английские. Не важно.
    
    Это уже сильно проще (52+10)^N. Я для интереса взглянул первые результаты в
    выдаче по "количество слов в русском языке" и обнаружил, что слов в русском
    около 400 тысяч. Давайте попробуем грубо посчитать, какая энтропия получится,
    если нам известно, что Вася использует 6 слов: получается log2(400000^6) = 112
    бит, а с парадоксом дней рождений получаем 56 бит на перебор.
    
    > Так почему бы не использовать такой паттерн?
    
    Потому что его взлоумышленник будет перебирать до того, как начнет brute force.
    Обидно запускать brute force, если потом окажется, что паролем было имя-фамилия
    человека, поэтому до brute force приятно попробовать поперебирать имя-фамилию,
    год рождения, имена друзей, питомцев, потом популярные английские или русские
    слова. Вот мы и получили "1ochendlinnyiparol", потратив намного меньше усилий,
    чем перебор (26+10)^18 (цифры, буквы по 18 символов) вариантов.
    
    комментарий 4:
    From: Sergey Matveev
    Date: 2020-05-22 19:36:02Z
    
    *** David Rabkin [2020-05-22 18:38]:
    >Скорее всего, я не понимаю термин энтропия в паролях. Вероятность в букве—26
    >по числу букв в алфавите. Поэтому количество подборов в плохом случае—26 в
    >степени количества букв: 26 в степени 20 равно много. Добавление цифр и
    >символов качественно ничего не меняет. Поэтому, на фиг.
    
    Всё это не имеет смысл когда используются атаки по словарю, rainbow
    tables и всё из этой серии. И статьи (тьма их!) показывают что словарные
    атаки, мягко говоря, очень успешно справляются. Они не просто
    подставляют слова из словаря, но и учитываю всевозможные частые варианты
    их изменений (написать русское слово как-будто было набрано без
    переключения раскладки, замены "o" на "0", и всё такое прочее). Подобные
    изменения в словах и их варианты -- просто ещё один вариант для
    перебора, добавляется 1-2 бита энтопии.
    
    >Я имел в виду, что подобрать пароль к хешу от 1ochendlinnyiparol и от
    >2ochendlinnyiparol одинаково затратно. Так почему бы не использовать такой
    >паттерн?
    
    Не одинаково, так как, подобрав 1ochendlinnyiparol (если это буквально
    так и написано, то это очень быстро ломается словарными атаками), можно
    будет (и автоматически так и будет) пытаться перебирать числа у него.
    
    комментарий 5:
    From: Sergey Matveev
    Date: 2020-05-22 19:59:22Z
    
    *** Oskar Sharipov [2020-05-22 21:30]: [...]
    Вот-вот! Всё правильно сказано!
    
    >Давайте попробуем грубо посчитать, какая энтропия получится,
    >если нам известно, что Вася использует 6 слов: получается log2(400000^6) = 112
    >бит, а с парадоксом дней рождений получаем 56 бит на перебор.
    
    И это в идеальном случае, когда слова никак не взаимосвязаны и выборка
    действительно из всего множества доступных слов. А то многие люди
    считают что достаточно просто прям целых стишок или абзац из стиха
    взять, ведь там же много слов и их легко запомнить, но... у настолько
    связанных между собой слов энтропии, очевидно что меньше.
    
    Собственно, XKCD "password strength" как-раз это и показывает: https://xkcd.com/936/
    И тут считают что энтропия английского слова: 11 бит, типа выбор из 4тыс. значений.
    
    Лично я генерирую фразы примерно так:
    
    * генерирую псевдослучайную строчку (base64 от /dev/random):
      % passman gen
      CW6PP1XPP5Dar-xoDVETVg
    * оставляю например 9 символов/слов как пойдёт) и какая ассоциация в
      голове прийдёт +- первая, то записать в виде слова:
      cosine Wavelet Pied Piper eins XCom prettyprint patj dar archive
      Первые два слова связаны явно общей темой. "Pied Piper" это я недавно
      досмотрел Кремниевую Долину. Да и вообще видно что тут сплошная
      ИТ-тема. Поэтому заменю "prettyprint" например на, что там с "PP"
      ассоциируется, "polnyj p"
    * дальше как-то искажаю, но не особо сильно, чтобы не забыть, это всё:
      c0sine WaveLet PiedPiper ein$ XCom polnyj PE pyatj DAR archive
    
    Надо бы переделать, ибо слишком ИТ-контекст, да и связан с моими многим
    известными увлечениями, но лень уж. Так как когда-то учил немецкий, то
    стараюсь чтобы обязательно на нём что-то было, на английском, на
    русском, но транслитом, чтобы везде можно было набрать. Примерно такие у
    меня парольные фразы.
    
    комментарий 6:
    From: Oskar Sharipov
    Date: 2020-05-22 20:59:02Z
    
    > А то многие люди считают что достаточно просто прям целых стишок или абзац из
    стиха взять, ведь там же много слов и их легко запомнить, но... у настолько
    связанных между собой слов энтропии, очевидно что меньше.
    
    Кажется, в фильме "Игра в имитацию" (фильм о жизне А. Тюринга) раскрыли записи
    советского шпиона, потому что тот использовал для шифрования строчки из библии.
    Я сейчас попытался поискать, правдивая ли это история, но в биографии шпиона, с
    которого срисовали героя, ничего похожего нет. А жаль! Была бы поучительная
    история.
    
    > Лично я генерирую фразы примерно так: [...]
    
    О! Я помню свой восторг, когда впервые познакомился с парольными фразами.
    Кажется, я даже узнал о этих фразах с Diceware:
    
    https://theworld.com/~reinhold/diceware.html
    
    У меня способ генерации был такой. Я откуда-нибудь получал случайные числа,
    открывал страницу настоящего английско-русского словаря и сразу же записывал
    слово, которое первым попалось на этой странице. Редко менял свой выбор, когда
    слова попадались или слишком простыми (за такое глаз чаще цепляется), или
    наоборот очень сложными.
    
    Первая моя парольная фраза была придумана пролистыванием оригинала Fahrenheit
    451. Перечитать на английском у меня желания не хватило, и на полке книга
    пылилась. Вот так иронично получилось, что первый свой диск я, узнав больше о
    публикациях Сноудена, зашифровал (хоть и случайными) словами из "451 градуса по
    Фаренгейту" :-)
    
    > дальше как-то искажаю, но не особо сильно, чтобы не забыть...
    
    А я наоборот считал, что самый сок в парольных фразах в том, что их можно и не
    искажать. И всех даже ставить в известность: я использую слова из этого списка
    EFF, не ставлю пробелы -- ломайте меня! Потому что в списке слов много, а
    искажение мало добавит "технической" энтропии в текст, но добавит "умственного"
    веса: запомнить будет сложнее.
    
    комментарий 7:
    From: Sergey Matveev
    Date: 2020-05-22 21:26:24Z
    
    *** Oskar Sharipov [2020-05-22 23:56]:
    >Кажется, в фильме "Игра в имитацию" (фильм о жизне А. Тюринга) раскрыли записи
    >советского шпиона, потому что тот использовал для шифрования строчки из библии.
    
    Про такой случай не помню, но помню что смогли дешифровать (и официально
    раскрыть) шпиона нашего потому что за годы (или вообще десятилетия?)
    работы он ровно один раз поленился и переиспользовал свой одноразовый
    шифроблокнот. Или блокнот закончился и он не стал дожидаться получения
    нового. Слушали то его давно, но дешифровать ничего не могли, пока вот
    ровно один раз чисто человеческий фактор не позволил произвести
    дешифровку и доказательство его шпионажа. Ну такие случаи, думаю, со
    всеми из всех стран есть.
    
    >https://theworld.com/~reinhold/diceware.html
    
    Отличная статья! Не видел раньше. И FAQ отличный:
    https://theworld.com/~reinhold/dicewarefaq.html
    
    >Первая моя парольная фраза была придумана пролистыванием оригинала Fahrenheit 451
    
    Если твою фразу всё же смогут раскрыть, то будем знать что виноват в
    этом Рей Брэдберри был :-). Действительно иронично вышло.
    
    >А я наоборот считал, что самый сок в парольных фразах в том, что их можно и не
    >искажать. И всех даже ставить в известность: я использую слова из этого списка
    >EFF, не ставлю пробелы -- ломайте меня! Потому что в списке слов много, а
    >искажение мало добавит "технической" энтропии в текст, но добавит "умственного"
    >веса: запомнить будет сложнее.
    
    Всё так, всё верно! Почему же я использую? Во-первых, наверное просто
    чисто психологическая привычка, от которой стоит избавиться. Во-вторых,
    надежда что это всё же можно расценивать как некую соль для борьбы с
    радужными таблицами, но обосновать вряд ли смогу, просто так мне
    спокойнее исключительно из-за этих таблиц. Даже в FAQ Diceware всё же
    тоже упоминают про соль, предлагая её добавлять в виде ещё одного слова.
    Надо взять на заметку.
    
    комментарий 8:
    From: David Rabkin
    Date: 2020-05-24 17:25:21Z
    
    Почитал ссылки, посмотрел комикс… пока не увижу хеш от 1ochendlinnyiparolaaaa
    в радужной таблице, не поверю. И заодно от 2verydlinnyipasswordaaaa.
    
    комментарий 9:
    From: Sergey Matveev
    Date: 2020-05-24 18:06:59Z
    
    *** David Rabkin [2020-05-24 20:22]: не поверю
    
    Тут не вопрос веры, а вопрос вероятности и статистики.