信息安全工程的概念
- 概念
口令
安全协议
- 中间人攻击
访问控制
访问控制原理 : 访问控制是在身份认证的基础之上,依据身份对对资源的访问请求加以控制
访问控制是网络安全防范和保护的主要策略,它可以限制对关键资源的访问,防止非法用户的侵入或合法用户的不慎操作所造成的破坏 。
访问控制的层次
应用层
可实施灵活,丰富和复杂的安全策略
中间件
维护基本的保护特性(簿记系统,数据库系统)
操作系统
对操作系统级的资源实施保护(文件,网络等)
硬件
进程的物理保护(处理器和内存管理硬件)
根据Biba安全模型原则不下读/不上写来保证数据的完整性。
通过Bell-Lapadula安全模型原则不上读/不下写来保证数据的保密性。(第8章多级安全)
-访问控制的三要素
客体(Object):
接受其他实体访问的被动实体。
可以被操作的信息、资源、对象都可以认为是客体
信息、文件、记录等的集合体;网路上的硬件设施,无线通信中的终端
主体(Subject):
提出资源访问请求或要求的实体。
用户或其它任何代理用户行为的实体(例如进程、作业和程序
实体:计算机资源(物理设备、数据文件、内存或进程)或一个合法用户
控制策略
一套规则,用以确定一个主体是否对客体拥有访问能力,它定义了主体与客体可能的相互作用途径。
主体对客体的操作行为集和约束条件集。
访问控制根据主体和客体之间的访问授权关系,对访问过程做出限制。从数学角度来看,访问控制本质上是一个矩阵,行表示资源,列表示用户,行和列的交叉点表示某个用户对某个资源的访问权限(读、写、执行、修改、删除等)。
- 访问控制的基本原则
最小特权原则
最小特权是指在完整某种操作时所赋予网络终每个主体(用户和进程)必不可少的特权。
最小特权原则是指应限定网络中每个主体所必须的最小特权,确保可能的事故、错误、网络部件的篡改等原因造成的损失最小。
多人负责原则
即授权分散化,对于关键的任务必须在功能上进行划分,由多人来共同承担,保证没有任何个人具有完成任务的全部授权或信息。如将责任作分解使得没有一个人具有重要密钥的完全拷贝。职责分离原则
职责分离原则
指将不同的责任分派给不同的人员以期达到互相牵制,消除一个人执行两项不相容的工作的风险。例如收款员、出纳员、审计员应由不同的人担任。计算机环境下也要有职责分离,为避免安全上的漏洞,有些许可不能同时被同一用户获得。
- 自主访问控制
自主访问控制任意访问控制:根据主体身份或者主体所属组的身份或者二者的结合, 对客体访问进行限制的一种方法。
自主:允许用户自主地把自己所拥有的客体的访问权限授予其它用户。
LINUX,UNIX、WindowsNT或是SERVER版本的操作系统都提供自主访问控制的功能。
在实现上,首先要对用户的身份进行鉴别,然后就可以按照访问控制列表所赋予用户的权限允许和限制用户使用客体的资源。
主体控制权限的修改通常由特权用户或是特权用户(管理员)组实现。
访问控制模型
访问控制矩阵
最初实现访问控制机制的概念模型
二维矩阵规定了任意主体和任意客体间的访问权限
访问控制列表(按列差分)
以客体为中心的访问权限表
权能表 (按行差分)
以主体为中心的访问权限表
特点:
根据主体的身份及允许访问的权限进行决策。
自主是指具有某种访问能力的主体能够自主地将访问权的某个子集授予其它主体。
灵活性高,被大量采用。
缺点:
信息在移动过程中其访问权限关系会被改变。如用户A可将其对目标O的访问权限传递给用户B,从而使不具备对O访问权限的B可访问O。
- 强制访问控制
根据客体中信息的敏感标记和访问敏感信息的主体的访问级对客体访问实行限制
用户的权限和客体的安全属性都是固定的
所谓“强制”就是安全属性由系统管理员人为设置,或由操作系统自动地按照严格的安全策略与规则进行设置,用户和他们的进程不能修改这些属性。
所谓“强制访问控制”是指访问发生前,系统通过比较主体和客体的安全属性来决定主体能否以他所希望的模式访问一个客体。
在强制访问控制中,它将每个用户及文件赋于一个访问级别,如:绝密级(Top Secret)、机密级(Secret)、秘密级(Confidential)及普通级(Unclassified)。
其级别为T>S>C>U,实现四种访问控制读写关系:
下读(read down):用户级别大于文件级别的读操作;
上写(Write up):用户级别低于文件级别的写操作;
下写(Write down):用户级别大于文件级别的写操作;
上读(read up):用户级别低于文件级别的读操作;
自主访问控制
配置的粒度小
配置的工作量大,效率低
强制访问控制
配置的粒度大
缺乏灵活性
- 计入角色的访问控制
授权给用户的访问权限,通常由用户在一个组织中担当的角色来确定。
“角色”指一个或一群用户在组织内可执行的操作的集合。角色就充当着主体(用户)和客体之间的关联的桥梁。这是与传统的访问控制策略的最大的区别所在。
- 缓冲区溢出攻击
函数调用的过程
Call:调用参数和返回地址
压栈,跳转函数入口
保存当前栈基址
返回:恢复调用者原有栈
栈溢出的基本原理
通过缓冲区溢出修改栈中的返回地址(EIP)
函数调用返回,执行EIP指向的代码段
难点1:修改后的返回地址填到正确的位置
难点2:返回地址指向所要运行的代码
寄存器的分段 : 代码段(cs)、数据段(ds)、堆栈(ss)、其他段
不安全的函数 :
查询集大小控制
不能查询t或N-t条记录
追踪者攻击
实验室里有十个教授,其中一个是女教授
教授的工资是保密的
教授的平均工资
男教授的平均工资
更高级查询控制
N响应,k%支配原则:小于n个样本做出了大于k%的贡献
最大顺序控制和网格模型
基于审计的控制
随机化
第五章
-安全模型
TCSEC将安全保护分成四等、八个级别,分别为D,C1,C2,B1,B2,B3,A1,超A1,安全级渐次增强。
不满足任何较高级别安全可信条件的系统划入D类。
C 类为自主型保护,由两个级别组成。
C1级:具有一定的自主型存取控制机制。象UNIX的OWNER/GROUP/OTHER 存取控制。
C2级:具有更细粒度(到每一个单独用户)的自主型存取机制,而且引入审计机制。
B类为强制型保护,由三个级别组成:
B1级:满足C2级所有的要求,而且需要有所用安全策略模型的非形式化描述,实施强制型存取控制。
B2级:系统的可信计算基(TCB)是基于明确定义的形式化模型,并对系统中所有的主体和客体实施了自主型存取控制和强制型存取控制。另外,具有可信通路机制、系统结构化设计、最小特权管理以及对隐通道的分析和处理等。
B3级:系统的TCB设计要满足能对系统中所有的主体对客体的访问进行控制,TCB不会被非法窜改,且TCB设计要非常的小巧和结构化以便于分析和测试其正确性。支持安全管理者的实现,审计机制能实时报告系统的安全性事件,支持系统恢复。
A类为验证型保护,由两个级别组成:
A1级:从实现的功能上看,它等同于B3。它的特色在于形式化的顶层设计规格(FTDS)、形式化验证FTDS与形式化模型的一致性和由此带来的更高的可信度;
A1以上级:比A1级可信度更高的系统归入该级。
安全目标
可用性(Availability)
完整性(Integrity)
保密性(Confidentiality)
安全模型
安全模型用于精确和形式地描述信息系统的安全特征,以及用于解释系统安全相关行为的理由。
按机制分类:访问控制模型、信息流模型等。
按服务分类:机密性、完整性、可用性模型等
但“安全模型”的表达能力有其局限性,通常的模型是形式语法多于形式语义,甚至只是自然语言的描述。
安全模型的作用
能准确描述安全的重要方面与系统行为的关系。
能提高对成功实现关键安全需求的理解层次。
开发出一套安全性评估准则和关键的描述变量。
多级模型
BLP模型 (1973)
该模型是可信系统的状态-转换模型。
定义所有可以使系统获得“安全”的状态集合,检查所有状态的变化均开始于一个“安全状态”并终止于另一个“安全状态”,并检查系统的初始状态是否为“安全状态”。
该模型是一种机密性访问控制的状态机模型。
模型定义的主客体访问规则
模型使用状态来表示系统中主体对客体的访问方式。
高级别的“可下读,不可下写”;
低级别的“可上写,不可上读”
允许用户读取安全级别比他低的资源;相反地,写入对象的安全级别只能高于用户级别。
简言之,信息系统是一个由低到高的层次化结构。
- 缺陷
只注重考虑了机密性,忽视了完整性需求
可用性方面,限制了高密级主体向非敏感客体的写要求。为了Bell后来引入了“可信主体”的概念,允许可信主体违反“向上写”属性,使得其访问权过大
灵活性缺失,-高水标原则
主体高水标:主体向下写,主动降低密级
客体高水标:客体提升密级 - 隐通道问题
高密级主体可以通过间接方式跟客体通讯
时间隐通道
存储隐通道 - 应用中的问题
内存管理能够在所有级别进行读和写,在实际应用中有悖于模型本身。除了对它进行“可信假设”外别无他法。
文件管理中,重名导致的信息泄露问题。而分立的系统使得BLP显得多余。
当低级别数据写入高级别程序时(即上写),由于模型的限制,低级别主体无法得到任何反馈,仿佛碰到了“黑洞”一般。
如果存在反馈,可能产生隐通道问题
分隔
分离的机制
长城
集中的信息流动控制
BMA
分布式的信息流动控制
Biba模型 (1977)
Biba模型基于两种规则来保障数据的完整性的保密性。
上读属性, 主体不能读取安全级别低于它的数据
下写属性, 主体不能写入安全级别高于它的数据
Biba与BLP模型的两个属性是相反的,BLP模型提供保密性,而Biba模型对于数据的完整性提供保障。
Biba模型并没有被用来设计安全操作系统,但大多数完整性保障机制都基于Biba模型的两个基本属性构建
面向主体的低水标(Low-Water Mark)
该策略中主体的完整性级别不是静态的,主体可以读较低完整性级别的客体,读取后该主体的完整性级别也随之降低为读操作之前客体的完整性级别,从而缩小了主体可以访问的客体集。
面向客体的低水标(Low-Water Mark for Object)
该策略中主体可以写较高完整性级别的客体,但写后该客体的完整性级别降低,从而导致了信息的泄漏,并且一旦客体的完整性级别降低后再也不能恢复。
- 缺陷
在灵活性方面获得了很多的提高,但可能引起低完整性级别与高完整性级别之间的不可靠信息流动
例:一个具有较低完整性级别的主体通过读取较高完整性级别的客体的信息,然后将它们写入同等完整性级别的客体中,这样,较高完整性级别客体中的信息就流入了较低完整性级别的客体中。
Clark-Wilson (1987)
通常被用在银行系统中来保证数据的完整性,是为现代数据存储技术量身定制的。
其实现基于成形的事务处理机制
系统接受"自由数据条目 (UDI)"并将其转换为 "受限数据条目 (CDI)"
"受限数据条目 (CDI)"仅能被"转换程序(TP)"所改变
"转换程序 (TP)" 保证"受限数据条目CDI"的完整性
每个受限数据条目(CDI) 拥有一个完整性检查程序 (IVP)
访问控制机制由三个元素组成 (主体, TP, CDI)
多边模型
网格模型(Lattice model)
继承自BLP模型
将主体和客体进行分组,控制信息在不同分组之间的流动
一个主体可同时从属于多个分组,而一个客体仅能位于一个分组。
在执行访问控制功能时,BLP模型中的“下读上写”原则在此仍然适用,但前提条件必须是各对象位于相同的安全分组中。主体和客体位于不同的安全分组不具有可比性,因此在它们中没有信息可以流通。
长城模型(Chinese wall)
每个客体只能属于1个COI
主体s只能访问与已访问信息不冲突的客体;
一个主体一旦已经访问过一个客体,只能访问处于同一公司数据集中的客体;或在不同兴趣冲突组中的信息;
在一个兴趣冲突中,一个主体最多只能访问一个公司数据集。
最初的访问是任意的
- 读写规则
读规则
主体s∈S 可读取o∈O,当且仅当o 和s 以前读取的客体在同一个数据集(即o 在“墙内”),或o属于s以前从未读过任何客体的COI类;
写规则
主体s∈S 可写入o∈O,当且仅当s 能够写入按照Brewer-Nash 读访问规则访问的数据,并任何与o 不在同一CD 集合中的客体都不能被s 读访问。 - 缺陷
一旦主体对数据集进行了读写操作,那么该主体永远不能访问与此数据集在同一冲突类的其它数据集,这不符合实际情况。
主体玛丽在一家投资公司工作,她能读中国银行数据集中的信息,但她一旦辞职,根据CWM 的读写安全规则,玛丽就不能在任何与中国银行在同一冲突类的投资公司工作,这不符合实际情况。 - 对主体相关性没有约束。如果两个利益相关用户访问同一冲突类中不同数据集的信息,由于用户之间存在特殊利益关系,可能会造成信息泄漏,破坏数据集中信息的安全性。
两个利益相关用户u1,u2 对同一冲突类中不同数据集进行读、写操作,因为用户u1 与u2 之间存在特殊利益关系,例如父子关系,那么父亲可能会将读取的信息泄露给儿子,反之亦然,从而破坏了数据集中信息的安全性。 - 根据读写规则,如某一冲突类COI 有Y 个数据集,那么每个客体均被访问至少需Y 个主体。因此用户数至少与最大冲突类中的最大数据集个数相等时,才有意义;且当用户与数据集间的访问关系不是一一对应时,仍然难于确定合理的用户个数。
冲突类X 中有3 个数据集y1、y2、y3,现在有3 个用户u1、u2、u3可访问该冲突类,如3 个用户都访问同一个数据集y1,使其它两个数据集y2、y3 无用户访问,造成数据集可用性降低。
BMA (1995)
是由客体同意主体可以有条件的查看并使用客体信息,目的是保证客体信息的完整性和可用性。
- 主要策略
访问控制 – 有权访问
病例都有访问控制表标记,记录读取和添加标记的人,系统阻止列表之外的人访问
创建记录
医生可以打开访问控制列表中和他有关的病人的病例,但需要经过病人委托。
控制 – 访问有责
在每个访问控制列表中必须有一个是可信的,只有他才能对病例进行写入。或可改变访问控制链表,只能向相关专家开放
同意和通知 – 及时通知
公开或添加访问控制表时,必须及时通知
持久
没人能删除临床医生的信息,除非它已过期
归属– 记录明确
访问有记录,以主题名字、日期、时间标记。审计必须追踪所有的删除信息
信息流动 – 往上写
当且仅当记录B的访问控制表包含在A是,记录A派生的信息可添加到B中
聚合控制
防止个人健康信息的聚合;防止某个人能接触太多个人健康信息,病人需有通知
可信的计算基
包含一个子系统,可以实施上述原则,并独立评估
推理控制
数据的二级应用
为研究、成本控制和诊疗审计提供的数据
医生保护数据的难度要比律师大
基本问题
二级应用时数据已经匿名化了
姓名、住址等
剩余信息仍有可能定位到个人
1946年6月2号生的
1967年5月8号参加足球比赛时腿骨骨折
如何处理开放数据
保护个人隐私
维护数据的价值
分布式系统安全
分布式的定义
两种定义
一个分布式系统是一组具有网络连接和独立功能的计算机,在一套特殊的软件管理下,整个分布式系统在用户面前呈现为一个透明的整体。
一个分布式系统是一组位于网络计算机上的并发构件,这些构建之间的通信以及任务协调都只能通过信件传递进行,其目的就是实现资源共享。
特点
资源共享、透明性、开放性、可调节性
标志符与地址及人性化名称有什么不同?
无线安全
入侵检测技术
- 误用、异常检测特性
密码学
在DES算法中,需要进行16轮加密,每一轮的子密钥长度为 48 位
- RSA 的计算
要求输入小于264位,输出为160位
无线安全
WPA和WEP的区别,4次握手,WPA的基本构成