【问题标题】:Android unique key安卓唯一键
【发布时间】:2016-04-05 19:43:59
【问题描述】:

我的 Raspberry Pi 上有一台服务器,上面有 Rasbian。为了控制它,我制作了一个 Java TCP/IP 客户端/服务器。 java 服务器端整天运行,我可以通过客户端程序连接它。基本上,服务器等待一些代码,然后执行绑定到这段代码的命令。 在我的电脑和我的安卓智能手机上,一切都完美无缺。 所以我添加了一个身份验证功能。我有一个白名单,服务器检查是否允许客户端 IP(由socket.getRemoteSocketAddress() 获得)连接并向我的服务器发送命令。 我添加了我的计算机 IP(本地 IP,因为我的计算机与我的 Raspberry 在同一个网络上),我也添加了我的智能手机 IP。

我的问题在这里:我的智能手机不是我的 PC,而是一个动态 IP。因此,当我将它的 IP 添加到我的白名单时,它运行良好。但是几次之后,我的智能手机 IP 被更改了,因为它是动态的,所以我的智能手机不再被允许使用。

所以我正在我的智能手机上寻找一个唯一的钥匙,我可以用它来识别我的智能手机,而且只有我的。

我还需要在我的电脑上有一个类似的密钥,以同样的方式识别我的电脑。

你知道这样的钥匙吗?

【问题讨论】:

    标签: java android sockets debian tcp-ip


    【解决方案1】:

    我会使用 TLS 而不是白名单 IP。您可以生成一个自签名证书以在您的服务器上使用,然后在您的手机、计算机或任何设备上手动安装该证书。只有具有证书的设备才能连接到您的服务器。

    【讨论】:

    • 这还具有加密连接的额外好处。
    • 我对 TLS 不是很熟悉,你的意思是我的智能手机和电脑上只是一个简单的 .txt 文件?上面有手动生成的密钥?
    • 一个简单的手动生成的密钥也可以工作。但是,您公开到 Internet 的任何连接也应该被加密。您可能需要研究 TLS/SSL。
    • 发送号码电话你怎么看?因此,如果我有我的 sim 卡,我可以从任何智能手机连接,但只有 sim 卡所有者可以连接(我)并且对于我的计算机,我可以使用假号码?你怎么看?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-25
    • 2015-07-27
    • 1970-01-01
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    • 2017-05-04
    相关资源
    最近更新 更多