信息安全综合设计与实践报告

信息安全综合设计与实践报告
信息安全综合设计与实践报告

华中科技大学计算机科学与技术学院

《信息安全综合设计与实践》实验报告

题目:动态创建可信执行环境保护用户登录口令

专业:信息安全

班级:0802

学好:U200814083

姓名:李瑞瑞

指导教师:崔永泉

完成时间:2011-12-25

动态创建可信执行环境保护用户登录口令

一、实验概要

云计算作为一种新型计算模式,已逐步被IT界和学术界所接受,采用虚拟化技术构建云平台也越来越流行,用户通过虚拟机使用云平台提供的资源。随着云计算的普及,其安全性也成为了人们最为担心的问题。目前流行的云平台已经提供了一些安全解决方案,比如用户通过ssh远程连接到虚拟机来实现安全访问。然而,由于虚拟机通常采用成熟的商用操作系统,很难确保系统不被木马入侵,对于ssh连接而言,openssh-server在验证用户的时候会将用户口令解密出来,那么恶意软件可以在内存中窃取用户的口令。因此需要在openssh-server验证用户口令时动态创建可信的执行环境来验证用户防止系统中其他恶意软件窃取用户口令。

本系统的全称为“动态创建可信执行环境保护用户登录口令系统”,英文缩写为TeeS。本系统保证了用户登录opensssh-server时的用户口令在服务器上一直是密文状态,为了安全获得用户口令,本系统建立了一个可信执行环境(Trust Execution Environment,TEE)用来保证口令不被恶意软件从内存中盗取,并且利用可信计算技术,可以向用户进行远程证明。

本系统工作在虚拟化平台——Xen之上,充分利用了Xen提供的基本机制,如Hypercall,事件通道,共享内存等机制,从底层保证了系统的安全性。同时为了说明系统的安全性,本系统运用了可信计算技术,通过vTPM可以完成对系统的度量以及向挑战者进行远程证明,从而从密码学的角度向对方证明系统的安全性。

二、实验环境

主机操作系统环境:Windows XP SP3

虚拟机型号:VMware WorkStation

虚拟机系统环境:Ubuntu(客户端虚拟机)、Xen(云端服务器)

云端服务器Xen环境:

Dom0域(Ubuntu)

DomU域(修改后的Ubuntu,为用户远端的虚拟机系统)

miniOS域(小型操作系统,用于解密验证口令

OpenSSH环境:修改后的OpenSSH,可执行常规远程连接服务,也可通过我们设计的客户端软件执行修改后的OpenSSH服务。

三、实验整体框架

在一次普通的OpenSSH会话中,存在着这样的隐患:服务器端程序在验证用户登录

口令时,将口令解密,这时,内存中存在口令的明文,恶意程序或木马此时可以从进程空间中读取出口令。那么,我们的任务就是通过创建一个可信的执行环境MiniOS来进行口令的解密与验证,避免了在原先的服务器端程序的进程空间出现口令明文,达到了消除这种安全隐患的目的。整个系统由虚拟机Dom0,虚拟机DomU,虚拟机MiniOS 以及远程的ssh客户端组成,工作流程如下图所示:

①客户端对口令利用AES加密,并在密文前加上一个特定的字符串如“12345678”,

称这个字符串为Magic number,最后生成一个nonce值,再将整个字符串通过ssh

发送给服务器端。

②服务器端sshd首先解密得到Magicnumber + Eaes( Password )+nonce这个字符串,

通过Magicnumber判断需要创建可信环境验证口令。于是DomU将

Eaes( Password )+nonce,口令解密与验证代码以及shadow文件中该用户对应的

SHA1值拷贝到共享内存中,xen对共享内存的代码段的哈希值扩展到PCR17中;

③启动可信执行环境MiniOS,MiniOS调用共享内存中的口令解密验证代码,对口令

进行验证,并将验证结果(1/0)写入共享内存,xen对结果页+用户名+口令+nonce

的哈希值扩展到PCR18中;

④DomU读取共享内存中的验证结果;

⑤sshd根据验证结果判断用户的登录是否合法。

另外,上面的执行流程由远程证明模块RemoteAttestation监督,确保任何对系统的非法篡改都能及时发现。

四、系统流程及各模块功能

(一)

系统的执行流程如下:

a)远程ssh客户端登录DomU,发送用户名和口令(口令的格式为MagicNumber+口

令密文)+nonce;

b)DomU中的sshd根据口令前的MagicNumber确定用户要求使用TEE环境登录;

c)Sshd利用tee.ko模块分配共享内存,并把AES解密和验证部分的代码拷贝到

共享内存中,同时把shadow文件中该用户对应的SHA1值以及口令密文也拷贝

到共享内存中;并通过xen对共享内存进行度量,把度量值扩展到pcr17中。

d)Sshd利用Dom0中的脚本首先对MiniOS的配置文件和内核进行度量,然后启动

MiniOS;

e)MiniOS通过Load Engine执行共享内存中的AES解密以及验证部分的代码,然

后把验证结果写回共享内存,并对结果页进行度量,并扩展到pcr18中;Sshd从共享内存中读取执行结果,判断客户端提供的口令是否正确,并向客户端进行远程证明。

1、系统启动流程

其中,Dom0是具有管理员权限的域,负责管理Xen平台上其他的虚拟机,管理vtpm,控制系统执行流程。

DomU是系统实际和用户交互的虚拟机,一个Xen平台可以有很多个DomU,每个DomU对应一个用户,而Dom0只有一个。

MiniOS就是对口令进行解密认证的可信执行环境,也是个轻量级的虚拟机,由于MiniOS结构简单,功能单一且固定,比较容易保证其安全性。

sealingkey用于解密得到AES密钥,AES密钥以密文的形式存放在MiniOS中,利用sealingkey解密得到,再利用这个AES密钥解密得到用户登录口令。

2、系统登录流程

设AES加密密钥为Eaes,则系统利用ssh传输的数据为: Magicnumber + Eaes( Password )+nonce;

Eaes经过一次加密存放在MiniOS中,验证时,MiniOS需要先利用sealingkey 将Eaes解密出来,再利用Eaes解密出用户登录口令。而sealingkey由DomU写入到vtpm中。如下:

(二)

1.Dom0的各个模块

Dom0是特权域,该域负责启动Xen平台上的其他虚拟机、管理vTPM、控制系统的整个执行流程。

(1)vTPM Manager

vTPM Manager负责创建并管理vTPM实例。当一个VM被创建时,它将产生一个vTPM实例,并将其关联到该VM。

当运行半虚拟化的DomU时,vTPM Manager还有一个用途。它重定向来自DomU (通过监听后端设备/dev/vtpm)的命令到相应的vTPM实例。

在其运行的主机上,vTPM Manager需要一个硬件TPM(或者是模拟器)。该TPM 用来绑定(用TPM密钥和PCRs进行加密,确保数据仅仅能够在预期的状态系被TPM 解密)vTPM实例的非易失性存储器数据,并保存到硬盘驱动器上。也可以将TPM 命令直通到该硬件TPM(但是该功能从未被使用过)。

引入了5个TPM命令使vTPM实例可以和vTPMMananger交互(vTPM Manager 将以vTPM实例的身份执行命令):

●VTPM_ORD_SAVENVM:通知vTPMManager保存(绑定)vTPM实例的非易失性存

储器到磁盘上。

●VTPM_ORD_LOADNVM:通知vTPMManagerd读取(解绑)已经保存到磁盘上的vTPM

实例的非易失性存储器的数据,并将解绑后的数据发送给vTPM实例。

●VTPM_ORD_TPMCOMMAND:通知vTPMManager由硬件TPM执行通过参数传递的命

令(但是并不是每个命令都可以发送到硬件TPM,vTPMMannager会对它们进行

过滤)。

●VTPM_ORD_GET_MIG_KEY:该命令用于在迁移过程中获得迁移密钥。

●VTPM_ORD_LOAD_MIG_KEY:该命令用于在迁移过程中加载迁移密钥到vTPM

Manager中。

还引入了5个TPM命令使其它的组件可以与vTPM Manager交互。它们是特权命令,它们不是由VM发出的,而是由Xen热插拔脚本(hot-plug scripts)或者vTPM迁移守护进程发出的。它们是:

●VTPM_ORD_OPEN:通知vTPM Manager创建或者重新打开一个vTPM实例。

●VTPM_ORD_CLOSE:通知vTPM Manager关闭该vTPM实例(通常当VM关闭

时)。

●VTPM_ORD_DELETE:通知vTPM Manager关闭该vTPM实例,并永久地删除

它。

●VTPM_ORD_MIGRATE_OUT:该命令用与在迁移过程中发送vTPM实例的状态

和数据。

●VTPM_ORD_MIGRATE_IN:该命令用于在迁移过程中接收vTPM实例的状态和

