2016-04-05 4 views
2

У меня есть сервер на моей малине Pi с раскинским на нем. Чтобы управлять им, я создал клиент/сервер Java TCP/IP. Серверная сторона java работает весь день, и я могу подключиться к ней программой клиента. В принципе, сервер ждет некоторого кода и выполняет привязку команды к этому коду. Все работает отлично, на моем компьютере и на моем Android-смартфоне. Итак, я добавляю функцию аутентификации. У меня был белый список, и сервер проверял, разрешено ли IP-адрес клиента (полученному socket.getRemoteSocketAddress()) подключиться и отправить команду на мой сервер. Я добавил свой компьютер IP (локальный IP-адрес, потому что мой компьютер находится в той же сети, что и моя малина), и я добавил свой IP-адрес для смартфонов.Уникальный ключ от Android

Моя проблема: здесь, вместо моего ПК, у моего смартфона есть динамический IP-адрес. Поэтому, когда я добавляю свой IP-адрес в свой белый список, он работает хорошо. Но через несколько минут мой IP-смартфон изменился, потому что он динамический, поэтому мой смартфон больше не разрешен.

Так что я ищу уникальный ключ на своем смартфоне, который мог бы использовать для идентификации моего смартфона и только моего.

Также мне нужен аналогичный ключ на моем компьютере для идентификации моего компьютера таким же образом.

Знаете ли вы такой ключ?

ответ

2

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

+0

Это имеет дополнительное преимущество и для шифрования ваших соединений. –

+0

Я не очень хорошо знаком с TLS, вы имеете в виду просто простой .txt-файл на моем смартфоне и моем компьютере? С ручным сгенерированным ключом? –

+0

Простой ручной ключ будет работать. Однако любое соединение, которое вы публикуете в Интернете, также должно быть зашифровано. Вы можете посмотреть в TLS/SSL. –

Смежные вопросы