2012-02-16 71 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。