操作系统安全复习笔记
[TOC]
系统安全概述
基本概念
- 信息系统:由计算机硬件、网络和通讯设备、计算机软件、信息资源、用户和规章制度组成的,以处理信息流为目的的人机一体化系统
- 信息系统安全:为数据处理系统建立和采取的技术和管理的安全保护。保护计算机硬件、软件和数据不因偶然的或恶意的原因而受到破坏、更改、泄露
- 网络空间:网络空间是网络化的电磁频谱域所有领域,与陆、海、空、天并行存在。包括计算机、嵌入式电子设备、和各种网络化基础设施.(空天一体化安全)
- 网络空间安全:物理设施的可靠运行,软件的正常工作,数据的安全传输
网络空间安全与计算机系统安全、信息安全等慨念之间的关系
- 网络空间安全的核心内涵仍然是信息安全。
- 哪里有信息哪里就存在信息安全问题。
- 网络空间存在更加突出的信息安全问题。
安全属性
这里和网络安全还不一样了,离谱,安全圈定义都不一样,一套一套的,学的什么东西。
网络安全的
- 机密性(Confidentiality):确保信息不会暴露给未授权的实体或者进程,保证机密性的主要措施是密码技术。
- 完整性(Integrity):信息在储存或者传输中不被蓄意或者偶然的破坏的特征,保证完整性的主要措施是密码技术和身份认证技术。
- 可靠性:系统在规定的条件和时间内完成规定功能的概率。
- 不可抵赖性:也称不可否认性,收发双方不可抵赖。
- 隐私性:个人能控制或者影响与自身有关的信息的收集和存储。
- 可说明性:要求实体的动作能够被唯一追踪。
- 可审计性:系统对其所有操作有监视的能力。
- 可靠与可信任性:系统验证身份并在第三方及其提供的信息中建立信任的能力。
操作系统安全的
- 保密性:确保信息不会暴露给未授权的实体或者进程(包括物理隔离,信息加密,流量填充,访问控制)
- 完整性(Integrity):信息在储存或者传输中不被蓄意或者偶然的破坏的特征,保证完整性的主要措施是密码技术和身份认证技术。(数字签名,哈希计算,序列号,时间戳)
可用性:系统在规定的条件和时间内完成规定功能的概率。(检测,应急响应,备份恢复)
可控性:可控性就是对信息流动实施监控,能够根据授权对系统进行监测和控制。(访问控制,审计,过滤)
- 不可否认性:也称不可否认性,收发双方不可抵赖(数字签名,第三方认证)
- 可认证性:又称为真实性,是指能够对信息的发送实体和接收实体的真实身份,
- 可追溯性:也称可问责性、可追究性、可审查性或河审计性,是责任的完整性。
- 真实性:真实性保证主体或资源的身份正是所声称的特性。真实性应用于诸如用户、过程、系统和信息等实体。网上谣言、网络水军、机器自动投票、羊毛党的薅羊毛行为都是对真实性的破坏。
- 可靠性:与预期行为和结果一致的特性。如不因环境恶劣设备出现故障
- 匿名性:是标识的保密性。指信息主体无法被识别或关联。
- 隐私性:是个人数据的保密性。指个人数据不被泄露。
安全威胁
安全威胁分为三类:
- 信息泄露
- 信息破坏
- 拒绝服务
安全威胁来源分为两类:
自然因素:包括各种自然灾害、系统环境和场地、电磁干扰、设备老化等
人为因素:有意和无意之分;无意:操作、设计失误等;有意:恶意攻击等
攻击分类:
- 被动:信息丢失,外部泄露,部署不当,配置错误,访问控制失效
- 主动:恶意程序,安全漏洞利用,拒绝服务
攻击分类:阻断,截取,篡改,伪造,重放
微软威胁分类:
威胁 | 安全属性 |
---|---|
假冒(S) | 认证 |
篡改(T) | 完整性 |
抵赖(R) | 不可抵赖性 |
信息泄露(I) | 保密性 |
拒绝服务(D) | 可用性 |
权限提升(E) | 可控性 |
系统安全保护
系统安全保护原则
- 分层原则: 对信息系统设置多个防护层次,这样一旦某一层安全措施出现单点失效,不会对系统的安全性产生严重影响
- 最小授权原则:系统仅授予实体(用户、管理员、进程、应用和系统等)完成规定任务所必需的最小权限,并且该权限的持续时间也尽可能短。
- 简单性原则:在使用安全技术和实施安全措施中,需要使安全过程尽量简洁,安全工具尽量易于使用且易于管理。
系统安全模型
概念
- 系统安全动态模型:纵向
- 系统安全层次模型:核心
- 系统安全综合模型:横向
安全的特性
- 动态性:安全是相对的,在一个特定的时期内,在一定的安全策略下,系统是安全的,但是随着时间的演化和环境的变迁(如攻击技术的进步、新漏洞的暴露),系统可能会变的不安全。
- 整体性:系统的安全性由安全的软件系统,防火墙,网络监控,信息审计,通讯加密,灾难恢复,安全扫描等多个安全组件构成
动态模型
- P2DR模型:策略(Policy)、保护(Protection)、检测(Detection)和响应(Reaction)
- PDRR模型:保护(Protection)、检测(Detection)、响应(Reaction)和恢复(Restore)
- P2DR2模型:策略(Policy)、保护(Protection)、检测(Detection)、响应(Reaction)和恢复(Restore)
- WPDRRC安全模型:在PDRR模型的前后增加了预警(Warning)和反击(Counterattack)功能(我国)
分层防御
系统安全综合模型
保障网络空间安全可从监察安全、管理安全、技术安全、立法安全、认知安全等几个方面着手,缺一不可
系统安全管理
什么是信息安全管理:?
从广义上讲,是指基于风险的安全管理。是指为了实现信息系统的安全目标,针对系统中需要保护的工作对象,通过技术和管理的手段,将系统潜在的风险控制在可接受的范围内。
信息安全管理的PDCA模型及内涵
四个阶段及主要工作
计划(Plan):建立与组织总体战略、目标和方针保持一致的信息安全管理方针、策略,通过风险评估建立控制目标和方式,指定风险处理计划。
实施(Do):按照控制目标和方式实施信息安全管理,开展全员安全培训,实施安全控制。
检查(Check):对照信息安全管理体系的方针、目标,对信息安全管理进行监视和验证,评审ISMS的有效性和适当性。
处理(Act):基于上述对体系的内部审核和管理评价的结果,采取纠正和预防措施,以持续改进组织的信息安全管理体系。
在ISO/IEC27001:2013(GB/T 29246-2017)。中,通过融合PDCA思想,提出了信息安全管理体系的运行流程。其组成细化成七个部分:
- 计划阶段:组织环境、领导力、计划、支持
- 执行:实施和运行
- 检测:监视和评审
- 处理:维护和改进
网络等级保护与信息安全管理体系的联系和区别
- 联系
- 信息安全管理体系是站在管理的角度上对信息进行管理,而等级保护则是管理体系中的一部分,是基础性的工作,两者在管理目标上具有一致性,而且还有相辅相成的作用。
- 区别
- 信息安全管理体系和等级保护的工作重点不同。
- 信息安全管理体系和等级保护所依据的标准不同。
活动目录设计及关键机制
活动目录简介
什么是活动目录:指域环境中提供目录服务的组件
活动目录的特点:
不仅存储网络对象信息,还提供了目录服务
为企业提供网络环境中的集中式管理机制
使企业网络具有极强的可拓展性
完成单域及多域环境下活动目录管理功能的机制:
单点目录
全局目录
智能的信息复制(多主复制)
组策略:可在不同层次上定义控制规则
单点登录
什么是单点登录(SSO):多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统
单点登录的特点:
- 在用户模式下,安全子系统是运行活动目录服务的真正子系统
- 在内核模式下,安全引用监视器执行安全子系统规则
全局目录GC(登录、查询)
什么是全局目录GC:全局目录是一个域树或者域森林中所有对象信息的中心仓库。他记录了AD中所有域对象的部分信息以及架构信息和配置信息的完整副本。
活动目录保存的信息
每个域控制器活动目录中保存的信息被分成三类:域数据、架构和配置数据
域数据 :包含该域内所有对象的信息,这些信息被复制到该域的每个域控制器(不超出该域的范围)
架构数据:定义了可在Active Directory中存储哪些对象、属性和操作规则。属于目录林的范畴,在林中的每一个域控制器上存储。
配置数据:定义了复制拓扑及与AD配置有关的其他数据(即其中存在哪些域,域控制器的位置等等),对域森林中所有域通用,也被复制到森林的所有域控制器。
设域控制器是GC服务器,还将保存第四种信息
- 为所有域保存“域数据”的部分副本(GC保存的属性子集
包括那些在搜索 操作中最常用的属性)
- 为所有域保存“域数据”的部分副本(GC保存的属性子集
同一个域中的计算机共享配置,架构和全局编录GC
全局目录的关键目录任务:登录和查询
登录:客户登录时,向域控制器提供通用组成员信息。用户登录网络时,必须存在一台全局编录服务器,否则只能登录到本地。
查询:用户在发出查询请求时首先会送到最近的全局编录(GC),通常GC可满足绝大部分查询,当查询对象不在GC中时,服务器会将查询转至对象所在域。从而实现跨所有域的搜索
多主复制
什么是多主复制:通过安装域控制器,可在整个网络环境中创建目录的多分副本。
多主复制的特点:网络任何地方发生变化都会在整个网络中自动复制,保证数据的一致性。
组策略
组策略功能:可在不同层次上定义控制规则
组策略
组策略的设置对象
组策略设置对象:
在域中,设置对象有:站点,域,组织单元(OU)
设置方法:
可以将一个组策略链接多个站点,域,组织单元(OU)
可以将多个策略连接到同一个站点,域,组织单元(OU)
对于本地计算机:如果不在域中的计算机可以利用本地组策略(本地策略)管理计算机
组策略处理和优先级(重点)
组策略的继承及冲突解决:
- 默认情况下,子策略基础父容器的策略设置。
- 子容器的设置优于与从父容器继承下来的设置,如果有重叠且不兼容,那么子容器将覆盖父容器的设置。
- 如果兼容,那么子容器将继承父容器的设置,并与自身的设置合并。
组策略的纵向处理(默认处理):
处理顺序:
本地策略对象
链接在站点上的GPO对象(组策略对象)
链接在域上的GPO对象(组策略对象)
连接在OU(组织单元)上的GPO对象(组策略对象)
在OU组策略对象中仍会细分,处理顺序依次是:
最高级OU的GPO—>子级OU的GPO—>最低级OU的GPO
处理注意点:
排在处理顺序后面的GPO,拥有最高的优先级
工作组成员只处理本地组策略对象
下图为处理例子:
这里A6属于本地策略对象,所以优先处理
优先级的顺序与处理顺序相反
在纵向处理中组策略的例外处理:
- “禁止替代”选项(强制)
在组策略对象GPO属性上设置
目的:防止随后的处理组策略对象覆盖该组策略对象中的所有策略设置
冲突解决:有多个组策略对象设置为“禁止替代”时,如果发生冲突,那么就会优先采用在活动目录层次结构中处于最高层的那一个。
- 阻止策略继承
容器属性上的设置
介绍:在任何一个站点、域或组织单元上,容器都可以被选择性的标记为“阻止策略继承”,来禁止从父目录容器继承组策略。但是,设置为“禁止替代”的组策略对象链接将始终都会被采用,且不能阻止。
用户配置的横向冲突处理:
环回处理(横向冲突处理)
基本原理:
组策略分为俩部分,上班部分是计算机策略,下半部分是用户策略,域中用户如果从域的不同位置的计算机登陆系统,正常情况下,组策略按以下顺序执行:
执行computer的策略基于computer OU的计算机策略
执行user的策略基于user OU的用户策略
环回处理就是让用户策略是基于计算机的OU的user policy,或以计算机OU的user policy为主(提升计算机OU的user policy级别)
功能:
替换模式:在系统启动时计算机所在容器的GPO列表完全替代用户所在容器的GPO策略列表
合并模式:计算机容器的GPO用户策略列表添加到用户容器的GPO用户策略列表之后,所以,有冲突的话,计算机容器的用户策略权限具有更高的优先权
带筛选约束的策略(非重点)
主要功能:可以对策略能施加的用户和计算机做过滤
俩种筛选方法:安全筛选和WMI筛选
安全筛选原理:利用访问控制,安全筛选用于精确定义哪些用户和计算机可应用组策略对象(GPO)中的设置。
WMI筛选原理:结合WMI筛选器,将组策略只应用在组织单位中特定的计算机类别或用户属性上。
组策略的冲突解决方法
纵向冲突处理
“禁止替代”选项:用以防止随后的处理的组策略对象覆盖该组策略对象中的所有策略设置。
阻止策略继承:禁止从父目录容器继承组策略。
横向冲突处理
主要是用到了环回处理,即提升计算机OU的user policy级别
环回处理共有以下模式:
替换模式:**指在系统启动时计算机所在容器的GPO列表完全替代用户所在容器的GPO策略列表。
合并模式:**计算机容器的GPO用户策略列表添加到用户容器的GPO用户策略列表之后,有冲突时,计算机容器的用户策略权限具有更高的优先权。
公钥PKI
概述
公钥技术
- 加密(密钥分发):提供保密性服务
- 数字签名:提供完整性,可认证性,抗抵赖性服务
中间人攻击:
Bob没有办法判断他所收到的公钥是否来自Alice
解决方法:引入证书
- 找到一个可信方验证主体
- 把公钥和所有者身份绑定到证书中
- 证书不能被伪造(forged)或篡改(tampered)(使用数字签名)
用可信方的数字签名抵御MITM攻击
安全通讯过程:
Alice需要获得受信任方签名的证书。
- 受信任方颁发一个带有Alice身份信息和她的公钥的证书
- Alice将整个证书发送给Bob。
- Bob用受信方的公钥验证证书。
- Bob现在知道了公钥的真正主人。
公钥基础架构PKI
公钥基础架构PKI是一个安全基础设施,是一个包括硬件、软件、人员、策略和规程的集合。用来实现基于公钥密码体制的密钥和证书的产生、管理、存储、分发和撤销等功能
密钥生命周期:密钥产生,证书签发,密钥使用,证书检验,密钥过期,密钥更新
PKI的组件:
- 用户:使用者,验证者
- 证书签发机构(CA):是公钥基础设施中受信任的第三方实体,是信任的起点,向主体颁发证书,证书吊销列表CL,续借和更新证书(最重要的是CA+数字证书)
- 证书注册机构(RA):RA主要用于在证书登记过程中核实证书申请者的身份,有的架构中,CA也委派给RA一些其他责任,像个人认证,吊销报告、密钥生成、存储密钥对。
- 证书库:CA系统中活动的数字证书的数据库,主要存储CA颁发证书和证书撤销列表(CRL)
- 档案库:主要任务是储存和保护充足的信息来决定在一份旧的文档中数字签名是可以信任的。主要使用目录服务LDAP和数据
- 密钥备份及恢复系统:密钥的备份与恢复只能针对解密私钥,签名私钥不能备份,密钥的备份与恢复应由可信机构来完成。
- 证书废除处理系统:证书在有效期内由于某些原因可能需要废除
- 应用系统接口:一个完整的PK必须提供良好的应用接口,使各种应用能够与PK交互。
PKI功能
- 认证:数据源认证,身份认证
- 完整性:数据完整性,实体完整性
- 不可否认性:数字签名
- 保密性:公钥分发密钥,密钥加密数据
用途:电子商务,网上银行,安全电子邮件,VPN, SSL/TLS,文件保护
证书申请
- 新用户发起证书申请,发起注册信息给RA
- RA系统审核用户身份,审核通过的注册请求发送给CA,CA为用户签发证书下载凭证
- RA系统将证书下载凭证发送给用户,用户提交证书申请请求
- 证书下载到用户本地,同时,证书发布到证书仓库
应用程序校验证书:
- 获取用户的身份信息
- 进行证书吊销状态检查(CRL、OCSP)
- 检查证书的有效期
- 检验数字证书
数字证书
证书最重要得信息有主体名、公钥以及认证机构的签名、算法和用途。
- 证书结构
- 证书吊销列表CRL
PKI适用于异构环境,所以证书格式必须统一,公钥证书的形式是由X.509标准制定
数字证书主要域说明
- 颁发者Issuer:签发证书的机构
- 主体Subject:证书拥有者信息
- 证书公钥信息Subject Public Key Info:包含的实际公钥,包含其模数和指数
- 签名算法Signature Algorithm:签发者的数字签名算法
- 有效期Validity:证书的有效时间
- 证书的序列号:Serial Number
- V3版本的可扩展项Extensions。
V3扩展后
- 有扩展标志和扩展值,以及扩展是否必须(critical)
- KeyUsage:表明证书中公钥的作用
证书导入和导出支持四种文件格式:
- 个人信息交换((PKCS#12): 个人信息交换格式(扩展名。PFX)支持安全存储证书、私钥和证书路径中的所有证书。唯一可用于导出证书及其私钥的文件格式。
- 加密消息语法标准(PKCS#7): 支持存储证书和证书路径中的所有证书。扩展名为.p7b
- DER编码的三进制X509: 区别编码规则(DER)格式支持存储单个证书。该格式不支持存储私钥
或证书路径。 - Base64编码的X.509: Base64格式支持存储单个证书。该格式不支持存储私钥或证书路径(PE后缀)
证书吊销列表CRL基本域标识
撤销方式:周期发布制度,在线查询制度
认证机构
PKI结构
单个CA
单个CA的结构是最基本的PKI结构
层次结构
许多CA,它们被组织成个层次结构,由根CA和中间CA组成
根CA有自签名的证书
根CA依次给下面的CA进行签名
层次结构中的叶子节点CA对安全主体进行签名
对主体而言,它信任根CA,中间CA可以不必关心(透明)
在CA上要维持这棵树,每个CA节点需要保存两种证书:
前向证书:其他CA发给它的证书
后向证书:它发给其他CA的证书。
验证过程
如果A 验证B
- 沿层次树往上找,可以构成一条证书链,直到根证书
- 验证过程相反
- 从根证书开始,依次往下验证每个证书的签名,一直到验证B的证书签名
- 如果所有的签名都验证通过,则通过。
网状结构
独立的CA双方交叉认证(也就是互相发放证书),结果是在对等的CA中产生了信任关系网。信任仅存在于这两个CA及其下面的子CA之间。
交叉验证 交叉证明指CA之间互相证明以建立一种横向信任关系,这是一种对等信任模型,信任 可以是单向也可以是双向的。交叉验证为不同PKI实现相互集成提供了方便途径
桥式PKI
桥式PKI通过引进一个新的CA(称为桥式CA)来连接企业之间的PKI。桥式CA惟一的目的是为企业PKI建立关系。
与网状结构CA不同的是,桥式CA不直接发布证书给用户;与层次结构中的根CA不同的是,桥式CA也不是当做一个信任点来使用的。所有的PKI用户把桥式CA当做一个中间人。桥式CA为不同企业的PKI建立对等关系(P2P)。这些关系可以组合成为连接不同PKI用户的信任桥。
- 如果信任域由层次PKI实现,那么桥式CA将和根CA建立关系。
- 如果信任域由网状PKI实现,那么桥CA只会和它的一个CA建立关系
- 和桥CA建立信任关系的CA被称为主CA(principal CA)
证书验证
证书验证步骤:
- 验证真实性。证书是否为可信任的CA认证中心签发?
- 验证有效性。证书是否在证书的有效使用期之内。
- 验证可用性。证书是否已废除。
- 验证证书结构中的证书用途。
证书真实性的验证是基于证书链验证机制的
证书链
验证证书链
- 检查根CA GlobalSignRoot的证书是否在浏览器的信任CA列表中(自签名的)
- 用根CA的公钥验证中间CA GlobalSign OrganizationValidation的证书
- 用中间CA的公钥验证淘宝的证书
- 如果整个证书链被成功验证,证书验证通过
部署CA
部署CA
- 创建CA
- 创建一公私钥对
- 创建一个X.509证书
- 如果是根CA,那它将自己给自己签名,自签名
- 根CAs和自签名证书
- root CA的公钥是存在X.509证书中,它是自签名的
- 根CA的公钥证书被预装在操作系统、浏览器、其他软件中
- 为中间CA创建证书
从CA获取X.509用户证书
- 生成公私钥对
- 用户生成证书签名请求(CSR)
- 用户需要把CSR请求文件传送给CA,CA验证CSA中用户身份,验证通过,发放证书
PKI安全性
证书用户如何抵御MITM攻击
- 攻击者转发真实证书:中间人无法得知具体的加密密钥,无法建立中间人秘密通道(可拒绝服务攻击ddos)
- 攻击者创建一个伪造证书:伪造证书(自己的公钥)(自己签发),浏览器无法验证,给出警告,用户判断,可能成功连接
- 攻击者发送自己的证书:证书有效,可以通过验证,但与请求网站的身份不同,浏览器中止
验证通用名称域的重要性
- 在TLS/SSL握手协议期间,浏览器做两种重要的检测。
- 检查收到的证书是否有效(由SSL库执行)
- 检查证书主体的通用名(common name)是否跟服务的网站名一致。
- 因为SSL不知道用户真正想访问的网站是什么,所以,这个任务应该由应用程序来完成。
- 没有验证COMMON Name是非浏览器程序的普遍错误。
- 可以通过展示给用户,从而获得用户的确认。注意防范用户确认攻击。
CA私钥保护
对于PKI来说,最重要的就是对CA的私钥的保护。如果CA的私破坏,攻击者可以在主题字段中用任何任意的数据来签署证书。
CA私钥可以
颁发证书时的签名
发布CRL时进行签名
如何保护CA私钥?
最安全的是硬件安全模型HSM
角色分离(管理上)
可能管理员可以执行CA的全部功能
但是从对安全性有更高要求的环境来说,需要对CA的访问有更细粒度的控制。
- CA or PKI Administrator :管理CA
- Certificate Manager :颁发和撤销证书
- Enrollment Agent:代替用户注册用书
- Key Recovery Manager:当证书的私钥丢失了,进行恢复
其他辅助角色:
Backup Operator:负责备份CA,用于CA故障时恢复数据
Auditor:reivew审计日志,保证security policy没有被违反
攻击算法及其防御
- 数字证书依赖于两种类型的算法:单向哈希函数和数字签名
- 单向哈希的抗碰撞特性
- 对策:使用更强的算法,如SHA256, SHA384、SHA512。
用户确认攻击案例:对通用名编码Unicode的钓鱼攻击,2017年,zheng Xudong描述了一种新的钓鱼攻击:
身份认证
概叙
系统安全最基本的服务:AAA
- 身份认证(Authentication):对用户身份的证实。认证能防止攻击者假冒合法用户获取访问权限。
- 授权(Authorization):当用户身份被证实后,赋予该用户进行资源访问的权限。
- 审计/记账(Accounting):每一个用户都应该为自己所做的操作负责,所以在每个操作都要留下记录,以便事后核查。
身份认证:宣称者向验证方出示证据,证明其身份的交互过程。
- 标识:实体通过呈现身份标识信息,在系统中唯一确定身份
- 认证: 识别主体真实身份的过程称为认证,它是一类协议。认证协议是双方或多方通过一系列规定的步骤来交换认证信息完成核实用户身份的任务。
身份认证的基本形式:
- 主体所知道的 (What you know),如要求输入用户的口令,密钥或记忆的图形图像等
- 主体所拥有的 (What you have) ,如 智能卡、USB Key等。
- 主体自身的特征 (What you are),如用户的指纹、声音、视网膜等生理特征以及签字、击键等行为特征。
根据认证的对象不同,认证可分为
- 实体身份认证:这种认证是认证实体本身的身份,其认证是动态的交互过程
- 目的:认证后允许实体进行其它活动或通信。
- 消息认证:消息认证是静态的,消息认证形成的数据块附加在被发送消息之上一起发送给接收者。
- 这种认证是为了确定被认证实体与某个消息有着静态的不可分割的联系。
- 两者联系:进行身份认证时,可以利用消息认证作为基本方法,用于设计身份认证协议。
身份认证类型
- 基于文本口令认证的安全机制
- 基于密码学的认证协议(能分析协议,根据需要设计协议)
- 基于图形口令的认证
- 基于令牌的认证
- 基于生物特征的认证
- 基于二维码的认证
- 统一身份认证
基于文本口令认证的安全机制
什么是基于文本口令的认证:基于口令的机制允许人们选择自己的口令,并且不需要辅助设备生成或储存。
优缺点:编写简单,费用低,但存在安全风险
常见口令攻击
我觉得这里老师说的应该是防范这些攻击的相应安全机制
字典或穷举攻击(认证端)
常用攻击手段:
利用线上认证服务
利用系统漏洞入侵或获得权限升级获得口令文件,实现拖库、撞库
通过物理接触获得系统口令文件
缓存数据区
常用攻击途径:社交工程、窥探、垃圾收集、污迹攻击
网络数据监听:
原理:非法截获传输的明文数据及口令
窃听对策:加密传输数据,即后面的基于密码学的认证
截取/重放攻击:
原理:利用截获的值攻击者可以重新提交到同一服务器
目的:破坏协议安全性
实质:消息的新鲜性不能得到保证
防御针对传输过程的攻击
- 窃听对策:加密
- 重放攻击:是指攻击者利用其消息再生能力生成用户所期望的消息格式,并重新发送,从而达到破坏协议安全性的目的。
- 消息重放的实质是消息的新鲜性 (Freshness)不能得到保证。
如何防范重放攻击
挑战/应答机制:通过发送挑战值,通常是一个时变的随机数,来确保消息的新鲜性
时间戳机制:对消息附加时间戳,只有当消息上的时间戳与本地时间差值在一定范围内才接受消息
序列号机制:要求通信双方协商一个初始的序列号,并协商递增的方法
防御措施
在认证端:防范字典或猜测攻击、拖库、撞库
在用户端:防范社交工程、窥探、垃圾收集
在认证过程中:防范窃听、重放、中间人攻击
防离线字典、穷举攻击:
- 基于单向函数的口令存放:口令hash散列存储
原理简介:将window本地账户和口令信息存放在SAM数据库中,将域账户信息和口令信息保存在域控制器的活动目录AD中
- 加盐Hash散列存储:
目的:防止复制的口令在口令文件中出现、显著增加了离线口令字典攻击的难度、攻击者不能发现一个用户在多个系统中使用相同的口令
- 强口令设置
- 口令设置策略:约束口令满足复杂度要求,即不少于8个字符,其中包括大写字母、小写字母、数字和特殊符号。
- 设置口令允许登录的次数,防止在线字典攻击或暴力破解,设置最长使用期限(即要定期更换口令),增大穷举、字典攻击的难度。
组策略设置 密码策略
密码复制度
强制密码历史
- 密码最长/最短使用期限
- 通过在规定的失败登录尝试次数之后锁定账号(防止暴力)
- 包含内容(复位账户锁定计数器,账户锁定时间和阈值)
利用验证码增强安全(非重点)
目的:抵御在线口令猜测攻击
过程: 验证码由服务器完成生成、分发、校验、后处理。
分类:静态验证码、行为式验证码、间接式验证码(手机短信)
基于密码学的认证协议
考试:给出要求,设计协议;分析协议并分析会话密钥协议过程
关于分析协议过程我认为应该是像PPT中分析非对称加密一样,分析该协议存在的不足和确保了数据怎样的性质
分类:
- 基于对称密码的验证机制
- 基于MAC码的验证机制
- 基于非对称密码的认证机制
基于对称密码算法的鉴别机制
原理:实体A、B在开始具体运行认证机制之前应共享一个公共的密钥Kab,声明方A要被验证知道$K_{ab}$。该鉴别机制可以拥有可信第三方(KDC)用于密钥管理,但不是必要的。
实现消息认证特点:
- 身份来源:只能来自于A
- 完整性:传输中没被篡改。(有特定的格式/冗余)
- 保密性:只有A和 B 知道k.
单次传递认证:由声称方A启动此过程并被验证方B认证。唯一性和时效性是通过产生并检验时间戳TN或序号来控制的。
俩次传递认证(挑战/应答模式):验证方B启动此过程并对声称方A进行认证。唯一性和时效性是通过产生并检验随机数$R_B$来控制的
基于MAC码的机制
什么是消息认证码MAC:利用共享密钥来生成固定长度的数据块
特点:
固定长度
由校验算法生成:$MAC = F(K_{AB},M)$(算法输入秘密密钥和特定的数据,F函数是不可逆的)
通信双方共享密钥,接收者对特定输入数据执行相同方向的计算,并检查它是否与收到的MAC匹配
确保数据来自声称的发送者且传输过程没有被篡改
作用:提供消息认证的完整性、发送者身份验证俩种服务
MAC的主要生成方法:(1)基于对称加密(CBC模式)(2)使用散列函数
MAC的应用:HMAC:其中,HMAC(键控散列消息认证)是最受欢迎的,已作为RFC2104发布。被强制用于IP安全,并且也用于TLS和SET协议,以及NTLM认证协议。
- 速度快
- 易扩展(和其他hash结合)
MAC是专门用来生成鉴别码的技术。
- 与数字签名不同。数字签名是通过散列函数生成消息摘要,然后用非对称算法中的私钥签名可实现消息的完整性、认证性和抗抵赖性。
- MAC使用的是对称密钥,实现的是消息认证服务中的:完整性和认证性服务。
基于非对称密钥算法的机制
对非对称密钥算法可能认证方案的分析
仅使用公钥加密: 无法实现消息鉴别所包含的任何一项安全服务,仅能提供“保密性”
使用私钥加密(签名): 如果发送者使用私钥加密,因为所有人都知道公钥,所以不具备保密性
- 可以实现消息认证所有的三种安全服务:
完整性:传输过程中没有被篡改
证实发送者A的身份
每一方都可以用Pua验证签名
- 先私钥加密后公钥加密:同时提供保密性和消息认证所有的三种安全服务
总结:
公钥加密:仅提供保密性,不能进行认证
私钥加密:可提供消息鉴别的三种安全服务,不具备保密性
先私钥后公钥加密:保密性、消息认证的所有三种服务
认证与密钥交换协议设计
定义:若用于连接完整性服务的密钥被在线建立,则将认证和密钥交换功能结合在一个协议中
目的:使得通信各方互相鉴别身份,然后交换会话密钥
核心问题:保密性和时效性
认证和密钥交换协议的核心问题有两个:保密性和时效性。
- 认证和会话密钥信息必须以加密形式通信。这就要求预先存在保密或公开密钥供实现加密使用。
- 防止消息重放攻击。对策是使用非重复值。
- 序列号:需保持上次消息的序号
- 时间戳:需要时钟同步,时间窗口
- 随机数:挑战/应答模式适用于连接性应用
- 计数器:发送方和接收方各维护一个计数器(硬件支持)
具体算法
Kerberos协议
背景
Domain Controller | 域控制器,简称DC,一台计算机,实现用户、计算机的统一管理。 |
---|---|
Key Distribution Center | 秘钥分发中心,简称KDC,默认安装在域控里,包括AS和TGS。 |
Authentication Service | 身份验证服务,简称AS,用于KDC对Client认证。 |
Ticket Grantng Service | 票据授予服务,简称TGS,用于KDC向Client和Server分发Session Key(临时秘钥)。 |
Active Directory | 活动目录,简称AD,用于存储用户、用户组、域相关的信息。 |
Client | 客户端,指用户。 |
Server | 服务端,可能是某台计算机,也可能是某个服务。 |
Kerberos 认证原理
- 首先 Client 向域控制器 DC 请求访问 Server,DC 通过去 AD 活动目录中查找依次区分 Client 来判断 Client 是否可信。
- 认证通过后返回 TGT 给 Client,Client 得到 TGT(Ticket Granting Ticket)。
- Client 继续拿着 TGT 请求 DC 访问 Server,TGS 通过 Client 消息中的 TGT,判断 Client 是否有访问权限。
- 如果有,则给 Client 有访问 Server 的权限 Ticket,也叫 ST(Service Ticket)。
- Client 得到 Ticket 后,再去访问 Server,且该 Ticket 只针对这一个 Server 有效。
- 最终 Server 和 Client 建立通信。
简单过程
- 客户端C向认证服务器AS:请求票据许可票据
- 认证服务器AS向客户端C:票据许可票据+会话密钥
- 客户端C向票据许可服务器TGS :请求服务授予票据
- 票据许可服务器TGS向客户端C:服务授予票据+会话密钥
- 客户端C向应用服务器S:请求服务
- 应用服务器S向客户端C:返回服务器认证符
攻击
Kerberos 认证并不是天衣无缝的,这其中也会有各种漏洞能够被我们利用,比如我们常说的 MS14-068、黄金票据、白银票据等就是基于Kerberos协议进行攻击的。
- 黄金票据(Golden ticket)
在 Windows 的kerberos认证过程中,Client 将自己的信息发送给 KDC,然后 KDC 使用 Krbtgt 用户的 NTLM-Hash 作为密钥进行加密,生成 TGT。那么如果获取到了 Krbtgt 的 NTLM-Hash 值,不就可以伪造任意的 TGT 了吗。因为 Krbtgt 只有域控制器上面才有,所以使用黄金凭据意味着你之前拿到过域控制器的权限,黄金凭据可以理解为一个后门。
先假设这么一种情况,原先已拿到的域内所有的账户 Hash,包括 Krbtgt 这个账户,由于有些原因导致你对域管权限丢失,但好在你还有一个普通域用户权限,碰巧管理员在域内加固时忘记重置 Krbtgt 密码,基于此条件,我们还能利用该票据重新获得域管理员权限。利用 Krbtgt 的 Hash 值可以伪造生成任意的 TGT,能够绕过对任意用户的账号策略,让用户成为任意组的成员,可用于 Kerberos 认证的任何服务。
- 白银票据(Silver ticket)
白银票据不同于黄金票据,白银票据的利用过程是伪造 TGS,通过已知的授权服务密码生成一张可以访问该服务的 TGT。因为在票据生成过程中不需要使用 KDC,所以可以绕过域控制器,很少留下日志。而黄金票据在利用过程中由 KDC 颁发 TGT,并且在生成伪造的 TGT 得 20 分钟内,TGS不会对该 TGT 的真伪进行效验。
白银票据依赖于服务账号的密码散列值,这不同于黄金票据利用需要使用 Krbtgt 账号的密码哈希值,因此更加隐蔽。
NTLM协议
NTLM是NT LAN Manager的缩写,NTLM是基于挑战/应答的身份验证协议,是 Windows NT 早期版本中的标准安全协议。
基本流程
- 客户端在本地加密当前用户的密码成为密码散列
- 客户端向服务器明文发送账号
- 服务器端产生一个16位的随机数字发送给客户端,作为一个challenge
- 客户端用加密后的密码散列来加密challenge,然后返回给服务器,作为response
- 服务器端将用户名、challenge、response发送给域控制器
- 域控制器用这个用户名在SAM密码管理库中找到这个用户的密码散列,然后使用这个密码散列来加密chellenge
- 域控制器比较两次加密的challenge,如果一样那么认证成功,反之认证失败
Net-NTLMv1
Net-NTLMv1协议的基本流程如下:
- 客户端向服务器发送一个请求
- 服务器接收到请求后,生成一个8位的Challenge,发送回客户端
- 客户端接收到Challenge后,使用登录用户的密码hash对Challenge加密,作为response发送给服务器
- 服务器校验response
Net-NTLMv1 response的计算方法为
- 将用户的NTLM hash补零至21字节分成三组7字节数据
- 三组数据作为3DES加密算法的三组密钥,加密Server发来的Challenge
这种方式相对脆弱,可以基于抓包工具和彩虹表爆破工具进行破解。
LM Hash
LM Hash的计算方式为:
- 转换用户的密码为大写,14字节截断
- 不足14字节则需要在其后添加0×00补足
- 将14字节分为两段7字节的密码
- 以
KGS!@#$%
作为秘钥对这两组数据进行DES加密,得到16字节的哈希- 拼接后得到最后的LM Hash。
作为早期的算法,LM Hash存在着诸多问题:
- 密码长度不会超过14字符,且不区分大小写
- 如果密码长度小于7位,后一组哈希的值确定,可以通过结尾为
aad3b435b51404ee
来判断密码长度不超过7位- 分组加密极大程度降低了密码的复杂度
- DES算法强度低
TLS协议
SSL/TLS是一种密码通信框架,他是世界上使用最广泛的密码通信方法。SSL/TLS综合运用了密码学中的对称密码,消息认证码,公钥密码,数字签名,伪随机数生成器等,可以说是密码学中的集大成者。
基本过程
- 客户端向服务器端索要并验证公钥。
- 双方协商生成”对话密钥”。
- 双方采用”对话密钥”进行加密通信。
SSL / TLS 握手详细过程
- “client hello”消息:客户端通过发送”client hello”消息向服务器发起握手请求,该消息包含了客户端所支持的 TLS 版本和密码组合以供服务器进行选择,还有一个”client random”随机字符串。
- “server hello”消息:服务器发送”server hello”消息对客户端进行回应,该消息包含了数字证书,服务器选择的密码组合和”server random”随机字符串。
- 验证:客户端对服务器发来的证书进行验证,确保对方的合法身份,验证过程可以细化为以下几个步骤:
- 检查数字签名
- 验证证书链 (这个概念下面会进行说明)
- 检查证书的有效期
- 检查证书的撤回状态 (撤回代表证书已失效)
- “premaster secret”字符串:客户端向服务器发送另一个随机字符串”premaster secret (预主密钥)”,这个字符串是经过服务器的公钥加密过的,只有对应的私钥才能解密。
- 使用私钥:服务器使用私钥解密”premaster secret”。
- 生成共享密钥:客户端和服务器均使用 client random,server random 和 premaster secret,并通过相同的算法生成相同的共享密钥 KEY。
- 客户端就绪:客户端发送经过共享密钥 KEY加密过的”finished”信号。
- 服务器就绪:服务器发送经过共享密钥 KEY加密过的”finished”信号。
- 达成安全通信:握手完成,双方使用对称加密进行安全通信。
Diffie-Hellman算法
Deffie-Hellman(简称 DH) 密钥交换是最早的密钥交换算法之一,它使得通信的双方能在非安全的信道中安全的交换密钥,用于加密后续的通信消息。
DH 算法的安全性依赖于计算离散对数的困难程度。
以下是DH协议的方案:
Alice和Bob先对p 和g达成一致,而且公开出来。Eve也就知道它们的值了。
Alice取一个私密的整数a,不让任何人知道,发给Bob 计算结果:A=ga modp. Eve 也看到了A的值。
类似,Bob 取一私密的整数b,发给Alice计算结果B=gb mod p.同样Eve也会看见传递的B是什么。
Alice 计算出S=B a mod p=(gb)a modp=gabmod p.
Bob 也能计算出S=Ab mod p=(ga)bmodp=gabmod p.
Alice 和 Bob 现在就拥有了一个共用的密钥S.
虽然Eve看见了p,g, A and B, 但是鉴于计算离散对数的困难性,她无法知道a和b 的具体值。所以Eve就无从知晓密钥S 是什么了。
统一身份认证
Kerberos不考、要知道整体架构
跨域认证推断就是统一身份认证
什么是统一身份认证:用户登录统一身份认证服务后,即可使用所有支持统一身份认证服务的管理应用系统。
常见跨域认证的实现:单点登录SSO、第三方登录
和单点登录(SSO)的区别:单点登录是用户只需在一个系统中进行登录,就可以在多个相互信任的系统间访问,他解决的是同一用户在使用多个系统时的重复登录的问题。而统一用户认证是为了解决多个系统的用户管理和认证的问题。
SSO的接入方式:
- 基于经纪人 Broker-Based SSO
各业务自身与SSO集成
原理:SSO需要一个独立的认证中心接受用户认证标识,其他系统不提供登录入口,只接受认证中心的间接授权。且SSO认证中心验证用户后,创建授权令牌,在接下来的跳转过程中,授权令牌作为参数发送给各个子系统,然后进行后续授权。
应用实例:Kerberos
- 基于网关 Gateway-based SSO
在接入网关上统一和SSO系统集成,并不排斥业务自身与SSO集成
常见的跨域实现方式
- WEB常见跨域认证方式:
- Cookie-Session Auth(弱一些)
- Token Auth
- JWT(JSON Web Token)
- 服务器与客户端常见认证方式
- Token Auth
- JWT(JSON Web Token)
访问控制
概述
基本概念
- 访问控制:访问控制以身份认证为前提,是一种针对越权使用资源的防御措施,它的基本目标是防止对任何资源进行未授权的访问,保障资源只能被合法用户执行合法操作。访问控制对机密性、完整性起直接的作用。
- 访问控制三要素:1. 主体 2. 客体 3. 权限
- 授权:规定主体是否可对客体拥有访问权限,授权通常形成一套访问规则集,被称为访问控制策略,这是访问控制的核心。
- 访问规则:
<主体,课题,权限>-><肯定/否定许可>
- 访问控制系统:授权管理和访问控制机制
- 访问控制策略: 也称安全策略,是为了满足应用的安全需求制定的主体对客体访问的一系列规则集,它反映信息系统对安全的需求。是对访问如何控制,如何做出访问决定的高层指南
访问控制的分类
应用环境分类
- 网络访问控制:主要是限制用户可以建立什么样的连接以及通过网络传输什么样的数据如传统的防火墙功能。
- 操作系统访问控制:主要限制对文件、设备等系统资源的访间,主流的操作系统均提供不同级别的访问控制功能。
- 应用程序访问控制:限制对应用程序不同功能模块的操作,提供更细粒度的数据访问控制。例如大多数数据库系统都会提供独立于操作系统的访问控制机制。
安全特性分类
- 机密性策略
- 完整性策略
- 混合/中立型策略
授权的限定条件
- 基于规则的策略:让这种策略应用于由安全域中任意发起者对任何耳标的所有访问请求。
- 基于身份的策略:策略规则是针对单个发起者、组发起者、代表发起者,进行行动的实体、或扮演一个特定角色的原发者的。
授权的限定条件为依据的分类
- 主要的访问控制策略:
- 自主访问控制(Discretionary access control:DAC)
- 强制访问控制(Mandatory access control:MAC)
- 基于角色的访问控制(Role based access control:RBAC)
- 基于属性的访问控制(Attribute based access control,,ABAC)
- 基于任务的访问控制(Task-based access control,,TBAC)
- 新型访问控制策略
- 基于数据分析的访问控制
- 基于密钥学的访问控制
访问控制原理
访问控制机制
- 访问控制机制是访问控制策略的软硬件底层实现。
- 机制与策略独立,可允许安全机制的重用
- 常用的访问控制机制:访问控制表、能力表、标签、密码学方案、上下文方案
访问控制模型:访问控制模型是对访问控制策略所表达的安全需求的简单抽象、无歧义的描述,并为开发安全系统提供方案。它为安全策略和它的实现机制之间的关联提供了一种框架
- 形式化模型:使用数学模型,精确描述安全性和系统的使用情况。
- 非形式化模型:仅模拟系统的安全功能。
访问控制原则
- 最小特权原则:最小特权(Least Privilege)指的是“在完成某种操作时所赋予主体必不可少的特权”。最小特权原则按照主体所需权限的最小化原则分配主体权限,赋予主体权限不能超过主体执行操作时所需的权限。
- 职责分离原则:是指遵循不相容职责相分离的原则,实现合理的组织分工。
自主访问控制策略及模型
自主访问控制DAC: 也称为基于身份的访问控制(Identity Based Access Control),其特点是根据主体的身份及允许访问的权限进行决策。
自主是指主体能够自主地将自身具有的访问权限或其子集授予其他主体。
策略表达:任何访问控制策略均可以用三元组表示(主体、客体、权限)(构造权限矩阵)
实现机制:大型系统中,矩阵庞大且为稀疏,故采用压缩行或者列
- 基于列(客体)(多数)
- 访问控制表(ACL:Access Control List)
- 基于保护位
- 基于环的
- 基于行(主体)
- 能力表(CL)
- 基于列(客体)(多数)
访问控制表(ACL)
优化
基手身份的策略可以基于个人或者基手组来实现。当一组用户对一个客体具有相同的权限,可以把矩阵中的多行压缩为一行。
对系统中需要保护的客体,要为其附加一个访问控制表,表项包括主体标识和对客体的权限。
保护位
如果主体很多,可以在访问控制列表中使用组,不必包含单个发起者的身份
- 例如:UNIX:三级用户:owner,group,rest 例如:Linux·
- rwx r-x ---
基于行的能力表(CL)
对比
- CL:因分布式系统中难以确定给定客体的潜在主体集CL多应用于分布式系统
- ACL:易于实现,多应用于集中式系统
DAC授权管理
- 集中式管理:只有单个管理者或组可以对用户进行访问控制授权和授权撤销
- 分级式管理:个中心管理者把管理责任分派给其他管理员
- 所属权管理:每个客体设置一个拥有者(生成者),是唯一有权修改客体访问控制表的主体,且具有客体全部控制权,但无权将控制权转授给其他主体。因此,仍然需要一个能修改系统所有客体ACL的系统管理员,以解决拥有者离开,而无法删除客体的问题。
- 分散式管理:客体所有者可以把管理权限授权给其他用户。
DAC特点
- 灵活易行,适用于商业和工业环境。
- 权限的授予是可传递的,旦访问权被传递出去将难以控制,不利于实现统一的全局访问控制
- 信息在移动过程中访问权限关系会被改变,不能对资源提供充分保护,不能抵御特洛伊木马,如果合法程序中隐藏木马,木马可修改文件的访问权限或对敏感信息进行复制。
Windows DAC
主体和主体标识
主体访问令牌<->客体的安全描述
- 用户登录认证通过后,系统为其创建访间令牌用户启动程序时,线程获取令牌的拷贝
- 程序请求访问客体时(S,op,o),提交令牌,SRM(访问控制实施模块)使用该令牌与客体的安全描述进行比较来执行访问检查和控制
访问令牌
- User:用户账号的SID
- Groups:用户所属组的一列SID
- Owners:持有的用户或安全组的SID
- Primary Group:用户主要安全组的SID
- Default DACL:当主体创建一个客体时的默认访问控制列表
- Privileges:用户在本地计算机上所具有的特权列表
- Source:即导致访问令牌被创建的进程
- Type:主令牌还是模拟令牌
- 模拟级别:指示服务对该访问令牌所代表的客户的安全上下文的接受程度
- 统计信息
- 限制SID
- 会话ID
标识主体:安全标识符
- Vindows使用安全标识符(SID)来唯标示安全主体和安全组
- SID在主体账户和安全组创建时生成。
- 当用户注销后,系统将会使主令牌切换为模拟令牌,不会将令牌清除,只有在重启机器后才会清除
- 可以使用多种工具查看目前系统上存在的模拟令牌:
- Incognito
- Powershell -Invoke-TokenManipulation.ps1
- Cobalt Strike -steal token
- 进程中的用户不同
- 普通进程的用户是开启服务的用户,使用的是登录进程的主令牌
- 服务进程
模拟:为了满足客户服务器应用的安全需求,线程能够在与拥有它的进程的上下文不同的安全上下文里执行,这种能力称为模拟/仿制。
- 正常情况下,服务进程在自己的安全上下文内运行,其中的线程使用服务自己安全环境相关联的主访问令牌。
- 客户请求服务时,服务进程创建执行线程来完成任务。该线程使用客户安全环境相关联的临时的模拟令牌。
- 任务完成之后,线程丢弃模拟令牌并重新使用服务的主访问令牌。
模拟级别
Windows中模拟级别不能由用户选择,它作为服务安全质量(SQOS)信息在客户/服务器应用的代码里加以说明,模拟级别(Impersonation level),有如下四种级别
- Anonymous(匿名): 服务可模拟客户,但模拟令牌不含有客户的任何信息
- Identify(标识): 允许服务获得客户的身份信息(如安全标识符和特权)供自己使用,比如做访问决策,但不允许服务模拟该用户
- Impersonation(模拟): 无论客户和服务器是否在一台计算机上,允许服务器在访问服务器计算
机上的资源时,可模拟客户来访问资源,无法在远程系统上模拟客户端 - Delegate(委派): 允许服务在访问服务器所在计算机和其他计算机上的资源时,都可模拟
客户,对应用程序而言,使用几个服务器来执行任务需要身份委派,这个级别在windows2000后才被支持。
保护客体对象
好像不是重点
Windows分布式访问控制
用户账户:本机账号(创建于本机,只对本机起作用),域用户账号(创建于DC,对整个网络起作用)
组范围:
- 本地组(创建于非Dc计算机,保存于SAM中控制对本机资源的访问)
- 域组(创建于DC,存于Active Directory,控制对域资源的访问)
授权(组的权力指派):访问对象粒度:粗粒度访问控制,中粒度访问控制,细粒度访问控制,虽没有严格定义的区分标准,但通常认为控制到文件级就称为细粒度访问控制
分布式访问控制框架:
域组
- 域本地组(Domain Local Group)
- 本地域组用来分配域资源和权限,同时把权限分配给域用户,本地域组可包含的成员
- 同一个域中的其他本地域组
- 森林中的任何域的用户成员
- 整个森林的全局组和通用组
- 特点
- 仅管理本地域内的资源
- 存储在创建它的域中,只能在这个域中复制,不会出现在GC中。
- 本地域组用来分配域资源和权限,同时把权限分配给域用户,本地域组可包含的成员
- 全局组(Global Group)
- 全局组是用来组织某个域的用户账户的,让这些账户一次获得相同的权,
- 全局组成员
- 同一个域的用户
- 同一个域的其他全局组
- 存储在创建它的域中,只能在这个域中复制,出现在GC中,但它的成员不出现
- 其用户成员可访问任何域中的资源
- 在实际应用中一般会把隶属同一部门的用户组织成全局组,然后再将全局组加入某本地域组中。
- 通用组(Universal Group)
- 通用组和全局组一样,可指派森林中的任何资源的权限给用户,通用组是为了简化多域的管理
- 通用组成员
- 成员可来自森林中的任何域
- 成员:用户账户、全局组、通用组
- 特点
- 可访问任何域中的资源
- 存储在全局编录GC中,所以,登录时,如果想获得用户的通用组信息建立令牌,需要GC
如果服务功能很多,需要在资源上指派细粒度权限,客体为资源对象,主体可以是本域中的域本地组(看不到外域的域本地组),域林中的全剧组,通用组。但我们提倡的清晰授权组织方式是:域本地组→全局组→通用组
操作举例
Fes为本地域组用于管理共享资源,链接网络用户,为全局组
product*用户提供访问资源权限和用户登录权利,也可用通用组
productall管理。
- 在域中指派用户权利(粗粒度), 在资源上指派资源访问权限(细粒度)
- 将全局组加入本地域组files.(也可将全局组加入通用组productall,再将productall加入本地域组files)
- 将用户lisi加入全局组products1(域example.com)
将用户lisi3加入全局组products3(域a.example.com)
将用户Iisi4加入全剧组product4(域abc.org) - 口客户机进行验证(Iisi*登录去访问共享temp文件夹)
强制访问控制模型
基本原理
基本原理
- 强制访问控制是一种基于规则(Rule Based Access Contro)的访问控制。它的特点是只有系统才能控制对客体的访问。所谓“强制”是因为用户不能任意改变实体(主体和客体)安全属性。安全属性和访问控制策略由系统或由安全管理员分配。
- 对资源的访问取决于对实体的授权策略而非简单的取决于主体的身份。通过比较主体与客体的安全属性来决定是否允许主体访问客体
- 强制访问控制与多级安全策略相连
强制访问控制MAC
- 授权管理:
- 授权完全由主客体安全属性决定。保证信息的单向流动,可防止特洛伊木马的攻击。而自主访问控制负责实体本身的访问控制,缺乏对信息流动的保护。
- 适用于军方或金融等具有明显等级观念的行业或领域。
- 特点
- 配置粒度大,不灵活,但安全。
- 片面强调保密性或完整性,适用场合较少。
机密性策略模型-Bell-LaPadula模型
通俗讲,BLP模型通过访问控制规则:不上读、不下写,保证机密信息的流动。
- BLP模型立足于强制访问控制,同时结合自主访问控制.
- 贝拉模型的信息传递方向
该模型中:
- 读:允许信息从被读的客体流向读它的主体
- 写:允许信息从主体流向被写的客体。
- 贝拉模型中实现机密性的规则是:“不上读,不下写”
BLP模型的核心规则:简单安全属性和*属性(星属性),并结合了自主访问控制特性:
- 简单的安全属性(不上读):主体S的安全级别不小于客体O的,且S对O有自主读权限,客体可被读取。
- *属性(不下写):主体S的安全级别时不大于客体O的且S对O有自主写权限,主体对客体可写:
- 自主安全特性:如果请求(S,O,A),那A一定在访问控制矩阵的元素$M_ij$,中。
完整性策略模型-Bila模型
- Biba是一个典型的完整性强制访问控制模型,
- 保证信息的完整性,是指在信息流动方面,不允许信息从级别低的实体到级别高的实体,就是要防止低完整性的信息污染高完整性的信息。
- 模型设计用完整性级别来对完整性进行量化描述,完整性级别是有序的,可以进行比较。完整性与可信度有密切的关系,完整性级别越高,意味着可信度越高。
Biba核心规则
- 简单完整性属性(禁止向下读):主体s可以读客体o,仅当客体o的完整级可以主导主体s的完
整级,即$i(o)≥i(s)$。 - 完整性*属性(禁止向上写):主体s可以写客体0,仅当主体s的完整级可以主导客体0的完整
级,即$(s)≥i(o)$ - 不下读/不上写保证严格完整性
- 信息在系统中只能自上而下进行流动
混合模型-中国墙BN模型
中国墙模型:“中国墙”是综合性证券商内部设立的一种自律机制,在商业安全领域中处于很高的地位,它通过阻挡内幕信息的流动达到防止内幕交易和解决利益冲突的目的。
- 此模型根据主体的访问历史来判断数据是否可以被访问。而不是根据数据属性作为约束条件。其本质是将全体数据划分为“利益冲突类”,根据强制约束,主体至多访问每个“利益冲突类”中的一个数据集
结构
最底层:客体:单个公司信息项
中间层:公司数据集,是一个公司的所有客体集合
最高层:利益冲突类,是所有有利益冲突关系的公司数据集的集合。
客体的安全标签L:(X,Y)X是客体的利益冲突类,y是公司的数据集
特点:
- 简单安全性:一旦一个主体访问过一个客体,那其余可被该主体访问的客体必须满足:与主体访问过的客体在同一公司内,或者在不同利益冲突中
- 清洁信息: 清洁信息不存在公司敏感信息,所以,可以不用限制对清洁信息的读访问请求
- *特性: 主体s能写客体o,必须
- 有读0的简单安全性权利,
- S没有访问过o所属公司数据集或清洁数据以外的任何公司数据(如B)
- 非清洁的信息只局限在本公司数据集内部,不能随意流动,清洁后的信息可以在系统中自由的流动。
域类型实施模型
- 类型实施(TE,Type Enforcement)模型:通过对主体和客体进行分组,定义域和类型的概念,并以此为基础实施强制访问控制
- 例如,0环是一般操作系统应包含的基本部分,如最底层的主存管理支持0环软件对系统具有全能的权力;1环上安排虚拟设备驱动程序;2坏称为内核和用户模型;3环运行MS-DOS应用程序
基于角色的访问控制
- RBAC思想:权限通常由用户在一个组织中担当的角色来确定权限/许可被授权给角色,角色被授权给用户,用户不直接与许可关联。对访问权限的授权由管理员统一管理.
- GB/T25062-2010RBAC参考模型通过四个RBAC模型组件来进行定义一一核心RBAC、角色层次RBAC、静态职责分离关系、动态职责分离关系。
- 核心RBAC定义了能够完整地实现一个RBAC系统所必需的元素、元素集和关系的最小集合。核心RBAC对于任何RBAC系统而言都是必需的,其他RBAC组件是可选的,它们彼此相互独立并且可以被独立地实现
核心RBAC
角色层次RBAC
静态职责分离关系
动态职责分离关系
基于属性的访问控制
面对挑战和环境
- 海量性。终端、用户数量庞大,加重了系统管理的负担
- 动态性。节点和用户以及访问数据对象实时变化,体现出很强的动态性,无法预先获得主客体身份的全集
- 隐私性。信息的共享对个人隐私和数据隐私的保护提出了更高的要求。数据交付于数据服务提供商前需考虑对存储于数据服务平台上的数据保护,如数据加密后存储在云端,只有满足某些条件的用户才可以访问,保护了数据隐私。
基于多粒度的时空属性约束的ABAC
- 空间客体的四个粒度,即:地图、图层、要素对象、对象视图
- 授权
- 时间上下文控制
- 图层粒度控制
- 要素视图粒度控制
- 对WFS的支持
- 肯定和否定
ABAC特点:
- ABAC适合于开放和分布式系统中的授权和访问控制
- 使用主体、客体的属性约束、操作、请求相关的环境属性约束作为访问判决依据。
- 具有更高的灵活性和更丰富的策略表达能力,可以更好地支持大规模信息化系统的细粒度访问控制
- 环境属性增加了对动态的访问控制的支持
内容
- 基于属性的访问控制规则都是通过用户、资源、操作、上下文
环境的属性来表达 - ABAC是一个四元组(S,O,P,E)
批量授权
结合RBAC模型和ABAC模型,针对大规模用户群体,可在利用批量授权或者基本角色的授权模型,来实现一次授权,相同权限内员工现时赋权
数据安全
数据存储加密
概念
数据存储加密:加密是防止原始数据被窃取之后导致里面的敏感信息泄露的典型手段。根据加密的粒度,可分:
- 整盘数据加密
- 文件,目录,程序加密
- 数据库加密
加密带来的问题
- 加密粒度:字段加密还是透明加密,是否所有敏感数据都需要加密。
- 密钥如何管理
- 加密后检索、运算、排序问题,如果解密后再执行,运算效率低下。
加密场景建议:
- 敏感个人信息及涉及个人隐私数据、UGC(用户生产内容)数据 加密存储
- 口令、加解密密钥、私钥,需要加密存储(不需要还原的口令需要散列存储)
- 有明确检索、排序、求和等运算需求的业务数据,不需要加密存储。
如何加密
- 字段加密:指应用层的结构化数据(数据库、key-value等)加密后再直接将字段密文写入数据库。
- 透明加密:或称静态加密,加密在存储系统内部自动完成,应用层看到的是明文,应用层开发人员不用关注底层加密细节。
如何管理密钥
- 自管理密钥
- 配合KMS(密钥管理系统)
加密后如何检索
- 要进行密文检索,目前还存在相当多的困难,学术上有关于密文检索的研究,但在工程上使用还非常有限,用于通用场景还不太现实。
- 工程上的检索问题,采用折中的方法:添加 关键字用于辅助检索,,缩小范围后对单个或相关记录执行解密。
加密方式对比
加密系统
- 数据加密密钥(Data Encryption Key:DEK)
- 每个任务或每个记录使用不同的DEK(随机生成)
- DEK在加密后建议随密文数据一起存储;可用于大数据场景,当只有少量DEK且预计不会增长时,才会考虑存储在KMS(不推荐)
- 对DEK进行加密的密钥(Key Encryption Key:KEK)
- 每个应用或每个用户在每个应用中应使用不同KEK
- KEK加密存储在KMS系统中,不随密文数据起存储。
- 数据加密密钥(Data Encryption Key:DEK)
Windows加密系统
透明加解密
- 这是与操作系统紧密结合的一种技术。是近些年针对企业文件保密需求应运而生的一种加密技术
- 对用户而言加密解密过程不会被察觉,当用户打开或保存受保护文件时,系统将自动对文件进行解密和加密。文件在硬盘上以密文形式存储,在内存中则为明文。
- 一旦改变使用环境,由于无法获得自动解密服务而无法打开,从而达到保护文件内容的目的
文件系统
- 应用程序发出IO请求,IO管理器接收转换成相应的IRP,发往相应的设备驱动处理。
- IRP(Input Request Packet)是Windows内核中的一种重要的数据结构
- IO管理器支持分层驱动程序模型,每个IRP的处理分别经过各层驱动程序处理直到完成请求。
加解密实现方式:
- 用户模式:实现简单,易被绕过
- 内核模式:实现难度大,可强制、透明加解密
基于用户
钩子(Hook)是window消息处理机制的一个平台,是Windows开放给程序员的编程接目
利用HOOK技术,在文件的打开和保存过程中对应用程序进行监控
基于内核
- 修改驱动程序
- 文件系统驱动
- 磁盘驱动
- 过滤驱动技术
扩充底层驱动程序的功能,实现特定的文件系统,为用户通过磁盘等介质上存取数据服务。
过滤
- 在Windows系统上与安全软件相关的驱动开发中过滤(filter)是及其重要的一个概念。
- 过滤是在不影响上层和下层接口的情况下,在Windows内核中加入新的层,从而不需要修改上层软件或下层的真实驱动程序就加入新的功能。
- 文件/文件夹主动加密通过主动加密方式,由操作者对文件/文件夹加密。
- 透明文件加密对文件进行透明加密,如EFS
- 磁盘加密通过对逻辑磁盘卷或整个磁盘卷加密,实现文件保护,如BitLocker
EFS文件级加密
- 基于混合加密机制
- EFS机制
- 提供数据恢复功能
EFS加密过程
- 文件被拷贝到临时文本文件
- 文件被一个随机产生的Key (FEK:file encryption key)所加密(DESX, 3DES AES)
- 使用用户的公钥对FEK加密,数据解密区域(DDF: data decryption Field )产生。
- 使用恢复代理的公钥对FEK加密,数据恢复区域(DRF data recover field)产生。
- 包含加密数据、DDF及所有DRF的加密文件被写入磁盘。
- 在第一步中创建的文本文件被删除。
EFS解密过程
- 使用DDF以及用户的私钥(或者恢复代理的私钥)解密FEK
- 使用FEK解密文件。
用户公钥的产生:是在用户第一次使用EFS时产生的。
恢复代理的公钥:默认情况下是管理员,防止用户的公钥丢失了就解不开文件了。
EFS密钥恢复
- EFS通过实施故障恢复策略或备份密钥来提供内置的数据故障恢复。
- 备份密钥可以加密用户自己导出证书,以备被删除,文件打不开
- 故障恢复代理拥有特殊证书和相关私钥,允许在故障恢复策略的影响范围内恢复数据。
密钥存放(不同的版本有区别)
- 加密的FEK保存在MFT记录的属性*LOGGED_UTILITY_STREAM中(见后续)
- 用户的EFS私钥,存储在磁盘的用户配置文件目录\Document and Settings\user\Application Data\Microsoft\Crypto\RSA子目录下,并用用户的主密钥来加密此子目录
- 用户主密钥又是存放在Application Data\Microsoft\Protect用户配置文件中,通过用户日令加密存放。
- 当改变口令时,主密钥被解密并重新用新口令加密。
- 用户口令—主密钥—私钥—FEK—EFS加密文件的解密链。
MFT文件记录结构
- MFT中的每个记录项都分为记录头和属性列表两个部分
- 记录头里包含了本记录项的总体情况和信息
- 属性列表里列出了该文件的所有属性
- 不同的文件可以有不同的属性,因此,属性列表的大小是可变的,在所有属性的最后是结束标志FFFFFFFFH。
EFS的优势
- 基于公钥与文件系统紧密结合的加密技术
- 无需管理上的设置即可使用,在操作上对用户完全透明。
- 支持对单个文件或文件夹加解密。
- ×p和2003后也支持共享。
- 提供内置的数据恢复支持。
EFS的局限性
- 增加花费,降低性能
- 病毒监测程序无法起到作用
- 其他太多的恢复代理将影响性能
- EFS加/解密是对一切进程的。如果系统使用者也是潜在的泄密者,则文件解密后有可能通过其他途径如拷贝到fat文件系统,通过网络传输方式传出,将解密后的信息传出。
全盘加密:bitlocker
- BitLocker是一种全卷加密技术
- BitLocker俩种工作模型(TPM模式,U盘模型)
系统可靠性和数据容错
系统可靠性
系统可靠性概念
- 在一定的条件下,在指定的时间内系统无故障的执行指令任务的可能性。
- 可靠性数值上采用可靠度衡量。可靠度的定义是,在tO时刻系统正常的条件下,在给定的时间间隔内,系统仍然能正确执行其功能的概率(=平均无故障时间/重(平均无故障时间+平均修复时间)
提高系统可靠性的措施
- 避错:提高软硬件的质量,抵御故障的发生。
- 容错:在承认故障存在的情况下进行设计,是指在计算机内部出现故障的情况下,程序仍能正确的运行。
容错: 容错是用冗余的资源,使计算机具有容忍故障的能力,在产生故障的情况下,仍有能力恢复和继续完成任务。
冗余技术容错主要依靠冗余设计来实现,通过增加资源来换取可靠性,根据冗余设计使用的资源不同,可将冗余技术分为
- 硬件冗余:通过硬件的重复使用
- 信息冗余:在数据中外加一部分信息位来检测或纠正信息在运算或传输中的错误。如奇偶校验码、循环冗余码CRC,汉/海明码(Hamming Code)。
- 软件冗余:通过软件确保系统出现错误后可以发现该错误,并可避免带来危害。
- 时间冗余:通过消耗时间重复运算以检测故障来实现容错:指令复执和程序复算(常用程序回滚技术)。
根据容错系统对灾难的抵抗程度,可分为:
- 数据容错系统:是指建立一个本地或异地的数据系统,该系统是对本地系统关键应用数据的实时复制,当出现灾难时,可迅速接替本地系统以保证业务的连续性。
- 应用容错系统:应用容错系统比数据容错系统层次更高,即建立一套完整的,与本地数据系统相当的备份应用系统,在灾难出现后,能迅速接管或承担本地应用系统的业务运行。
数据备份
从事故中恢复要求:及时的备份和可靠的数据存储方式(主要用到硬件冗余和信息冗余。)
备份策略: 数据备份往往是在一次完整数据复制基础上的若干增量或差异备份
- 完全备份: 完全备份是对某一个时间点上的所有数据或应用进行的一个完全拷贝。不依赖文件的存档属性。在备份过程中,任何现有的标记都被清除,即清除存档属性。每个文件都被标记为已备份。存档:存档属性是用来标记文件改动的,即在上一次备份后文件有所改动。
- 差异备份: 只备份自上次备份后有变化标记的文件。差异备份过程中,只备份有标记的那些选中的文件和文件夹。它不清除标记(存档属性),也即备份后不标记为已备份文件。在进行恢复时,只需对上次全备份和最后一次差异备份进行恢复。
- 增量备份: 备份自上一次备份之后有变化的数据。增量备份过程中,只备份有标记的文件/夹,备份后清除标记(存档属性)。这就意味着,第一次增量备份的对象是进行全备后所产生的增加和修改的文件;第二次增量备对象是进行第一次增量备份后所产生的增加和修改的文件,如此类推。
- 按需备份:
数据存储方式
- 本地备份: 在本地硬盘特定区域。如磁盘阵列RAID
- 异地备份
- 数据存储网络设备:
- 直接附加存储(DAS:direct-AttachedStorage): 直接附加存储是指将存储设备通过SCSI接口直接连接到一台服务器上使用。依赖服务器操作系统进行数据的IO读写和存储维护管理。
- 网络附加存储(NAS:network attached storage):网络附属存储NAS是一种带有瘦服务器和内嵌操作系统的网络文件服务器 NAS设备直接到TCP/IP网络上,可提供跨平台文件共享
- 存储区域网络(SAN:storage area network):类似于普通局域网的高速存储网络,通过专用交换机和网关,创建服务器和磁盘阵列之间的高速连接。
- 云存储
- 分离介质:光盘,磁带,磁盘
- 数据存储网络设备:
DAS优缺点
优点:
- 购置成本低,配置简单
- 使用过程和使用本机硬盘并无太大差别,对于服务器的要求仅仅是一个外接的SCSI☐,达此对于小型企业很有吸引力。
缺点:
- 每台服务器或终端单独拥有存储磁盘,容量再分配困难
- 整个网络环境下没有集中管理的方法,因此整体网络成本较高
DAS基本被NAS取代
NAS优缺点
优点:
- 独立于应用服务器(即使应用服务器不工作,仍然可以从NAS中读取数据)
缺点:
- 由于存储数据通过普通数据网络传输,因此易受网络上其它流量的影响。影响系统性能
SAN的优缺点
优点:
- SAN实际是专门为存储建立的的专用网络
- 可作远程镜像增加灾难防御力
- 透过SAN备份,降低经过LAN备份的流量负载
- 集中管理与整合储存设备资源
缺点:
- 各客户端的存储空间是分离的,通过光纤连接,设备昂贵
- 网络维护也需要相当大的开销
服务备份
- 双/多机热备技术: 对于重要的服务,使用两台服务器互相备份,共同执行同一服务。当一台服务器出现故障时,可以由另一台服务器承担服务任务,从自动保证系统能持续提供服务。
- 集群系统: 均衡负载的双机或多机,同时备份数据配置和业务,当发生灾难时,备份数据中心可以快速恢复数据和应用。
磁盘冗余阵列RAID
磁盘冗余阵列RAID: 将多块磁盘通过一定的技术手段组成一个单一的虚拟磁盘使用。利用数组方式制作磁盘组,配合数据分散排列的设计,以冗余技术增加可靠性
动态磁盘同一个卷(不用分区概念,改用卷)可以跨越多达32个物理磁盘,将几个磁盘合为一个大卷集,这在服务器上是非常实用的功能。跟基本磁盘上同一分区只能存在于一个物理磁盘上不同,而且卷还可以提供多种容错功能。
RAID类型
- RAID0:数据基带条阵列(冗余无校验的磁盘阵列): RAID0:又称带区/条带阵列。将数据分割存储到多块硬盘上,磁盘读写时负载平均分配到多块磁盘;由于多块磁盘可同时读写,所以速度明显提升数据完整性依于所有硬盘数据均完好无损
- 优点:存取快,利用率高,成本低
- 缺点:无冗余,无校验,很多人认为他不算是真正的RAID,因为它没有任何备份,不提供容错性
- RAID1:磁盘镜像: RAID 1:又称镜像阵列。至少由2块磁盘实现;将同样的数据写入2块硬盘(互为镜像),一块磁盘发生故障时,另一块硬盘可继续工作,并可在更换硬盘后重新创建镜像。
- 优点:可靠性高,读取速率高
- 缺点:写入速率低,利用率低
- RAID 0+1:基带条+镜像: 起码4块硬盘实现的冗余磁盘阵列
- 优点:快速读写+安全
- RAID2:并行海明纠错阵列: 采用海明冗余纠错码(HammingCodeError Correction)、跨接技术和存储纠错数据方法,数据按位分布到磁盘上。磁盘台数由纠错码和数据盘数决定。
- 优点:可靠性高,可自动确定哪个硬盘已经失效,并进行自动数据恢复。
- 缺点:—磁盘冗余太多,开销太大。防止纠错盘本身故障。
- RAID3:奇偶校验并行位交错阵列: 结合跨接技术、存储纠错数据方式,采用数据校验和校正。利用单独奇偶校验磁盘进行。一个盘故障,可根据读出数据内容和奇偶校验位确定出错位置,对数据进行修正和重组,校验方式可采用位交错或字节交错。
- 优点:速度快,适合较大单位数据的读写,
- 缺点:不适合小单位数据的读写;校验磁盘没有冗余,若校验磁盘失效,数据很难恢复。
- RAID4:奇偶校验扇区交错阵列: 与RAID3类似,但数据是以扇区(sector)交错方式存储于各台磁盘,也称块间插入校验。采用单独奇偶校验盘。
- RAID5:循环奇偶校验阵列: RAID 5:由至少3块磁盘实现的磁盘冗余阵列;将数据分布在不同磁盘上,并在所有磁盘上交叉的存取数据及奇偶校验信息(RAID5布局有左结构和右结构之分)如果一块磁盘失效,可以按奇偶校验码重构数据
- 优点:1.数据安全2.读取速率高3.磁盘利用率高
- 缺点:1.写入速率低
- RAID6:二维奇偶校验阵列: 将整个磁盘阵列看成一个二维阵列. RAID5只在一组(相当于行)上有奇偶校验盘,而RAID6在各组的同一位置的盘组成的列上也加上了奇偶校验盘。同时可支持两块盘出错
数据库安全
数据库安全
- 前端数据安全(SQL注入)
- 后端数据安全(细粒度的访问控制,推理控制)
统计数据库安全性
- 统计数据库特点
- 统计数据库中特殊的安全性问题
- 推理
数据库数据推理方法
求和,记录数,平均值,中位数等,是可以发布的合法统计数据。
但根据这些合法统计,运用推理有时可导出不合法的敏感信息,
推理过程
- 借助求和合结果进行推理
- 借助记录个数进行推理
- 借助平均值进行推理
- 借助智能填充进行推理
- 借助线性特征进行推理
数据推理的控制
- 对查询进行控制
- 对数据库的数据项进行控制
- 滤除法: 当查询可能涉及敏感信息时,默默拒绝提供查询结果不给出任何反馈。
- 隐藏法:当查询可能涉及敏感信息时,隐藏掉部分与查询相关信息,只提供近似查询结果。
- 结果合并隐藏法:通过合并查询结果可隐藏部分数据信息
- 随机抽样式隐藏法:随机抽样式隐藏法通过随机抽样的办法隐藏数据库信息。
- 偏差导入式隐藏法:数据扰动是对原始数据进行适当的修改,以便掩饰数据的真实性。
隐私保护技术
隐私保护:是对隐私数据采取一系列的安全手段防止其泄露和被滥用的行为,同时用户还能享受各种服务。旨在实现数据安全合共享的某种平衡.
隐私类型:
- 个人隐私
- 信息隐私: 收集和处理个人数据的方法和规则,个人信息、医疗和档案。
- 人身隐私: 涉及个人物理状况,如基因测试信息
- 通信隐私: 邮件、电话等
- 空间信息:地理空间相关的信息,包括办公室场所、公共场所
- 共同隐私
- 不仅包含个人的隐私,还包含所有个人公共表现出来,但不愿被暴露的统计信息
隐私泄露的主要渠道
- 云计算、物联网、大数据等新技术。
- 推理与隐通道。
隐私数据泄露的几种类型
- 数据本身泄漏。
- 范围泄漏。
- 可能的值。
隐私保护技术
- 匿名:属于限制数据发布技术
- 扰动:属于数据失真技术
- 加密:主要利用密码学中的同态加密和可搜索加密
匿名技术
- 通过限制数据发布的技术,数据集对外发布的隐私保护
- 技术主要包括:
- 匿名化
- 假名化重 使用假名替换真名)
- 等去标识化手段,将数据集清洗后提供给第三方。让攻击者无法从处理后的数据记录定位到自然人。
- 匿名隐私保护技术是在隐去标识属性的基础上,为了更好地保护发布数据中的隐私信息不被泄露,对用户的准标识符进行数据发布限制的技术。
匿名技术有
- k-匿名 (k-anonymity)
- l-多样化(I-diversity) 匿名
- t-邻近 (t- closeness) 匿名
数据属性分类
- 关键属性:一般是个体的唯一标识,如姓名、地址、电话等,这些需要在公开数据的时候删掉
- 准标识:类似邮编,年龄,性别等,虽然不是唯一标识,但是能帮助研究人员关联相关数据的标识。
- 敏感属性:如购买偏好,薪水,这些数据是研究人员进行分析和挖掘必须的,一般都直接公开。
k-匿名 (k-anonymity)
- 是指以一个泛化值代替一个具体值的形匿名处理,本质上是对原始信息的一个泛化处理。
- 目的是保证公开数据中包含的个人信息至少有k-1条记录不可区分 (k条记录称为一个等价类) 。即,公开数据中的任意准标识信息相同的组合都要出现至少K次。
- K值越大,保护强度越强
- K值越大,丢失的信息更多,可用性越低(一些样本如果无法凑成一个等价类就不能用)
- 存在缺陷:如果一个等价类里多个样本敏感数据一致,隐私就泄露了 (一致性攻击)
l-多样化(I-diversity) 匿名
- 在K-匿名的基础上,要求保证任意一个等价类中的敏感属性至少有L个不同的值。
t-邻近 (t- closeness) 匿名
- 在相同的准标识类型组中,敏感信息的分布情况与整个数据敏感信息分布情况临近,不超过问值t
实现匿名的主要方法:
- Generalisation (泛化) ,
- Suppression (抑制),
- Anatomy (分割) ,
- Clustering (聚类) .
其中泛化和抑制是最常用的方法.、
- 抑制: i.e.不发布相应项.
- 泛化:对数据进行抽象或概括的描述
泛化泛化过程从为每个属性定义一棵归纳树开始,其中
- 归纳树的叶子节点是具体的属性值
- 归纳树的父节点是
- 对于数字属性,是一个包含所有子节点的区间。
- 对于语义类型的属性,概括树是根据自然语义关系构建,父节点是更一般性的信息。
聚类:聚类的核心思想是对数据中的不同记录进行聚类,每个分类中的数据属性相同或相似。聚类一般分两步:
- 一是将原始数据集聚类成具有相似属性的子集,每个类至少包含K个点。
- 为每个子类的相关属性计算一个属性值,用以替代原始记录,使生成类的成本最小化。
分割首先将原始数据产生满足|-多样性原则的数据划分,然后把准标识属性和敏感属性分成两个表后直接发布,两者之间通过“组号”来链接。
差分隐私: 数据失真技术通过添加噪音或称作扰动的方法,使敏感数据失真但同时保持某些数据或数据属性不变,仍然可以保持某些统计方面的性质以提供研究的价值。基于数据失真的技术,效率比较高,但却存在一定程度的信息丢失。典型技术差分隐私DP (Differential Privacy. DP) 。
差分隐私思路:当对有限数据集D 进行一组查询函数操作$ F=\{f_1,f_2 \dots f_n\}$ 如计数、求和、平均值、中位数或其他范围查询) 所得到的查询结果$F(D)$算法M对查询结果进行处理,使之满足隐私保护条件,此过程称为隐私保护机制。
两种添加噪声的基础机制
- 拉普拉斯机制——对数值型敏感结果
- 指数机制——-对离散型敏感结果
数据加密技术
- 数据加密技术是采用多种加密技术隐藏敏感数据的方法。
- 使用的数据加密技术包括:
- 同态加密
- 隐私信息检索
- 安全多方计算(Secure Multiparty Computation , SMC)。
- 分布式匿名化,即保证站点数据隐私、收集足够的信息实现利用率尽量大的数据匿名。
网络传输安全VPN
VPN概念(隧道)
什么是VPN:利用公共IP网络,将属于同一安全区域的站点,通过隧道技术等手段,并采用加密、认证、访问控制等综合安全机制,构建安全、独占、自治的虚拟网络(融合了安全传输和安全组网的概念)
什么是隧道:隧道是利用一种协议来封装传输另外一种协议的技术
什么是安全隧道:安全隧道是指对所传输数据提供安全性服务的隧道。安全隧道协议是VPN的保证,其核心是加密、认证、及密钥管理
VPN具有两个重要的作用:
- 安全传输与安全组网。
- 所形成的网络在总部与分支机构之间;总部与合作伙伴之间;远程用户与总部之间。
几种VPN协议比较
- MPLS VPN:多协议标签转换,组网、Qos保证、无安全机制。
- PPTP/L2TP VPN:第二层链路隧道协议,远程拨号VPN
- IPSec VPN:网络安全隧道协议,公认最安全的VPN
- SSL VPN:传输层安全隧道协议,面向web安全的VPN
安全性分析
- PPTP提供认证和加密功能,但安全强度低
- L2TP提供认证和控制报文加密方式,但不对传输中的数据加密
- IPSec提供了完整的安全解决方案,但不支持组播,无法穿越NAT
- TLS提供认证、加密、完整性验证,多用于web
- GRE提出较早,是通用路由封装协议,支持全部的路由协议,通过GRE,用户可利用公共IP网络连接非IP网络,GRE只封装,不提供加密,实际环境中经常与IPSec一起使用。
最具代表性的俩种方法
IPSec隧道:将原始IP数据包被封装并放入一个新的IP数据包中,可用来实现VPN。
TLS/SSL隧道:
- 在应用层面上进行隧道传输
- 把每个VPN的IP数据包放在一个TCP或UDP数据包里
- 隧道的另一端将从TCP/UDP有效载荷中提取IP数据包
IPSec封装协议
什么是IPSec协议:网络安全隧道协议
安全性分析:IPSec提供了完整的安全解决方案,但不支持组播,无法穿越NAT
IPSec的作用:提供了访问控制、数据源认证、机密性和完整性、防重放攻击等安全服务
IPSec的封装机制
IPSec它把通信过程分成协商和数据交互两个阶段.
- 协商阶段:通信双方互相认证对方的身份,并根据安全策略协商使用的加密,认证算法,生成共享的会话密钥;
- 数据交互阶段:通信双方利用协商好的算法和密钥对数据进行封装以实现IPSec的各种功能.
封装协议:AH/ESP
- 负载安全封装 (ESP,Encapsulating Security Payload):提供对称加密、认证和完整性保护
- 认证报头协议(AH, AuthenticationHeader):使用HMAC提供数据源认证和完整性保护
IPSec的封装/工作模式:
传输模式:适用于俩台主机之间的数据保护
隧道模式:俩个不同的网段(站点到站点)或者远程用户到站点,适宜于建立安全的VPN隧道。
隧道模式优缺点
优点:
- 保护子网内的用户都可以透明的享受安全网关提供的安全保护。
- 子网内的主机可以使用私有IP地址,而无需公有IP地址
- 保护子网内的拓扑结构
缺点:
- 子网内通信以明文进行,无法控制内部发生的安全问题
- IPSec主要集中在安全网关,增加了安全网关的处理负担,容易造成通信瓶颈。