2016-04-05 7 views
2

私はそれにRasbianと私のラズベリーパイのサーバーを持っています。それを制御するために、私はJava TCP/IPクライアント/サーバーを作った。 Java Server Sideは一日中実行され、クライアントプログラムによって接続することができます。基本的に、サーバーはいくつかのコードを待ち、このコードにコマンドbindを実行します。 すべてが完璧に、私のコンピュータと私のAndroidスマートフォンで動作します。 認証機能を追加しました。クライアントのIPアドレス(socket.getRemoteSocketAddress()で取得)に接続してサーバーにコマンドを送信することが許可されているかどうかは、ホワイトリストとサーバーチェックで確認しました。 自分のコンピュータIP(ローカルIP、自分のコンピュータが私のラズベリーと同じネットワーク上にあるため)を追加しました。私は自分のスマートフォンIPも追加しました。Androidユニークキー

私の問題はここにあります:私のPCの代わりに、私のスマートフォンは動的IPを持っています。だから、IPをホワイトリストに追加すると、うまくいきます。しかし、しばらくすると、スマートフォンIPは動的なので変更されるので、スマートフォンはもう許可されません。

私は自分のスマートフォンを識別するために使用できるスマートフォンのユニークなキーを探しています。

また、同じ方法で自分のコンピュータを識別するために、私のコンピュータにも同様のキーが必要です。

あなたはそのような鍵を知っていますか?

答えて

2

ホワイトリストIPではなくTLSを使用します。サーバーで使用する自己署名証明書を生成し、電話、コンピュータ、または任意のデバイスに証明書を手動でインストールすることができます。証明書を持つデバイスだけがサーバーに接続できます。

+0

これにより、接続を暗号化するという追加の利点があります。 –

+0

私はTLSに精通していません。スマートフォンとコンピュータの単純な.txtファイルを意味しますか?手動で生成されたキーを使用していますか? –

+0

手動で生成された簡単なキーも同様に機能します。ただし、インターネットに公開する接続も暗号化する必要があります。 TLS/SSLを調べることができます。 –

関連する問題