Как создать задачи обработки - PullRequest
0 голосов
/ 09 февраля 2019

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

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

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

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

ПРИМЕР:

Password:Foo
Length: 3
Answer: Bar
Keyword:123456
Output: encrypted(answer+keyword)->o3jubo3ibf32ib3o

ОТПРАВИТЬ-> o3jubo3ibf32ib3o, Ответ: Бар.

Затем клиент обрабатывает это и пытается найти пароль, угадывая и проверяя, если первые 3 буквы =bar.

Когда он находит ответ, он возвращает мне ключевое слово и пароль для проверки.Я проверяю, совпадает ли ключевое слово, продолжаю ли я, если нет.Я пытаюсь расшифровать вызов с помощью пароля, который они использовали, чтобы увидеть, есть ли в нем первые 3 буквы, равные ответу.Если мне когда-нибудь дадут пароль, который не имеет первых 3 букв, равных паролю, - я помещаю в черный список IP-адрес на 5 минут или около того и разрываю соединение.

Похоже, это будет работать?

Была ли уже создана библиотека для этого?

Есть ли примеры в c ++, которые я могу посмотреть?

Какой метод шифрования будет лучшим для этого подхода?

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