如何唯一标识一个网络?
假设我想创建一个存储数据被加密的应用程序,只有我的应用程序能够读取它。
但是我希望只有当用户在特定网络上时才能访问应用程序。 例如,该应用程序是一款处理医院医疗记录的Android应用程序。 如何确保设备连接到医院的网络? 这个想法是,在这个网络之外,应用程序将无法工作。
这个问题与无线网络,无线设备或Android没有特别的关系,这是编程和网络识别的一般性问题。
证书可以这样做吗? 我对此很陌生。 网络“标识符”是否可能是伪造的? 例如,我很确定WiFi SSID很容易伪造。
干杯。
更多细节:假设本地数据的点不是用于“离线模式”,而是为了避免网络延迟。 在这种情况下,只有当连接到特定网络时,数据才能保持可访问,以防设备被盗。
但是,如果没有办法确定网络的身份......那么服务器如何回答“Heya我在正确的网络上?”这个问题。 如果没有反应出来,我知道我不是在正确的? (或者说服务器没有回应...)但是,如果应用程序被黑客攻击,那也可能是假的。
有趣的问题。
一般来说,本地存储数据的目的是为了在“脱机”时可以访问它。
不过,我认为这里可能存在一些根本的误解。 想必这样做的唯一原因可能是试图阻止被盗设备放弃它的秘密。 事实是,你不能。 如果设备不再处于您的物理控制之下,那么在它可以被黑客入侵之前只是时间问题。
如果我们正在谈论敏感数据,则不应将其存储在设备上。 相反,设备应在需要时从服务器检索所需的数据,并在不再需要时在本地删除它。
您希望设备只在连接到本地网络时才工作,这意味着您可以实现此目标。
作为一个侧面说明,这就是为什么诸如“远程擦除”存在的原因。 这也是为什么每当设备连接到您的网络时,都需要测试其身份验证和授权。 要点是,如果有人报告设备丢失或被盗,那么你需要能够禁止它从你的网络,如果设备支持这一点,远程禁用它。
请记住,完全可以从网络中拉出设备,因此禁用远程擦除执行。
因此,绝对不可能确保设备位于特定网络上。 所有这些都可以伪造。 设置给定名称的路由器并将其更改为MAC以伪装成任何名称并为其分配特定IP地址是很简单的。 对于所有的意图和目的,它可以看起来完全像一个接入点,你可以......这是正常运行的无线路由器,你可以在本地电脑商店购买。
您可以编写程序,以便将解密数据的密钥存储在医院网络的服务器上。 如果你的程序从不存储密钥,它会让别人在网络外访问设备数据变得更加困难(虽然不是不可能)。
正如克里斯指出的,远程擦拭绝对是可取的。 您可以放入逻辑,以便如果设备在未连接到网络时尝试读取数据,则会擦除数据(这可能会导致意外擦除)。 列入黑名单也很好,所以如果设备尝试重新连接到网络,则基本上可以将其刷新。 有一件事情会非常糟糕,如果你的网络出现故障,并且你的设备意外地被擦掉了。
任何网络都可以复制另一个的SSID,因此不可靠。 您可以开始使用SSID和已知路由器的MAC地址的组合,但可以复制MAC地址(尽管不在同一网络中),因此也不起作用。
坦率地说,除非有问题的无线网络使用证书来识别设备,否则您将没有可靠的方式来做到这一点,即使这样,假设您有一种方法可以在您的应用程序中获取使用无线网络在网络期间返回的证书认证。
链接地址: http://www.djcxy.com/p/12083.html