Android N宣布弃用加密体系Cryto Provider
jopen 8年前
<p><img alt="Android N宣布弃用加密体系Cryto Provider" src="https://simg.open-open.com/show/06bc599f474f91722955e72360053ce1.jpg" /></p> <p>今年Google I/O开发者大会上的主角无疑就是Android N了——虽说这款系统到现在都还没有正式定名,仅以“N”代称,但预计今年秋季我们就能看到Android N上线。本周,谷歌又宣布Android N将不会再采用Cryto Provider。</p> <h2><strong>FreeBuf百科:Cryto Provider是什么?</strong></h2> <p>众所周知,Android系统在架构上,比较靠上层的位置,运行的是个类似Java虚拟机的东西。绝大部分应用都是跑在这个虚拟机上的。所以Android系统也使用Java加密体系架构(Java Crytography Architecture,以下简称JCA),开发人员也正是基于JCA,在代码中编写和管理加密操作。</p> <p>JCA是Java平台的重要组成部分,可以与各种类型的算法协同工作,提供基本的加密框架,如证书、数字签名、消息摘要和密钥对产生器 。</p> <h2>为什么抛弃Cryto Provider?</h2> <p>所谓的JCA究竟是啥呢?简单地说, <strong>如果Android应用开发者希望他开发的应用能够实现加密,也就需要用到JCA中的算法,具体是通过加载Provider类实现的 (Provider又是个啥呢?我们其实可以简单地将其理解为一个类,开发者需要从中选择所需的加密算法)</strong></p> <p>Android本身支持绝大部分JCA Provider,比如OpenSSL,BC,HarmonyJSSE,DRLCertFactory等等。</p> <p>以前的Android系统中,这里我们提到的Crypto就是Provider之一。Cryto支持多种算法,比如SHA1PRNG,SHA1withDSA,DSA和SHA-1。如果你对加密算法稍有了解应该就知道,这些算法现如今已经比较弱了,显得不够安全。</p> <p>Android软件工程师Sergio Giro表示:</p> <p><strong>“在Android N系统中,我们完全弃用了SHA1PRNG算法和Cryto Provider。”</strong></p> <p style="text-align:center"><img alt="Android N宣布弃用加密体系Cryto Provider" src="https://simg.open-open.com/show/17f5f265f37ebed0c3019498234fa5ac.jpg" /></p> <h2>开发者要哭:很多APP需要重写</h2> <p>实际上,可能很多开发者先前都会考虑采用SHA1PRNG算法:开发者可以借此进一步利用用户密码,将较小的密钥扩展为更大的加密密钥,这是加密密钥的进一步“衍生”。 但Giro表示:“SHA1PRNG算法不够安全。”因此,他仍旧建议开发人员,如果要“衍生”的话,还是可以考虑采用更强的算法,比如AES算法。</p> <p>由于弃用Cryto Provider令很多应用需要重写,为了帮助这些开发者做应用更新,Android官方团队给出了一系列的建议,有需要的同学可以 <a href="/misc/goto?guid=4958991418286588879" rel="nofollow,noindex">点击这里</a> 查看。</p> <p>来自: <a href="/misc/goto?guid=4958991418418916606" rel="nofollow">http://www.freebuf.com/news/106708.html</a></p>