Как защитить неинтерактивную систему аутентификации для неограниченного числа клиентов? - PullRequest
1 голос
/ 18 января 2020

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

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

Мой первый подход заключается в использовании идентификатора uuid в качестве имени пользователя и функции, которая хэширует идентификатор с другими значениями Dynami c вместе с секрет, но это кажется мне немного хакерским ... Генерируемый ha sh должен быть постоянным для каждого устройства.

Клиенты не могут использовать непростые методы хеширования / шифрования. Вот список вещей, которые они могут вычислить: MD5 га sh, SHA1 га sh, XOR между двумя строками base64, SHA256 га sh и ARCFOUR.

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

Есть идеи, как этого добиться с помощью лучшего метода аутентификации? (С учетом этих ограничений)

1 Ответ

0 голосов
/ 18 января 2020

Вы говорите, что IoT-устройство не может принимать пользовательский ввод. Может ли он отображать или сообщать что-либо пользователю? Если это так, вы можете рассмотреть поток устройств OAuth2 .

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

...