Android/Iphone应用程序将从服务器访问应用程序数据.
如何使用移动应用程序保护通信安全?
Expectation:对密码等敏感信息足够安全,除暴力破解外,不应有直接解密方式.
My requirements:
- 身份验证[仅授权应用程序]
- 完整性[消息之间不应修改]
- 隐私[如果嗅探到,通信应不可读]
My effort:
- SSL仅对服务器进行身份验证,而不对客户端进行身份验证.
- 我不能-不能使用对称加密[仅提供隐私]
- 无法进行数字签名[缺少隐私]
- PGP完全满足所有3项要求.
Problem :
- PGP要求在客户端应用程序上存储密钥.
- 在客户端应用程序上似乎没有确保密钥安全的方法.
- If the key is out, then PGP or Symmetric encryption are equally vulnerable.个
- 反向工程PGP密钥或对称密钥同样困难.
- In that case PGP is a non-sense burden on the mobile processor.个
- OAuth is again useless, since it also have a client key.个
那么,我应该如何推进这一点呢? How does the industry deals with this ?个
我是否应该实施非正式的方法:
- Use simple SSL and cross my fingers ?,因为如果密钥被盗,身份验证是不可能的?(使用此选项只能进行服务器身份验证)
Update:个
结论是使用AES,因为如果我能保证密钥的安全,那么我就和SSL一样好.