加密技術(shù)在移動(dòng)應(yīng)用上的解析
隨著互聯(lián)網(wǎng)的普及,越來越多的移動(dòng)應(yīng)用陷入安全門,各種信息泄露、盜號風(fēng)波層出不窮。越來越多的黑客盯上了移動(dòng)應(yīng)用,而SD?卡中以明文存放的個(gè)人信息,數(shù)據(jù)庫中未加密存儲(chǔ)的用戶名和密碼,收集的分析并以明文方式發(fā)到遠(yuǎn)程服務(wù)器,這些情況都使得黑客攻擊更容易。
正確使用Cryptography?工具,能保護(hù)我們的敏感數(shù)據(jù),確保隱私和數(shù)據(jù)完整。另一方面,加密難用且容易誤用。這里給大家推薦下目前移動(dòng)應(yīng)用適用的加密工具。

Bouncy?Castle
Legion?of?the?Bouncy?Castle是一個(gè)來自澳大利亞的公益團(tuán)體,他們編寫了Bouncy?Castle這個(gè)廣泛使用的類庫。該庫既提供了一個(gè)輕量級的密碼學(xué)API,也是一個(gè)Java密碼擴(kuò)展的提供者。安卓平臺(tái)已經(jīng)內(nèi)置了一個(gè)精簡過的老版本?Bouncy?Castle(同時(shí)為了適配安卓平臺(tái)也做了一些細(xì)小的改動(dòng))。結(jié)果就是任何在應(yīng)用程序中構(gòu)建和使用最新版本BouncyCastle類庫的嘗試都將導(dǎo)致類加載沖突。
Spongy?Castle
SpongyCastle背后的動(dòng)機(jī)是允許安卓開發(fā)者在應(yīng)用程序中使用任意版本的BouncyCastle類庫。SpongyCastle就是對最新版本的BouncyCastle進(jìn)行了簡單地重新打包;所有的org.bouncycastle.*包重命名為了org.spongycastle.*,所有Java安全API提供者的名字由BC改為了SC。
OpenSSL
OpenSSL是一個(gè)實(shí)現(xiàn)了SSL和TLS協(xié)議以及通用密碼庫的開源工具包。OpenSSL已經(jīng)被移植到了很多平臺(tái),包括安卓。做為一個(gè)替代方案,你也可以從源碼構(gòu)建,然后綁定到應(yīng)用程序中。這些工具包并沒有實(shí)現(xiàn)任何奇特的加密功能,也沒有嘗試替代任一上述的密碼學(xué)庫;相反它們基于這些類庫構(gòu)建,唯一的目的是使得使用加密功能更簡單更安全。
與通用密碼學(xué)庫相反,這些工具包通常只支持一部分算法、模式、結(jié)構(gòu)、參數(shù)。對于通用加密工具需要設(shè)定的部分,這些工具包為你提供了合理的默認(rèn)值,以防你知道想要什么,但是不知道如何使用,或者只在乎最終有個(gè)安全的解決方案。讓我們檢查幾個(gè)這類工具包以便來更好的理解它們的運(yùn)行規(guī)則。

Keyczar
Keyczar是一組開源工具包,最初由兩位谷歌安全團(tuán)隊(duì)成員開發(fā),用Java,Python和C++語言實(shí)現(xiàn),并支持對稱加密和費(fèi)堆成加密兩種鑒權(quán)方式。Keyczar提供安全的默認(rèn)設(shè)定,包括算法,秘鑰長度和模式,秘鑰循環(huán)和版本化,初始向量和授權(quán)碼自動(dòng)生成,支持國際化。該工具包基于JCE構(gòu)建,使用了Spongy?Castle的安全提供程序。
AeroGear?Crypto
AeroGear?Crypto是AeroGear提供的一個(gè)小的Java庫。它支持可認(rèn)證的對稱加密,橢圓曲線加密,基于密碼的秘鑰推導(dǎo)。它也提供了算法的顯式設(shè)定。AeroGear?Crypto在android平臺(tái)依賴Spongy?Castle,在其他平臺(tái)上依賴Bouncy?Castle。該庫在iOS、Windows?Phone和Cordova?上同樣可用。
Conceal
為了能夠快速并使用很少內(nèi)存對SD卡上的大型文件實(shí)現(xiàn)加密和認(rèn)證,臉譜開發(fā)出了Conceal。Conceal既可以進(jìn)行認(rèn)證,也可以進(jìn)行加密,同時(shí)默認(rèn)也提供了密鑰管理功能。它使用的是?OpenSSL,不過僅包含自己需要的那部分,因此其大小僅為85KB。Conceal站點(diǎn)上公布的結(jié)果顯示它優(yōu)于Bouncy?Castle。
下表對上面所介紹的加密庫做了總結(jié)。上文介紹的所有的庫可以讓加密方面的新手安全地進(jìn)行加密,不過高級開發(fā)人員可以不使用這些默認(rèn)做法,可以按照自己的意愿指定所有的加密細(xì)節(jié)(就像他們在使用其他加密庫那樣)。這里需要提出的是,新手在加密這一安全環(huán)節(jié),可以使用移動(dòng)應(yīng)用的加密服務(wù),比如愛加密、云安全等,可以有效且全面的保護(hù)移動(dòng)應(yīng)用安全。
加密庫
開發(fā)公司
許可證
AeroGear?Crypto
AeroGear
Apache?2.0
Conceal
BSD
Keyczar
——
Apache?2.0
如果你是一個(gè)移動(dòng)應(yīng)用開發(fā)者,你得花時(shí)間和精力使你的應(yīng)用程序便于使用,功能豐富,抓人眼球,但是,你不要忘了改善你應(yīng)用的安全性。?如果你不懂怎么著手,或者擔(dān)心做不對,那就從文中提到的工具包中選擇一個(gè),以便能夠開始。不管你決定選用哪個(gè)加密工具都好,都應(yīng)避免自己實(shí)現(xiàn)加密算法和加密協(xié)議;?應(yīng)該只使用那些廣泛應(yīng)用的,普遍認(rèn)可的,經(jīng)受考驗(yàn)的算法和協(xié)議。









