美文网首页
数据安全

数据安全

作者: zhazha | 来源:发表于2015-07-17 21:41 被阅读108次

本文意义

  • 了解加密算法MD5的基本使用
  • 了解HTTPS,如何接受安全证书

提交用户的隐私数据

  • 首先一定要使用POST请求,向服务器提交用户的隐私数据

    • GET请求的所有参数都直接暴露在URL中
    • 请求的URL一般会记录在服务器的访问日志中
    • 服务器的访问日志是黑客攻击的重点对象之一
  • 但仅仅用POST请求提交用户的隐私数据,还是不能完全解决安全问题

    • 可以利用软件(比如Charles)设置代理服务器,拦截查看手机的请求数据
  • 所以:提交用户的隐私数据时,一定不要明文提交,要加密处理后再提交

  • 一般会使用加密算法和HTTPS对隐私数据进行加密,再提交到服务器

加密算法

常见的加密算法

  • MD5 \ SHA \ DES \ 3DES \ RC2和RC4 \ RSA \ IDEA \ DSA \ AES

加密算法的选择

  • 一般公司都会有一套自己的加密方案,按照公司接口文档的规定去加密

MD5

什么是MD5

  • 全称是Message Digest Algorithm 5,译为“消息摘要算法第5版”
  • 效果:对输入信息生成唯一的128位散列值(32个字符)

MD5的特点

  • 输入两个不同的明文不会得到相同的输出值
  • 根据输出值,不能得到原始的明文,即其过程不可逆,但现在有大型的数据库将明文对应的暗纹保存了,通过查询可以得到明文,算法本身是不可逆的

MD5的应用

  • 由于MD5加密算法具有较好的安全性,而且免费,因此该加密算法被广泛使用
  • 主要运用在数字签名、文件完整性验证以及口令加密等方面

MD5改进

  • 现在的MD5已不再是绝对安全,对此,可以对MD5稍作改进,以增加解密的难度
  • 加盐(Salt):在明文的固定位置插入随机串,然后再进行MD5
  • 先加密,后乱序:先对明文进行MD5,然后对加密得到的MD5串的字符进行乱序
  • 总之宗旨就是:黑客就算攻破了数据库,也无法解密出正确的明文

MD5的使用步骤

  • 添加两个文件
    • NSString+hash.h
    • NSString+hash.m
  • 导入头文件
  • 调用字符串的md5String方法
    NSString *text = @"www.baidu.com";
    NSString *md = [text md5String];

HTTPS

  • HTTPS = HTTP + ssl(secure socket layer,安全套接字层)

  • 基本原理:客户端向服务器发送请求,服务器并不是马上响应数据给客户端,而是先将安全证书(受保护控件)传给客户端,只有客户端同意了这个安全证书,服务器才会响应数据给客户端;只要客户端接受了该证书,客户端发送的请求数据都会受公钥保护,只有在服务器拿到私钥才能解密,这样保证数据的安全。

  • 一些大型的网站默认让客户端同意证书

  • AFNetworking和SDWebImage框架内部已封装了同意证书代码

是否同意安全证书实现步骤

  • 遵守协议NSURLSessionTaskDelegate,实现以下方法
  • 实现代码
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition, NSURLCredential *))completionHandler
{
    // 证书有好几种
    // 如果不是服务器信任类型的证书,直接返回
    if (![challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) return;

    // 如果block不为空,才执行相应代码,如果为空,会报错,所以要加上判断
    if (completionHandler) {

        // 通过调用这个block,来告诉URLSession要不要接收这个证书
        // NSURLSessionAuthChallengeDisposition : 如何处理这个安全证书
        // NSURLCredential :安全证书
        completionHandler(NSURLSessionAuthChallengeUseCredential, challenge.proposedCredential);
    }

}
  • 上例程序中,也可以根据服务器的信任信息创建证书对象
 NSURLCredential *crdential = [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust];
  • 调用block代码的装逼版,注意冒号:后面不能为空
 !completionHandler ? : completionHandler(NSURLSessionAuthChallengeUseCredential, challenge.proposedCredential);

相关文章

  • 教育管理系统的数据安全

    任何一个软件系统,数据安全是必须考虑的方面。我们所说的数据安全表现在两个层面,数据存储的安全和数据管理安全,数据存...

  • 数据安全从”怎么看“到“怎么办”

    一、数据安全“怎么看” 业界对于数据安全有着各种各样的理解。 有人认为数据安全就是数据层的安全,也就是通常所说的数...

  • 大数据安全--敏感数据识别和分级打标

    一、信息安全技术政务信息共享数据安全技术要求 数据安全技术要求共享数据提供方在进行数据分级分类时的安全要求包括: ...

  • 数据库的安全性

    数据库的安全性 安全性概述 安全性  数据库的安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或...

  • 数据安全风控

    接触这类工作2月的一个体会和思考: 1、数据安全风控是什么 数据安全风控就是数据在流动过程中是否是安全的。数据安全...

  • 电子政务系统安全技术概述

    1-电子政务系统的安全技术 1.1数据安全技术管理 1.1.1根据所保护数据的形态可以分为:数据静态安全和数据动态...

  • 数据安全

    下班时间,一个同事跑过来说,数据安全检查发现什么问题,我大发雷霆,我们部门还能经得起折腾吗?在目前监管环境下...

  • 数据安全

    一.Base64编码 1.概念 Base64编码是一种对二进制数据编码的方式,可以把源数据(文本,图片,视频音频等...

  • 数据安全

    一、Base64编码 二、散列函数 1、MD5 消息认证码(HMAC) 三、对称加密 四、非对称加密 五、数字证书...

  • 数据安全

    在手表外形同质化非常雷同的情况下,只能从另外一些方面,来突出手表的卖点,如数据安全!

网友评论

      本文标题:数据安全

      本文链接:https://www.haomeiwen.com/subject/yxlpqttx.html