欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android核心安全机制

程序员文章站 2022-07-04 11:35:40
...
本文围绕以下六个部分展开:

一、安全概述
二、对称加密
三、非对称加密(公钥密码)
四、密钥交换
五、消息摘要
六、电子签名






一、安全概述

        1. 安全要解决什么问题?

Android核心安全机制
            
    
    博客分类: Android安全 对称加密非对称加密密钥交换消息摘要数字签名 



        2. 密码术

        如:字母加密、藏头诗、倒写文等。

        密码术是算法与密钥的分离。       

        密码学“潜规则”:算法是公开的,而密钥是私有的。
        算法公开的目的:经过专家的论证,经历安全的检验,以及黑客若干年的尝试破解。



二、对称加密

        1. 典型的加密模型

Android核心安全机制
            
    
    博客分类: Android安全 对称加密非对称加密密钥交换消息摘要数字签名 



        2. 对称加密:

        加密端与解密端使用同一个密钥(key),这个key被称为shared key。


        3. 三种算法模型

        (1)置换加密

        原始数据顺序不会改变,但对原始的每个/组数据用另一个/组数据去替换。如:凯撒密码。

        (2)转置加密

        原始数据不会改变,但是对原始数据的顺序进行变换。

        (3)乘积密码

        置换变换与转置变换一起使用,反复迭代。


        4. DES:数据加密标准

        不是一个字母一个字母地变换,而是取64bit(1Byte=8bit)的数据作为一个基本的加密单元,经过19道工序(复用迭代乘积加密),然后出来56bit的密钥。

        56bit已经被攻破,现已不够安全。因此,又出来三重DES,相当于DES做了三次转换。


        5. AES:高级加密标准

        虽然用了很多数学算法,但是本质还是乘积密码。

        它灵活性很强。输入是128bit,以128bit作为一个单元进行加密。它的密钥强度可以是128bit、192bit、256bit,非常灵活。

        AES在对称加密领域应用最广。因为:接受不同强度的密钥,应用场景灵活;而且现在比较安全。


        6. 应用场景

        双方通信保密、本地存储的数据加密等。


        问题:在对称加密中,shared key如何进行交换?怎么存储才不会泄露出去?



三、非对称加密(公钥密码)

        1. 非对称加密模型

Android核心安全机制
            
    
    博客分类: Android安全 对称加密非对称加密密钥交换消息摘要数字签名 



        2. 公钥(public key)和私钥(private key)

        公钥:非对称加密模型中,加密密钥K就是公钥。

        私钥:非对称加密模型中,解密密钥K'就是私钥。

        公钥和私钥是同时产生的。其中用于加密的密钥称为公钥,用于解密的密钥用于私钥。

Android核心安全机制
            
    
    博客分类: Android安全 对称加密非对称加密密钥交换消息摘要数字签名 



        3. 公钥算法的理论基石

        (1)建立在分解大数的困难度。

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


        4. RSA算法

        建立在分解大数的困难度。公钥/私钥长度至少为:1024bit,安全性非常好。



四、密钥交换

        1. 对称加密优缺点:

        优点:高效。

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


        2. 非对称加密算法的优缺点:

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

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


        3. 实际的保密会话应用场景

Android核心安全机制
            
    
    博客分类: Android安全 对称加密非对称加密密钥交换消息摘要数字签名 


        密钥交换方式一:利用公钥密码来交换会话密钥。

Android核心安全机制
            
    
    博客分类: Android安全 对称加密非对称加密密钥交换消息摘要数字签名 


        密钥交换方式二:Diffie-Hellman密钥交换协议。

Android核心安全机制
            
    
    博客分类: Android安全 对称加密非对称加密密钥交换消息摘要数字签名 




五、消息摘要

        1. HASH与散列函数的定义与特点

Android核心安全机制
            
    
    博客分类: Android安全 对称加密非对称加密密钥交换消息摘要数字签名 



        2. 消息摘要和数字指纹

Android核心安全机制
            
    
    博客分类: Android安全 对称加密非对称加密密钥交换消息摘要数字签名 



        3. HASH的应用场景

        (1)防篡改

Android核心安全机制
            
    
    博客分类: Android安全 对称加密非对称加密密钥交换消息摘要数字签名 


        (2)防损坏

Android核心安全机制
            
    
    博客分类: Android安全 对称加密非对称加密密钥交换消息摘要数字签名 


        (3)认证

Android核心安全机制
            
    
    博客分类: Android安全 对称加密非对称加密密钥交换消息摘要数字签名 



        4. HMAC

        Hash-basedMessageAuthenticationCode,基于hash的消息鉴别码。

Android核心安全机制
            
    
    博客分类: Android安全 对称加密非对称加密密钥交换消息摘要数字签名 




六、电子签名

Android核心安全机制
            
    
    博客分类: Android安全 对称加密非对称加密密钥交换消息摘要数字签名 


Android核心安全机制
            
    
    博客分类: Android安全 对称加密非对称加密密钥交换消息摘要数字签名 


        不是所有的公钥算法都支持私钥加密、公钥解密。如果支持的话,则该算法除了用来进行加密,还可以用于电子签名。如RSA。

        私钥加密、公钥解密的目的:证明我现在加密的信息确实是我加密的,而不是别人伪造的。如果别人能用我的公钥进行解密,更加验证了:这确实是用我的私钥加密后的,否则别人是不可能用我的公钥解密的。

Android核心安全机制
            
    
    博客分类: Android安全 对称加密非对称加密密钥交换消息摘要数字签名 







整理时参考:极客学院 - Android六种核心安全机制-加密、密钥、签名与证书