2016-05-15 43 views
1

APP中有一個sqlite數據庫,我想用SQLCipher對它進行加密。我們知道,在代碼中存儲密碼是不安全的,因此我將使用包標識符作爲密碼的一部分。使用iOS APP的捆綁標識符作爲密碼安全嗎?

所以,我想知道,如果捆綁標識符很容易從一個設備或越獄設備上的APP獲取?

謝謝。

+0

這不會是在毫釐安全可言...... –

+1

這是平凡的已下載你的應用程序解壓縮IPA文件,看到的Info.plist和所有資源的任何人。 Info.plist中沒有任何內容被隱藏。 – rmaddy

回答

0

安全是困難的,真正唯一的保護是不給任何人任何東西。如果你確實需要給他們一些東西,那麼最好問他們一個密碼。如果你不能問他們,那麼即使你對數據進行加密,你所能做的最好的辦法就是混淆,因爲你可以做的最好的辦法就是隱藏密碼,以便更難找到,或者找出如何創建密碼。

所以,可以很容易地找到應用程序的捆綁ID,問題是有多難制定出你所使用的密碼和如何可貴的是,它是保護數據。

如果數據是真正有價值然後保護得當,這可能涉及要求用戶輸入密碼,並從它的加密按需服務器下載數據。

如果你的目標僅僅是爲了防止進入新手黑客然後生成一個GUID,其編碼爲應用程序的不是字符串文本以外的東西,並使用它。

如果你在任何地方保存密碼,裏面的應用程序你不能阻止一個確定和經驗的黑客...

+0

SQLCipher建議密鑰應該在線存儲以保證安全,但我只是想保護本地sqlite文件的內容。每次打開數據庫時,用戶連接服務器都不好。所以我試圖找到一個唯一的ID並添加它作爲關鍵的一部分。除了包標識符,哪個唯一的ID可以使用,不容易被盜?謝謝。 – jdleung

+0

生成一個UUID並將其存儲在鑰匙串 – Wain

+0

多一個問題,我怎樣才能分別生成一個UUID?它不能是一個隨機密鑰,因爲我首先需要在某處加密數據庫文件並將它們放在服務器上,以便用戶可以在APP中下載它們。任何建議生成此密鑰?謝謝。 – jdleung

1

不要使用應用程序的包標識符作爲密碼。很容易破譯。對於例如:如果你有ideviceinstaller可以查詢設備安裝的應用程式的bundleId的:

ideviceinstaller -U <UUID> -l 

還有一些其他的方法太破譯捆綁ID。所以建議不要使用捆綁ID作爲密碼。希望能幫助到你。

+0

有許多UUID/GUID生成器,我決定不使用它。你認爲什麼可以用作關鍵的一部分,並且不容易被發現?謝謝。 – jdleung