![](/img/trans.png)
[英]iPhone / ios development - best way to check if password is secure enough?
[英]Secure Remote Password Implementation for iPhone
我一直在閱讀斯坦福大學的安全遠程密碼協議 ,它看起來非常適合iPhone應用程序運行的環境。 不幸的是,我無法找到協議的良好Objective-C實現。 據我所知, SDK中的加密庫也沒有實現它。
有誰知道這樣的實現?
如果做不到的話,你認為最好的選擇是什么? 我可以嘗試將OpenSSL構建到我的應用程序中 ,但對於這一小塊來說,這感覺真的很重要 。 我可以嘗試將JavaScript或Java實現轉換為Objective-C,但這違反了加密的#1規則(使用已知的,經過測試的實現)。
幾個后續項目:首先,它應該從上下文中顯而易見,但我將需要一些與閉源商業用法兼容的東西(我鏈接到的JavaScript實現,我后來注意到,是AGPL)。
此外,假設我最終使用OpenSSL,我很難找到使用它來執行SRP的示例。 他們的網站聲稱代碼在那里,但我無法在OpenSSL文檔中找到任何證據,或者在源代碼中貪圖(v 0.9.8k)。 (或者我是否認真地誤讀了一些內容,我仍然需要將其中一個補丁應用到OpenSSL源代碼?)
編輯:
此時我真正可以使用的是即用型代碼,相當完整的配方,或者在OpenSSL中使用SRP的某種示例。 我很確定我可以通過協議文檔從頭開始拼湊一些東西,但我真的試圖避免重新發明輪子,如果我可以幫助它。
SRP-TLS的OpenSSL和GnuTLS實現是我所知道的唯一基於C的實現(TinySRP自2001年以來一直沒有更新,並且已經有很多安全通知針對它所基於的底層OpenSSL版本,盡管我不知道不知道它們是否會影響TinySRP本身。
也就是說,我構建的每個iPhone項目最終都必須包含OpenSSL的副本。 我建議只是咬住子彈並使用它。 您鏈接的說明正常工作。
就個人而言,我使用具有arm和x86版本的lipo將OpenSSL構建到通用庫中。 這樣我可以鏈接到模擬器和設備的單個.a。 脂肪很容易。 只需構建兩個庫並將它們粘合在一起。 這是我的Makefile中的規則:
/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/lipo \
-create \
-arch armv6 iPhoneOS$(SDK_VER)/lib/$(1) \
-arch i386 iPhoneSimulator$(SDK_VER)/lib/$(1) \
-output iPhoneUniversal$(SDK_VER)/lib/$(1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.