Android平台安全概念篇

一、安全主要用于解决4类需求

1.保密(Security/Confidentiality)信息不泄露给第三方

2.鉴别/认证(Authentication)能够知道与你通信的对方是谁

3.完整性(Integrity) 信息传输存储的过程中保存完整性(不被修改、不被破坏、不被插入、不延迟、不乱序、不丢失)

4.不可否认性(non-repudiation) 轻松知道该消息是有那个用户生成、签发和接受的。

二、密码算法的本质

算法与密钥的分离

三、对称加密

(一)基本概念

密钥:分为加密密钥和解密密钥。

明文:没有进行加密,能够直接代表原文含义的信息。

密文:经过加密处理处理之后,隐藏原文含义的信息。

加密:将明文转换成密文的实施过程。

解密:将密文转换成明文的实施过程。

(二)对称加密模型

加密的过程Ek(M)=C  解密过程Ek(C)=M,其中M、C、k、E和D分别为明文、密文、密钥、加密算法和解密算法。当加密密钥和解密密钥是同一密钥时则称为对称加密

(三)对称加密模型种类

对称加密的模型主要有三种:  置换加密   转置加密   乘积加密(就是置换和转置加密的结合)

代表加密算法:DES(Data Encryption Standard)和AES(Advanced Encryption Standard)

1,置换加密

原始字符的顺序没有发生变化,只是把原始字符替换为另一字符。比如明文E:abc ,加密后的密文P为dfg:加密过程是:a--d,b--f,c--g,密钥K:dfg。

2,转置加密

原始字符没有发生变化,只是原始字符的顺序发生了改变。其实转置加密是基于数学的转置矩阵原理。

密钥14253

asdfg      aqz         其中 转置矩阵:qaz  1-->1

qwert ---->dec                        swx  2-->4

zxcvb      gtb                        dec  3-->2

swx                        frv  4-->5

frv                        gtb  5-->3

3,乘积加密

就是把转换加密和转置加密反复利用对数据进行加密和解密

四、非对称加密

(一)基本概念

公钥:顾名思义就是公开的密钥,是非对称加密过程中用来 加密 的密钥。

私钥:自己私有的密钥,是非对称加密过程中用来 解密 的密钥。

非对称加密的通俗理解:公钥和私钥是一起产生的,然后公布公钥,其他人就可以感觉公钥就数据信息进行加密和你通信,这样其他人就算截获了这段信息,没有私钥也是不能解密的,也就是只有自己可以对数据信息进行解密。这样密钥的安全性就相对来说是比较高的,不用担心密钥交换的问题。

公钥算法的理论基石:数学,数学是科学之基。公钥算法的最重要两大数学基础是:

1.建立在分解大数的困难度,可以理解为我有两个很大的大质数作为私钥,公开两个大质数的乘积作为公钥,这样就算我们知道了公钥,也很难分解出两个私钥出来,也就没法破解加密过后的数据了;

2.建立在以大素数为模来计算离散对数的困难度。

(二)非对称加密模型

非对称加密和对称加密的区别是非对称加密的加密密钥和解密密钥是不一样的

(三)非对称加密算法

RSA:就是建立在分解大数的困难度的一个非对称加密算法,它的公钥和私钥长度至少1024bit

五 密钥交换概述

(一)公钥密码算法的优点和缺点

优点:高效

缺点:密钥交换的问题。不如RSA的加密安全程度高,但是当选择256bit的AES,仍然能胜任绝大多数的安全领域

(二)公钥密码算法的优点和缺点

优点:安全性足够高,没有密钥交换的问题

缺点:效率低,对于大数据加密很慢

(三)现阶段 实际保密会话状况 概述

(1)基于高效的对称加密算法对会话进行加密

(2)会话密钥实时产生且周期性变化

(3)基于其他足够安全的方式进行会话密钥的传输和交换

(四)密钥交换种类

1,利用公钥密码来交换 会话密码

