我們正在爲我們的應用添加Dropbox支持,現在我們有一個「應用密鑰」和「應用祕密」。我可以只讓那些以純文本格式的代碼,如同步API教程列出:我應該加密我的Dropbox應用程序密鑰/祕密嗎?
DBAccountManager* accountMgr =
[[DBAccountManager alloc] initWithAppKey:@"hf2hf892hf9y29h" secret:@"n29fh82h4f"];
(注:這是一個由密鑰和密碼,而不是我們的真實的)
但那麼如果他們想要從應用程序中提取它們,那將會非常容易。爲了防止這種情況發生,我們可以添加一些基本加密功能,以使密鑰更難找到,但顯然這些密鑰仍然會在某個時候用於調用DropBox帳戶管理器,因此無法保持完美安全。
這是某人擔心的事情,還是僅僅是一個真正想要進入並找出鑰匙的人的事實?
看起來你正在談論存儲用戶名和密碼的應用程序,這不是Dropbox集成的工作方式 - 應用程序本身具有與用戶憑據完全分離的「密鑰」和「祕密」。我誤解了你的答案嗎? Dropbox API爲您處理用戶憑據,因此應用程序作者甚至從未看到用戶的用戶名/密碼。 – Colen
@Colen我很害怕你。我自己使用過Dropbox SDK。正如您所述,您需要一個應用ID和一個密鑰才能讓Dropbox授權您的應用。如果您在應用程序中對這些代碼進行硬編碼,一個簡單的'strings'將以明文形式顯示它們。這意味着人們可以輕而易舉地發出身份盜用攻擊,將其惡意應用程序僞裝成您的身份,從而將用戶的安全暴露給攻擊者。 – 2013-07-20 18:26:57
但用戶仍然需要通過惡意應用程序登錄到Dropbox,對吧?所以它必須去:1)以某種方式下載惡意應用程序(在iOS上本身很難); 2)用戶通過惡意應用程序主動登錄到Dropbox; 3)攻擊者可以竊取文件。如果用戶無論如何都要登錄到Dropbox,攻擊者只能提供一個假的「Dropbox登錄」屏幕並以這種方式竊取所有用戶的文件。 – Colen