软考高级之系统架构师之系统安全性和保密性设计(二)

认证

PKI/CA

参考PKI/CA体系介绍

Kerberos

Kerberos是一种网络认证协议,其设计目标是通过密钥系统为客户机/服务器应用程序提供强大的认证服务。该认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据包可以被任意地读取、修改和插入数据。以上情况下,Kerberos作为一种可信任的第三方认证服务,是通过传统的密码技术(如共享密钥)执行认证服务的。

在报文中加入时间戳来防止重放攻击。

一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。

AS(Authentication Server)= 认证服务器

KDC(Key Distribution Center)= 密钥分发中心

TGT(Ticket Granting Ticket)= 票据授权票据,票据的票据

TGS(Ticket Granting Server)= 票据授权服务器

SS(Service Server)= 特定服务提供端

参考Kerberos认证协议介绍

协议

IPSec

为了确保在IP网络上进行安全保密的通信,IETF制定一套开放标准的网络安全协议IPSec(IP Security)。该协议把密码技术应用在网络层,以向信息的发送方和接收方提供源地址验证、数据传输的完整性、存取控制、保密性等安全服务,保护通信免遭窃听、抵御网络攻击,而且更高层的应用层协议也可以直接或间接地使用这些安全服务,为其上层协议如TCP、UDP等提供透明的安全保护服务,在Internet这样不安全的网络中为通信提供安全保证。在IP层对数据包中的数据进行加密,针对IPv4和IPv6,工作模式有两种:传输模式和隧道模式。

IPSec协议的基本工作原理是:发送方在发送数据前对数据实施加密,然后把密文数据发送到网络中开始传输。在整个传输过程中,数据都是以密文方式传输的,直到数据到达目的节点,才由接收方对密文进行解密,提取明文信息。

IPSec不是一个单独的协议,它包括应用于IP层上网络数据安全的一整套协议,主要包括:

  • AH:认证头,Authentication Header,IP认证头部协议,用于数据完整性认证和数据源认证。提供数据的完整性和认证,但不包括保密性
  • ESP:封装安全负荷,Encapsulating Security Payload,提供数据保密性和数据完整性认证,ESP也包括防止重放攻击的顺序号;ESP原则上只提供保密性,但也可在ESP Header中选择适当的算法及模式来实现数据的完整性和认证
  • IKE:Internet密钥交换协议,Internet Key Exchange,用于生成和分发在ESP和AH中使用的密钥,IKE也对远程系统进行初始认证。提供加密算法、密钥等的协商

AH和ESP可分开使用也可一起使用。

SSL

Secure Sockets Layer,安全套接层,用于安全传输数据的一种通信协议。它采用公钥加密技术、对称密钥加密技术等保护两个应用之间的信息传输的机密性和完整性。不足:本身不能保证传输信息的不可否认性。

SSL协议包括服务器认证、客户认证、SSL链路上的数据完整性、SSL链路上的数据保密性等几个方面,通过在浏览器和Web服务器之间建立一条安全的通道来保证Internet数据传递的安全性。目前,利用公钥加密的SSL技术,已成为Internet上进行保密通信的工业标准。

其继任者TLS(Transport Layer Security,传输层安全)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。

PGP

Pretty Good Privacy,是美国人Phil Zimmermann于1995年提出的一套电子邮件加密方案。可用来对邮件加密以防止非授权者阅读,还能对邮件加上数字签名而使收信人可以确认邮件确实是由发送方发出的。

PGP并不是新的加密算法或协议,它综合采用多种加密算法:对邮件内容加密采用IDEA算法、对于加密信息采用RSA公钥加密算法,还采用用于数字签名的消息摘要算法,加密前进行压缩处理等技术手段进行邮件加密的一套软件。通过组合使用这些加密方法,把RSA公钥加密体系的良好加密效果和对称密钥加密体系的高速度结合起来,并且通过在数字签名和密钥认证管理机制中的巧妙设计,使得PGP成为一个优秀的强有力的数据加密程序。

