В этой статье расскажу про свой дипломный проект на тему «Иконографический способ аутентификации пользователя. Можно ли пройти аутентификацию так, чтобы стоящий рядом человек, следя за вашими действиями, так и не смог пройти аутентификацию за вас». В этой публикации кратко расскажу, в чём суть проекта.

image

Постановка задачи


  • Разработать программу и реализовать криптографическую аутентификацию, при прохождении которой, сторонний наблюдатель так и не смог бы ее повторить;
  • Определить вероятность взлома, такой аутентификации.

Запоминание пароля


image

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

Аутентификация


image

Аутентификация проходит следующим образом. На панели случайным образом располагается общий набор иконок, среди которых будут 3 парольные иконки из выбранного нами пароля. Пользователь должен визуально найти три парольные иконки, мысленно соединить их линиями, получив треугольник и щелкнуть мышкой внутрь этого треугольника.

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

Сразу же появляется несколько вопросов:
  • Какова вероятность случайного попадания в парольный треугольник?
  • Сколько этапов аутентификации нужно пройти для надежной защиты?

Вероятность попадания случайного щелчка мыши в парольный треугольник


Проведем статистическое моделирование и выясним вероятность попадания щелчка мыши в парольный треугольник в 1 этап при различных соотношениях сторон.

image

Из данной гистограммы видно, что, чем больше парольная панель приближается к квадратному виду, тем вероятность взлома становится меньше и приблизительно равна 10%. Следовательно, наиболее предпочтительное соотношение сторон – 1:1.

Расчеты были проведены при ширине панели в 5, 15 и 20 ячеек для иконок. Однако полученные результаты практически не отличаются друг от друга.

Но 10% вероятности попадания в парольный треугольник слишком велика. Поэтому аутентификация и проводится в несколько этапов и получается, что на втором этапе аутентификации, вероятность взлома приблизительно равна 10^-2.

Настройки программы


  1. В программе можно настраивать насыщенность панели иконками, с одной стороны 100% насыщенность затрудняет поиск парольных иконок, с другой стороны при насыщенности менее 20% есть вероятность, что стоящий рядом человек может проанализировать и понять, какие иконки являются парольными. Оптимальная насыщенность панели иконками 40-60%;
  2. Для надежной защиты достаточно 5 этапов прохождения аутентификации 10^-5;
  3. Так же настраивается соотношение сторон панели.

Заключение


  • При отношении сторон окна ввода пароля 1:1 вероятность взлома минимальна. Однако, изменение отношения сторон вплоть до 0,8:1 не вызывает критического роста вероятности взлома;
  • Существенного влияния размера иконографической панели на вероятность взлома не выявлено;
  • Степень заполнения парольной панели должна лежать в пределах от 40 до 60%. Оптимальным значением заполнения является 50%, которое, с одной стороны, позволяет затруднить раскрытие пароля сторонним наблюдателем, а с другой стороны, не вызывает трудностей при поиске парольных иконок;
  • Проведение иконографической аутентификации в 5 этапов вполне достаточно для надёжной защиты большинства приложений. Для особо критичных приложений, требующих повышенных мер безопасности, можно проводить аутентификацию в 6 или 7 этапов.
  • Проведенные вычислительные эксперименты позволяют заключить, что для иконографической аутентификации, проводимой в 1 этап, вероятность взлома довольно высока и составляет величину порядка 0,1 (10%). Однако, при увеличении количества этапов вероятность подбора пароля убывает по экспоненте, и, например, для 5 этапов не превышает 10^-5.
  • При иконографическом способе парольной защиты, пароль, как таковой, по сети не передается, даже в зашифрованном виде. По сети передается только координаты щелчка мышкой в окне ввода пароля, и только сервер решает, попадает ли эта точка внутрь треугольника, заданного парольными иконками. Следовательно, даже полный перехват всей информации обмена терминала с сервером, не дает дополнительных данных для взлома пароля. Кроме того, пароль невозможно подсмотреть, так как, даже стоя у пользователя за плечом, нельзя узнать, внутри какого треугольника он кликнул. Следовательно, единственным возможным способом взлома иконографической защиты является случайный щелчок в окне ввода пароля.

Список источников


Идея для написания программы была взята отсюда. Были проведены статистические наблюдения и определена вероятность взлома парольного треугольника.
Поделиться с друзьями
-->