数据。

可以在tools/vtpm_manager/manager/vtpm_manager.h中找到关于TPM/vTPM 命令的更多的信息。

vTPM Manager守护进程的名字为vtpm_managerd,它的源代码可以在Xen源码树的tools/vtpm_manager/manager/目录下找到。

vTPM Manager创建了3个线程:一个用来监听来自热插拔脚本(还有vTPM迁移守护进程)的命令;另一个监听来自半虚拟化虚拟机(后端驱动)的命令;最后一个监听来自vTPM实例的应答。

vTPM Manager使用了如下文件:

●/var/vtpm/vtpm.db:这是一张VM到vTPM实例的映射表。你可以在第一

列插入domain的名字,在第二列插入vTPM实例的id号,从而关联该

domain到固定的vTPM实例。那么每次你启动该虚拟机的时候它将会与表

中所指定的vTPM实例关联。

●/var/vtpm/VTPM:该文件包含由vTPM Manager维护的vTPM实例的状态。

当vTPM Manager启动的时候,读取该文件并加载状态;当vTPM Manager

退出的时候,把更新后的状态写回该文件。

●/var/vtpm/vtpm_dm_%d.data:这些文件包含了绑定的vTPM实例的非易失

性存储器的数据。

(2)vTPM实例

vTPM实例就是VM的TPM,每个VM在整个生命周期中都有一个vTPM实例随之一起运行,所以vTPM实例的数目和运行中的VM(这里的VM指的是配有vTPM设备

的虚拟机)的数目是相同的。每个vTPM与VM之间的关联是独一无二的。Xen中实

现的vTPM是基于软件的,所以,vTPM实例就是一段运行在Dom0中的代码。

vTPM实例的守护进程叫做vtpmd,它的源代码位于Xen源码树的tools/vtpm/目录下。该守护进程不是直接由用户手动启动的,而是由vTPM Manager自动启动

的。它接收三个参数:

● startup_mode:可以是clear、save或者deactivated。

● type:对于半虚拟化应该是pvm,而对于全虚拟化是hvm。该参数

用于设置vTPM实例与其它组件的通信方式。

● dmi_id:vTPM实例的标识符。

当vTPM实例启动的时候,在初始化阶段它会试着恢复以前的数据(启动模式startup_mode为save)。vTPM实例的数据就代表它的非易失性存储器(如,SRK,

EK等)。每次调用TPM_SaveState都会进行保存,当编译时定义了宏

TPM_STRONG_PERSISTENCE(在tools/vtpm/tpm/tpm_emulator.h中可以找到)时,每执行一个命令都会进行保存。vTPM实例并不自己存储或者回复它的数据,而是

通过vTPM Manager进行磁盘访问。

对于运行中的vTPM实例,它仅仅等待将要执行的命令,并通过相同的通信通道发送响应数据。

(3)Run Scripts

Run scripts主要用来负责启动TEE可信执行环境,并对其进行度量然后把度量值扩展到相应的pcr中。

(4)Xensp.ko模块与虚拟LPC

虚拟LPC作为一个沟通Xen虚拟机管理器与Domain 0再到Domain 0中的vTPM管理器vTPM 管理器应用程序信息流通管道,负责从Xen向vTPM管理器传递信息、从vTPM管理

器向Xen反馈信息以及从vTPM管理器向Xen传递信息、从Xen向vTPM管理器反馈

信息,起着非常重要的作用。真实的物理TPM芯片到CPU的数据传输时通过物理

LPC总线来传输的,其速度上限为16MB/s,而虚拟LPC的传输速度是内存的写入和

读取速度,大约为8GB/s,其性能相差500倍。

(1)虚拟LPC的构成

由于虚拟LPC是从Xen虚拟机管理器层向Domain 0的客户操作系统内核层传递信息,然后再从Domain 0的客户操作系统内核层向vTPM管理器的应用程序层传

递信息,因此组成此信息流管道的两处信息流节点分为Xen虚拟机管理器层到客户

操作系统层和客户操作系统层到应用程序层vTPM管理器两个部分,这两个部分分

别以不同的形式实现。虚拟LPC的信息流构成如下图所示。

控制流

图虚拟LPC的信息流向构成图

①从Xen虚拟机管理器到客户操作系统内核的信息流管道以虚拟中断的形式存在,

Xen与客户操作系统的交互主要通过模拟设备中断的方式产生虚拟中断来通知客户操作系统某一事件的发生,而且此处传递的是控制信息,不包含实际的数据,Xen 虚拟机管理器向上传递的控制信息具体的是一个事件信息,通知设备驱动共享内存中有数据这一事件的发生。

②从Xen虚拟机管理器向应用层的vTPM管理器传递信息的信息流管道则是以共享内

存的形式存在,此处传递的是数据信息,vTPM管理器向下层的Xen虚拟机管理器传递的信息则包含数据和控制信息两种,因为vTPM管理器可以直接通过读写共享内存来向Xen传递信息,当然,传递的信息是数据信息,这就要做好Xen中这块共享内存的利用,其中涉及到数据格式的协议的设计。

由于Xen与vTPM管理器的交流是双向的,当Xen向共享内存中写数据时,则通过虚拟中断的形式通知驱动再通知vTPM管理器从共享内存中读数据,当vTPM 管理器向共享内存中写数据时则通过Hypercall(类似与传统操作系统中的系统调用)的形式通知Xen从共享内存中读取数据。

(2)虚拟LPC的控制信息流

由于虚拟LPC是沟通Xen到Domain 0再到vTPM管理器的桥梁,其间的控制信息流向表现的非常明显,因为在传递数据之前必须通过某种方式使得发送方和接收方达到协调一致的状态才能开始传输数据,主要表现在,可以通过控制信息的传输平台来控制数据传输的开始、结束,甚至是暂停和恢复,这样就可以减少不必要的数据传输,节约了数据通信的带宽,因此,在数据传输之前必须传递控制信息来控制发送方和接受方的状态。虚拟LPC中控制信息流向如图所示。

图虚拟LPC控制信息流向图

①虚拟LPC的控制信息流的构成

对于应用程序层的vTPM管理器可以通过虚拟设备驱动的读设备操作处于阻塞状态,此处的阻塞状态不同于轮询等待这种低效率的方式,而是放弃cpu时间片进入休眠状态等待设备的中断来唤醒vTPM管理器。Xen通过虚拟中断的方式通知虚拟设备唤醒虚拟设备的读操作,此时应用程序可以从读设备操作中返回,至此,Xen 可以通过上图中右边的线路将控制信息传递给vTPM管理器。

当vTPM管理器尝试向Xen发送控制信息时,vTPM管理器通过操作设备文件调用Hypercall通知Xen数据已经写到共享内存,则Xen可以及时从共享内存中取出vTPM管理器的数据。vTPM管理器向Xen发送控制信息的线路如上图左边的线路所示。

②虚拟LPC的控制信息流管道的建立

对于应用程序层vTPM管理器和设备的控制信息主要通过设备的驱动来实现,而设备和Xen的控制信息则由Xen本身提供的Hypercall机制和虚拟中断机制来实现。如图3-2-2所示,右边的控制信息线路,Xen通过虚拟中断通知设备数据已到达共享内存,则设备的读操作立即返回,vTPM管理器可以通过返回值来判断数据来自共享内存还是通过Xenbus来自其他虚拟机,然后vTPM管理器可以读取相应的数据;左边的控制信息线路,vTPM管理器通过设备驱动的一个操作调用Hypercall 通知Xen,则此时Xen可以立即读取共享内存中由vTPM管理器写入的数据。(3)虚拟LPC的数据信息流

对于虚拟LPC的数据流式紧跟着控制信息流的发生而发生的,即从时间观点上看,控制流信息和数据流信息的传递时一先一后紧接着发生的。而数据信息流管道的实现却和控制信息流管道的实现有着本质的区别。数据信息流向如图所示。

图虚拟LPC数据信息流向图

①虚拟LPC的数据信息流的构成

由于共享内存由Xen直接向应用程序层的vTPM管理器提供映射机制,所以,vTPM管理器可以和Xen通过共享内存来交流信息。

关于数据的格式协议如图3-2-4所示,其中包括:

a. 前端Dom ID:前端客户操作系统的ID号,控制请求模块用该字段来确定应该将控制请

求发送到哪个客户操作系统中。

b. 信息流向:用来标识数据是由vTPM管理器写入供Xen读取还是由Xen写入供vTPM管理

器读取。

c. 数据长度:该字段用来指明其后有用数据的长度。

d. 数据:实际发送的数据内容。

e. 结束符:同步信息,表示一个包的结束。

图3-2-4数据包的格式

②虚拟LPC数据信息流管道的建立和拆除

