什么叫做软件系统结构图的宽度?

什么叫做软件系统结构图的宽度?,第1张

软件系统结构图的宽度是指整体控制跨度(最大模块数的层)的表示。

系统结构图架构的几个要点:

系统安全这是首要考虑的,网络可以划分为3个区:

DMZ区可以直接公网访问,也可以与AppCore区互通,但不能直接与DBCore区互通(通常这里放置反向代理Web服务器);

AppCore区能与DMZ区、DBCore区互通,但是无法直接从公网访问(通常这里放置应用服务器、中间件服务器之类);

DBCore区仅与AppCore区互通(通常这里放置核心数据库)。除了“硬件负载均衡”节点外,其它节点都可以部署成集群(DB有点特殊,传统RDBMS要实现分布式/集群还是比较困难的,要看具体采用的数据库产品,并非所有数据库都能方便的做Sharding。

Jboss本身可以通过Domain模式+mod_cluster实现集群、Redis通过Master/Slave以Sentinel方式可以实现HA、IBMMQ本身就支持集群、FTPServer配合底层储存阵列也可以做到HA、Nginx静态资源服务器自不必说。

尽量采用开源成熟产品,jboss、redis、nginx、apache、mysql、rabbitMQ都是很好的选择。硬件负载均衡通常成本不低,但是效果明显,如果实在没钱,域名解析采用DNS轮询策略,也能达到类似效果,只不过可靠性略差。

常规企业应用中,传统关系型数据仍然是主流,但是no-sql经过这几年发展,技术也日渐成熟了,一些非关键数据可以适当采用no-sql数据库,比如:系统日志、报文历史记录这类相对比较独立,而且增长迅速的数据,可以考虑存储到no-sqldb甚至HDFS、TFS等分布式开源文件系统中。

如果系统数据量级达到单机RDBMS的上限,尽早考虑Sharding方案,目前mysql在这方面比较成熟,其它数据库就不好说了。

webserver、appserver这些一般都可以通过集群实现横向扩张,满足性能日常增长的需求。最大的障碍还是DB,如果规模真达到了DB的上限,还是考虑换分布式DB或者迁移到“云”上吧。

扩展资料:

软件结构图是为了反映软件系统中组件之间相互关系和约束的体系结构设计图,称为软件体系结构图更为合适,一般通过分层次或分时间段等方式说明体系结构的各个组成部分的组合关系。

在结构化设计方法中,软件结构图主要分为变换型软件结构图和事务型软件结构图两种。

软件结构包括构成系统的设计元素的描述、设计元素之间的交互、设计元素的组合模式以及在这些模式中的约束。一个系统由一组构件以及它们之间的交互关系组成,这种系统本身又可以成为一个更大的系统的组成元素。

参考资料:

-软件结构图

如图,TCP网络模型有四层,

分别是应用层、传输层、网络层和物理层。

根据不同的技术IPsec, TLS / SSL和SSH所处的地方如图所示。  

SSH适合运用在TCP模型的顶部即应用层。 这使SSH通过自然和工作周边其他网络应用执行一个应用,这些网络应用包括ftp、http等其他的应用。 SSH可以被用在部分前置模式为其他应用程序创建一个通道。  

TLS / SSL为传输层提供安全。TLS / SSL不是一个像SSH一样单一的应用程序,而是通过应用程序的实施提供安全保障。SSL是由使用HTTP的网景公司设计的。 TLS是最新版本的SSL技术。  

IPsec在IP包层提供安全,它不像TLS / SSL一样与上级集成。 IPsec是一种网络级协议,包含服务器和/或用户层,如路由器、专用***集中器、防火墙或一个操作系统的内核。  

重要的是要记住在SSH、 TLS / SSL和IPsec之间没有互操作性,他们在TCP模型中都在不同层次操作,并且都是根据不同用途而设计的。 当然可以在可信网络通过SSH通道交通贯穿使用IPsec、 TLS,但它并不实用,因为通过三次加密和解密传输数据需要使用大量的CPU带宽。选择其中的一个技术是正常的。  

拓扑结构图是指由网络节点设备和通信介质构成的网络结构图。

网络拓扑定义了各种计算机、打印机、网络设备和其他设备的连接方式。换句话说,网络拓扑描述了线缆和网络设备的布局以及数据传输时所采用的路径。网络拓扑会在很大程度上影响网络如何工作。

网络拓扑包括物理拓扑和逻辑拓扑。物理拓扑是指物理结构上各种设备和传输介质的布局。物理拓扑通常有总线型、星型、环型、树型、网状型等几种。

附:拓扑结构示意图

摘要:本文介绍了BLP、DTE和RBAC三种安全策略访问模型,并结合这三种安全策略模型,形成一个适应各类安全产品的实用操作系统。此设计方案遵循GB17859-1999[1]中规定的结构化保护级(相当于《TCSEC》标准的B2级[2])的安全要求进行设计,并在Linux操作系统上得以实现。

关键字:安全技术;安全模型;Linux操作系统

中图分类号:TP309 文献标识码:② 文章编号:

1 引言

随着社会信息化的发展,计算机安全问题日益严重,建立安全防范体系的需求越来越强烈。操作系统是整个计算机信息系统的核心,操作系统安全是整个安全防范体系的基础,同时也是信息安全的重要内容。

本课题将通过研究操作系统的安全策略访问模型,结合国内、外的相关安全标准和已有的先进技术,将密码服务与高级别存取控制机制有机地结合起来,探索适合国情的安全操作系统结构,最终形成一个适应各类安全产品系统安全需求的结构化保护级(相当于TCSEC中规定的B2级)实用操作系统。并且通过推动安全操作系统的应用,取得良好的经济效益和社会效益。

2 安全模型

该类模型是从安全策略和访问控制的角度描述安全系统,主要针对系统中主体对客体的访问及其安全控制。[3]

21 多级安全及自主访问策略模型

多级安全及自主访问策略模型的每个主体在替代用户之前,必须被配置最大安全级及标签范围;除某些可信客体外,每一个客体都要配置标签范围。

Bell&Lapadula(BLP)模型[4,5]是最典型的信息保密性多级安全模型,包括强制访问控制和自主访问控制两部分。强制访问控制中的安全特性,要求对给定安全级别的主体,仅被允许对同一安全级别和较低安全级别上的客体进行“读”,对给定安全级别上的主体,仅被允许向相同安全级别或较高安全级别上的客体进行“写”,任意访问控制允许用户自行定义是否让个人或组织存取数据。

22 多域安全策略模型

多域策略的基本思想是:赋予保护对象一种抽象的数据类型,该类型表明了保护对象要保护的完整性属性,然后规定只有经授权的主动进程能替代用户访问这一完整性属性,并限制该主动进程的活动范围,使其获得它应该完成目标以外的能力极小化。

DTE (Domain and Type Enforcement)模型[6]是近年来被较多的作为实现信息完整性保护的模型。该模型定义了多个域(Domain)和型(Type),并将系统中的主体分配到不同的域中,不同的客体分配到不同的型中,通过定义不同的域对不同的型的访问权限,以及主体在不同的域中进行转换的规则来达到保护信息完整性的目的。

23 基于角色的访问控制模型

基于角色的访问控制模型的目的就是通过域隔离,确保对系统的完整性破坏的极小化。

RBAC模型[6]是基于角色的访问控制模型。该模型主要用于管理特权,在基于权能的访问控制中实现职责隔离及极小特权原理。其基本要素之间的关系如图1所示:

图1 RBAC基本要素关系

Fig1 the relationship of basic elements in RBAC

在本系统中,将实现基于角色的授权和控制,支持角色互斥,不支持角色的继承,不支持同一个用户的多个角色。

3 安全系统的设计

31 安全模型的设计

本系统中的安全服务器将遵循改进的BLP模型、DTE模型以及RBAC模型来实现系统的安全策略。其中,BLP模型保护信息的机密性;DTE模型保护信息的完整性;RBAC模型是授权模型。通过三种模型的相互作用和制约,保证系统中的信息以及系统自身的安全性。图2为本系统中三种模型以及重要功能的相互关系。

图2 模型间的相互关系

Fig2 the relationship of models

如图2所示,授权策略RBAC是整个系统的基础,它通过为用户设置特定角色,影响IA控制、特权控制、多域访问控制和强制访问控制等基本功能,达到控制系统中用户/主体对客体/对象的访问目的。在本系统中,每个用户都有且只有一个角色。为某个用户给定一个角色,相当于给定该用户的最大特权集、安全标记范围、DTE域范围和最小审计掩码。该用户的上述属性只能够在给定角色的范围内指定。RBAC是通过最小特权、强制访问控制(包括MAC机密性保护和DTE完整性保护)和安全审计等功能组合实现的。

而多域策略DTE和多级安全策略BLP则是在授权策略授权的基础上,调用多域访问控制和强制访问控制功能,实现对客体/对象信息的完整性和机密性保护。

本系统在BLP模型的基础上进行了一些改动:

1 对BLP模型“上写下读”的信息流规则进行了限制,将其中的“上写”改为:低安全等级的主体可以创建高安全等级的客体或向高安全等级的客体中添加信息,但是不能修改或删除高安全等级客体中的原有信息。例如,低安全等级的主体可以在高安全等级目录下(在通过了DAC和DTE检查的情况下)创建新的文件(包括子目录、命名管道等),但是不能删除原有的文件(包括子目录、命名管道等),也不能改写高安全等级文件的内容;

2 引入可信主体的概念,即:所谓可信主体,就是拥有多个安全级或一个安全级范围的主体;

3 引入可信客体的概念,即:所谓可信客体,就是拥有多个安全级或一个安全级范围的客体。

本系统中DTE实现采用为主体/客体指定域/型标识(统称为DTE标识)的方法,DTE策略将通过为主体赋“域”(Domain),为客体赋“型”(Type),并定义“域”和“型”之间的访问权限实现DTE完整性保护,并采用DTEL(DTE Language)语言进行描述,通过命令设置到系统核心。

核心中将为每个主体维护一个“域”标记,为每个文件维护一个“型”标记。当操作发生时,系统将根据主体“域”标记、文件“型”标记以及访问控制表判断是否允许操作发生。

原则上,构造一个安全系统必须同时兼顾用户应用系统、O/S服务系统、Linux 内核、硬件这四个子系统,使它们都获得有效的保护;但本系统主要关心用户应用系统和Linux 内核系统,因为它们与Linux 系统安全联系最直接。构筑安全Linux 系统的最终目标就是支持各种安全应用,如果系统在构造之初就没有区别地对待不同的应用,或者说不采取隔离的方式对待不同的应用,那么这样的系统是不实用的,因为不同的应用对系统安全可能造成的威胁是不同的。对用户应用系统的控制,我们主要采用角色模型与DTE技术的结合;而对Linux 内核的控制,则通过权能访问控制、增强的BLP模型及DTE策略来实现。

32 安全系统的结构设计

图3 Linux 结构化保护级安全服务器系统结构图

Fig3 the structure chart of Linux structure protection security server

图3说明了本系统的体系结构。如图3,用户请求的系统操作进入核心后,首先经过安全策略执行点,调用相应的安全策略执行模块,安全策略执行模块读取相关的系统安全信息和主/客体安全属性,并调用安全策略判定模块进行安全判定,决定是否允许用户请求的操作继续执行;当用户请求的系统操作得到允许并执行结束后,再次通过安全策略执行点,进行相关安全信息/属性的设置和安全审计。

安全服务器中的功能模块与原有的系统操作是相对独立的,双方通过hook函数进行联系。通过改变hook函数的指向,可以启用不同的安全服务器。不同的安全服务器可以选择不同的安全策略,从而达到支持多安全策略的目的。

33 安全系统的功能特性

安全系统在原有Linux操作系统基础上,新增了的强制访问控制、最小特权管理、可信路径、隐通道分析和加密卡支持等功能组成,系统的主要功能如下:

1 标识与鉴别

标识与鉴别功能用于保证只有合法的用户才能存取系统资源。本系统的标识与鉴别部分包括角色管理、用户管理和用户身份鉴别等三个部分:

 角色管理是实现RBAC模型的重要部分,将角色配置文件存放在/etc/security/role文件中,角色管理就是对角色配置文件的维护。

 用户管理就是对用户属性文件的维护,是在系统原有用户管理的基础上修改和扩充而来;本系统改变了原有系统集中存放用户属性的方式,在/etc/security/ia目录下为每个用户创建一个属性文件。

 用户身份鉴别过程就是控制用户与系统建立会话的过程;本系统将修改原有系统的pam模块和建立会话的程序,增加对管理员用户的强身份鉴别(使用加密卡),增加为用户设置初始安全属性(特权集、安全标记、域、审计掩码)的功能。

2 自主访问控制(DAC)

用于进行按用户意愿的存取控制。使用DAC,用户可以说明其资源允许系统中哪个(些)用户使用何种权限进行共享。

本系统在自主访问控制中加入ACL机制。利用ACL,用户能够有选择地授予其他用户某些存取权限,来对信息进行保护,防止信息被非法提取。

3 强制访问控制(MAC)

提供基于数据保密性的资源存取控制方法。MAC是多级安全及自主访问策略的具体应用,通过限制一个用户只能在低级别上读访问信息、只能在自身的级别上写访问信息,来加强对资源的控制能力,从而提供了比DAC更严格的访问约束。

4 安全审计

审计是模拟社会监督机制而引入到计算机系统中,用于监视并记录系统活动的一种机制。审计机制的主要目标是检测和判定对系统的渗透,识别操作并记录进程安全级活动的情况。

本系统中的审计事件分为可信事件与系统调用。系统对每个用户审计的内容不同,需要设置系统的审计事件掩码和用户的审计事件掩码。在形成审计记录时,核心将根据审计掩码进行选择。

5 客体重用

客体重用是指TSF必须确保受保护资源内的任何信息,在资源被重用时不会被泄露。

客体重用功能可以防止重要的客体介质在重新分配给其他主体的时候产生信息泄漏。在本系统中,出于系统效率和可靠性的考虑,只实现对核心重要数据结构剩余信息的自动清除和文件内容的人工清除。

6 最小特权管理

根据《TESCE》B2级中提出的最小特权原理,系统中的每个进程只应具有完成其任务和功能所需要的最小特权。因此,在本系统中开发了一种灵活的特权管理机制,把超级用户的特权划分成一组细粒度特权的集合,通过对系统中用户和进程特权的赋值、继承和传递的控制,将其中的部分特权赋给系统中的某个用户,从而使系统中的普通用户也能具有部分特权来操作和管理系统。

7 可信路径

可信路径要求为用户提供与系统交互的可信通道。可信路径的实现方法是通过核心对安全注意键的监控,并退出当前终端下的所有应用程序,启动新的可信登陆程序。

根据《TESEC》B2级对可信通路的要求,在本系统中开发了可信通路机制,以防止特洛伊木马等欺诈行为的发生。用户无论在系统的什么状态下,只要激活一个安全注意键(一般设置为Ctrl-Alt-A),就可以进入一个安全的登录界面。另外,本系统还采用了管理员用户的强身份认证和建立加密通道等技术,也可以保证用户与系统间交互的安全性。

8 隐蔽通道分析

我国《计算机信息系统安全保护等级划分准则》[1]要求第四级及以上级别安全信息系统产品必须分析与处理隐蔽通道。本系统掩蔽通道分析将基于源代码,采用下列方法进行:

分析所有操作,列出操作及其涉及的共享资源(客体属性)

 列出操作与共享资源的关系图

 找出所有可能的存储隐蔽通道

 分析、标识每个存储隐蔽通道,并给出带宽

9 加密卡支持

本系统基于国产密码硬件资源,实现的密码服务主要包括三个方面:

文件存储加解密:在命令层为用户提供一套SHELL命令,实现文件的机密性、完整性保护,同时提供一套接口库函数,供用户编程使用。

特权用户强身份认证:结合RBAC、DTE策略,对特权(角色)用户实施强身份认证。

数据传输加解密:在核心提供一套函数接口,用于实现数据的机密性和完整性。

4 结论

本方案通过对Linux核心结构和操作系统域外层安全体系的层次结构的研究,遵循国内、外的相关安全标准,将三种安全策略模型和已有的先进技术有机地结合起来,增加了强制访问控制、最小特权、可信路径等安全功能,成功的在Linux操作系统上得已实现,基本达到了GB17859-1999中规定的结构化保护级(相当于《TCSEC》标准的B2级)的要求。

操作系统安全增强技术作为信息安全的关键部分,得到了国内、外的普遍重视。在安全领域,系统的安全性总是相对的。因此,对安全模型的研究和建模以及信息安全系统体系和方案设计的研究还有待进一步的深入。本设计方案已经在Linux操作系统上得到具体的实现,还有待于在实际应用中对安全操作系统进一步的考验和完善。

参考文献

[1] GB17859-1999, 计算机信息系统安全保护等级划分准则[S]

[2] DoD 5200 28-STD, Department of Defense Trusted Computer System Evaluation Criteria[S] Department of Defense, Washington,DC, 1985

[3] 石文昌, 孙玉芳 计算机安全标准演化与安全产品发展[J] 广西科学, 2001, 8 (3): 168-171

[4] BELL D E, LaPADULA L J Secure computer system: mathematical foundation and model[R] Bedford MA: Mitre Corp, 1973 M74-244

[5] 石文昌, 孙玉芳, 梁洪亮 经典BLP安全公理的一种适应性标记实施方法及其正确性[J] 计算机研究与发展, 2001,11 (38): 1366~1371

[6] 季庆光,唐柳英《结构化保护级》安全操作系统安全策略模型[R] 北京:中科院信息安全技术工程研究中心,中软网络技术股份有限公司,2002

The Research and Design of Security Model

LI Fang, HU Zhi-xing

(Information Engineering Institute, University of Science and Technology Beijing, Beijing 100083, China)

Abstract: After study of BLP model, DTE model and RBAC model, and combination of the three security models, an implementation scheme of security system and its components and functions is provided, which achieves the structure protection of GB17859 (as the level B2 of TCSEC standard) The scheme is implemented on Linux operating system successfully

Key words: security techniques; security model; Linux operating system

1、使用的镜像

sudo docker pull networkboot/dhcpd

2、测试的局域网拓扑结构如下:h为 DHCP服务器,ovs交换机s1、s2、s3各连着一台等待分配ip地址的主机。

3、h DHCP服务器通过一对暴露于root namespace 的veth pair相连,具体操作如下

31、生成交换机s1、s2、s3

sudo ovs-vsctl add-br s1sudo ovs-vsctl add-br s2sudo ovs-vsctl add-br s3

32、创建veth pair 即 v1-v2

sudo ip link add v1 type veth peer name v2

33、up

sudo ip link set dev v1 upsudo ip link set dev v2 up

34、给v1配置ip及子网掩码

sudo ifconfig v1 1921681254 netmask 2552552550

35、生成DHCP服务器,监听v1 ,挂载本地data文件夹,data里面中只有dhcpdconf文件

sudo docker run -it \--rm --net host \--init \--name=dhcpServer1 \-v ~/emxbook/docker-dhcpd/data:/data \networkboot/dhcpd v1

dhcpdconf

subnet 19216810 netmask 2552552550 {option routers 19216811;option subnet-mask 2552552550;option domain-name "emxlocal";option domain-name-servers 8888;range 19216812 1921681100;}

35、将v2连接到交换机上

sudo ovs-vsctl add-port s1 v2

36、交换机s1、s2、s3彼此相连

sudo ovs-vsctl add-port s1 s1p1sudo ovs-vsctl set Interface s1p1 type=patchsudo ovs-vsctl set Interface s1p1 options:peer=s2p1sudo ovs-vsctl add-port s2 s2p1sudo ovs-vsctl set Interface s2p1 type=patchsudo ovs-vsctl set Interface s2p1 options:peer=s1p1sudo ovs-vsctl add-port s1 s1p2sudo ovs-vsctl set Interface s1p2 type=patchsudo ovs-vsctl set Interface s1p2 options:peer=s3p1sudo ovs-vsctl add-port s3 s3p1sudo ovs-vsctl set Interface s3p1 type=patchsudo ovs-vsctl set Interface s3p1 options:peer=s1p2

37、创建主机h1、h2、h3,并将其连接到交换机上,其中ubunut:5是添加了基本net-tools、isc-dhcp-client,创建的时候记得使用 --cap-add=NET_ADMIN

sudo docker run -itd --network=none --name=h1 --cap-add=NET_ADMIN ubuntu:5sudo docker run -itd --network=none --name=h2 --cap-add=NET_ADMIN ubuntu:5sudo docker run -itd --network=none --name=h3 --cap-add=NET_ADMIN ubuntu:5sudo ovs-docker add-port s1 eth1 h1sudo ovs-docker add-port s2 eth1 h2sudo ovs-docker add-port s3 eth1 h3

38、可以使用floot-light控制交换机s1、s2、s3交换机(选择)

sudo ovs-vsctl set-controller s1 tcp:127001:6653sudo ovs-vsctl set-controller s2 tcp:127001:6653sudo ovs-vsctl set-controller s3 tcp:127001:6653

4、使用dhclient eht1 向DHCP服务器申请

41、申请ip之前

42、申请ip(服务器端界面)

43申请ip之后,h1(192168138):

同理,h2(192168139):

h3(192168140):

5、测试

51、h1 ping h2(192168139):

52、h2 ping h3(192168140):

6、最后拓扑结构图,ip分配之后的拓扑结构:DHCP服务器(19216816)、h1(192168138)、h2(192168139)、h3(192168140)

7、代码汇总参考

sudo ovs-vsctl add-br s1sudo ovs-vsctl add-br s2sudo ovs-vsctl add-br s3sudo ip link add v1 type veth peer name v2sudo ip link set dev v1 upsudo ip link set dev v2 upsudo ifconfig v1 19216816 netmask 2552552550sudo docker run -it \--rm --net host \--init \--name=dhcpServer \-v ~/emxbook/docker-dhcpd/data:/data \networkboot/dhcpd v1sudo ovs-vsctl add-port s1 v2sudo ovs-vsctl add-port s1 s1p1sudo ovs-vsctl set Interface s1p1 type=patchsudo ovs-vsctl set Interface s1p1 options:peer=s2p1sudo ovs-vsctl add-port s2 s2p1sudo ovs-vsctl set Interface s2p1 type=patchsudo ovs-vsctl set Interface s2p1 options:peer=s1p1sudo ovs-vsctl add-port s1 s1p2sudo ovs-vsctl set Interface s1p2 type=patchsudo ovs-vsctl set Interface s1p2 options:peer=s3p1sudo ovs-vsctl add-port s3 s3p1sudo ovs-vsctl set Interface s3p1 type=patchsudo ovs-vsctl set Interface s3p1 options:peer=s1p2sudo docker run -itd --network=none --name=h1 --cap-add=NET_ADMIN ubuntu:5sudo docker run -itd --network=none --name=h2 --cap-add=NET_ADMIN ubuntu:5sudo docker run -itd --network=none --name=h3 --cap-add=NET_ADMIN ubuntu:5sudo ovs-docker add-port s1 eth1 h1sudo ovs-docker add-port s2 eth1 h2sudo ovs-docker add-port s3 eth1 h3sudo ovs-vsctl set-controller s1 tcp:127001:6653sudo ovs-vsctl set-controller s2 tcp:127001:6653sudo ovs-vsctl set-controller s3 tcp:127001:6653

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 什么叫做软件系统结构图的宽度?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情