Запрос на мозговой штурм
Мне нужна идея для алгоритма аутентификации с некоторыми необычными требованиями.
Алгоритм будет использоваться для проверки достоверности сообщения отправителя.
Ограничения:
- "Транспортный уровень" - это электронная почта
- отправитель ( "Алиса" ) является человеком
- У Алисы есть доступ к веб-браузере и интернет-доступу (включая учетную запись веб-почты) в качестве ее инструментов; поэтому она не может делать очень сложные вычисления.
- Приемник ( "Боб" ) - это компьютер, не имеющий прямого доступа из Интернета.
- У Боба есть учетная запись электронной почты, которая периодически проверяется.
- Боб может отправить электронную почту.
- Не отправлять информацию третьему лицу: Алиса и Боб не могут отправлять информацию о внеполосности. Чтение некоторой общедоступной информации (например, времени с сервера времени) в порядке.
Предположение:
- Алиса может получить доступ к некоторой информации локально: может быть, она носит ноутбук, или мы даже можем предположить, что ее учетная запись электронной почты является взломанной, поэтому там может храниться конфиденциальная информация.
- Алиса и Боб могут обмениваться конфиденциальной информацией непосредственно за время до аутентификации (закрытые ключи?)
Non-цели:
- кодирование фактической полезной нагрузки сообщения не требуется.
- скорость/задержка не являются (большими) проблемами.
Некоторые идеи, которые помогут вам начать:
-
Обычный старый жесткий пароль.
Проблемы:- Атака грубой силы (маловероятно)
- возможна перехват сообщений, если связь выполняется в виде открытого текста, а затем возможны повторные атаки.
-
Простой алгоритм, основанный на текущей дате/времени
Пример: Алиса добавляет текущую дату, час и минуту и отправляет результат в качестве токена аутентификации, который Боб может проверить. Предположим, что доступ только для чтения к серверу времени не нарушает правило № 7 (нет стороннего участника).
Проблемы:- безопасность через неясность: алгоритм несколько безопасен только потому, что он не является общедоступным (ну, теперь это... oops!)
-
Какой-то механизм вызова-ответа - Алиса отправляет запрос на аутентификацию, Боб отвечает с вызовом, Алиса посылает ожидаемый ответ и фактическую полезную нагрузку.
Каковы детали механизма? Я не знаю:)
Что вы думаете? Я надеюсь увидеть некоторые творческие ответы; -)
Edit:
Может быть, пример сделает правило №3 более четким: допустим, что Алиса использует закрытое устройство с закрытым исходным кодом <cough>
iPhone <cough>
для доступа к Интернету, или она стоит перед общедоступным интернет-киоском.