虚拟LPC的数据信息流管道的建立过程是在vTPM管理器初始化的过程中完成的,如图所示。

图虚拟LPC的数据信息流管道的建立过程

2.DomU的各个模块

(1)Sshd模块

Sshd是在openssh的基础上增加了TEE的相关功能,首先在用户登录时会判断用户是否要使用TEES的功能进行安全登录,如果用户选择了TEES安全登录(根据口令前面的MagicNumber是否为“012345678”判断),那么将会启动MiniOS利用可信执行环境进行登录。

具体流程如图3-4-1所示:

图sshd验证过程

(2)tee.ko模块

tee.ko运行在DomU的内核态,由sshd调用。它导出了设备文件/dev/tee。它通过ioctl向用户态的应用程序提供了两个接口命令:VMS_EXEC和VMS_GET_RESULT。

VMS_EXEC命令完成了以下功能:向共享内存中拷贝代码段、与Xen进行交互、与MiniOS进行同步;VMS_GET_RESULT命令用于用户态的应用程序从共享内存中读取结果信息。

(1)共享内存

这里的共享内存指的是DomU和MiniOS之间的共享内存,其实Xen本身就提供了共享内存机制,但是由于Xen本身的共享内存机制每次只能共享一页的内存,而本系统要共享256页虚拟地址连续的内存,所以Xen本身的共享内存机制并不能满足我们的要求。

为了实现在虚拟机之间共享大片的内存,本系统修改了Xen的源码,使其符合我们

的要求。原理是这样的:首先DomU和MiniOS分别在内核态申请256页的内存,然

后DomU通过Hypercall通知Xen修改MiniOS中所申请的256也内存的页表项,使

MiniOS中的虚拟内存与DomU中的虚拟内存引用相同的物理页,从而达到内存共享

的目的。

(2)AES解密和验证代码段

由于要防止DomU中的恶意软件从内存中读取用户的ssh登录口令,所以口令明文

是不能出现在DomU中的,只能出现在可信执行环境MiniOS中,

(3)与MiniOS进行同步

3.MiniOS中的各个模块

Load Engine模块

MiniOS与DomU之间是通过共享内存通信的,包括解密口令和验证的代码,并且要

在MiniOS中执行这段代码,所以在执行之前必须要把相应的资源都载入到MiniOS

中,为其建立执行环境。要载入的资源包括:共享内存、共享的AES密钥等。

该模块主要完成了以下功能:

(1)分配共享内存;

(2)映射DomU的共享内存;

(3)解密出共享的AES密钥;

(4)执行验证代码;

(5)对结果页求SHA1,扩展到pcr7中;

(6)通知XenMiniOS执行完毕。

五、相关加密算法与技术

1、AES加密算法

