Я до сих пор довольно новичок в криптографии, поэтому, пожалуйста, извините за ошибки новобранец. Я shure, это было задано пару раз, но я понятия не имею, что искать.Аутентификация через AES
Итак, у меня есть сервер, который получает команды через http с моего смартфона. В настоящее время все шифруется с помощью AES с паролем, который может быть установлен в конфигурации сервера.
Проблема в том, что, когда кто-то перехватывает мои запросы, он не может расшифровать команды, но он может отправить зашифрованную команду на мой сервер.
Два решения я себе являются:
- шифрует метку времени в команде, поэтому они являются недействительными по истечении периода времени, но с тем недостатком, что до сих пор (в течение этого периода) команды могут быть повторно.
- сервер посылает некоторые случайные вещи для клиента, который должен зашифровать это и послать зашифрованный материал обратно (я думаю, что будет убивать мой HTTP подход)
Я Shure есть лучшие способы (может быть другой алгоритм ?), любая помощь приветствуется.
Опять же, у меня нет большого опыта работы с криптографией и программированием это просто хобби: D
Как насчет того, чтобы бросить HTTPS на проблему? – CodesInChaos
Как проверить подлинность https-клиента? Я только слышал об этом для серверов. – mafrasi2
Аутентификация сервера с помощью сертификата, а затем отправьте пароль простым HTTPS. – CodesInChaos