iOS App 自动登录的安全性分析

iOS App 自动登录的安全性分析
  • 1  引子
       Cookie 有时也用其复数形式Cookies, 指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密).
如果Cookie 以明文的方式存储,那是危险的,如果Cookie 以明文的方式存储在易得到的地方那就更危险了。现在很多的一些公司的APP Cookie都直接放在 APP 应用程序程序下,
这样会导致很大的安全问题,有一些不需要越狱的工具就可以导出,天真的小白们还认为不越狱就安全了吗?
       当我们每次输入一次账户密码后,退出程序,然后再进来时一般人是不需要再次输入密码的,那么App 肯定存储了登录用的Cookie或者账户密码信息,这些信息如果不保存得当,
即使iOS 设备不越狱,照样也是不安全的!
       开发过APP的都知道一般将Cookie存储在cookie.binary或者keychain。

       1.cookie.binary 可以不越狱通过工具导出,一般采取这种方式还要配合混合加密才行。
        Safari 浏览器和iOS应用程序将永久cookie保存在Cookies.binarycookies文件中
      用BinaryCookieReader.py 去读取      下载地址: http://securitylearn.net/wp-content/uploads/tools/iOS/BinaryCookieReader.py
       方法为: python BinaryCookieReader.py   /private/var/mobile/Containers/Data/Application/x-x-x/Library/Cookies/Cookies.binarycookies
   
    2.根据苹果的介绍,iOS设备中的Keychain是一个安全的存储容器,可以用来为不同应用保存敏感信息比如用户名,密码,网络密码,认证令牌。 苹果自己用keychain来保存Wi-Fi网络密码,VPN凭证等等。它是一个sqlite数据库,位于/private/var/Keychains/keychain-2.db,其保存的所有数据都是加密过的。 开发者通常会希望能够利用操作系统提供的功能来保存凭证(credentials)而不是把它们(凭证)保存到NSUserDefaults,plist文件等地方。保存这些数据的原因是开发者不想用户每次都要登录,因此会把认证信息保存到设备上的某个地方并且在用户再次打开应用的时候用这些数据自动登录。
       一般对于未越狱的手机,iOS App 一般将 Cookie 或者密码 存放在 iOS 设备的 keychain中就安全了,但是如果对于越狱的手机,存储在 keychain 中还是不安全的。

Keychain 的操作

SecItemCopyMatching
SecItemAdd
SecItemUpdate
SecItemDelete
SecItemCopyMatching 用于搜索。其他操作操作,SecItemAdd,SecItemUpdate,SecItemDelete 从字面上就能理解。具体的使用细节可以查看 Apple 的文档:Apple Keychain Services Reference。

关于keychain 开发
需要导入Security.framework
#import  “GegeKeyChainHelper.h"

@implementation Gege KeyChainHelper
NSString * const KEY_USERNAME = @"com.company.app.username"
NSString * const KEY_PASSWORD = @"com.company.app.password"

@implementation  GegeKeyChainHelper
+ ( NSMutableDictionary *)getKeyChainQuery:( NSString *)service { 
   
return [ NSMutableDictionary dictionaryWithObjectsAndKeys
            (
id ) kSecClassGenericPassword ,( id ) kSecClass
            service, (
id ) kSecAttrService
           
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值