高级加密标准(Advanced Encryption Standard,AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。

当前DES和三圈DES应用也比较广泛,DES和AES的对比,如表3-4-1所示:

表 3-4-1DES和AES的对比

基于AES的高效率、高安全性以及提供三种不同的安全级别等特性,我们选择了AES 作为加密算法。

2、SHA1校验算法

SHA是安全散列算法(Secure Hash Algorithm)的简称。SHA-1由美国国家安全局(National Security Agency)设计,1995年由美国标准与技术研究所(NIST)发布,作为联邦信息处理标准。它的使命是接替它的前辈SHA-0.后者在1993年发布,并且很快被证明存在显著缺陷。SHA-1使用在一些被广泛使用的安全协议和应用中,如IPsec等。

3、虚拟化环境下的远程证明技术

远程证明指可信平台使用AIK对当前平台配置信息的PCR值进行签名,报告给远程挑战者以证明其平台状态的可信性。每个TPM存在唯一的背书密钥(Endorsement Key, EK),TPM出厂时都会由TPM厂商签发EK证书来唯一标识可信平台的身份。在对外认证时,一个TCG(Trusted Compting Group)实体要向远程挑战者证明其当前真实的软硬件配置,最简单的方法是使用一个仅属于它自己的私钥,并且使挑战者相信对应的公钥属于它的,这可以通过CA(认证中心)签发的身份证书来完成。然而对于可信平台的身份认证,不仅需要个人隐私来证明其身份,还要尽可能少暴露个人隐私。所以,TCG规定不能使用EK用作身份认证,而使用身份认证密钥AIK以作为EK的别名。TPM使用EK生成AIK,并通过私有CA签发的 AIK 证书来完成身份认证。

远程证明过程有三个阶段,分别为完整性度量、存储和报告。

完整性度量和存储指可信平台在启动时度量整个启动过程中按序装载的所有软件和关键的平台配置,并存储在PCR中,可信度量有一个绝对可信的源头,称为核心度量可信根CRTM,被固化到BIOS中。它是可信平台第一个获得控制权的模块,这个模块在将控制权交给BIOS前对BIOS进行度量,按照同样的方法,以后CPU的控制权交给下一个模块前都会先度量它,依次构建相互信任的可信链。系统启动时度量顺序依次是BIOS、引导加载程序、操作系统内核、设备驱动和服务和应用程序等,这些度量值作为完整性标识存储在PCR中,假如有任何软件和平台配置被篡改了,PCR值必然发生改变。由于TPM的PCR个数有限,没有足够存储空间来存放这些度量值,TCG通过扩展操作来修改PCR值,当需要将某一新的度量值记录在TPM 内部,则将其连接在某一当前PCR值的后面,并对串连值采用安全散列算法进行哈希运算,然后替换旧的PCR值。所有对PCR值扩展的操作的历史记录都会被记录在存储度量日志(SML)中。

完整性报告指被证明平台将TPM中的完整性度量值报告给远程挑战者,这一过程通过使用挑战/回应协议来完成:远程挑战者产生一个随机数nonce对某一可信平台发起挑战请求,最终获取到可信平台用自身AIK密钥签名的PCR值,由于签名算法中加入了nonce,挑战者可以知道签名的新鲜性,以防止重放攻击。可信平台

除了发送已签名的PCR外,还应该包括有存储度量日志SML和AIK证书,通过验证AIK证书、AIK签名和nonce的合法性证实平台的身份,判断SML中的PCR值是否来自该平台,平台上运行了何种软件以及平台处于何种状态,挑战者将PCR值与期望值比较可以验证被证明平台的可信性。

远程证明协议如图3-3-1所示,并给出相应的步骤。

图:远程证明协议

步骤1:TEE后端度量受保护进程的代码段和数据段(以下简称SEG),即执行操作:

Domain 0里面一直运行TEE后端守护进程,首先Domain U通过共享内存发送目标程序的进程名给Domain 0,接着Domain 0响应请求,回复确认信息,Domain U 就启动目标进程,同时TEE后端驱动监控在Domain U中的目标进程,将目标进程的代码段和数据段一起作哈希运算:SHA1(SEG),再把最初PCR16中记录的值和SEG 度量值串联起来,作哈希运算得到160比特的值,之后调用创建的vLPC通道,将新值通过PCRExtend操作写入到PCR16中。

步骤2:客户端发出挑战请求,即

用户处于挑战者的角色,创建一个160比特的随机数,初始化认证请求,请求中标明所要查看的PCR索引号即16,然后将认证请求发送到资源节点上的远程证明守护进程,亦即远程证明服务端。

步骤3:使用AIK签名PCR,即

远程证明守护进程与TSS交互,载入AIK,调用TPM_Quote接口对PCR16进行签名。首先,将PCR16和nonce串联并用SHA1算法求出度量值为160比特,然后使用RSA算法用AIK的私钥对此度量值进行数字签名。Tspi_TPM_Quote的调用接口如下:

TSS_RESULT Tspi_TPM_Quote(TSS_HTPM hTPM, /* in */

TSS_HKEY hIdentKey, /* in */

TSS_HPCRS hPcrComposite, /* in */

TSS_VALIDATION * pValidationData) /* in, out */

其中,hTPM为TPM对象句柄,hIdentKey为签名密钥对象的句柄,hPcrComposite

为PCR组件对象,结构类型为TSS_PCRS_STRUCT_INFO,含需要签名的PCR索引号,pValidationData存放对PCR签名的相关信息,包含输入数据和输出数据,输入数

据指定完成签名需要的额外数据如nonce,用于防止重放攻击;输出数据记录签名

成功后获取到的TSS_PCRS_STRUCT_INFO结构和签名的PCR值。

步骤4:反馈报告,即

远程证明守护进程将以下信息发送到用户:已签名的PCR值,AIK证书,还含

有PCR值经过SHA1操作之后经过填充之后的TSS_PCRS_STRUCT_INFO结构,这个结

构具体来说由四部分构成:

(1)TPM本身的版本信息,4字节,在这里是基于TSS1.2的;

(2)MAGIC信息,即字符串“QUTE”,4字节;

(3)PCR经过填充之后的哈希值,对于PCR16来说,哈希值的计算方式是SHA1(“\x00\x03\x00\x00\x01\x0\x0\x0\x14”||PCRvlaue),20字节,这部分最终用

于用户验证PCR值;

(4)防重放攻击的nonce值,也就是远程证明客户端发送过去的nonce,20

字节,最终用于用户判断nonce值是否新鲜。总共48个字节。

步骤5:用户验证资源节点AIK证书,即

这一步骤验证AIK证书的合法性。用户通过CA证书验证AIK证书的合法性,

即验证AIK证书是否为CA所签发。通过调用Tspi_Hash_VerifySignature接口实

现AIK证书的验证,接口描述如下:

TSS_RESULT Tspi_Hash_VerifySignature(TSS_HHASH hHash, /* in */ TSS_HKEY hKey, /* in */

UINT32 ulSignatureLength, /* in */

BYTE* rgbSignature); /* in */

其中,hHash表示哈希对象实例的句柄,这里的哈希对象指AIK证书数据的哈

希值,hKey表示用于验证签名的CA公钥对象的句柄, rgbSignature指向AIK证

书的签名数据,数据大小用ulSignatureLength表示。

步骤6:验证AIK签名,即

这一步骤验证AIK签名的合法性。安全管理服务从TSS_PCRS_STRUCT_INFO中

获取到segPCR,与nonce串联后计算其哈希值,得到SHA1(segPCR||nonce);另

外使用AIK的公钥解密已签名的PCR值,得到,如果两者相等则AIK签名是合法

的,否则segPCR被篡改了或者nonce不是新鲜的。

如同步骤5,验证AIK的签名需要调用Tspi_Hash_VerifySignature接口,这里的hHash为,hKey指用于验证签名的AIK公钥对象的句柄, rgbSignature指向所在的内存块,内存大小用ulSignatureLength表示。

步骤7:用户判断节点是否可信,即

用户读取SML,其中包含每次扩展代码段和数据段SHA1之后得到的SEG,按照扩展的顺序执行循环操作:

while(SEG!=NULL) {

newPCRvalue=SHA1(oldPCRvalue||SEG);

SEG=SEG->next;

}

通过这样的计算可以得到预期的PCR值newPCRvalue,但是这样还不能达到认证的目的。回想步骤四,我们得到的并非是PCR的PCRvalue的明文,而是一个结构体TSS_PCRS_STRUCT_INFO,不过我们可以通过其中第三部分值PCR_DIGEST完成证明操作。具体来说,我们可以仿照Tspi_TPM_Quote函数中计算PCR_DIGEST的步骤得到通过日志计算得来的期望的PCR_DIGEST值,即PCR_DIGEST=SHA1(“\x00\x03\x00\x00\x01\x0\x0\x0\x14”||newPCRvlaue),再与步骤四中得到的结构TSS_PCRS_STRUCT_INFO中PCR_DIGEST值比较,就可以验证间接地验证两个PCR 值是否相等。如果相等则可以证实远程SEG是安全可信的,否则不然。SEG的度量期望值可以来自用户提交的部署请求文件。

六、实验结果

1、功能测试

(1)登使用一般OpenSSH登陆方式时的系统测试

用户通过一般的ssh远程连接自己的虚拟机,openssh-server在验证用户的时候会将用户的口令在内存中解密出来,那么攻击软件可以在内存中窃

取用户的口令明文。

直接在客户端虚拟机终端中执行ssh远程登录命令。见下图。其中所连接的云端用户虚拟机系统DomU域的IP地址为:192.168.182.151。bob用户的密

码为:is2011。

图一般登录过程

木马程序可以将口令窃取,写入到/tmp/password文件中,如图所示:

图木马程序打印出登录口令明文

(2)在TeeS保护下利用OpenSSH登录时的测试

在客户端系统中运行我们设计的安全登录客户端远程登录程序,远程登录用户操作系统DomU,如图所示,登录的用户为alice,登录

口令为is2011:

图TeeS保护下登录

此时,若木马程序再次发生攻击,则得不到口令明文,如下图:

图有TeeS保护时木马程序打印出的登录口令

可见,在TeeS保护下,木马程序最多只能得到口令密文。

2、性能测试

系统性能直接影响到用户的登陆时延,如果由于我们的口令解析过程而使得登陆时延过长,那么将使得用户无法接受。因此我们需要将用户从发出登陆请求到登陆成功的时延控制在3s以内。

为了测试登陆时延,我们编写了相关的小程序。其中登陆时延的实现是计算系统接受到口令到允许登陆的时间差。同时我们还计算了系统的用户态和内核态所用的时间片时间。相关测试数据见下表。

表系统性能测试

根据登陆时延测试数据,登陆时延<3s,由此说明我们的口令解析系统对整体系统的性能影响是很小的,不影响用户的使用。

七、实验创新

本系统具有以下创新点:

?从底层出发,具有较高的安全性

本系统从比操作系统更底层的Xen系统出发,在Xen系统上构建多个虚拟机进行通信,验证。负责验证的可信执行环境MiniOS就是一个轻量级的虚拟机,它与作为服务器的虚拟机DomU在不同的操作系统中。操作系统层面上的独立有效地将可信执行环境与不可信的执行环境隔离了起来。

又由于可信执行环境MiniOS功能单一,结构简单,因而其流程的控制与校验都很容易,通过远程证明系统可以有效地控制可信执行环境的安全性,从而保证了整个系统的安全。

?可信执行环境可以共用,提高了资源利用率

在云服务中,系统中的每一个DomU对应一个用户,每个用户有自己的虚拟机,但是通过配置,对他们进行登录验证的可信执行环境可以是同一个MiniOS。由于登录验证的时间毕竟只占总的在线时间的很少的一部分,因此一个MiniOS就可以验证大量的登录过程。不需要对每个用户都临时创建一个可信执行环境,既有较快的响应时间,又有较高的资源利用率。

?对口令与服务器进行了强隔离

系统中,口令明文只出现在可信执行环境MiniOS中,服务器的内存空间里口令只能以密文形式存在,不可能出现口令以明文方式出现在服务器的进程空间中的情况。从根本上

杜绝了木马从服务器里窃取口令的可能性,具有很高的安全性。

通过远程证明技术,使用户能够了解服务器状态

云服务中,一个很大的问题在于,用户不知道云端的服务是否被非法篡改过,将自己的资料与数据放上去是否安全。这里通过远程证明技术,审计,验证了每一个执行流程,对于与预计步骤不相同的步骤,给出了异常的警告。从而让客户端明白云端是否在按合法流程执行,一定程度上打消了用户的不安全感,有利于云服务的推广。

网络与信息安全技术课程设计指导

潍坊科技学院 网络安全技术及应用课程设计指导书 2018年10月9日

一.课程设计目的 本实践环节是网络安全类专业重要的必修实践课程,主要要求学生掌握网络安全相关的原理和技术以及在网络安全实践中的应用。本课程设计的目的如下。 1)培养学生掌握文献检索、资料查询及运用现代网络技术获取网络安全相关知识和网络的基本方法; 2)使学生在真正理解和掌握网络安全的相关理论知识基础上,动手编写安全程序,通过系统和网络的安全性设计,加密算法、计算机病毒、恶意 代码的分析与设计等实践锻炼,解决一些实际网络安全应用问题,同时 了解本专业的前沿发展现状和趋势; 3)使学生具备设计和实施网络安全相关实验的能力以及相应的程序设计能力,具备对实验结果进行分析,进而进行安全设计、分析、配置和管理 的能力。 二.课程设计题目 (一)定题部分 任选下列一个项目进行,查阅相关文献、了解相关的系统,要求完成系统需求规约文档、系统分析模型文档、系统设计模型文档、系统测试设计文档、系统编码和测试报告。 以下题目任选,但是要达到工作量和代码量的要求,如果不能达到,可以融合几部分的内容。一些功能如果有其他的方法实现,也可以不按照指导书的要求。此外,还可以对常用的安全软件的功能延伸和改进。自由选题不能设计一些不良程序,比如游戏类,不过可以设计监控,限制玩游戏的程序。 1、局域网网络侦听和数据包截取工具 文档要求 系统分析,包括问题的描述、需求确定、系统要完成的主要功能、解决的实际问题等 系统设计,包括系统的逻辑模型、模块划分、处理过程等 系统实现,按照系统设计的结构分模块实现,要求给出程序的功能说明 程序实现要求

《信息安全技术》实验4基于PGP的Email安全安全通信实验实验报告

