【问题标题】:Android WifiP2pManager Encryption / SecureAndroid WifiP2pManager 加密/安全
【发布时间】:2015-02-25 17:06:40
【问题描述】:

我已经构建了一个基本的应用程序,借助 WifiP2pManager 类,它可以使用该应用程序向其他手机发送消息,而无需 WiFi AP。

但是,我现在正在尝试保护通过应用程序传输的消息,但我不确定如何最好地安全地执行此操作。

我想使用一种公钥加密形式,但由于该应用程序设计为在不访问 Internet 的情况下运行,因此我不确定解决此问题的最佳方法,因为在设备使用时需要共享密钥连接。

使用 SSLSockets 合适吗?如何使用它?

提前感谢您!

【问题讨论】:

    标签: android encryption android-wifi wifi-direct wifimanager


    【解决方案1】:

    WiFi P2P(直接)连接默认使用 WPA2 加密。连接的身份验证阶段使用 WPS(用户必须接受的推送对话框)并交换密钥以设置 WPA2。组形成后,您可以使用WifiP2pGroup.getPassphrase() 获取加密密钥。

    通信已经很安全了(假设设备成功连接,没有任何人搞砸连接建立),但如果你想确保一切都是防弹的,你可以在群主设备上设置一个辅助密钥,并与客户(组形成后的第一件事)。并使用辅助密钥对数据进行加密。

    发送:finalMessage = EncryptUsingGroupKey(message)
    接收:finalMessage = DecryptUsingGroupKey(message)

    “finalMessage”也将通过 WiFi P2P 使用 WPA2 密码进行加密/解密。

    对于具有内置完整性的加密/解密,我建议使用Facebook Conceal。它使 Android 上的加密变得非常容易和快速。它的主要目的是流式传输更大的文件(getCipherOutputStream 和 getCipherInputStream),但您可以使用加密/解密功能对较小的文件进行快速加密。但是,您需要修改基础 KeyChain 以使用特定密钥,而不是每次都生成一个随机密钥。

    关于 SSLSockets,你并不真的需要它们;基本的 Java 套接字应该可以解决问题。

    【讨论】:

      猜你喜欢
      • 2012-04-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-27
      • 1970-01-01
      • 1970-01-01
      • 2013-09-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多