PGP功能强大、处理迅速、使用简便,开放源代码,因此在IT等多个行业得到广泛的应用,迅速普及。PGP除了用于通常的电子邮件加密,还可以用来加密重要文件,用PGP代替UUencode生成RADIX64格式(就是MIME的BASE64格式)的编码文件,以保证它们在网络上的安全传输,或为文件做数字签名,以防止篡改和伪造。

加密原理

加密过程:用户A对要发送的邮件P运用MD5散列算法进行计算,生成一个128位的消息摘要,有了这个消息摘要就可以检验邮件信息是否完整、有没有被篡改。然后再通过RSA算法,运用A的私钥SKA对消息摘要进行加密,生成消息摘要的密文H。邮件P与经过加密的邮件消息摘要H共同构成新的报文P1,接着对P1进行ZIP压缩,成为压缩的报文P1.Z。再对P1.Z采用IDEA算法加密,这次加密使用一个一次性的密钥K,并且K必须经过RSA算法使用通信的另一方B的公开密钥PKB加密,与加密后的报文P2一起,再经过BASE64编码,得到一系列ASCII码,作为邮件内容发送到网络上。

解密过程:用户B接收到A发来的加密的邮件后,执行解密过程:与加密过程相反,首先对邮件内容进行BASE64解码,再利用自己的秘密密钥SKB,通过RSA算法解出IDEA的密钥K。再用此密钥恢复出P1.Z,对P1.Z进行解压缩后还原出P1。接着把明文P和邮件信息摘要的密文H分离开来,并用A的公开密钥PKA解密H得到真正的邮件消息摘要。然后B自己也运用MD5算法对邮件明文P进行运算,生成一个128位的消息摘要。比较这两个摘要是否一致,如果一致,则表明P是A发来的邮件。

PPTP

是一种支持多协议虚拟专用网络的网络技术,它工作在数据链路层

HTTPS

超文本传输安全协议,HTTPS = HTTP + SSL

SET

Secure Electronic Transaction,安全电子交易协议,用于即时电子支付场景。主要应用于B2C模式中保障支付信息的安全性。SET协议本身比较复杂,设计比较严格,安全性高,它能保证信息传输的机密性、真实性、完整性和不可否认性。

SSH

SSH协议是安全外壳协议,为建立在应用层基础上的安全协议,SSH是可靠的专为远程登录会话和其他网络服务提供安全性的协议

MIME

MIME是通用互联网邮件扩充,广泛应用的一种电子邮件技术规范和安全协议。

总结

协议 层级 描述
IPSec 网络层 IPSec是一个协议族,并不是一个单一的协议
SSL 运输层 作用于运输层和应用层的HTTP之间
TLS 运输层 是在SSL基础上进行了升级的版本
SET 运输层 用于安全电子交易的协议
HTTPS 应用层 超文本传输协议,安全版本的HTTP
PGP 应用层 用于电子邮件的安全软件包
SSH 应用层 远程会话的协议

其他

WEP

Wired Equivalent Privacy,有线等效加密,设计目的是提供与有线局域网等价的机密性。WEP使用RC4协议进行加密,并使用CRC-32校验保证数据的完整性。最初的WEP标准使用Mbit的初始向量,加上40bit的字符串,构成64bit的WEP密钥。升级版的有128位WE

WPA

Wi-Fi联盟厂商以802.11i草案的子集为蓝图制定称为WPA(Wi-Fi Protected Access)安全认证方案。在WPA的设计中包含认证、加密和数据完整性校验三个组成部分。

首先是WPA使用802.1X协议对用户的MAC地址进行认证;

其次是WEP增大密钥和初始向量的长度,以128bit的密钥和48位的初始向量(V)用于RC4加密。

WPA还采用可以动态改变密钥的临时密钥完整性协议TKIP,以更频繁地变换密钥来减少安全风险。

