Динамический пароль 2.0

Автор: admin от 19-01-2012, 15:34, посмотрело: 2480

Данная заметка является логическим продолжением статьи Динамический пароль, опубликованной ранее.

Итак, далее будет:

  • итоги на написанную ранее статью
  • еще идеи на её счет
  • расскажу о принципиально другом «динамическом пароле 2.0», лишенном недостатков первого.
  • а так же, скандалы, интриги, расследования идею как задать пароль:

    который вы сами не сможете набрать в состоянии алкогольного опьянения,

    который можно набрать на глазах у друга, и состоящий из символов «QQQQQ»

    и он не сможет его повторить ;)

  • Прежде всего, предлагаю не относиться слишком критично к данной статье, оставьте в восприятии толику юмора, ведь это прежде всего идеи, брошенные в море облачного IT-интеллекта ;)

    Итоги из статьи Динамический пароль

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

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

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

    Преимущества — бесполезность идеи взлома пароля методом перебора (пока идет перебор паролей, сабж может стать тем, который уже был использован генератором ранее). Защита от «подглядываний» пароля (точный пароль, набранный через [1-N] минут может оказаться уже неактуальным)

    Идеи и пояснения

    Меня, как и некоторых других Хабра-юзеров, посещала идея динамического пароля еще несколько лет назад.

    Тогда, я сформулировал её для себя следующим образом:

    Есть шаблоны: MM, YY, DD и т.д. перечисляем сюда все шаблоны из форматера дат и указанные автором в парент-топике и еще кучу на свой вкус.

    Что бы задать пароль надо совместить статический текст пароля, с динамическим, что бы это сделать, выбираем обрамляющие символы которые будут указывать где начинается и оканчивается шаблон. Например можно использовать двойные квадратные скобки "[[....]]", по принципу наклонной черты в java "".

    Несколько примеров шаблонов пароля сформированные таким образом:

  • "qqq[[MM]]qqq" (верный пароль «qqq+2х-значная минута+qqq»)
  • "[[YYYY]] тысяч обезьян в [[USER]] сунули банан" ( :-) )
  • "2+2=[[M]]" (верный пароль — «2+2=первая цифра текущей минуты»)
  • "[[SS]][[SS]][[M]][[SS]][[SS]]" (пароль, завязанный на секунды, потребует предварительной его подготовки к определенной секунде и минуте в будущем ;-) )
  • Можно даже предусмотреть вычисление внутри "[[...]]", например:

  • k1s$a[[MM]][[MM+1]][[MM+9]][[MM+7]][[MM+9]] (пароль, это «k1s$a»+ повторяющиеся 4 раза цифры текущей минуты, к которым прибавляем цифры вашего года рождения)
  • [[HH%2==0]] (пароль true или false, в зависимости четная минута или нет)
  • [[MM+-2]] (пароль, это текущая минута с погрешностью +- 2 минуты)
  • [[MM+-2]][[MM+-2]][[ MM+-2]][[MM+-2]][[MM+-2]] (развитие предыдущего пункта — пароль (например 1920222120) может состоять из разных цифр в пределах погрешности и никто не догадается что базовая цифра, это текущая минута — 20 в моем случае )
  • В-общем, фантазия безгранична, главное в этом деле, рассказать юзеру в режиме конструктора все необходимые шаблоны и правила, а так же обратить его внимание, что время или еще какие-либо динамические параметры нужно формировать исходня из таймзоны GMT например, а еще лучше, выводить время на которое надо ориентироваться в будущем где нибудь ненавязчиво в пределах логин страницы.

    Динамический пароль 2.0

    Вот и подошла очередь описать принципиально новый «Динамический пароль 2.0». Включаем юмор, и оставляем включенной логику ;)

    Представьте ситуацию:

    Вы видите как ваш друг набирает в поле пароля банальный пароль «QQQQQ» или «11111» и входит, вы говорите ему, что он полный чайник, раз использует подобный пароль, а он в ответ, выходит из программы и предлагает ввести его вам. Вы пытаетесь ввести пароль 5 раз и вас не пускает, после этого вы вспоминаете что когда-то читали статью на хабре Динамический пароль и предполагаете что пароль просто перегенерился и, скорее всего, тогда на часах была или 11-я минута или что то еще… Но ваш приятель садится за комп и опять у вас на глазах начинает вводить «11111» и его пускает!

    В чем секрет?

    В фразе «Динамический пароль 2.0» основным словом является "динамический", но не в смысле «изменяемый», а в смысле «динамичный, танцевальный» ;)

    Помните реакцию винды на неправильный ввод пароля 3 раза подряд? Она не дает ничего вводить пару минут, что бы исключить подбор пароля, а потом, через пару минут снова дает 3 попытки.

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

    Не буду разжевывать то, что вы и так поняли, и сразу приведу шаблон пароля нашего «продвинутого» приятеля:

    Q[[T>500]]Q[[T>500]]Q[[T>500]]Q[[T>1000]]Q

    Где [[T>500]], говорит о том что между символами должно быть время в миллисекундах большее чем пол секунды, а между предпоследним и последним символами — больше секунды.

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

    Сразу о преимуществах:

  • легкий набор
  • возможность хранить хеш самого пароля на сервере
  • возможность, при отменной реакции и чувстве такта, задать простейшую мелодию при «настукивании» пароля
  • невозможность подбора, так как время это тоже параметр
  • wow! вы можете рассчитать минимальное время набора пароля (скажем вы легко набираете его за 1.5 секунды), а в случае вашего измененного сознания опьянения, не сможете набрать его с такой же скоростью, так как время реакции сильно пострадало и база защищена вами от вас! ))
  • Теперь о недостатках:

  • Сложное программирование, придется точно контролировать время между вводимыми символами, для реализации надо хорошенько подумать что сделать на клиенте, а что на сервере
  • возможно, сложное придумывание шаблона (если шаблон сложнее чем набрать 3 символа, подождать 3 секунды, набрать остальные символы пароля)
  • дополнительное нешифруемое поле в базе в нагрузку к Хешу пароля, для того что бы знать правила контроля времени между символами или общего времени набора
  • Не забываем, всё это концепты, идеи для размышления, не надо сразу прикладывать идею к сайту «Одноклассники» и его хомячков обитателей ;)

    В общем, интересных проектов и удачи Всем!



    Категория: Информационная безопасность » Криптография

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

    Добавление комментария

    Имя:*
    E-Mail:
    Комментарий:
    Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
    Введите два слова, показанных на изображении: *