转载:移动应用加密工具解析

       移动互联网的普及,愈来愈多的移动应用陷入安全门,各类信息泄露、盗号风波层出不穷。愈来愈多的黑客盯上了移动应用,而SD 卡中以明文存放的我的信息,数据库中未加密存储的用户名和密码,收集的分析并以明文方式发到远程服务器,这些状况都使得黑客攻击更容易。android

        正确使用Cryptography 工具,能保护咱们的敏感数据,确保隐私和数据完整。另外一方面,加密难用且容易误用。这里给你们推荐下目前移动应用适用的加密工具。算法

        Bouncy Castle数据库

        Legion of the Bouncy Castle是一个来自澳大利亚的公益团体,他们编写了Bouncy Castle这个普遍使用的类库。该库既提供了一个轻量级的密码学API,也是一个Java密码扩展的提供者。安卓平台已经内置了一个精简过的老版本 Bouncy Castle(同时为了适配安卓平台也作了一些细小的改动)。结果就是任何在应用程序中构建和使用最新版本BouncyCastle类库的尝试都将致使类加载冲突。安全

        Spongy Castle服务器

        SpongyCastle背后的动机是容许安卓开发者在应用程序中使用任意版本的BouncyCastle类库。SpongyCastle就是对最新版本的BouncyCastle进行了简单地从新打包;全部的org.bouncycastle.*包重命名为了org.spongycastle.*,全部Java安全API提供者的名字由BC改成了SC。工具

        OpenSSL加密

        OpenSSL是一个实现了SSL和TLS协议以及通用密码库的开源工具包。OpenSSL已经被移植到了不少平台,包括安卓。作为一个替代方案,你也能够从源码构建,而后绑定到应用程序中。这些工具包并无实现任何奇特的加密功能,也没有尝试替代任一上述的密码学库;相反它们基于这些类库构建,惟一的目的是使得使用加密功能更简单更安全。spa

        与通用密码学库相反,这些工具包一般只支持一部分算法、模式、结构、参数。对于通用加密工具须要设定的部分,这些工具包为你提供了合理的默认值,以防你知道想要什么,可是不知道如何使用,或者只在意最终有个安全的解决方案。让咱们检查几个这类工具包以便来更好的理解它们的运行规则。移动应用开发

         Keyczar内存

         Keyczar是一组开源工具包,最初由两位谷歌安全团队成员开发,用Java,Python和C++语言实现,并支持对称加密和费堆成加密两种鉴权方式。Keyczar提供安全的默认设定,包括算法,秘钥长度和模式,秘钥循环和版本化,初始向量和受权码自动生成,支持国际化。该工具包基于JCE构建,使用了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

Keyczar

——

Apache 2.0

        若是你是一个移动应用开发者,你得花时间和精力使你的应用程序便于使用,功能丰富,抓人眼球,可是,你不要忘了改善你应用的安全性。 若是你不懂怎么着手,或者担忧作不对,那就从文中提到的工具包中选择一个,以便可以开始。无论你决定选用哪一个加密工具都好,都应避免本身实现加密算法和加密协议; 应该只使用那些普遍应用的,广泛承认的,经受考验的算法和协议。

 

原文连接:http://t.cn/RLqlAYB

相关文章
相关标签/搜索