移动安全-iOS(一)
安全启动
- 读取系统的引导程序
**这一步包括如下 ** 引导ROM中包括苹果官方认证的公钥,它会验证底层启动器(LLB)的签名,一旦通过了验证就会启动它,LLB会做一些基础性的工作,然后验证第二级引导程序iBoot
- 验证第二级引导程序iBoot
- 启动内核
- 加载驱动程序,检测设备,启动系统守护进程
上述信任链确保所有系统组件都由苹果写入,签名,分发,不能来自第三方机构。通常情况下,越狱的工作原理就是攻击这一信任链。
沙盒机制
苹果的沙盒机制历史上被称为安全带,是一种基于FreeBSD系统的TrustedBSD框架的强制访问控制(MAC)机制,它的主要推动者是罗伯特-沃森,它采用一种类似Lisp的配置语言来描述哪些资源系统可以访问,哪些禁止访问。这些资源主要包括文件,系统服务,网络连接,内存资源等。
MAC机制不同于传统的访问控制机制(比如自主访问机制(DAC) ,它不允许主体(比如用户进程)操作对象(文件,套接字等)。DAC最常见的形式就是UNIX系统上的用户、组合其他权限,所有这些都可以被授予读、写或者执行的权限。
在iOS平台,沙盒意味着应用程序被关进了一个虚拟的容器。该容器遵循一系列特定规则,包括系统资源的访问,比如网络资源,文件读写,进程克隆等,所有的第三方应用程序都要遵守唯一的限制
iOS系统相对于Android系统,或者相对于Windows系统来说比较安全的原因很多,其中有一点就是苹果推出的沙盒机制,每个应用都有自己对应的沙盒,每个应用程序之间不能相互访问非本程序的沙盒,所以,Apple相对于其他的系统来说比较安全,再是从内存上来说相对于Windows来说也比较安全,Apple的应用程序在内存消耗过高时,收到内存警告不及时处理的话应用软件会自动退出,而不想Windows系统一样,中了病毒或者木马会一直消耗内存,知道内存没有了,OK,Down机。恩,可以这么,沙盒机制,让iOS系统变得更安全。
注意: 安卓的访问机制与MAC不同安卓实现了一套更加传统的DAC模型,应用程序都有自己的用户ID和属于ID的文件夹,其权限管理严格按照传统的UNIX文件权限管理运作。虽然两种机制工作起来都没有问题,但是MAC的扩展性总体来说更加优秀
关于访问控制模型DAC,MAC,RBAC
访问控制
访问控制是指控制对一台计算机或一个网络中的某个资源的访问。没有它,所有人都可以访问任何资源。有了访问控制,用户在获取实际访问资源或进行操作之前,必须通过识别、验证、授权。换言之,访问控制控制着一个主体(subject)可以访问哪些对象(objects)。主体和对象是访问控制模型和技术中的两个重要术语。主体是指可以授予或拒绝访问某个对象的人或事物,如用户,程序,系统进程。对象的例子如文件、打印机、程序、系统进程等。
复制代码
访问控制模型 开发者需要在他们的软件和设备中实现访问控制功能,访问控制模型为之提供了模型。有三种不同的模型:DAC,MAC,和RBAC。
Discretionary Access Control(DAC) 主体对它所属的对象和运行的程序拥有全部的控制权。例如,Alice拥有一个叫mywork.doc的文件。她许可Bob和Sales group的成员来读这个文件,除此之外别的人都不可以。改进的DAC实现提供了一个基于“need-to-know”的访问授权的方法,默认拒绝任何人的访问。访问许可必须被显式地赋予访问者。 被某个用户执行的程序拥有与该用户相同的权限。这意味着系统安全依靠运行的程序,因此,当一个程序中发生安全裂缝,会影响到该用户能访问的所有对象。这使得DAC在特洛伊木马前特别脆弱。例如,假设Alice对文件file1.doc拥有读写权限。Charlie,一个恶意攻击者,写了一个程序,这个程序在执行时生成文件file2.doc.这个程序授予Alice写权限和Charlike读权限。Charlie把这个程序伪装成合法的程序发给Alice。当Alice运行这个程序是,它就具有了和Alice相同的权限。它可以拷贝file1.doc到file2.doc,这样charlie就窃取了file1.doc的内容。如果一个管理员执行这个程序,攻击者会获取最大的特权,危害整个系统的安全。
Mandatory Access Control(MAC) 在MAC这种模型里,管理员管理访问控制。管理员制定策略,用户不能改变它。策略定义了哪个主体能访问哪个对象。这种访问控制模型可以增加安全级别,因为它基于策略,任何没有被显式授权的操作都不能执行。MAC被开发和实现在最重视保密的系统中,如军事系统。主体获得清楚的标记,对象得到分类标记,或称安全级别。 最早的MAC模型,参照Bell and LaPadula,访问权根据主体的数字化的访问级别和对象的访问级别标记来授予。例如,管理员的访问级别65535,Alice的是100,客人(Guest)是1,有两个文件,file1级别2,file2级别200,这样Alice只能访问file1,客人不能访问file1和file2,管理员两个文件都可以访问。用户的访问级别需要比他想访问的对象的级别高或者相等。Bell and LaPadula模型,后来扩展为“多级安全”(Multi-Level Security,MLS)。MLS典型地应用到军事领域中,对每个对象使用标记(如top secret,secret,confidential,unclassfied)实现了一个外部安全层。只有位于相同层或更高层的用户能访问对象。工作机制是“need to know basis”,即最少的特权,用户只能访问他工作需要的对象。同时,主体不能向下写,即他们不能写或创建低于自己级别的标记的对象。这防止了主体把秘密和低于它的级别的主体共享,从而保证信息保密。
Role Based Access Control(RBAC)
管理员定义一系列角色(roles)并把它们赋予主体。系统进程和普通用户可能有不同的角色。设置对象为某个类型,主体具有相应的角色就可以访问它。这样就把管理员从定义每个用户的许可权限的繁冗工作中解放出来。 基于角色的访问控制模型RBAC,有时成为基于规则的基于角色的访问控制(Rule-Based Role-Based Access Control,RB-RBAC)。它包含了根据主体的属性和策略定义的规则动态地赋予主体角色的机制。例如,你是一个网络中的主体,你想访问另一个网络中的对象。这个网络在定义好了访问列表的路由器的另一端。路由器根据你的网络地址或协议,赋予你某个角色,这决定了你是否被授权访问。
实际使用 现代操作系统组合使用了上述的访问控制模型。尽管Windows NT没有实际使用RBMC,它使用内建的组实现了类似的模型,如Power Users,Server Operators,Backup Operators。管理员可以根据作业的行为增加额外的角色。拥有适当权限的用户可以分享资源,如文件和打印机,而且与DAC模型相应的,自主决定给与其它用户和组访问权。
将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。
关于iOS中的数据保护和全盘加密
iOS提供如下数据保护功能
- iOS提供全盘加密
- 提供数据保护API
这两个极致可以实现远程抹除设备数据,在设备丢失的情况下保护用户数据免于泄露
转载于:https://juejin.im/post/5c8763795188257e9044e407
移动安全-iOS(一)相关推荐
- Xcode couldn‘t find any iOS App Development provisioning profiles matching ‘com.example.***‘
在更新完iOS14.3后,Xcode真机调试时报错,无法进行真机测试: 报以下错误: No profiles for 'com.example.software.Login' were found: ...
- iOS视频硬编码技术
iOS视频硬编码技术 一.iOS视频采集硬编码 基本原理 硬编码 & 软编码 硬编码:通过系统自带的Camera录制视频,实际上调用的是底层的高清编码硬件模块,即显卡,不使用CPU,速度快 软 ...
- iphone smtp服务器没有响应,电子邮件卡在iPhone或iPad上的发件箱?如何修复iOS中的未发送邮件 | MOS86...
您曾经在iOS中发送电子邮件,只能将信息卡在iPhone,iPad或iPod touch的邮件应用发件箱中?你知道这是什么时候发生的,因为在iOS的Mail应用程序的底部,状态栏在iOS中显示1个未发 ...
- layer弹窗在IOS上,被软键盘挤到上边的解决方法
就像这种情况,经过多番请教跟尝试,找到一个能解决这个问题的方法,但可能有点笨重.就是在当前弹框里,设置offset的值,里边的值可以随意写,然后再下边给弹框追加一个样式即可. <!DOCTYPE ...
- iOS开发8:使用Tool Bar切换视图
之前讨论的都是单视图应用程序,而在实际应用中,我们可能要多个视图,并根据用户的需要切换视图. iOS中几种典型的多视图程序: (1)Tab Bar Application:程序的底部有一排按钮,轻触其 ...
- 25个增强iOS应用程序性能的提示和技巧 — 中级篇
本文由破船译自:raywenderlich 转载请注明出处:BeyondVincent的博客 _____________ 在开发iOS应用程序时.让程序具有良好的性能是非常关键的.这也是用户所期望的. ...
- iOS Webview打开不受信的URL
在我们开发过程中经常会碰到直接访问开发人员的私有地址, 这样在app 上是无法打开指定的网页的. 在iOS中需要对WKWebView 进行如下设置: 1.在工程的Plist 文件中添加一下选项 App ...
- iOS蓝牙开发---CoreBluetooth[BLE 4.0] 初级篇[内附Demo地址]
一.蓝牙基础知识 (一)常见简称 1.MFI make for ipad ,iphone, itouch 专们为苹果设备制作的设备,开发使用ExternalAccessory 框架(认证流程貌似挺复 ...
- iOS 开发经验总结
iOS 开发经验总结http://www.cocoachina.com/ios/20170216/18699.html 1.cocoa pods 常用的framework 1 2 3 4 5 6 7 ...
- iOS开发-xcdatamodeld文件 CoreData的介绍和使用,sqlite的使用
CoreData的介绍和使用 源引:http://www.jianshu.com/p/d027090af00e CoreData是数据存储的一种方式,CoreData实质也是对SQLite的封装. ...
最新文章
- 浅谈MVC Form认证
- 第六天 选择与循环语句
- RxJava 在Android中的应用(一)
- 教师节,收到学生的礼物和祝福,开心
- win7 dos窗口输入命令必须加后缀问题,例如 java必须输java.exe
- linux nginx 清除缓存文件,linux nginx 内置缓存怎么去掉
- android 应用的资源
- linux系统可安装博途吗,安装博途V14是在什么系统下?
- JAVA编写猜拳游戏
- android 触摸屏校准,android实现触摸屏校准
- JAVA实现战舰游戏
- 扩增子测序引入的假阳性稀有类群干扰对微生物群落多样性、构建机制及相互作用的研究...
- 了解资本与公司年报、财报
- 只会用Excel吗?这套全面的数据分析工具打包送你,拿走不谢
- win10计算机休眠后无法唤醒,win10电脑休眠后无法唤醒的解决办法
- Base64编码解析以及加密、解密实现
- 一刀传世服务器维护,#一刀传世#
- 为VsCode配置C++环境
- 西门子博途顺序控制车间皮带逆序停止程序
- 评价星星等级显示(包含星星对应的等级)