2016-04-05 1 views
2

J'ai un serveur sur mon Raspberry Pi avec Rasbian dessus. Pour le contrôler, j'ai fait un client/serveur Java TCP/IP. Le côté serveur de Java s'exécute toute la journée, et je peux me connecter dessus par le programme client. Fondamentalement, le serveur attend du code et exécute la commande bind à ce code. Tout fonctionne parfaitement, sur mon ordinateur et sur mon smartphone Android. Donc, j'ajoute une fonction d'authentification. J'ai eu une liste blanche et le serveur vérifie si l'IP du client (obtenu par le socket.getRemoteSocketAddress()) est autorisé à se connecter et envoyer la commande à mon serveur. J'ai ajouté l'adresse IP de mon ordinateur (IP local, car mon ordinateur est sur le même réseau que mon Raspberry) et j'ai ajouté l'adresse IP de mon smartphone.Clé unique Android

Mon problème est ici: Au lieu de mon PC, mon smartphone a une adresse IP dynamique. Donc quand j'ajoute l'IP à ma liste blanche, ça marche bien. Mais après quelques instants, l'adresse IP de mon smartphone est modifiée car elle est dynamique, mon smartphone n'est plus autorisé.

Donc je cherche une clé unique sur mon smartphone que je pourrais utiliser pour identifier mon smartphone et seulement le mien.

De plus, j'ai besoin d'une clé similaire sur mon ordinateur pour identifier mon ordinateur de la même manière.

Connaissez-vous une telle clé?

Répondre

2

J'utiliserais TLS au lieu d'adresses IP blanches. Vous pouvez générer une certification auto-signée à utiliser sur votre serveur, puis installer manuellement le certificat sur votre téléphone, votre ordinateur ou tout périphérique. Seul un périphérique avec le certificat sera en mesure de se connecter à votre serveur.

+0

Cela a également l'avantage de crypter vos connexions. –

+0

Je ne suis pas vraiment familier avec TLS, vous voulez dire juste un simple fichier .txt sur mon smartphone et mon ordinateur? Avec une clé générée manuellement? –

+0

Une simple clé générée manuellement fonctionnerait également. Cependant, toute connexion que vous exposez à Internet doit également être cryptée. Vous voudrez peut-être regarder dans TLS/SSL. –