Android应用层加密的实现

Android应用层加密的实现,android,security,encryption,cryptography,Android,Security,Encryption,Cryptography,我希望通过实施应用程序级加密,在通过开放式wifi通信的应用程序中提供安全功能。wifi可由其他用户或应用程序使用,但为该特定应用程序传输或接收的数据应加密。我如何做到这一点?Android中是否有任何特定的库可以用来实现这一点?一般来说,您可以使用SSL/TLS(用于基于流的通信)和DTL(基于UDP的TLS变体)来保护您的通信,避免重新发明轮子。与流行的观点相反,TLS不需要X.509证书——TLS支持许多身份验证机制,包括OpenPGP、共享密钥等。不过,支持这些机制的库并不多(我们的Se

我希望通过实施应用程序级加密,在通过开放式wifi通信的应用程序中提供安全功能。wifi可由其他用户或应用程序使用,但为该特定应用程序传输或接收的数据应加密。我如何做到这一点?Android中是否有任何特定的库可以用来实现这一点?

一般来说,您可以使用SSL/TLS(用于基于流的通信)和DTL(基于UDP的TLS变体)来保护您的通信,避免重新发明轮子。与流行的观点相反,TLS不需要X.509证书——TLS支持许多身份验证机制,包括OpenPGP、共享密钥等。不过,支持这些机制的库并不多(我们的SecureBackbox支持)


当然,在没有TLS的情况下对数据进行加密也是可能的,但同样,避免实现自己的TLS也是一个好主意。在这种情况下,OpenPGP加密将非常方便-它支持基于密码和基于密钥的加密

如果您想保护android与后端服务之间的通信,您可以通过

使用加密库来使用android或Web服务。因为你显然不是密码专家(我们中很少有人是,我不是其中之一),所以你不想自己写——有非常复杂的攻击是基于实现的,而不仅仅是算法。我认为Android中没有内置任何库,但有大量java库。我建议将AES视为一种算法——它通常被认为在未来几年内是安全的。然后,使用X.509证书的TLS似乎可以满足大多数需求。即使是共享密钥也可以很容易地由两个自签名证书替换。PGP的主要区别在于它的密钥管理,而不是所部署的加密类型。@owlstead它完全是关于密钥管理的,是的,但是共享密码肯定比一对证书更容易维护和替换。是的,我想这是更容易的密钥管理和互操作性之间的折衷。而且可能缺少TLS功能的平台特定示例,而这些示例并不经常使用。。。