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