Android N宣布棄用加密體系Cryto Provider
今年Google I/O開發者大會上的主角無疑就是Android N了——雖說這款系統到現在都還沒有正式定名,僅以“N”代稱,但預計今年秋季我們就能看到Android N上線。本周,谷歌又宣布Android N將不會再采用Cryto Provider。
FreeBuf百科:Cryto Provider是什么?
眾所周知,Android系統在架構上,比較靠上層的位置,運行的是個類似Java虛擬機的東西。絕大部分應用都是跑在這個虛擬機上的。所以Android系統也使用Java加密體系架構(Java Crytography Architecture,以下簡稱JCA),開發人員也正是基于JCA,在代碼中編寫和管理加密操作。
JCA是Java平臺的重要組成部分,可以與各種類型的算法協同工作,提供基本的加密框架,如證書、數字簽名、消息摘要和密鑰對產生器 。
為什么拋棄Cryto Provider?
所謂的JCA究竟是啥呢?簡單地說, 如果Android應用開發者希望他開發的應用能夠實現加密,也就需要用到JCA中的算法,具體是通過加載Provider類實現的 (Provider又是個啥呢?我們其實可以簡單地將其理解為一個類,開發者需要從中選擇所需的加密算法)
Android本身支持絕大部分JCA Provider,比如OpenSSL,BC,HarmonyJSSE,DRLCertFactory等等。
以前的Android系統中,這里我們提到的Crypto就是Provider之一。Cryto支持多種算法,比如SHA1PRNG,SHA1withDSA,DSA和SHA-1。如果你對加密算法稍有了解應該就知道,這些算法現如今已經比較弱了,顯得不夠安全。
Android軟件工程師Sergio Giro表示:
“在Android N系統中,我們完全棄用了SHA1PRNG算法和Cryto Provider。”
開發者要哭:很多APP需要重寫
實際上,可能很多開發者先前都會考慮采用SHA1PRNG算法:開發者可以借此進一步利用用戶密碼,將較小的密鑰擴展為更大的加密密鑰,這是加密密鑰的進一步“衍生”。 但Giro表示:“SHA1PRNG算法不夠安全。”因此,他仍舊建議開發人員,如果要“衍生”的話,還是可以考慮采用更強的算法,比如AES算法。
由于棄用Cryto Provider令很多應用需要重寫,為了幫助這些開發者做應用更新,Android官方團隊給出了一系列的建議,有需要的同學可以 點擊這里 查看。
來自: http://www.freebuf.com/news/106708.html