WPA强化数据完整性保护,使用报文完整性编码来检测伪造的数据包,并且在报文认证码中包含有帧计数器,还可以防止重放攻击。

身份认证

包括:口令认证、基于公钥签名认证、持卡认证、基于人体生物特征认证、动态口令、ppp

访问控制

访问控制技术:用户标识与认证、逻辑访问控制、审计与跟踪、公共访问控制。

目前使用的访问控制授权方案,主要有以下4种:

  1. DAC:Discretionary Access Control,自主访问控制方式,该模型针对每个用户指明能够访问的资源,对于不在指定的资源列表中的对象不允许访问
  2. ACL:Access Control List,访问控制列表方式,该模型是目前应用最多的方式。目标资源拥有访问权限列表,指明允许哪些用户访问。如果某个用户不在ACL中,则不允许该用户访问这个资源。
  3. MAC:Mandatory Access Control,强制访问控制方式,该模型在军事和安全部门中应用较多,目标具有一个包含等级的安全标签(如:不保密、限制、秘密、机密、绝密)。访问者拥有包含等级列表的许可,其中定义可以访问哪个级别的目标:例如允许访问秘密级信息,这时,秘密级、限制级和不保密级的信息是允许访问的,但机密和绝密级信息不允许访问。
  4. RBAC:Role Based Access Control,基于角色的访问控制方式,该模型首先定义一些组织内的角色,如局长、科长、职员,再根据管理规定给这些角色分配相应的权限,最后对组织内的每个人根据具体业务和职位分配一个或多个角色。

DAC

由客体的属主对自己的客体进行管理,由属主自己决定是否将自己的客体访问权或部分访问权授予其他主体,这种控制方式是自主的。也就是说,在自主访问控制下,用户可以按自己的意愿,有选择地与其他用户共享他的文件。

根据主体的身份及允许访问的权限进行决策。

  • 自主是指具有某种访问能力的主体能够自主地将访问权的某个子集授予其它主体
  • 灵活性高,被大量采用

缺点:

信息在移动过程中其访问权限关系会被改变。如用户A可将其对目标O的访问权限传递给用户B,从而使不具备对O访问权限的B可访问O。

MAC

每个用户及文件都被赋予一定的安全级别,用户不能改变自身或任何客体的安全级别,即不允许单个用户确定访问权限,只有系统管理员可以确定用户和组的访问权限。系统通过比较用户和访问的文件的安全级别来决定用户是否可以访问该文件。

安全级别从最高到最低一般有五级:

  • 绝密级(Top Secret,T)
  • 秘密级(Secret,S)
  • 机密级(Confidential,C)
  • 限制级(Restricted,R)
  • 无密级(Unclassified,U)

MAC对比DAC

  • MAC:系统独立于用户行为,强制执行访问控制,用户不能改变他们的安全级别或对象的安全属性。这样的访问控制规则通常对数据和用户按照安全等级划分标签,访问控制机制通过比较安全标签来确定授予还是拒绝用户对资源的访问。
  • DAC:允许对象的属主来制定针对该对象的保护策略。通常DAC通过授权列表(或ACL)来限定哪些主体针对哪些客体可以执行什么操作。如此可以非常灵活地对策略进行调整。自主访问控制中,用户可以针对被保护对象制定自己的保护策略。每个主体拥有一个用户名并属于一个组或具有一个角色。每个客体都拥有一个限定主体对其访问权限的ACL。每次访问发生时都会基于ACL检查用户标志以实现对保护访问权限的控制。

RBAC

特点:

  • 基本思想:将访问许可权分配给一定的角色,用户通过饰演不同的角色获得角色所拥有的访问许可权;
  • 角色成为访问控制中访问主体和受控对象之间的一座桥梁;
  • 角色由系统管理员定义,角色成员的增减也只能由系统管理员来执行,即只有系统管理员有权定义和分配角色;
  • 用户与客体无直接联系,他只有通过角色才享有该角色所对应的权限,从而访问相应的客体。因此用户不能自主地将访问权限授给别的用户。

