2014-12-30 33 views
1

我們有api_key,api_secret用於訪問各種外部服務。這是當前的架構/模型。如何確保API密鑰在遠程訪問時被盜取

用戶(ID,電子郵件......) user_service_configs(ID,USER_ID,API_KEY,api_secret)

獨立應用程序調用上線同一臺機器和通行證(USER_ID,API_KEY,api_secret)上運行的獨立服務。 獨立服務使用傳入的信息遠程調用外部服務。 關鍵/祕密值是用戶特定的,所以每個人都會有所不同。 我想避免有人窺探這些值並竊取它們。

什麼是理想的設計來管理這些api_key/secret(s)。我應該只傳遞user_id並在服務器上執行數據庫查找以獲取api_key/secret(s),或者我可以做些什麼來使其安全。

回答

0

要解決您的標題中的主要問題「如何確保API密鑰在遠程調用時被盜」,我將推薦使用TLS/SSL。與遠程服務的HTTPS連接將確保任何敏感數據(如通過線路傳遞的API密鑰)都是端對端加密的。這可以防止惡意用戶可能訪問網絡的中間人攻擊風險。

恐怕我對您的架構不夠了解,以便進一步幫助管理API密鑰/機密。

+0

遠程服務不屬於我們,其中一些仍然不安全,這是我無法控制的。我正在考慮如何在應用程序環境中管理密鑰 – Rpj

+0

好吧,如果我理解正確,則您的擔心更多的是保護託管獨立應用程序和服務的計算機上存儲的API密鑰/機密。你能否在你關於環境的問題中提出更多細節?例如,這是Windows/Linux服務器環境還是移動應用程序?這聽起來像現在API用戶/密鑰存儲在數據庫中。這個數據庫位於何處? –

+0

MySQL數據庫託管在RDS實例中。服務器在基於Linux AMI的EC2實例中運行。目前,api鍵以純文本形式存儲在某個表中。 – Rpj

相關問題