李洪强经典面试题151-安全机制

李洪强经典面试题151-安全机制

 

安全机制

苹果的安全机制有哪些

  • 没经过用户同意,你不能随便获取用户信息。
  • 所有的程序都在沙盒里运行,B程序不能进入A程序的运行范围。
  • 如果跟钱有关,比如说支付宝,这些底层的实现都是保密的,只提供接口供开发者调用,这样的话安全性得到保障。
  • 如果要防止代码被反编译,可以将自己的代码中的.m文件封装成静态库(.a文件)或者是framework文件,只提供给其它人.h文件。这样就保证了个人代码的安全性。
  • 网络登录的话跟用户名跟密码相关要发送POST请求,如果是GET请求的话密码会直接在URL中显示。然后同时要对帐号密码采用加密技术,加一句:我们公司用的是MD5,但是现在MD5有一个专门的网站来破解,为了防止这个,可以采用加盐技术。

iOS 的签名机制大概是怎样的?

  • 假设,我们有一个APP需要发布,为了防止中途篡改APP内容,保证APP的完整性,以及APP是由指定的私钥发的。首先,先将APP内容通过摘要算法,得到摘要,再用私钥对摘要进行加密得到密文,将源文本、密文、和私钥对应的公钥一并发布即可。
  • 那么如何验证呢?
    验证方首先查看公钥是否是私钥方的,然后用公钥对密文进行解密得到摘要,将APP用同样的摘要算法得到摘要,两个摘要进行比对,如果相等那么一切正常。这个过程只要有一步出问题就视为无效。

客户端安全性处理方式?

1>    网络数据传输(敏感数据[账号\密码\消费数据\银行卡账号], 不能明文发送)
2>    协议的问题(自定义协议, 游戏代练)
3>    本地文件存储(游戏的存档)
4>    源代码(混淆)

`

如何进行数据加密?

常见的加密算法:MD5 \ SHA \ DES \ 3DES \ RC2和RC4 \ RSA \ IDEA \ DSA \ AES

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

MD5的特点:

(1)输入两个不同的明文不会得到相同的输出值

(2)根据输出值,不能得到原始的明文,即其过程不可逆

现在的MD5已不再是绝对安全,对此,可以对MD5稍作改进,以增加解密的难度

加盐(Salt):在明文的固定位置插入随机串,然后再进行MD5

先加密,后乱序:先对明文进行MD5,然后对加密得到的MD5串的字符进行乱序

总之宗旨就是:黑客就算攻破了数据库,也无法解密出正确的明文

文章如有问题,请留言,我将及时更正。

 

posted @ 2016-11-03 19:07  李洪强  阅读(203)  评论(0编辑  收藏  举报