Назад | Перейти на главную страницу

как идентифицировать клиента по его сетевой информации?

Я развертываю устройство Linux для нескольких клиентов. Устройство запускает приложение, которое подключается к моему серверу. Мне нужно однозначно идентифицировать клиента и сопоставить его ID на стороне сервера. Я не могу менять программное обеспечение устройства для каждого клиента индивидуально и не хотел бы проверять его MAC-адрес, чтобы упростить массовое развертывание. Я могу изменить приложение (и сервер). Какое хорошее решение этой проблемы?

Я думаю о разрешении IP-адреса устройства в имя хоста на стороне сервера. Прежде чем устройство подключится к серверу в первый раз, сервер должен быть настроен с этим именем хоста клиента. Меня беспокоит имя хоста, потому что у клиента может быть несколько имен хостов, и недопустимое может быть указано для конфигурации сервера. Также меня беспокоят обновления DNS, которые могут занять некоторое время. Возможно ли, что я не разрешу новый общедоступный IP-адрес, недавно назначенный правильному имени хоста?

РЕДАКТИРОВАТЬ:

Устройство представляет собой стандартный компьютер с Linux. Перед развертыванием мы распаковываем его и меняем его SD-карту на подготовленную, содержащую образ Linux с нашим приложением. Нет необходимости включать его. Устройство не может быть легко подключено к монитору, доступ только по сети.

Я не могу придумать надежный способ сделать это с помощью обычных средств обнаружения сети. ЕСЛИ вы не желаете ни настраивать устройство, ни записывать такую ​​информацию, как MAC-адрес или какой-либо другой уникальный идентификатор, и сопоставлять ее с записями клиентов, которые хранятся у вас на сервере.

Подумайте о том, как интернет-провайдеры отслеживают свое оборудование в помещении клиента (CPE), например кабельные модемы: почти всегда есть серийный номер и, конечно же, MAC-адрес, который хранится вместе с идентификатором клиента в их CRM или приложении для управления запасами.

Вы можете попробовать использовать обратный DNS общедоступного IP-адреса, в котором ваш ящик использует NAT / выходит, но это не всегда говорит вам, что вам нужно, чтобы согласовать это с клиентом.

А поскольку вы используете SSL, почему бы не использовать клиентские сертификаты (или пары ключей SSH и туннелировать ваш собственный протокол через SSH)? Это было бы уникальное, легко настраиваемое решение с множеством открытых библиотек и поддержкой сообщества, которое (как и предполагалось) гарантирует аутентичность сервера и клиента.