【技术分享】Android应用安全开发之浅谈加密算法的坑

   Android应用安全开发之浅谈加密算法的坑》
作者:阿里移动安全@伊樵,@舟海
 

Android开发中,难免会遇到需要加解密一些数据内容存到本地文件、或者通过网络传输到其他服务器和设备的问题,但并不是使用了加密就绝对安全了,如果加密函数使用不正确,加密数据很容易受到逆向破解攻击。还有很多开发者没有意识到的加密算法的问题。
 
1、需要了解的基本概念
 
密码学的三大作用:加密( Encryption)、认证(Authentication),鉴定(Identification) 
加密:防止坏人获取你的数据。 
认证:防止坏人修改了你的数据而你却并没有发现。 
鉴权:防止坏人假冒你的身份。
明文、密文、密钥、对称加密算法、非对称加密算法,这些基本概念和加密算法原理就不展开叙述了。

2、Android SDK提供的API

2.1 Android 加密相关API结构
Android SDK使用的API和JAVA提供的基本相似,由 Java Cryptography Architecture (JCA,java加密体系结构) ,Java Cryptography Extension (JCE,Java加密扩展包) ,Java Secure Sockets Extension(JSSE,Java安全套接字扩展包),Java Authentication and Authentication Service(JAAS,Java 鉴别与安全服务)组成。
JCA提供基本的加密框架,如证书、数字签名、消息摘要和密钥对产生器,对应的Android API中的以下几个包:

JCE扩展了JCA,提供了各种加密算法、摘要算法、密钥管理等功能,对应的Android API中的以下几个包:

JSSE提供了SSL(基于安全套接层)的加密功能,使用HTTPS加密传输使用,对应的Android API主要是java.net.ssl包中。
JAAS 提供了在Java平台上进行用户身份鉴别的功能。对应的Android API主要在以下几个包:

它们其实只是一组接口,实际的算法是可由不同的Provider提供,Android API默认的Provider主要是是Bouncy Castle和OpenSSL。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值