TBAC

Task Based Access Control,简称TBAC,基于任务的访问控制,特点:

  • 对象的访问权限控制并不是静止不变的,而是随着执行任务的上下文环境发生变化;
  • TBAC模型由工作流、授权结构体、受托人集、许可集四部分组成;
  • TBAC模型一般用五元组(S,O,P,L,AS)来表示,S表示主体,O表示客体,P表示许可,L表示生命(Lifecycle),AS表示授权步;
  • TBAC从工作流中的任务角度建模,可以依据任务和任务状态的不同,对权限进行动态管理。TBAC非常适合分布式计算和多点访问控制的信息处理控制以及在工作流、分布式处理和事务管理系统中的决策制定。

OBAC

Object Based Access Control,简称OBAC,基于对象的访问控制,特点:

  • 将ACL与受控对象或受控对象的属性相关联,并将访问控制选项设计成为用户、组或角色及其对应权限的集合;
  • 允许对策略和规则进行重用、继承和派生操作。派生对象可以继承父对象的访问控制设置;
  • 可减轻由于信息资源的派生、演化和重组等带来的分配、设定角色权限等的工作量。

OSI安全架构

OSI安全架构是一个面向对象的、多层次的结构,它认为安全的网络应用是由安全的服务实现的,而安全服务又是由安全机制来实现的。

OSI安全服务

针对网络系统的技术和环境,OSI安全架构中对网络安全提出5类安全服务:

  • 对象认证服务:又可分为对等实体认证和信源认证,用于识别对等实体或信源的身份,并对身份的真实性、有效性进行证实。其中,对等实体认证用来验证在某一通信过程中的一对关联实体中双方的声称是一致的,确认对等实体中没有假冒的身份。信源认证可以验证所接收到的信息是否确实具有它所声称的来源
  • 访问控制服务:访问控制服务防止越权使用通信网络中的资源。访问控制服务可以分为自主访问控制DAC、强制访问控制MAC、基于角色的访问控制RBAC。由于DAC、MAC固有弱点,及RBAC的突出优势,RBAC一出现就成为在设计中最受欢迎的一种访问控制方法
  • 数据保密性服务:针对信息泄漏而采取的防御措施,包括信息保密、选择段保密、业务流保密等内容。数据保密性服务是通过对网络中传输的数据进行加密来实现的
  • 数据完整性服务:包括防止非法篡改信息,如修改、删除、插入、复制等
  • 禁止否认服务:可以防止信息的发送者在事后否认自己曾经进行过的操作,即通过证实所有发生过的操作防止抵赖。具体的可以分为防止发送抵赖、防止递交抵赖和进行公证等几个方面

OSI安全机制

