移动安全-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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值