《信息安全技术》实验4基于PGP的Email安全安全通信 实验实验报告 实验序号: 4 《信息安全技术》实验报告 实验名称: 网络安全通信实验姓名: 学院: 计算机科学与工程学院专业: 网络工程 班级: 学号: 指导教师: 实验地址: 实验日期: 常熟理工计算机科学与工程学院《信息安全技术》实验报告 说明 一(排版要求 1. 实验报告“文件名”按模板要求填写。 例:《信息安全技术》实验报告.14网络1班.090214101.蔡同寒.实验1.数据加密实验.doc 2. 一级标题:顶格排版。汉字用宋体,阿拉伯数字用Times New Roman字 体,四号字体,加粗。 3. 二级标题:顶格排版。汉字用宋体,阿拉伯数字用Times New Roman字 体,小四号字体,加粗。 4. 三级标题:顶格排版。汉字用宋体,阿拉伯数字用Times New Roman字 体,五号字体。

5. 正文:每段缩进量:2个汉字。两端对齐;汉字用宋体,阿拉伯数字用Times New Roman字体,五号字体。 6. 图形要求 (1) 在正文中要有引用。 (2) 要有图名,图名位于图的下方,汉字用宋体,阿拉伯数字用Times New Roman字体,五号字体。 (3) 图和图名“居中”。 7. 表格要求 (1) 在正文中要有引用。 (2) 要有表名,表名位于表的上方,汉字用宋体,阿拉伯数字用Times New Roman字体,五号字体。 (3) 表和表名“居中”。 二(注意事项 1. 复制、拷贝、抄袭者取消成绩。 2. 没有安实验报告排版要求者不及格。 2 常熟理工计算机科学与工程学院《信息安全技术》实验报告 实验3.2 基于PGP的Email安全通信实验 1. 请回答实验目的中的思考题。 1)网络通信中有哪些应用需要用到加密, ( 答: 压缩文件、电子邮箱和网络云盘等。 (2)在网络通信中如何安全交换密钥, 答: 1)密钥预分发 2)密钥在线分发 3)基于身份的密钥预分发

网络安全课程设计报告

中原工学院计算机学院《网络安全程序》课程设计报告 题目:基于des加密的聊天程序 班级:网络124班

目录 第1章绪论____________________________________________________ 3 1.1 des加密背景______________________________________________ 3 1.2 聊天程序设计背景 _________________________________________ 4第2章加密原理________________________________________________ 5 2.1 des简介__________________________________________________ 5 2.2 des加密原理______________________________________________ 5 2.3 des加密过程______________________________________________ 7第3章聊天程序设计____________________________________________ 8 3.1 TCP/IP协议_______________________________________________ 8 3.2 客户机/服务器模式 ________________________________________ 8 3.3 Socket ___________________________________________________ 9第4章系统设计_______________________________________________ 11 4.1 开发语言及环境 __________________________________________ 11 4.2 需求分析 ________________________________________________ 11 4.2.1 功能需求分析__________________________________________ 11 4.2.2 数据需求分析__________________________________________ 11 4.2.3 性能需求分析__________________________________________ 12 4.2.4 运行需求分析__________________________________________ 12 4.3 程序流程图 ______________________________________________ 13 4.4 模块设计 ________________________________________________ 14 4.4.1 服务器________________________________________________ 14 4.4.2 客户端________________________________________________ 15 第5章程序测试_______________________________________________ 17 5.1 运行结果________________________________________________ 17 第6章总结___________________________________________________ 21参考文献______________________________________________________ 21

信息安全基础实验报告

西安邮电大学 通信与信息工程学院 信息安全基础实验报告 专业班级: 安全1301班 学生姓名: 王方 学号(班内序号): 03133023(23号) 2014 年 6 月 11 日 —————————————————————————— 装 订 线 ———————————————————————————————— 报告份数:

撰写内容提纲: 一、引言 本次实验主要练习了word排版以及visio制图和excel制表,在word排版中主要学习了页眉页脚设置和分栏,visio制图中主要学会了使用不同的形状与图形,excel中则主要练习了图表的绘制以及熟练了其中的一些基本操作。 二、实验内容 1、Excel实验 1、(1)Excle题目 (1)1、在“张名”前插入一个新行“张三 55 70 89 45 ” 2、用公式求出每个学生的“总分”。 (2)1、将“美亚华电器集团”标题所在的那一行(A1:E1)合并为一个单元格。 2、将“年月”这一列的日期格式设为“1997年3月”格式.

(3)1、设置表格的文字格式为水平居中和垂直居中。 2、将标题“推销人员奖金计算表”设置为“黑体、16号字”,并于数据区上方单元格合并居中 3、各职工的奖金数据设置为饼图

(4)1.在数据末列后增加“工龄”字段,计算工龄(工龄计算至2000年。) 2.以“工龄”为主关键字按升序,“姓名”为次关键字按降序进行排序。 3.使用格式刷把表格的记录内容设为灰白相间的显示格式 4.设置表格数据字体颜色为蓝色加粗 5.设置表格数据区外框为红色双十线 (5)1、将“基本工资、聘用补贴、保险基金、年收入等的数据格式设为加“¥”货币格式。 2、计算聘用补贴、保险基金、年收入。 聘用补贴为基本工资*δ,δ值:工人80%、助工80%、工程师150%、高工 250%;保险基金为基本工资的5%(月扣减);年工资中加多一个月的工资。 3、计算基本工资、聘用补贴、保险基金、年收入总和。 4、加标题行“基本年收入情况”,要求黑体、三号,并横贯个数据列“跨列居中”

计算机网络信息安全(教案)

计算机网络信息安全(教案) (1 课时) 一、课程设计理念和思想 现在大部分学生都会上网,但是网络中的病毒和垃圾一直侵蚀着学生的心灵,如何看待信息安全,让学生树立正确的网络安全观念呢?这就要求我们在计算机教学中应该让学生了解计算机犯罪的危害性,学会病毒防犯和信息安全保护的方法,引导学生养成安全的信息活动习惯,树立信息安全意识和自我保护意识,自觉规范个人网络行为,做一个维护网络秩序、净化网络空间的道德公民。 二、教学对象分析 职业学校的高一学生具备一定信息技术基础,具备了一定的信息收集、处理、表达能力,对上网有浓厚的兴趣。但在上网过程中,他们好奇心重,对网络安全没有足够的认识,在面对网络的诱惑中容易迷失方向,因此在教学过程中要十分注重培养学生的网络安全意识,同时加强他们的网络道德能力,使他们能遵守规范,自尊自爱,文明上网,争做遵守网络道德的模范。 三、教学目标 知识目标:1、了解计算机病毒的定义、特性及有关知识。 2、学会病毒防护和信息安全防护的基本方法。 3、了解威胁信息安全的因素,知道保护信息安全的基本措施。 能力目标:1、学会使用杀毒软件进行病毒防护。 2、提高发现计算机安全问题和解决问题的能力。 情感目标:增强学生的信息安全意识和道德水平,教育学生文明上网, 遵守相关法律规范,养成良好的上网习惯。 四、教学重点、难点: 重点:计算机信息安全问题及防范策略; 难点:信息安全防护办法。 五、教学方法: 实例演示法、自主探究法、任务驱动法、讨论法。 六、课前准备: 1、两个常见计算机病毒演示程序:QQ木马病毒、“落雪”病毒; 2、收集教材案例; 3、制作《计算机安全知识调查表》(见附件),课后将其发放给学生,回收后统计结果。 七、教学过程:

信息安全实验报告二

实验成绩 《信息安全概论》实验报告 实验二PKI实验 专业班级:学号:姓名:完成时间_2016/5/18 一、实验目的 加深对CA认证原理及其结构的理解;掌握在Windows 2003 Server环境下独立根CA 的安装和使用;掌握证书服务的管理;掌握基于Web的SSL连接设置,加深对SSL的理解。 二、实验内容 客户端通过Web页面申请证书,服务器端颁发证书,客户端证书的下载与安装;停止/启动证书服务,CA备份/还原,证书废除,证书吊销列表的创建与查看;为Web服务器申请证书并安装,在Web服务器端配置SSL连接,客户端通过SSL与服务器端建立连接。 三、实验环境和开发工具 1.Windows 2003 操作系统 2.VMware Workstation 四、实验步骤和结果 CA分为两大类,企业CA和独立CA; 企业CA的主要特征如下: 1.企业CA安装时需要AD(活动目录服务支持),即计算机在活动目录中才可以。 2.当安装企业根时,对于域中的所用计算机,它都将会自动添加到受信任的根证书颁 发机构的证书存储区域; 3.必须是域管理员或对AD有写权限的管理员,才能安装企业根CA; 独立CA主要以下特征:

