首頁 Java java教程 給初學者的 Android 加密工具

給初學者的 Android 加密工具

Nov 30, 2016 am 10:10 AM
android

 越來越多的駭客盯上了行動應用,每天都會增加,因為行動應用中有駭客感興趣的東西,如用戶資料。硬編碼(Hard-coded,註,固定寫死,不能修改的)安全秘鑰,SD 卡中以明文存放的個人信息,數據庫中未加密存儲的用戶名和密碼,收集的分析(analytics)並以明文方式發到遠端伺服器,這些情況都使得攻擊更容易(得手)。

給初學者的 Android 加密工具

 正確使用Cryptography 工具,能保護我們的敏感數據,確保隱私和數據完整。另一方面,加密難用且容易誤用( cryptography is hard to use and easy to misuse)。 注意容易被破解的加密方式(broken cryptography) (如,使用不安全演算法,或硬編碼秘鑰到二進位套件),請查閱清單2014年,行動領域10大風險。因此,從中得到什麼教訓?不用加密不可取,不能正確加密同樣不可取 (不提耗費的時間)。

  為了能在安卓平台上開發出安全的應用,接下來我們將介紹如何能既簡單又安全地進行加密。

  首先,概括性地介紹一些常見的可整合到安卓應用中的加密庫。加密庫是包含諸如加密演算法、填充方式和雜湊函數等工具的加密工具集合。

  Bouncy Castle

  充氣城堡軍團(Legion of the Bouncy Castle)是一個來自澳洲的公益團體,他們編寫了Bouncy Castle 這個廣泛使用的類別庫。該函式庫既提供了一個輕量級的密碼學 API,也是一個 Java 密碼擴充(JCE)的提供者。安卓平台已經內建了一個精簡的舊版 Bouncy Castle(同時為了適配安卓平台也做了一些細小的改動)。結果就是任何在應用程式中建置和使用最新版本 BouncyCastle 類別庫的嘗試都會導致類別載入衝突。

  Spongy Castle

  Spongy Castle 背後的動機是允許安卓開發者在應用程式中使用任意版本的 BouncyCastle 類別庫。 SpongyCastle 就是對最新版本的 BouncyCastle 進行了簡單地重新打包;所有的 org.bouncycastle.* 包重命名為了 org.spongycastle.*,所有 Java安全 API 提供者的名字由 BC 改為了 SC。

  OpenSSL

  OpenSSL 是一個實作了 SSL 和 TLS 協定以及通用密碼庫的開源工具包。 OpenSSL 已經移植到了許多平台,包括安卓。做為一個替代方案,你也可以從原始碼建置(使用安卓 NDK),然後綁定到應用程式中。

  現在我們假設出於應用程式的目的,你想要加密一些資料。你會使用哪個加密演算法,AES 還是 DES?你的秘鑰多長,128 還是 256 位元?你會使用哪種加密模式,ECB 還是 CBC?如果你對所有這些問題都沒有答案,也沒有好的理由,那麼你可能發現你正處於一個微妙的位置,雖然你擁有所有你想要的工具,但是你一點兒都不確定使用哪個、如何使用。

  這正是傻瓜密碼學工具包發揮作用的場景。這些工具包並沒有實現任何奇特的加密功能,也沒有嘗試替代任一上述的密碼學庫;相反它們基於這些類庫構建,唯一的目的是使得使用加密功能更簡單更安全。

  與通用密碼學庫相反,這些工具包通常只支援一部分演算法、模式、結構、參數。對於通用加密工具需要設定的部分,這些工具包為你提供了合理的預設值,以防你知道想要什麼,但是不知道如何使用,或者只在乎最終有安全的解決方案。讓我們檢查幾個這類工具包以便來更好的理解它們的運行規則。

  Keyczar

  Keyczar 是一組開源工具包,最初由兩位 Google Security Team(Google安全團隊)成員開發。 它用 Java,Python 和 C++ 語言實作。它支援對稱加密和費堆成加密兩種鑑權方式。 Keyczar 提供安全的預設設定,包括演算法,秘鑰長度和模式,秘鑰循環和版本化,初始向量(vector)和授權碼自動生成,支援國際化。該工具包基於JCE建置,( here),使用了Spongy Castle的安全提供者。

  AeroGear Crypto

  AeroGear Crypto 是 AeroGear 提供的一個小的 Java 函式庫。 它支援可認證的對稱加密,橢圓曲線加密,基於密碼的秘鑰推導。它也提供了演算法的明確設定。 AeroGear Crypto 在 android 平台依賴Spongy Castle,在其他平台上依賴 Bouncy Castle。該庫在 iOS,Windows Phone 和 Cordova 上同樣可用。

  Conceal

  為了能夠快速並使用很少內存對SD卡上的大型文件實現加密和認證,臉譜開發出了 Conceal。 Conceal既可以進行認證,也可以進行加密,同時預設也提供了金鑰管理功能。它使用的是 OpenSSL,不過只包含自己需要的部分,因此其大小僅為 85KB。 Conceal 網站上公佈的結果顯示它優於 Bouncy Castle。

  下表對上面所介紹的加密庫做了總結。請注意:上面介紹的所有的庫可以讓加密方面的新手安全地進行加密,不過高級開發人員可以不使用這些預設做法,可以按照自己的意願指定所有的加密細節(就像他們在使用其他加密庫那樣)。

