2015-09-04 205 views
0

我剛開始嘗試使用RESTful API。API密鑰內容加密

通常存在兩種:開放式API和您需要API密鑰的私有AP。 API密鑰的用途是什麼?他們可以確保數據加密嗎?我很困惑,因爲一些API提供者有兩套密鑰,一種是公共密鑰和另一種私有密鑰,可能也指向數據和內容安全性?總而言之,如果我使用RESTful API及其關鍵字查詢數據庫,那麼從數據庫接收到的響應將是安全/加密的,或者API密鑰僅用於驗證請求源?

+0

這個問題可能更適合[security.se] –

回答

0

API密鑰通常用於識別和身份驗證,而不是加密。客戶端將它們包含在請求中,因此服務器可以確定哪個客戶端正在發出請求,並確信該呼叫真的來自該客戶端。

(有時使用API​​密鑰進行身份驗證,有時候不會使用API​​密鑰,有可能使API密碼像密碼一樣,因此客戶端也需要用自己的用戶名或客戶端ID來標識自己,但趨勢並不是要打擾與此,併發布足夠複雜的API密鑰,他們將是唯一的所有用戶。)

在最簡單的情況下,服務器只是查找API密鑰,並獲取用戶ID。這通常發生在服務器的請求 - 響應週期開始時,在此之後,客戶端ID可用於任何進一步的檢查和日誌記錄,因此API密鑰不再相關。

在數據加密方面,目前還不清楚爲什麼要在服務器端做到這一點。通常對密碼進行加密,實際上也是對API密鑰進行加密的良好做法,但這些只是憑證。您通常不會加密服務器上的實際數據。它可以在角落案例中作爲「主機驗證託管」的手段完成,其中客戶端不想用服務器數據信任服務器,但嚴重限制了服務器的功能。

+0

謝謝一個人..我終於圍繞API和他們的鑰匙包裹我的頭..然而,讓我感到困惑的是這個--https: //www.docebo.com/lms-docebo-api-third-party-integration/關於他們如何解釋使用兩個鍵的任何想法?我最初認爲他們正在使用它來加密數據... –

+0

因此,如果我不得不使用他們的API(可以說認證用戶),那麼兩個密鑰中的哪一個會識別/驗證我到服務器?都?那麼如何?如果只有一個......那麼另一個的用途是什麼?我正在研究一個項目的API和它們的實現..所以請原諒我的noob問題.. ;-P –

+0

他們正在使用一個密鑰來識別和一個單獨的祕密進行身份驗證,而不是隻使用一個(更長+保證獨特)API密鑰來執行這兩個操作,類似於Twitter,它爲開發人員帳戶已註冊的每個應用程序使用這種方案。一旦身份驗證發生,他們可能只會關心密鑰(以及它的關聯客戶端記錄)。 – mahemoff