1.CA安装时不需要AD(活动目录服务)。 2.任何情况下,发送到独立CA的所有证书申请都被设置为挂起状态,需要管理员受 到颁发。这完全出于安全性的考虑,因为证书申请者的凭证还没有被独立CA验证; AD(活动目录)环境下安装证书服务(企业根CA)的具体步骤如下: 首先要安装IIS ,这样才可以提供证书在线申请。 1)从“控制面板”,双击“添加/删除程序”,单击“添加/删除Windows组件”,选中“证 书服务”,单击“下一步”。如图4-1所示。 图4-1添加证书服务 弹出警告信息“计算机名和域成员身份都不能更改”,选择“是” 2)选中“企业根CA”,并选中“用户自定义设置生成密钥对和CA证书”,单击“下 一步”。如图4-2所示。

《网络嗅探器》课程设计报告

《网络与信息安全技术》课程报告 课题名称:网络嗅探器提交报告时间:2010年12月17 日 网络嗅探器 专业 组号指导老师 [摘要]随着网络技术的飞速发展,网络安全问题越来越被人重视。嗅探技术作为网络安全攻防中最基础的技术,既可以用于获取网络中传输的大量敏感信息,也可以用于网络管理。通过获取网络数据包的流向和内容等信息,可以进行网络安全分析和网络威胁应对。因此对网络嗅探器的研究具有重要意义。 本课程设计通过分析网络上常用的嗅探器软件,在了解其功能和原理的基础上,以VC为开发平台,使用Windows环境下的网络数据包捕获开发库WinPcap,按照软件工程的思想进行设计并实现了一个网络嗅探工具。该嗅探工具的总体架构划分为5部分,分别是最底层的数据缓存和数据访问,中间层的数据捕获,协议过滤,协议分析和最顶层的图形画用户界面。 本嗅探器工具完成了数据包捕获及分析,协议过滤的主要功能,实现了对网络协议,源IP 地址,目标IP地址及端口号等信息的显示,使得程序能够比较全面地分析出相关信息以供用户参考决策。 关键词:网络嗅探;WinPcap编程接口;数据包;网络协议;多线程 (中文摘要在150字左右。摘要正文尽量用纯文字叙述。用五号宋体字。姓名与摘要正文之间空二行。关键词与摘要之间不空行。“摘要”这两个字加粗) 关键词:入侵检测系统;感应器;分析器;分布式入侵检测系统模型 Network sniffer Major: software engineering Group Number: 29 [Abstract] With the rapid development of network technology, network security is increasingly being attention. Sniffing network security technology as the most basic offensive and defensive

信息安全实验报告

信息安全实验报告

信息安全基础实验报告 姓名:田廷魁学号:201227920316 班级:网工1201班 ARP欺骗工具及原理分析(Sniffer网络嗅探器)一.实验目的和要求 实验目的: 1.熟悉ARP欺骗攻击有哪些方法。 2.了解ARP欺骗防范工具的使用。 3.掌握ARP欺骗攻击的实验原理。 实验要求: 下载相关工具和软件包(ARP攻击检测工具,局域网终结者,网络执法官,ARPsniffer嗅探工具)。 二.实验环境(实验所用的软硬件) ARP攻击检测工具 局域网终结者 网络执法官 ARPsniffer嗅探工具 三.实验原理 ARP(Address Resolution Protocol)即地址解析协议,是一种将IP地址转化成物理地址的协议。不管网络层使用什么协议,在网络链路上传送数据帧时,最终还是必须使用硬件地址的。而每台机器的MAC地址都是不一样的,具有全球唯一性,因此可以作为一台主机或网络设备的标识。目标主机的MAC地址就是通过ARP协议获得的。

ARP欺骗原理则是通过发送欺骗性的ARP数据包致使接收者收到数据包后更新其ARP缓存表,从而建立错误的IP与MAC对应关系,源主机发送数据时数据便不能被正确地址接收。 四.实验内容与步骤 1、利用ARPsniffer嗅探数据 实验须先安装winpcap.exe它是arpsniffer.exe运行的条件,接着在arpsniffer.exe同一文件夹下新建记事本,输入Start cmd.exe ,保存为cmd.bat。ARPsniffer有很多种欺骗方式,下面的例子是其中的一种。 安装截图:

步骤一:运行cmd.exe,依次输入以下命令: "arpsf.exe -sniffall -o f:\sniffer.txt -g 192.168.137.1 -t 192.168.137.5"(其中IP地址:192.168.137.1是局域网网关的地址,192.168.137.5是被欺骗主机的IP地址,试验获取的数据将会被输入到F盘的sniffer.txt文件中。)按回车键运行,出现如下图所示的选项,选1,接着选0,回车,程序便开始监听了。 运行截图: 步骤二:停止运行,打开F盘的sniffer.txt文件,在文件中查找,可以发现被欺骗主机的一些敏感信息,如下图:可以发现被欺骗主机注册某网站时的信息:username=wanglouanquan password=123456等。 捕获信息截图:

网络与信息安全课程设计方案

网络与信息安全课程设计方案 第二小组 案例2 撰稿人: 王雄达

目录 1.设计背景 (3) 2.需求分析 (3) 3.整合分析 (3) 4.网络安全设计 (4) 1)网络拓扑图 (4) 2)计划产品 (4) 3)主要产品详细信息 (5)

5.总结 (7) 6.卷末语 (7) 1)心得 (7) 2)收获 (7) 3)卷末语 (8) 一、设计背景 某数据服务公司,拥有服务器20台,为用户提供Web服务器空间和服务器托管等 服务。这些服务器目前在一个局域网中,共享一个与网通相连的外网接口。计划投 入资金100万元用于提高系统的安全性。 二、需求分析 根据公司方的需求,总结为以下几点: 1.防病毒、防网络攻击; 2.能够抵挡一定强度的DDoS攻击; 3.防止雷电、潮湿、静电、电源问题等带来的服务中止或设备损坏; 4.防止未授权用户进入服务器机房; 5.当网通的网络连接出现问题时,可以保证服务器仍然可以提供网络访问; 6.当对一个服务器的访问压力过大时,可以分流到另外的服务器,保证可用性。 三、整合分析 经过小组思考讨论后,将以上要求整合,并通过安全风险分析,得出以下五点: A.网络安全风险: 防网络攻击; 防DDoS攻击; B.操作系统安全风险:

防病毒; C.物理安全风险: 防止静电,潮湿,静电,电源问题等带来的服务终止或设备损坏; D.管理安全风险: 防止未授权用户进入服务器机房; E.应用安全分析: 当网通网络连接出现问题,保证服务器仍然可以提供网络访问; 当服务器的访问压力大,可以分流道另外的服务器,保证可用性。 四、网络安全设计 4.1网络拓扑图 以下是我们根据分析设计的网络拓扑图

信息安全实验报告信息安全概论课程设计

郑州轻工业学院课程设计报告 名称:信息安全概论 指导教师:吉星、程立辉 姓名:符豪 学号:541307030112 班级:网络工程13-01

1.目的 数据加密技术要求只有在指定的用户或网络下,才能解除密码而获得原来的数据,这就需要给数据发送方和接受方以一些特殊的信息用于加解密,这就是所谓的密钥。其密钥的值是从大量的随机数中选取的。按加密算法分为专用密钥和公开密钥两种。数据加密技术是网络中最基本的安全技术,主要是通过对网络中传输的信息进行数据加密来保障其安全性,这是一种主动安全防御策略,用很小的代价即可为信息提供相当大的安全保护。 2.题目 使用C#编程语言,进行数据的加密与解密。 系统基本功能描述如下: 1、实现DES算法加密与解密功能。 2、实现TripleDES算法加密与解密功能。

3、实现MD5算法加密功能。 4、实现RC2算法加密与解密功能。 5、实现TripleDES算法加密与解密功能。 6、实现RSA算法加密与解密功能。 3.功能描述 使用该软件在相应的文本框中输入明文,然后点击加密就会立即转化成相应的密文,非常迅速和方便,而且操作简单加流畅,非常好用。 4.需求分析 加密软件发展很快,目前最常见的是透明加密,透明加密是一种根据要求在操作系统层自动地对写入存储介质的数据进行加密的技术。透明加密软件作为一种新的数据保密手段,自2005年上市以来,得到许多软件公司特别是制造业软件公司和传统安全软件公司的热捧,也为广大需要对敏感数据进行保密的客户带来了希望。加密软件上市以来,市场份额逐年上升,同时,经过几年的实践,客户对软件开发商提出了更多的要求。与加密软件产品刚上市时前一两年各软件厂商各持一词不同,经过市场的几番磨炼,客户和厂商对透明加密软件有了更加统一的认识。 5.设计说明 传统的周边防御,比如防火墙、入侵检测和防病毒软件,已经不再能够解决很多今天的数据保护问题。为了加强这些防御措施并且满足短期相关规范的要求,许多公司对于数据安全纷纷采取了执行多点

网络安全课程设计

课程名称:物联网信息安全管理 设计题目:基于TCP协议的网络攻击 学院(直属系):计算机学院 年级/专业/班:物联网工程 学生姓名: 14101070113宋涌 14101070124 周礼佟 14101070104 胡坤指导教师:魏正曦老师 完成日期:2017.1.12