Комментарии (99)


  1. EminH
    29.07.2016 16:00

    del


  1. TOLK
    29.07.2016 16:08
    +4

    Лень расчеты делать, какова вероятность подбора в зависимости от кол-ва этапов, при постоянном «щелчке» по центру, не смотрели?


    1. DrPass
      29.07.2016 16:36

      Тот же вопрос на языке вертелся. И плюс еще очень хотелось бы посмотреть, насколько данный метод парольной защиты удобен для пользователя. И при запоминании иконок, и при их визуальном поиске на экране.


      1. lKAMiKADZE
        29.07.2016 17:43
        +1

        Я выложил малую часть своего диплома, хотел поделиться самим методом аутентификации. По поводу удобности, был проведен метод экспертных оценок, различным пользователям было предложено оценить трудность поиска парольных иконок на панели аутентификации при степенях её заполнения от 40% до 100%. И пользователи по 10 бальной шкале оценили трудность поиска парольных иконок, по усредненным оценкам было видно, что самая оптимальная удобность поиска иконок лежит в интервале от 40%-до 60%.
        По поводу клика в центре экрана, вероятность взлома не выяснял. на досуге проверю


        1. Protos
          01.08.2016 05:40

          проверьте распределение вашего ГПСЧ, гистограмма которого скорее всего является Гауссовским, то есть парольная иконка всегда будет всегда ближе к центру


          1. avost
            01.08.2016 09:21

            Обычно, программные ГПСЧ, всё же, равномерные.
            А вот сильно поднять вероятность взлома анализом треугольников, по-моему, совсем не сложно.


        1. ibKpoxa
          01.08.2016 12:15

          Какое среднее время «ввода пароля»?


    1. lKAMiKADZE
      29.07.2016 18:40

      Лень расчеты делать, какова вероятность подбора в зависимости от кол-ва этапов, при постоянном «щелчке» по центру, не смотрели?

      Самый банальный способ кликанья и один из самых эффективных по взлому, вероятность взлома увеличилась в 2 раза. Выход здесь только один, привязать логику к появлению парольных иконок, т.к. в данный момент их расположение подчиняется равномерному закону.


      1. Stawros
        29.07.2016 19:11

        Мне кажется при привязке к паролю возможна ситуация, когда алгоритм привязки станет известен, что приведёт только к ускорению взлома. Лучше исходить из того, что алгоритм уже заранее известен взломщику (по аналогии с алгоритмами шифрования / хеширования).


        1. lKAMiKADZE
          29.07.2016 19:13

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


  1. claygod
    29.07.2016 16:10
    +2

    Ещё можно изначальный набор сделать 4 иконки, тогда для 4-х выборов пользователя каждая комбинация 3-х иконок не будет похожей на предыдущую. Ещё можно и одинаковые иконки показывать.

    И я бы ещё рассмотрел вариант полностью замостить поле иконками и просто знакомыми иконками окружать с трёх сторон искомую.


  1. Zolg
    29.07.2016 16:12
    +5

    По сети передается только координаты щелчка мышкой в окне ввода пароля
    примерно так работают некоторые клиент-банки, предлагающие ввести пароль с виртуальной клавиатуры (порой c нестандартной раскладкой). Только это скорее защита от кейлоггеров, чем от перехвата по сети (транспортные вопросы гораздо эффективнее решать другими методами)
    Кроме того, пароль невозможно подсмотреть, так как, даже стоя у пользователя за плечом, нельзя узнать, внутри какого треугольника он кликнул. Следовательно, единственным возможным способом взлома иконографической защиты является случайный щелчок в окне ввода пароля.
    Несколько наивно. Наблюдателю с видеокамерой и компьютером задача проблемы не составит.
    По сценарию пользователь несколько раз тыкает в треугольник, образованный одними и теми же пиктограммами.
    Число всех возможных треугольников не столь уж и велико. Для 100 элементов возможно всего 161700 сочетаний по 3.
    По нескольким выборам пользователя вполне реально определить пиктограммы, образующие искомый треугольник.
    А если учесть психологические факторы (кликанье в центр), то задача еще упростится.


    1. VEG
      29.07.2016 16:17

      Искомых иконок может быть гораздо больше трёх. При установке такого пароля можно просить пользователя задать, например, 10 ключевых иконок, из которых для каждого этапа будет выбираться 3-4 случайных.


      1. Zolg
        29.07.2016 17:05
        +2

        Кем выбираться?
        Пользователем? (на экран всегда выводится полный набор иконок, а пользователь в уме выбирает, какие из них он будет использовать на этот раз). Отличный план: анализ вы конечно затрудните, но не принципиально. Зато вероятность ложноположительного срабатывания возрастет весьма сильно: сервер-то не знает, какие иконки выбрал пользователь, поэтому за правильный ответ будет засчитываться попадание в ЛЮБОЙ из возможных треугольников.

        Сервером? (сервер заранее выводит на экран случайный набор иконок). Вообще шикарный план, дающий возможность узнать «пароль» без всякого подглядывания за пользователем, пользуясь лишь подсказками со стороны сервера. Какими подсказками? Набор иконок выводится случайный, но в нем ВСЕГДА присутствуют РОВНО три составляющих «пароль». Обновляйте страницу, собирайте статистику, анализируйте.


        1. VEG
          29.07.2016 17:26

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


          1. Zolg
            29.07.2016 17:41
            +1

            > При этом искомых могло быть не только три, но и 4, никто не запрещает и 5 выводить
            Мешают примечания к первому варианту: чем больше «парольных» иконок выводится, тем выше вероятность ложноположительного срабатывания: выводя 5 пиктограмм вместо трех за правильный ответ сервер обязан засчитать любой из 10 возможных «верных» треугольников. Какой процент площади они покроют — прикидывайте сами.
            В любом случае, сервер обязан вывести не меньше трех «парольных» пиктограмм. Это позволяет одним статистическим анализом успешно определить парольные «пиктограммы». Пятничным вечером не готов делать расчеты, но по интуитивным прикидкам для практически применимых количеств пиктограмм для определения парольных (или по крайней мере очень вероятно парольных) будет достаточно всего-навсего десятка-другого наборов пиктограмм от сервера.


            1. dasHimmel
              30.07.2016 19:52

              мне кажется, речь шла об одной «парольной» зоне из 3-4-5 иконок


              1. Zolg
                30.07.2016 20:25

                Да? Которой из? Треугольник-то из трех точек строится один, а вот с четырьмя и более вершинами возможны варианты


        1. Strepetarh
          29.07.2016 17:29

          Конечно, сервером. Есть сильное ощущение, что задача «подобрать 10 иконок так, чтобы в каждом наборе из выборки встречалось ровно 3 из них» — очень сложная задача, даже на большой статистике. Полный набор иконок большой, на каждой картинке их несколько десятков. Брутфорсится нелегко: например, если иконок всего лишь 100, то вариантов наборов по 10 штук — примерно 10^13, если меня не обманывает калькулятор. Без брутфорса вообще непонятно как подступаться.


          1. Zolg
            29.07.2016 17:44
            +2

            не нужен здесь брутфорс, совсем не нужен
            для затравки хватит банального частотного анализа


            1. Strepetarh
              29.07.2016 18:05

              Не хватит. С ходу, алгоритм как обмануть любой частотный анализ: Берём ещё набор из 10 неправильных иконок и на каждой картинке рисуем по 3 из них тоже. У этих 10 вся статистика будет точно такая же, как и у правильных 10.


              1. Zolg
                29.07.2016 18:10

                Отлично. Здесь действительно без брутфорса не обойтись: придется проверить целых ДВА пароля :)


                1. Strepetarh
                  29.07.2016 18:21

                  Ок, два мы пробрутфорсим. Но мы можем вообще все неправильные иконки отдавать с такими же частотами, как и правильные. Какой вообще частотный анализ мы можем провести? Считать встречаемость каждой отдельной иконки? А мы их все будем с одинаковой частотой отдавать, это элементарно сделать правильно подобрав размеры множеств. Встречаемость пар, троек? Троек у нас слишком много. Пары мне кажется не дадут ценную информацию, при том что их тоже многовато. Из-за того, что показываются случайные 3 из 10, статистическую зависимость между ними проследить очень сложно.


                  1. Zolg
                    29.07.2016 18:34

                    > каждой отдельной иконки?
                    малоперспективно

                    > Встречаемость пар, троек?
                    Естественно. Частота появления троек из «парольных» символов драматически выше, чем непарольных.

                    > Троек у нас слишком много
                    Вы же не в уме задачу решать собрались? Если иконок всего 200, то возможных троек всего 1313400, несколько мегабайт оперативки.

                    > Пары мне кажется не дадут ценную информацию
                    Дадут, дадут. Разница в вероятностях не такая драматичная, как у троек, но все же значительна.

                    > при том что их тоже многовато
                    19900. влезет даже в некоторые микроконтроллеры.


                    1. Strepetarh
                      29.07.2016 19:05

                      Так. Действительно, пятница вечер, мне уже числа кажутся бОльшими, чем они есть на самом деле :) Но тем не менее, из 10 элементов можно составить 120 троек. То есть чтобы у нас какая-то тройка встретилась 10 раз (совсем небольшая статистика), нам надо иметь больше тысячи картинок-образцов. Казалось бы, не так уж и много. Но это даёт две возможности защититься от таких атак: не выдавать больше сотни картинок в одни руки :) Если человек с сотого раза не может пройти авторизацию, то что-то тут не так. И выдавать неправильные иконки с неравномерно распределёнными частотами. Почаще выдавать тройки, включающие в себя одну правильную и две неправильные иконки. Или например разбить все иконки на 10 групп, чтобы в каждой группе была 1 правильная, и каждый раз показывать 3 группы. Или ещё лучше, 4 группы, но в каждой только 3/4 иконок. Тогда по итогам частотного анализа мы сможем только восстановить это разбиение на группы, и у нас останется 1000 вариантов пароля (если иконок всего было 100), которые мы по этим картинкам уже никак не проверим.
                      В общем может быть я опять что-то путаю в цифрах, но я уверен, что частотный анализ можно обмануть, если выдавать неправильные иконки не совсем случайно.


      1. BelBES
        29.07.2016 22:18
        +1

        Не понимаю, в чем тут затруднения для взлома… даже если предположить, что сценариев выбора иконок будет больше (например, целевые иконки лежат не в вершинах треугольника, а на сторонах, использование более сложных паттернов и тд и тп), все равно имея данные об единократном вводе пароля (расположение иконок, траектория движения и т.п.) позволяет злоумышленнику свести перебор до довольно небольшого числа комбинаций...


    1. claygod
      29.07.2016 16:24

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

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

      Можно запоминать не иконки, а логическую задачу в духе «укажите трёх людей разного возраста», или «транспорт+цветок+цифра». Но анализу и расшифровке это точно будет поддаваться легко.

      UPD: VEG меня опередил.


      1. Zolg
        29.07.2016 17:06
        +1

        Это годно для капчи, но никак не для пароля


    1. lKAMiKADZE
      29.07.2016 17:49

      По сценарию пользователь несколько раз тыкает в треугольник, образованный одними и теми же пиктограммами.
      Число всех возможных треугольников не столь уж и велико. Для 100 элементов возможно всего 161700 сочетаний по 3.
      По нескольким выборам пользователя вполне реально определить пиктограммы, образующие искомый треугольник.


      Если было б все так просто, при каждом клике, иконки перемешиваются и на экране уже появляется совсем другой набор иконок, а если еще учитывать, что у пользователя пароль из 5 иконок, то на экране будут всегда видны три иконки из общего пароля. И даже если следить за монитором пользователя, вычислить истиные парольные иконки практически невозможно.
      Моя задача была не спорить, хорош ли этот способ аутентификации или нет, моя задача была провести аналитический и статистический анализ и показать вероятность взлома.


      1. Zolg
        29.07.2016 17:55
        +1

        при каждом клике, иконки перемешиваются и на экране уже появляется совсем другой набор иконок
        именно это делает возможной описанную атаку.
        а если еще учитывать, что у пользователя пароль из 5 иконок, то на экране будут всегда видны три иконки из общего пароля
        В зависимости от того, что именно под этим подразумевается, вы получите либо большую вероятность ложноположительных срабатываний, либо создадите канал утечки «пароля» с сервера. Почитайте дискуссию выше.
        моя задача была провести аналитический и статистический анализ и показать вероятность взлома.
        и поставить рядом табличку: «методами, отличными от рассмотренных ломать категорически запрещается» :)


        1. lKAMiKADZE
          29.07.2016 18:09

          =)


  1. VEG
    29.07.2016 16:14
    +2

    В студенчестве, лет 8 назад, тоже был вдохновлён такой статьёй и писал реализацию этой аутентификации для сайтов в качестве курсача. Приятно было вспомнить :)


    1. lKAMiKADZE
      29.07.2016 17:53

      Вот и мне понравилась эта тема =)


  1. LoadRunner
    29.07.2016 16:28
    +2

    А какова вероятность промахнуться мимо треугольника, начать всё заново и промахиваться снова, пока не задолбает искать иконки и плюнуть на это метод?
    Я не издеваюсь, меня интересует вопрос применения на практике — насколько жизнеспособен такой способ, где баланс между удобством и криптостойкостью?


    1. RZimin
      29.07.2016 17:09

      Поддержу вопрос. Пароль, я смогу набрать с закрытыми глазами в любом состоянии даже с учетом его смены раз в 90 дней. Тут же, когда я пару раз «промахнусь» планшет полетит разлочиваться об стенку.


      1. lKAMiKADZE
        29.07.2016 17:58

        парольный треугольник не будет слишком «маленьким», при формировании координат иконок по равномерному закону распределения т.е. вершин треугольника, было условие, что площадь не должна быть меньше определенной, сильно на вероятность взлома это не повлияло, более того, было проведено стат моделирование и оказалось, что площади треугольников подчиняются не равномерному, а экспоненциальному закону распределения, т.е. чем больше площадь треугольника, тем реже она появляется, соответственно чем меньше площадь, тем чаще.


        1. Pakos
          01.08.2016 12:38

          Ну т.е. делая несколько снимков экрана с каждой итерацией ввода мы очень быстро поймём что за иконки, ибо они будут ближе к зоне нажатия. А учитывая что пользователь будет тупить, выискивая нужные (не будем брать вариант водящего по экрану пальцем в игре «найди 100500 отличий») — это не будет чем-то невероятным. Графический ключ так, конечно, ещё легче ловится, но он и вводится моментально.


    1. sasha1024
      30.07.2016 19:52

      Я когда-то не стал регистрировать e-mail на aol.com, потому что не смог пройти их капчу.
      Серьёзно.
      (Правда, мне мыло нужно было для технических целей, чё-то там проверить хотел.)


  1. lorc
    29.07.2016 16:31
    +1

    Ну как для диплома — неплохо. Только вот с этим бы я поспорил:

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


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

    Вообще, получится очень неплохой диплом по взлому этого метода.


    1. claygod
      29.07.2016 16:38

      Если перехватывать всю информацию — мы получим и расположение иконок и координаты щелка.

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

      Да, надо исходить из того, что именно записывает.


      1. LoadRunner
        29.07.2016 17:25

        Во время ввода пароля перед каждым этапом поворачиваться на 90 градусов всем телом вместе с девайсом.
        Проблемой будет только камера, спрятанная на одежде жертвы.
        Хотя как можно со стороны подглядеть и записать? Углы обзора не такие уж и фантастические у устройств, да и расстояние играет свою роль. Если только сверху снимать.


      1. lKAMiKADZE
        29.07.2016 18:02

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


        1. Zolg
          29.07.2016 18:12

          > какие то исчезают какие то новые появляются, панель динамически изменяется, что и затрудняет поиск пароля.
          упрощает


      1. VVizard
        31.07.2016 18:42

        На самом деле не обязательно, из этого исходить. Например на android есть защита через графический пароль и там достаточно мельком посмотреть и ключ понятен, плюс на стекле видно путь пальца.
        Я бы с удовольствием заменил стандартный графический пароль на тот который описан в статье.

        В последнее время это правда менее актуально т.к. почти на всех устройствах доступ по отпечатку.


  1. Jump
    29.07.2016 16:37
    +3

    Возможно я чего то не понимаю.
    Обычно пароль хранится в голове у пользователя и нигде более.
    На сервере храниться только его хэш.
    Пользователь ввел пароль — сервер хэшировал и проверил совпадение хэша.

    Я не вижу как это возможно в случае с множественным перебором иконок.
    Получается в случае такой аутентификации сервер должен хранить пароль?


    1. claygod
      29.07.2016 16:42

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


    1. DrPass
      29.07.2016 16:49
      -3

      > На сервере храниться только его хэш.
      Учитывая, что почти все распространённые криптографические хэш-функции уязвимы к коллизионным атакам, данной степенью защиты можно в принципе пренебречь. Она эффективна только от обычного SELECT'а из таблицы паролей.


      1. ov7a
        29.07.2016 17:04
        +3

        Уязвимы к теоретическим атакам? 4da8c2a8381c7084a2388c6bb6b0b11c — md5, довольно слабый, вперед, найдите коллизию!


    1. InfiniteCode
      29.07.2016 19:59

      В принципе, можно последовательность картинок представить как пароль, а потом его хешировать. Другими словами, нажали на картинки с индексами 1, 2, и 3, на выходе получили текстовый пароль вида 123, потом его хешируем и больше на сервере не храним. Другой вопрос, что криптографическая стойкость такого очень низка.


      1. iqiaqqivik
        30.07.2016 19:52

        А как узнавать, что передать на сервер / как трактовать координаты, когда юзер кликнул внутрь потенциальных стапятисот треугольников?


  1. AndreySu
    29.07.2016 16:46
    -7

    Мда, не те уже нынче дипломные работы.


  1. BlackJet
    29.07.2016 16:48
    +4

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


    1. lKAMiKADZE
      29.07.2016 18:05
      +2

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


  1. A3a
    29.07.2016 17:07

    Было бы интереснее если сторонний наблюдатель даже имея видео процесса не смог бы его повторить. Т.к. сторонний наблюдатель не сможет повторить и обычный пароль, набранный на клавиатуре с высокой скоростью (если не рассматривать аутентификацию на телефоне, но в таком случае и попасть по треугольнику будет проблематично). Но имея видео процесса аутентификации не сложно будет определить пароль, тем более что количество этапов будет служить тут минусом. Единственный плюс, на мой взгляд, это то, что пароль открыто не передаётся, но даже в этом случае, если подразумевать, что злоумышленник имеет доступ к каналу связи, он будет иметь доступ и к координатам переданных иконок, соответсовенно это даже будет лучше чем видео запись и сможет с большой вероятностью найти нужные иконки.


    1. Zolg
      29.07.2016 17:12

      Единственный плюс, на мой взгляд, это то, что пароль открыто не передаётся
      это гораздо проще, эффективней и надежней решается традиционными методами.
      Нет никаких проблем на яваскрипте реализовать вариацию на тему CHAP'а с преферанс солением и pfs.


      1. A3a
        29.07.2016 17:20

        Но тут пароль вообще никуда открыто не передаётся, даже яваскрипту.


  1. Akon32
    29.07.2016 17:26

    А что со взломом?
    Не пробовали составить алгоритм, который на основе N наборов (картинка; координаты щелчка) будет строить возможные треугольники и затем выдавать вероятные ключевые иконки? (думаю, это невозможно только в случае, если иконки не повторяются в N наборах)
    Наверно распределение не-ключевых иконок тоже должно быть неслучайным, чтобы затруднить такую атаку. У вас некоторые иконки повторяются местами, значит они — не-ключевые?


    1. lKAMiKADZE
      29.07.2016 18:07

      У вас некоторые иконки повторяются местами, значит они — не-ключевые?

      Верно, в этом проект сырой, в идеале иконки не должны повторяться.


  1. uSasha
    29.07.2016 17:27
    +1

    Идея напоминает пароль на Blackberry 10. На практике он не так удобен как обычный, так как его нельзя вводить вслепую и падает скорость.
    Хотя есть ситуации, где невозможность узнать пароль наблюдателю решает.


  1. old_bear
    29.07.2016 18:11

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


    1. lKAMiKADZE
      29.07.2016 18:12

      Идея отличная. Но боюсь за год написать не успел бы, плюс протестировать нужно было.


  1. xytop
    29.07.2016 18:38

    А как насчет такого алгоритма:
    Программа показывает 10 иконок.
    Пользователь смотрит на иконки и жмет на кнопку с количеством иконок, которые он выбрал ("0", "1", "2 и больше"). Это повторяется, скажем, 5 раз. Если все 5 раз пользователь ответил верно, значит аутентификация прошла.


    1. Prototik
      29.07.2016 19:13
      +1

      Это ещё более простая и легковзламывая схема, чем у ТС.


  1. Jabher
    29.07.2016 19:43
    +3

    Если несколько усложнить систему, то все реализуется даже на минимальном банке выбранных иконок.

    При создании профиля человек дополнительно выбирает, хочет он кликнуть ВНЕ или ВНУТРИ треугольника.
    Соответственно, получается схема типа ВНЕ, В, В, ВНЕ, ВНЕ. Можете посчитать вероятность вычисления паттерна, но мне кажется, она минимальна.


    1. Pakos
      01.08.2016 12:44

      А ещё с какой попытки пользователь сможет логиниться правильно.


  1. serafims
    29.07.2016 20:20
    +1

    Я почему-то предположил вначале, что при задании пароля пользователь вносит какие-то сведения о иконке (ну например наличие красного угла и ещё нескольких признаков, а потом программа случайно подбирает из миллионов иконок набор разных, при этом только в нескольких присутствуют признаки…


    1. lorc
      29.07.2016 21:26

      Считается что у нас есть такая же программа и мы можем посмотреть список допустимых признаков. Сколько их будет? Ну наверное сотню-две я смогу придумать. Этого очень мало.


  1. janatem
    29.07.2016 21:20
    +3

    По грубым прикидкам система получается очень слабой. Я сделал оценку для случая трех парольных иконок. Для поля 10x10 при заполнении 50% достаточно около пяти подглядок, чтобы с большой вероятностью вычислить все три элемента. То есть достаточно пронаблюдать всего за одним (!) актом аутентификации.


    Идея очень проста — рассмотрим множество всех троек на экране (пусть их будет N штук) и будем выбрасывать те, которые не составляют треугольник, содержащий указанную пользователем точку. На каждом шаге это множество сокращается, нужно лишь оценить, насколько. В статье утверждается, что вероятность, случайно ткнув, попасть в нужный треугольник составляет 10% (я не проверял, но верится). Значит, наше множество подозрительных троек сократится в среднем в 10 раз, когда пользователь сделает первый шаг. Дальше есть существенная корреляция между шагами, которую трудно учитывать, но если ей пренебречь, то за k шагов область поиска сузится примерно в 10k раз. Получаем такое уравнение: 10-kN ~ 1, откуда выражаем k. При этом требуемое количество подглядок (k) логарифмически зависит от размера поля, так что тупое увеличение размера бесполезно.


    Можно было бы попробовать увеличить N настолько, чтобы тройки не лезли ни в какую память, но и это тоже не годится, поскольку N зависит от размера поля всего лишь как O(x6).


  1. Kiemal
    29.07.2016 22:26

    В 80-х писал дипломную работу с похожими требованиями по задаче — «человек стояший рядом не узнает пароля. Графических дисплеев у нас не было. Машина — ИБМ 370. Терминалы с зелеными буквами и цифрами. вопрос был решен так: Екран запонаятся ма 90% случайными цифрами.Пользователь знает координаты (не помню уже, кажется 5). Вводит эти 5 цифры которые находятся в этих координатах.


  1. ursaa
    29.07.2016 22:26

    Ну реально, есть механизмы ну ПОЛНОСТЬЮ нерабочие — на примере капчи, «выберите 3 картинки с тортиками» — и оно не срабатывает. А со множествами массивов так и вообще…


  1. azoyan
    29.07.2016 23:31
    +1

    А если сделать не по трем иконкам, а по двум. Область куда нужно кликнуть будет меньше и выглядеть будет примерно так: image


    1. lKAMiKADZE
      29.07.2016 23:49

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


      1. splav_asv
        30.07.2016 08:13
        +1

        Надо проверять, может быть неудобство именно в оценке середины треугольника. С прямой может стать лучше. Тем более область можно сделать ромбом или эллипсом для уменьшения попаданий мимо.


        1. sumanai
          31.07.2016 17:16

          Надо проверять, может быть неудобство именно в оценке середины треугольника.

          Наоборот, в треугольнике можно кликать куда угодно, и как раз клики точно в центре дают больше информации для анализа на предмет взлома пароля.


      1. perfect_genius
        30.07.2016 09:29

        Может тогда не точно в воображаемую линию, а просто в перпендикулярную секущую? Т.е. на данной картинке можно было бы нажать даже внизу между иконкой с глазом и красно-зелёным V.
        И каждый раз эта секущая будет то вертикальной, то горизонтальной, то по диагонали.


    1. pestilent
      30.07.2016 10:56

      Чем сложнее злоумышленнику авторизоваться случайно, тем больше информации о пароле получит злоумышленник, который подглядывает за авторизацией. От этого никуда не уйдешь. По настоящему надежный вариант придумать сложно, я не уверен, что он в принципе возможен.


    1. Frankenstine
      30.07.2016 13:32
      +1

      Тогда вы сразу «спалите» наблюдателю две парольные иконки.


  1. vics001
    30.07.2016 03:13

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


    1. Akon32
      31.07.2016 13:32

      Если пользователь вводит значение y функции y=f(x,k) от входных данных x и своего ключа k, желательно, чтобы обратная функция k=g(x,y) трудно вычислялась. Сумма здесь явно не подходит, поэтому придётся сказать «привет» методам хэширования с солью.


      1. vics001
        31.07.2016 21:36

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

        Обратную функцию в простом понимании не возможно вычислить кроме как перебором, k — секретное число, x — это массив чисел, функция как сумма абсолютно нормально подходит. Вопрос только в том, сколько человек будет подсматривать. Хорошо бы после 2-3 таких попыток менять секретное число k.


        1. Akon32
          05.08.2016 11:05

          >Неправильно, наоборот пользователь должен вычислить в уме и ввести это число
          Это и будет хэширование с солью k, если взять нормальную хэш-функцию.

          Менять секретное число после нескольких попыток — это уже ближе к одноразовым блокнотам, чем к вашей схеме. Но одноразовые блокноты гораздо надёжнее.
          У вас (с суммой) после 2х подсмотренных попыток уже можно делать предположения, чему равно k.


          1. Aracon
            07.08.2016 16:32

            Но одноразовые блокноты гораздо надёжнее.

            Мягко сказано)


          1. vics001
            07.08.2016 23:58

            Думаю идея та же самая, грубо говоря это вырожденная схема, вы меняете свое число, когда вы знаете, что за вами подсматривают. Если за вами все время подсматривают, то схема вырождается в одноразовый блокнот, который все время держится в голове. Но это совсем другая задача.

            Главная вещь, чтобы конечно держать число и функцию в голове, а не открывать блокнот, так как см. пункт 1 за тобой подсматривают.


  1. zim32
    30.07.2016 04:08

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


  1. zim32
    30.07.2016 04:33

    А если так к примеру сделать. Составляю алгоритм: круг — прибавить 8, квадтрат — прибавить 44, треугольник — прибавить 3, штрихованый — умножить на 2, сплошной — поделить на 2. Сервер выдает 5 картинок я ввожу число. Такое как подобрать вообще?


    1. zim32
      30.07.2016 04:51

      Хотя достаточно будет подсмотреть все возможные комбинаций ) недосып сказывается… хотя…


    1. Aracon
      30.07.2016 13:00
      +1

      По-моему, в этом и некоторых предыдущих комментариях идет попытка изобретения таблицы одноразовых паролей


      1. zim32
        30.07.2016 13:09

        Да мой метод не оаботает так как от перестановки слагаемых сумма не меняется. Вариантов перебора будет мало


  1. dimkss
    30.07.2016 10:57

    Вы не рассматривали идею использования букв, или пар букв вместо иконок? Мне кажется так было бы проще запомнить пароль.


    1. lKAMiKADZE
      30.07.2016 11:00

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


      1. dbanet
        30.07.2016 12:56

        В смысле? Что-то не могу понять, какая разница между буквами и иконками.


        1. lKAMiKADZE
          30.07.2016 13:42
          +1

          Вы наверно не так поняли, я не про замену иконок на символы имел ввиду, а сам принцип аутентификации другой, но при нем так же нельзя явно узнать истинный пароль. Я уже точно не помню, но там ты должен выбрать пароль из нескольких цифр, потом при аутентификации тебе предлагают 5 слов, каждая цифра это определенная буква в слове. там слова какие должны быть специальные, я уже точно не помню, но как сказал ранее, принцип аутентификации совсем другой.


      1. Beowulfenator
        30.07.2016 20:38

        Таких методов десятки :) Вот какие-то малазийцы анализируют штук 30 разных алгоритмов аналогичной направленности.


  1. John_SC
    31.07.2016 18:42

    Предлагаю вариант динамического пин-кода.
    Загадываешь 4 числа (или больше/меньше), например 9,8,7,6. Прописываешь их в настройки. Затем при авторизации система выдает рандомное число (менее загаданного). А пользователь должен ввести ответное число, такое чтобы сумма получилась 9. Затем также второе, третье, n-ое.
    У нас в армии так было. Только с одним числом.


  1. Deosis
    01.08.2016 08:29
    +1

    Проблема в том, что многие пользователи скорее всего обведут мышкой свои парольные иконки и только потом кликнут в центр (или в случае планшета будут водить пальцем над экраном)
    Мы же пытаемся не выдать пароль даже случайно.
    При этом задача сильно переусложнена. Достаточно разделить экран на 2 части и просить выбрать ту, в которой парольных иконок больше. Но для надежности придется проводить больше раундов.


    1. sumanai
      01.08.2016 08:35

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


    1. lKAMiKADZE
      01.08.2016 14:29

      в твоем случае вероятность взлома в 1этап равняется 50 % многовато, придется гораздо больше этапов проводить, в представленном метод вероятность взлома в 1 этап равняется 10% и то, для надежной защиты нужно провести около 7 этапов


  1. mamontovdmitriy
    01.08.2016 12:48

    11 лет назад писал курсовую про неразглашаемые пароли, но дальше курсовой дело не пошло. Хотя задумка-то интересная, я бы даже сказал, перспективная в некоторых областях.


  1. FunApple
    01.08.2016 12:49

    Идея занятная, но, думаю, не самая удобная в использовании как личный пароль, а вот как каптча — достаточно интересный вариант.