我正在制作一个 Web 应用程序,用于分发使用其客户端的公钥加密的数据。目前,这适用于我自己分发的专用设备。在发货之前,我将公钥/私钥对刷入设备固件。
然而,由于这是 2017 年,我还想制作一个 android 应用程序,让任何 android 设备都像我销售的设备之一,因为这对客户来说更容易。我遇到的唯一瓶颈是密钥的分配。
我可以在第一次启动应用程序时在 Android 设备上生成一个公钥/私钥对,并将它们安全地存储在内部存储中,但我需要找到一种方法将生成的 Android 设备的公钥发送到我的服务器,所以我的服务器可以用它加密数据。
我不能简单地将公钥作为 HTTP 请求发送到我的服务器的原因是,我不希望有计算机的人能够生成公钥/私钥对并将其发送到我的服务器也能够接收数据作为。反编译Android应用程序或使用wireshark查找用于注册新密钥的url非常容易。
如果我要使用这种方式,我将如何在我的服务器端验证请求来自合法的 Android 设备?