摘要 本课程是物联网工程专业所开设的一门重要实践课程,主要要求掌握网络安全原理和技术在实践中的应用。本课程设计的目的是在理论学习的基础上,动手实践网络安全的相关理论,通过应用所学习的知识,来解决一些实际的网络安全应用问题。在此基础上,真正理解和掌握网络安全的基本原理,具备网络安全方面的分析和动手能力。在网络攻防实验环境中完成TCP/IP协议栈中TCP层重点协议的攻击实验。包括TCP RST攻击、TCP会话劫持和TCP SYN Flood攻击。 关键字:TCP RST攻击、TCP会话劫持和TCP SYN Flood攻击 课题分工 宋涌:TCP会话劫持,和编写课程设计 胡坤:TCP RST攻击,和参考资料查询 。 周礼佟:TCP SYN Flood攻击,和课程设计分工

摘要 (2) 一引言 (4) 二实验原理 (5) 三设计过程 (8) 3.1 TCP RST攻击 (8) 3.2 TCP会话劫持 (12) 3.3 TCP SYN Flood攻击 (21) 四总结与体会 (24) 参考文献 (25)

一引言 源于Unix 的网络协议TC P/IP随着Internet的飞迅发展,已被越来越多的人所使用.然而由于TCP/IP协议族在设计时并没有过多的考虑网络安全问题,黑客事件不断发生,使如电子商务等Internet应用存在着许多不安全因素.欲防网络攻击,必应先知其攻击原理,才可正确实施安全策略. 下面是网络内部或外部人员常用的几种网络攻击方式: ·密码猜测( Password Guessing): 主要通过穷举的办法来试探被攻击系统的密码,为下一步攻击做好准备. ·窥探( Sniffing): 主要通过劫获网络上的数据包来获得被攻击系统的认证信息或其它有价值的信息. ·电子欺骗( Spoofing): 通过假冒合法用户的身份来进行网络攻击,从而达到掩盖攻击者真实身份,嫁祸他人的目的. ·信息剽窃( Information Theft): 这是网络攻击的主要目的之一.攻击者通过获得访问被攻击主机的许可权而窃取主机上的重要信息. ·让主机拒绝服务(Denial of Service): 是网络攻击的主要目的之一. 这种攻击使主机或网络不能为合法用户提供服务.例如攻击者可以用TC P的SYN信号淹没的方法来实现这一攻击. ·信息破坏( Information Destruction): 这也是网络攻击的主要目的之一.通过篡改或毁坏被攻击主机上的信息达到破坏的目的. 以上这些攻击主要是利用TCP /IP协议本身的漏洞而对TCP/IP协议进行攻击实现的,下面分析了几种对TC P/IP的攻击的实现方式 未来的高技术战争是信息网络战, 以网络中心信息为主的联合作战正在取代传统的平台中心战。TCP/ IP 协议使得世界上不同体系结构的计算机网络互连在一起形成一个全球性的广域网络Internet, 实现海、陆、空、天立体战埸信息共享。因此开展TCP/IP 协议的分析和研究, 寻求其簿弱环节, 能否攻其一点, 而瘫痪一片, 即以小的投入达到大的产出, 是有效实施计算机网络对抗的关键。在以TCP/IP 为协议的通信计算机网络中, 通常将每台计算机称为主机, 在Internet 中的每一台计算机可以访问Internet 上的其它任意一台计算机, 好像它们在一个局域网内用双绞线或同轴电缆直接连接起来一样(不同之处是速度比局域网的慢)。TCP/IP 通信计算机网络结构如图所示。

网络与信息安全实验报告

目录 1 绪论 (2) 1.1 研究背景 (2) 1.2 主要工作 (2) 2 相关知识介绍 (2) 2.1 FTP 工作原理 (2) 2.2 FTP工作模式 (3) 2.3 FTP 传输模式 (4) 2.3.1 A SCII传输方式 (5) 2.3.2二进制传输方式 (5) 3 FTP客户端的设计 (5) 3.1设计目的及工具选择 (5) 3.1.1设计目的 (5) 3.1.2设计工具 (6) 3.2 客户端主要模块设计 (6) 3.2.1客户端连接模块 (6) 3.2.2上传模块 (9) 3.2.3下载模块 (12) 4 调试与操作说明 (15) 4.1 运行方法 (15) 4.2运行结果 (15) 5 课程设计总结 (17) 参考文献 (17)

FTP客户端的设计与实现 FTP 是Internet 上用来传送文件的协议。它是为了我们能够在Internet 上互相传送文件而制定的文件传送标准,规定了Internet 上文件如何传送。通过FTP 协议,我们就可以跟Internet 上的FTP 服务器进行文件的上传或下载。本文以实现一个简单易用的FTP 客户端为目标,通过分析FTP 协议的基本工作原理和FTP 的数据传输原理,研究如何使用C++ 工具对FTP 客户端进行设计,选择C++来实现FTP 客户端程序的上传下载等主要功能,并用相应软件提供的一个支持可视化编程的开发环境,从而实现了对FTP 客户端的实现。 1 绪论 1.1 研究背景 FTP是Internet上最早也是最广的应用,直到今天它仍是最重要和最基本的应用之一。用FTP 将信息下载到本地是一件十分普遍的事。也随之出现了许多下载软件。尽管远程登录(Telnet)提供了访问远程文件的极好方法,但怎么也比不上使用自己计算机中的文件方便。如果用户 想使用其它计算机上的文件,最理想的方法就是把它COPY到自己的计算机中,以便在本地计 算机上操作。FTP正是完成这项工作的工具,你可以在任意一个经过文件传输协议(FTP)访 问的公共有效的联机数据库或文档中找到你想要的任何东西。全世界现在已有1000多个(96 年的数据)FTP文件服务器对所有INTERNET用户开使用,用户可以通过与Internet相连到远程计算机,把自己需要的文件传输过来或是把自己的收集传输上去与他人共享。传统的数据库应用 系统采用的是客户机/服务器(Client/Server)模式,有高度的交互性,高效的用户界面等优点 1.2 主要工作 通过客户端可以实现文件的上传和下载。其促进文件的共享(计算机程序或数据)、鼓 励间接或者隐式的使用远程计算机、向用户屏蔽不同主机中各种文件存储系统的细节和可靠 和高效的传输数据。 2 相关知识介绍 2.1 FTP 工作原理 FTP(File Transfer Protocol),是文件传输协议的简称。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序。用户可以通过它把自己机器与世界各地所有运FTP协议的服务器 相连,访问服务器上的资源和信息。 FTP协议在TCP/IP协议栈中的位置如表1: 端程序,它向FTP服务器提出拷贝文件的请求。另一个是启动在远程计算机的上的FTP服务器程序,它响应请求把你指定的文件传送到你的计算机中。FTP采用“客户端/服务器”方式,用 户要在自己的本地计算机上安装FTP客户端程序。从根本上说,FTP协议就是在网络中各种不同 的计算机之间按照TCP/IP协议来传输文件。FTP协议采用客户端/服务器(Client/Sever)模式,由FTP客户 端程序和FTP服务器端程序组成。使用时,先启动FTP客户端程序与远程主机建立连接,然后向 远程主机发出传输命令,远程主机在收到命令后就给予响应,并执行正确的命令。但是FTP 有一个根本的限制,那就是,如果用户在某个主机上没有注册获得授权,即没有用户名和口令,就不能与该主机进行文件传输。但匿名FTP服务器除外,它能够使用户与远程主机建立连 接并以匿名身份从远程主机上拷贝文件,而不必是该远程主机的注册用户。用户使用特殊的 用户名“Anonymous”或“guest”就可有限制地访问远程主机上公开的文件。现在许多系统要求用 户将Emai1地址作为口令,以便更好地对访问者进行跟综。出于安全的目的,大部分匿名FTP主 机一般只允许远程用户下载文件,而不允许上载文件。也就是说,用户只能从匿名FTP主机拷 贝其需要的文件而不能把文件拷贝到匿名FTP主机。另外,匿名FTP主机还采用了其他一些保护 措施以保护自己的文件不至于被用户修改和删除,并防止计算机病毒的侵入。匿名FTP一直是Internet上获取信息资源的最主要方式,在Internet成千上万的匿名FTP主机中存储着无以计数的文件,这些文件包含了各种各样的信息、数据和软件。人们只要知道特定信息资源的主机地址,就可以用匿名FTP登陆。

华北电力大学-网络信息安全综合实验报告

. 综合实验报告 ( 2013 -- 2014 年度第 1 学期) 名称:网络信息安全综合实验题目:RSA公钥加密解密院系:计算机系 班级:网络工程 学号: 学生姓名: 指导教师:李天 设计周数: 1 周 成绩:

日期: 2013年1月18日

一、综合实验的目的与要求 要求:了解RSA产生公钥和私钥的方法,掌握RSA 的加密、解密过程,编写程序设计RSA 加解密工具。 RSA加解密参考:RSA的安全性依赖于大数分解,公钥和私钥都是两个大素数(大于100个十进制位)的函数。据猜测,从一个密钥和密文推断出明文的难度等同于分解两个大素数的积。密钥的产生: 1. 选择两个保密的大素数p和q; 2. 计算n=p*q和欧拉函数值E(n)=(p-1)(q-1); 3. 选一整数e,且满足1=q ;C=Sum[i=0 to n](C[i]*0x10000**i)=A+B。如果用carry[i]记录每次的进位则有:C[i]=A[i]+B[i]+carry[i-1]-carry[i]*0x10000,其中carry[-1]=0。若A[i]+B[i]+carry[i-1]>0xffffffff,则carry[i]=1;反之则carry[i]=0,若carry[p]=0,则n=p;反之则n=p+1。减法与加法同理。

XXX学校信息安全实验室建设方案

XXX学校信息安全实验室 设计方案 北京网御星云信息技术有限公司 2014-03-30

目录 一、概述................................................................................................ - 3 - 二、设计目的........................................................................................... - 4 - 三、总体架构........................................................................................... - 4 - 3.1、所需软硬件................................................................................ - 5 - 3.2、培训 ......................................................................................... - 6 - 3.3、实验教材................................................................................... - 6 - 3.4、产品报价................................................................................... - 6 - 四、实验和演练........................................................................................ - 6 - 4.1、网御安全综合网关技术实验.......................................................... - 6 - 4.2、网御入侵检测技术实验 ................................................................ - 7 - 4.3、网御漏洞扫描系统实验 ................................................................ - 7 -

信息安全技术实验报告

《信息安全技术》 实验报告 学院计算机科学与工程学院 学号 姓名

实验一、DES加解密算法 一、实验目的 1. 学会并实现DES算法 2. 理解对称密码体制的基本思想 3. 掌握数据加密和解密的基本过程 二、实验内容 根据DES加密标准,用C++设计编写符合DES算法思想的加、解密程序,能够实现对字符串和数组的加密和解密。 三、实验的原理 美国IBM公司W. Tuchman 和 C. Meyer 1971-1972年研制成功。1967年美国Horst Feistel提出的理论。 美国国家标准局(NBS)1973年5月到1974年8月两次发布通告,公开征求用于电子计算机的加密算法。经评选从一大批算法中采纳了IBM的LUCIFER方案。 DES算法1975年3月公开发表,1977年1月15日由美国国家标准局颁布为联邦数据加密标准(Data Encryption Standard),于1977年7月15日生效。 为二进制编码数据设计的,可以对计算机数据进行密码保护的数学运算。DES 的保密性仅取决于对密钥的保密,而算法是公开的。 64位明文变换到64位密文,密钥64位,实际可用密钥长度为56位。

运行结果: 四、思考题 1.分析影响DES密码体制安全的因素? 答: 影响DES密码体制安全的因素主要是密钥的健壮性。 2.公钥算法中加密算法和解密算法有何步骤? 答:DES密码体制中加密算法和解密算法流程相同,区别在于解密使用的 子密钥和加密的子密钥相反

实验二、操作系统安全配置 一、实验目的 1.熟悉Windows NT/XP/2000系统的安全配置 2. 理解可信计算机评价准则 二、实验内容 1.Windows系统注册表的配置 点击“开始\运行”选项,键入“regedit”命令打开注册表编辑器,学习并修改有关网络及安全的一些表项 2.Windows系统的安全服务 a.打开“控制面板\管理工具\本地安全策略”,查阅并修改有效项目的设置。b.打开“控制面板\管理工具\事件查看器”,查阅并理解系统日志,选几例,分析并说明不同类型的事件含义。 3. IE浏览器安全设置 打开Internet Explorer菜单栏上的“工具\Internet选项”,调整或修改“安全”、“隐私”、“内容”等栏目的设置,分析、观察并验证你的修改。 4. Internet 信息服务安全设置 打开“控制面板\管理工具\Internet 信息服务”,修改有关网络及安全的一些设置,并启动WWW或FTP服务器验证(最好与邻座同学配合)。 三、实验过程 1. Windows系统注册表的配置 点击“开始\运行”选项,键入“regedit”命令打开注册表编辑器,图如下:禁止修改显示属性 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Polic ies\System 在右边的窗口中创建一个DOWRD值:“NodispCPL”,并将其值设为“1”。

信息隐藏课程设计报告

—课程设计报告—(信息隐藏与数字水印) 学院系别:理学院 专业班级:电科(信息安全方向) 设计学生:徐魁东 指导老师:贾树恒 报告成绩:

一、信息隐藏技术摘要 信息隐藏根据载体可分为图像中的信息隐藏、视频中的信息隐藏、语音中信息隐藏、文本中的信息隐藏、各类数据中的信息隐藏等。在不同的载体中信息隐藏的方法有所不同,需要根据载体的特征,选用不同的隐藏算法。 二、目的和意义 目的: 1、让学生巩固理论课上所学的知识,理论联系实践。 2、锻炼学生的动手能力,激发学生的研究潜能,提高学生的协作精神。 意义: 信息隐藏的目的在于保证信息本身安全和传递过程的安全。设计这样的隐藏能够提高学生分析问题和解决问题的能力。 三、设计原理 1、时域替换技术 时域替换技术的基本原理是用秘密信息比特替换掉封面信息中不重要的部分,以达到对秘密信息进行编码的目的。时域替换技术具有较大的隐藏信息量(容纳性)和不可见性(透明性),但稳健性(鲁棒性)较弱。这种技术比较有代表性的是最不重要比特位(LSB)方法。 流载体的LSB方法: (1)嵌入:选择一个载体元素的子集{j1,j2,...jL(m)},其中共有L(m)个元素,用以信息隐藏信息的L(m)个Bit。然后在这个子集上执行替换操作,把cji的最低比特用m 替换。 (2)提取:找到嵌入信息的伪装元素的子集{j1,j2,...jL(m)},从这些伪装对象中抽取他们的最低比特位,排列组合后组成秘密信息。 LSB算法: 将秘密信息嵌入到载体图像像素值的最低有效位,也称最不显著位,改变这一位置对载体图像的品质影响最小。 LSB算法的基本原理: 对空域的LSB做替换,用来替换LSB的序列就是需要加入的水印信息、水印的数字摘要或者由水印生成的伪随机序列。由于水印信息嵌入的位置是LSB,为了满足水印的不可见性,允许嵌入的水印强度不可能太高。然而针对空域的各种处理,如游程编码前的预处理,会对不显著分量进行一定的压缩,所以LSB算法对这些操作很敏感。因此LSB算法最初是用于脆弱性水印的。 LSB算法基本步骤: (1)将原始载体图像的空域像素值由十进制转换成二进制; (2)用二进制秘密信息中的每一比特信息替换与之相对应的载体数据的最低有效位;(3)将得到的含秘密信息的二进制数据转换为十进制像素值,从而获得含秘密信息的图像。

信息安全综合实践SSH实验报告及指导

《信息安全综合实践》实验报告 实验名称:SSH实验 姓名:李建辉学号: 5080369090 班级: F803604 实验日期:2010.12.22 一、实验目的 1.加深对密码算法使用的理解 2.进一步熟悉linux系统 3.了解和体验windows及linux环境下SSH的应用 二、实验环境 1.SSH服务器:Ubuntu10.04版(虚拟机),装有openSSH, wireshark,xinetd, telnetd,采用桥接联网 2.SSH客户端: winXP SP3 装有 putty 0.60(windows下SSH登录) Ubuntu10.04 版,装有(虚拟机)openSSH, wireshark, xinetd,telnetd (Linux下SSH登录)采用桥接联网 四、主要实验步骤及说明 0.实验准备 (1)网络设置 根据要求windows XP和虚拟机的网络设置如下: XP

Ip设为192.168.1.90 Ubuntu Ip设为192.168.1.190 (2)帐号设置: 我自己设置了一个帐号myyh,另一个使用的是原有帐号super (3)SSH服务状况

SSH已启动,进程号是664 1.Windows下登录SSH服务器 1.1口令登录 在windowsXP中打开putty工具,在session中填入虚拟机的ip以及 默认端口22,点击open。如下图: 以super帐户远程登录成功 1.2密钥登录 1)在服务端生成密钥对 生成密钥对mybabyyh_rsa 查看刚才保存的公钥及私钥文件 从上图中可以看出私钥为mybabyyh_rsa,公钥为mybabyyh_rsa.pub,我选

相关文档
最新文档