iOS 数据安全 - 不完全笔记

也不是什么专业的数据安全,简单记录下;
也是看了一些关于安全的文章,简单总结的;写的不对了,尽管喷啊!谢谢了;

没有绝对的数据安全,

  • 对于本地数据:不管存在哪里,对于越狱的设备,都是浮云;
  • 对于网络请求:需要对请求参数加密,明文传输过于随意了,尽管使用了https;
  • 对于网络返回数据:一般对请求有校验的话,不怎么需要返回数据加密;

本地数据处理

  • 虽然苹果提供了钥匙串,对于不越狱设备是最安全的方式了吧,但是越狱设备,依旧浮云;
  • 安全第一,依旧需要对本地敏感信息进行加密处理;
  • 修改顺序,一般倒序,分组排序等;
  • 特定位置插入特定内容,速成“加盐”
  • 使用某种密钥加密方式加密;
  • 对于处理类,方法等使用混淆,防止逆向时,过于暴露(说好的编码规范,反而不好了);
  • 对于核心类的代码,使用纯C编写;

网络请求

  • 注册:本地存RSA 公钥,对userName,password 进行加密上传(也可以MD5之后RSA加密上传,服务器存MD5);
  • 登录:本地RSA 公钥,加密上传,成功之后,返回 AES key,用于其他接口的加解密(AES key,可以后台更改,防止篡改之后的修复);
  • 其他接口:使用登录返回的 AES key 加密上传,并且上传 AES key,用于校验;
  • 返回数据:可以不使用AES 加密,因为校验不通过,不返回数据;
    注:RSA 的加解密比较AES,耗性能,所以考虑使用 AES,作为动态 key,加解密;
    注2:java 的AES 与 iOS的 AES,略有不同,暂确解决方案;sorry;

其他

加密方法太多了。。。
DES
Base64

RSA 密钥生成

// 打开 openssl
openssl

// 生成 1024 的RSA 密钥
genrsa -out rsa_private_key.pem 1024

// 显示:pkcs8 形式的,私钥
pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM –nocrypt

// 对应的 公钥
rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

1

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,463评论 19 139
  • 本文主要介绍移动端的加解密算法的分类、其优缺点特性及应用,帮助读者由浅入深地了解和选择加解密算法。文中会包含算法的...
    苹果粉阅读 13,957评论 5 29
  • 加密原则: 一:对称加密的话用AES最好,苹果系统(钥匙串也是用的AES加密),美国安全局,RSA中的对称加密用的...
    谢谢生活阅读 8,696评论 2 9
  • /**ios常见的几种加密方法: 普通的加密方法是讲密码进行加密后保存到用户偏好设置( [NSUserDefaul...
    彬至睢阳阅读 8,187评论 0 7
  • # test
    DanielEmma阅读 741评论 0 0