AeroGear Crypto    AeroGear    Apache 2.0    

Conceal    Facebook    BSD   

加密庫        

開發公司       

許可證

摘要(To sum 行動開發者,你得花時間(精力)使你的應用程式便於使用,功能豐富,抓人眼球,但是,你不要忘了改善你應用的安全性。 如果你不懂怎麼著手,或擔心做不對,那就從文中提到的工具包中選擇一個,以便能夠開始。不管你決定選用哪個加密工具都好,都應避免自己實作加密演算法和加密協定; 應該只使用那些廣泛應用的,普遍認可的,經過考驗的演算法和協定。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

新報告對傳聞中的三星 Galaxy S25、Galaxy S25 Plus 和 Galaxy S25 Ultra 相機升級進行了嚴厲的評估 新報告對傳聞中的三星 Galaxy S25、Galaxy S25 Plus 和 Galaxy S25 Ultra 相機升級進行了嚴厲的評估 Sep 12, 2024 pm 12:23 PM

最近幾天,Ice Universe 不斷披露有關 Galaxy S25 Ultra 的詳細信息,人們普遍認為這款手機將是三星的下一款旗艦智慧型手機。除此之外,洩密者聲稱三星只計劃升級一台相機

三星 Galaxy S25 Ultra 洩漏了第一張渲染圖,傳聞中的設計變化被曝光 三星 Galaxy S25 Ultra 洩漏了第一張渲染圖,傳聞中的設計變化被曝光 Sep 11, 2024 am 06:37 AM

OnLeaks 現在與 Android Headlines 合作,首次展示了 Galaxy S25 Ultra,幾天前,他試圖從他的 X(以前的 Twitter)粉絲那裡籌集到 4,000 美元以上的資金,但失敗了。對於上下文,嵌入在 h 下面的渲染圖像

IFA 2024 | TCL 的 NXTPAPER 14 在性能上無法與 Galaxy Tab S10 Ultra 相媲美,但在尺寸上幾乎可以與之媲美 IFA 2024 | TCL 的 NXTPAPER 14 在性能上無法與 Galaxy Tab S10 Ultra 相媲美,但在尺寸上幾乎可以與之媲美 Sep 07, 2024 am 06:35 AM

除了發布兩款新智慧型手機外,TCL 還發布了一款名為 NXTPAPER 14 的新 Android 平板電腦,其大螢幕尺寸是其賣點之一。 NXTPAPER 14 採用 TCL 標誌性品牌霧面液晶面板 3.0 版本

Vivo Y300 Pro 在 7.69 毫米纖薄機身中配備 6,500 mAh 電池 Vivo Y300 Pro 在 7.69 毫米纖薄機身中配備 6,500 mAh 電池 Sep 07, 2024 am 06:39 AM

Vivo Y300 Pro剛剛全面亮相,它是最薄的中階Android手機之一,配備大電池。準確來說,這款智慧型手機厚度僅為 7.69 毫米,但配備 6,500 mAh 電池。這與最近推出的容量相同

三星 Galaxy S24 FE 預計將以低於預期的價格推出,有四種顏色和兩種記憶體選項 三星 Galaxy S24 FE 預計將以低於預期的價格推出,有四種顏色和兩種記憶體選項 Sep 12, 2024 pm 09:21 PM

三星尚未就何時更新其 Fan Edition (FE) 智慧型手機系列提供任何提示。目前來看,Galaxy S23 FE 仍然是該公司的最新版本,於 2023 年 10 月年初推出。

新報告對傳聞中的三星 Galaxy S25、Galaxy S25 Plus 和 Galaxy S25 Ultra 相機升級進行了嚴厲的評估 新報告對傳聞中的三星 Galaxy S25、Galaxy S25 Plus 和 Galaxy S25 Ultra 相機升級進行了嚴厲的評估 Sep 12, 2024 pm 12:22 PM

最近幾天,Ice Universe 不斷披露有關 Galaxy S25 Ultra 的詳細信息,人們普遍認為這款手機將是三星的下一款旗艦智慧型手機。除此之外,洩密者聲稱三星只計劃升級一台相機

小米紅米 Note 14 Pro Plus 上市,成為首款配備 Light Hunter 800 相機的高通 Snapdragon 7s Gen 3 智慧型手機 小米紅米 Note 14 Pro Plus 上市,成為首款配備 Light Hunter 800 相機的高通 Snapdragon 7s Gen 3 智慧型手機 Sep 27, 2024 am 06:23 AM

Redmi Note 14 Pro Plus 現已正式成為去年 Redmi Note 13 Pro Plus 的直接後繼產品(亞馬遜售價 375 美元)。正如預期的那樣,Redmi Note 14 Pro Plus與Redmi Note 14和Redmi Note 14 Pro一起成為Redmi Note 14系列的主角。李

摩托羅拉 Razr 50s 在早期洩漏中顯示自己可能是新的預算可折疊手機 摩托羅拉 Razr 50s 在早期洩漏中顯示自己可能是新的預算可折疊手機 Sep 07, 2024 am 09:35 AM

摩托羅拉今年發布了無數設備,儘管其中只有兩款是可折疊的。就上下文而言,雖然世界上大多數地區都收到了 Razr 50 和 Razr 50 Ultra,但摩托羅拉在北美提供了 Razr 2024 和 Razr 2

See all articles