使用对端的公钥对产生的会话密钥加密并传递给对端,对端使用私钥解密获取会话密钥,双方开始基于共享的会话密钥进行对称加密的保密会话通信

2.Diffie-Hellman密钥交换协议

基于以大素数为模计算离散对数的困难度

双方各自选定key,然后以一定算法变换(使得key不以明文传输)后传输给对方

双方利用对方交换来的数据和自己选定的key做变换,获得一个一致的结果,作为会话密钥

六 数字指纹/消息摘要/散列/哈希

(一)HASH(散列)函数(算法)的定义

变长的输入变换成定长的输出

(二)常见HASH算法

MD5(128bit),SHA1(160bit)

(三)HASH算法的特点

1.易变性:即便原始信息发生1bit的变化,HASH的输出将会有不可预知的巨大变化。

2. 不可逆:通过HASH结果构造出满足的输入信息是不可能的或者及其困难的。

(四)HASH算法的应用场景

基于易变性特性

 可保完整性

 实例:

文件下载时的MD5

消息传送时尾部额外传MD

基于易变性特性

 可保完整性

 实例:

CRC校验的作用和不足

MD检验消息恶劣环境传输的完整性和未受损坏

应用程序中对于核心文件/数据库读写的鲁棒性保护,防止掉电和Crash

基于不可逆特性

 可认证对端

 实例:

HTTP的Basic和Digest认证

PPP的PAP和CHAP认证

手机登陆密码和隐藏MMI的设计

七 电子签名

(一)签名要解决什么问题

签什么

签的内容的完整性保护

谁在签

签名人的不可否认性

(二)公钥密码术的两面性

(三)电子签名=HASH+公钥密码术

RSA的低效率特性,导致即便是签名也不适合直接对原始信息进行签名

利用HASH先完成消息摘要和完整性鉴别的作用

而后对简单的消息摘要进行基于公钥密码术的签名

签名一般附着于原始消息尾部或者头部一起发送

八 数字证书

(一)证书的作用:公钥的存储和交换

公钥作为一个字段存储于数字证书中,证书的交换和传输即可传输/交换公钥(demo)

(二)基于证书的认证

基于可信任证书的认证方式被广泛的应用在现代安全领域,比如WIFI,HTTPS

在HTTPS中,典型的Client对Server的认证和鉴别基于可信任列表(demo)

时间: 2024-10-11 04:49:58

Android平台安全概念篇的相关文章

FFmpeg的Android平台移植—编译篇

摘要:本文主要介绍将FFmpeg音视频编解码库移植到Android平台上的编译和基本测试过程. 环境准备: ubuntu-12.04.5 android-ndk64-r10-linux-x86_64.tar.tar ffmpeg-2.7.2_tmp.tar.bz2 adt-bundle-windows-x86_64-20131030.zip 第一步:源代码下载 到FFmpeg官方网站http://www.ffmpeg.org/上去下载源代码,这里下载的源代码是最权威的.进入官网之后,选择”Dow

android 电容屏(二):驱动调试之基本概念篇

关键词:android  电容屏 tp 工作队列 中断 多点触摸协议平台信息:内核:linux2.6/linux3.0系统:android/android4.0 平台:S5PV310(samsung exynos 4210)  作者:xubin341719(欢迎转载,请注明作者) 参考网站:http://edsionte.com/techblog/archives/1582这部分参考别人的多一点 android 电容屏(一):电容屏基本原理篇 android 电容屏(二):驱动调试之基本概念篇

「Unity」与iOS、Android平台的整合:4、与iOS、Android的交互理论篇

本文属于「Unity与iOS.Android平台的整合」系列文章之一,转载请注明出处. 本文主要讲解Unity与iOS.Android平台进行交互的理论基础. 零.前言 在Unity端使用的是C# 在iOS端使用的是Object-C 在Android端使用的是Java 你要问我为什么? 因为我乐意啊~ 一.交互需求 代码与代码之间的交互需求抽象之后是两个最基础的要求: 1.调用函数 2.传递数据 所以我们只需要在Unity与iOS.Android之间实现这两个基础要求即可. 二.交互原理 首先,