为了实现前面所述的5种OSI安全服务,OSI安全架构建议采用如下8种安全机制:

  • 加密机制:即通过各种加密算法对网络中传输的信息进行加密,它是对信息进行保护的最常用措施。加密算法有许多种,大致分为对称密钥加密与公开密钥加密两大类,其中有些(如DES等)加密算法已经可以通过硬件实现,具有很高的效率
  • 数字签名机制:采用私钥进行数字签名,同时采用公开密钥加密算法对数字签名进行验证的方法。用来帮助信息的接收者确认收到的信息是否是由它所声称的发送方发出的,并且还能检验信息是否被篡改、实现禁止否认等服务。
  • 访问控制机制:访问控制机制可根据系统中事先设计好的一系列访问规则判断主体对客体的访问是否合法,如果合法则继续进行访问操作,否则拒绝访问。访问控制机制是安全保护的最基本方法,是网络安全的前沿屏障。
  • 数据完整性机制:包括数据单元的完整性和数据单元序列的完整性两个方面。它保证数据在传输、使用过程中始终是完整、正确的。数据完整性机制与数据加密机制密切相关。
  • 鉴别交换机制:鉴别交换机制以交换信息的方式来确认实体的身份,一般用于同级别的通信实体之间的认证。要实现鉴别交换常常用到如下技术:
    • 口令:由发送方提交,由接收方检测
    • 加密:将交换的信息加密,使得只有合法用户才可以解读
    • 实体的特征或所有权:例如,指纹识别、身份卡识别等
  • 业务流填充机制:设法使加密装置在没有有效数据传输时,还按照一定的方式连续地向通信线路上发送伪随机序列,并且这里发出的伪随机序列也是经过加密处理的。这样,非法监听者就无法区分所监听到的信息中哪些是有效的,哪些是无效的,从而可以防止非法攻击者监听数据,分析流量、流向等,达到保护通信安全的目的。
  • 路由控制机制:在一个大型的网络里,从源节点到目的节点之间往往有多种路由,其中有一些是安全的,而另一些可能是不安全的。在这种源节点到目的节点之间传送敏感数据时,就需要选择特定的安全的路由,使之只在安全的路径中传送,从而保证数据通信的安全。
  • 公证机制:在一个复杂的信息系统中,一定有许多用户、资源等实体。很难保证每个用户都是诚实的,每个资源都是可靠的,同时,也可能由于系统故障等原因造成信息延迟、丢失等。这些很可能会引起责任纠纷或争议。而公证机构是系统中通信的各方都信任的权威机构,通信的各方之间进行通信前,都与这个机构交换信息,从而借助于这个可以信赖的第三方保证通信是可信的,即使出现争议,也能通过公证机构进行仲裁。

两者关系

OSI安全服务与安全机制之间不是一一对应的关系,有的服务需要借助多种机制来实线,有些机制可以提供多种服务。一般来说,OSI安全服务与安全机制之间关系如下表所示,在设计中可参考选用这些安全机制从而提供相应的安全服务。

安全机制\安全服务 对象认证 访问控制 数据保密性 数据完整性 防止否认
加密
数字签名
访问控制
数据完整性
鉴别交换
业务流填充
路由控制
公证

其他

安全网关的以下功能模块支持PKI功能:

IKE VPN:建立IKE VPN时,支持PKI认证。

HTTPS/SSH:使用HTTPS或者SSH方式访问安全网关时,支持PKI认证。

电子邮件由一个邮件头部和一个可选的邮件主体组成,其中邮件头部含有邮件的发送方和接收方的有关信息。对于邮件主体来说,IETF在RFC 2045〜RFC 2049中定义的MIME规定,邮件主体除了 ASCII字符类型之外,还可以包含各种数据类型。用户可以使用MIME增加非文本对象,比如把图像、音频、格式化的文本或微软的Word文件加到邮件主体中去。 S/MIME在安全方面的功能又进行了扩展,它可以把MIME实体(比如数字签名和加密信息等)封装成安全对象。RFC 2634定义增强的安全服务,例如具有接收方确认签收的功能,这样就可以确保接收者不能否认已经收到过的邮件。

参考

相关推荐
斜阳日落12 小时前
Qt 框架深度解析与性能优化
qt·性能优化·系统架构
小蒋聊技术1 天前
电商系列第七课:售后与物流中心 —— 服务质量提升与智能物流路由
架构·系统架构·电商
xuanjiong1 天前
DDD架构Repository仓储数据流转全链路详解:Domain与其他层的数据流转
java·系统架构
Java识堂1 天前
如何设计一个短链系统?
系统架构
humcomm1 天前
AI编程对前端架构师技能的具体要求有哪些变化
前端·系统架构·ai编程
姚青&1 天前
被测系统架构与数据流分析
系统架构
程序员zgh1 天前
AUTOSAR CP 之 配置、开发流程、工具链 解析
c语言·开发语言·c++·系统架构·汽车
Cosolar2 天前
大模型量化技术实战指南
人工智能·系统架构·大模型·agent
Java识堂2 天前
如何选择合适的消息队列?
系统架构