2012-02-16 30 views
0

我打算在我的REST应用程序中实现API安全性,其中我需要为授权URL(在服务器PHP应用程序上)工作,它将会话令牌返回给客户端(移动客户端android ,iphone,BB,wp7,wp8)请求这个URL。使用RSA(与openssl)反对HTTPS

寻找可能的解决方案后,我发现这两个完美的我的需求。但我无法决定哪种解决方案能长期保存下来。

  1. 在OpenSSL中使用RSA加密技术将用户数据传输到授权URL(我正在使用openssl来坚持标准和安全的方法)。
  2. 我有一种预感,可能只是使用HTTPS来传递用户数据并让操作系统处理加密/解密。

但是,我特别倾向于第一种方法,因为在这里客户端将无法成功调用授权url,除非它有权访问公钥。但我不确定这种方法会如何与所有移动客户端融合在一起。

任何帮助,非常感谢!..

+0

OpenSSL的使用RSA仅用于密钥交换,实际数据是使用对称加密算法,如AES(这是出于性能原因进行)加密。这是一个非常普遍的误解。 – jupp0r 2012-02-16 12:32:14

回答

0

通过SSL发送的验证URL时,你应该确定。 SSL将对服务器进行身份验证,并确保数据在中间攻击中受到保护,以防窃听和人为攻击。然后URL将通过这个受保护的通道发送,因此在验证URL之后,服务器可以确定客户端确实是正确的实体。然后令牌可以通过相同的SSL会话安全地发送到客户端

如果您使用自己的方案,则必须设置自己的密钥管理方案和协议。这是非常难以正确的。您对公钥钥匙访问的评论很好地表明您将失败。 SSL也不是完美的,但它有很多的审查,它失败的机会很渺茫。

换句话说,选择#2超过#1。