深入浅出 - Android系统移植与平台开发(十)- Android编译系统与定制Android平台系统(瘋耔修改篇二)

第四章.Android编译系统与定制Android平台系统 4.1Android编译系统 Android的源码由几十万个文件构成,这些文件之间有的相互依赖,有的又相互独立,它们按功能或类型又被放到不同目录下,对于这个大的一个工程,Android通过自己的编译系统完成编译过程. 4.1.1 Android编译系统介绍 Android和Linux一样,他们的编译系统都是通过Makefile工具来组织编译源码的.Makefile工具用来解释和执行Makefile文件,在Makefile文件里定义好工程

Android平台上关于IM的实践总结

前言 IM通信在互联网发展到现在已经是码农的世界里人尽皆知的技术,特别在当下移动互联网迅猛发展的时代这种技术的开发也更加火热,其中老牌的代表作就有QQ和MSN,和最近新崛起的微信,默默,易信,来往等眼花缭乱的各种应用都把IM技术应用其中.我是Android开发人员,写这篇文章主要原因也是因为我自己从事开发以来主要做过的几款APP都是包含着IM通信,在不断的摸爬滚打的解决问题的过程中,积累了一些经验记录便将其记录到博客中作为自己一个阶段性的总结,也可以分享其他需要的开发者,作为一种参考实践的方案,

Android平台BLE应用程序开发指南

从Android 4.3开始,BLE(Bluetooth Low Energy)在Android平台上被支持了.但是目前Android上BLE应用程序稀少,尤其是中文应用程序,希望本文对有兴趣开发BLE应用程序的开发者有所帮助.本文主要是对目前已有的Andriod BLE开发相关资料进行整理,给出一个开发资料的索引.(本文会根据大家的问题,不断完善) 基本参考资料 最基本的学习资料是这篇Android官方文档:<Bluetooth Low Energy>.该文档对BLE涉及的基本概念进行了介绍

(转) Android平台上关于IM的实践总结

前言 IM通信在互联网发展到现在已经是码农的世界里人尽皆知的技术,特别在当下移动互联网迅猛发展的时代这种技术的开发也更加火热,其中老牌的代表作就有QQ和MSN,和最近新崛起的微信,默默,易信,来往等眼花缭乱的各种应用都把IM技术应用其中.我是Android开发人员,写这篇文章主要原因也是因为我自己从事开发以来主要做过的几款APP都是包含着IM通信,在不断的摸爬滚打的解决问题的过程中,积累了一些经验记录便将其记录到博客中作为自己一个阶段性的总结,也可以分享其他需要的开发者,作为一种参考实践的方案,

基于Android平台的i-jetty网站智能农业监控系统

基于android平台i-jetty网站的智能农业监控系统 摘要:传统的监控系统,一般是基于PC的有线通信传输,其有很多不足之处,如功耗较高.布线成本高.难度大,适应性差,可扩展性不强,增加新的通信线路需要再次布线施工,而且维护起来也比较麻烦,一旦线路出问题,需要繁琐的检查.而嵌入式Web监控系统是基于物联网技术,其无线通信技术具有成本低廉.适应性强.扩展性强.信息安全.使用维护简单等优点. 智能农业中,种植大棚是通过大棚内安装温湿度以及光照传感器,来对农作物的环境参数进行实时采集,由Web监控

「Unity」与iOS、Android平台的整合:3、导出的Android-Studio工程

本文属于「Unity与iOS.Android平台的整合」系列文章之一,转载请注明出处. Unity默认导出的是Android-Eclipse工程,毕竟Eclipse for Android开发在近一两年才开始没落,用户量还是非常巨大的. 个人认为AndroidStudio非常好用,能轻易解决很多Eclipse解决不了或者很难解决的问题. 所以我将Unity导出的Andoid工程分为Eclipse和AndroidStudio两部分. 不过我之后的相关内容都会使用AndroidStudio,希望依然