当前位置:文档之家› 信息安全试验

信息安全试验

目录1.实验一网络通信安全1.1实验目的-------------------------------------------31.2实验内容-------------------------------------------31.3相关知识-------------------------------------------31.4实验设计-------------------------------------------51.5实验成果-------------------------------------------71.6实验小结-------------------------------------------9 2.实验二网络攻防2.1实验目的------------------------------------------102.2实验内容------------------------------------------102.3实验原理------------------------------------------102.4实验步骤------------------------------------------102.5实验小结------------------------------------------14 3.实验三Web服务器配置3.1实验目的------------------------------------------153.2实验要求------------------------------------------153.3实验内容------------------------------------------153.4实验小结------------------------------------------29 4.实验四信息系统安全4.1实验目的------------------------------------------304.2实验内容------------------------------------------304.3实验设计------------------------------------------304.4实验成果------------------------------------------314.5实验小结------------------------------------------34实验一网络通信安全1.1实验目的通过本章的学习,使学生掌握密码学在通信安全中的具体应用。

基本要求能够实现客户服务器通信,能够使用AES算法实现消息的加密与解密,对优秀的学生要求能够实现数字签名的生成与验证。

1.2实验内容(1)实现客户服务器之间的通信;(2)发送方传输的消息使用AES加密,接收方对消息解密获取明文;(3)发送方传输的消息使用HMAC处理,接收方验证消息的完整性;(4)发送方对传输的消息使用RSA进行签名,接收方验证数字签名。

1.3实验原理1.3.1对称密码AESAES算法是一个迭代型分组密码,其分组长度和密钥长度都可变,各自支持128比特、192比特、256比特。

AES是由最基本的变换单位——“轮”多次迭代而成的,当分组长度和密钥分组长度均为128bit时,轮数为N=10。

AES的轮(除最后一轮)变换由四个不同的变换组成,这些变化被称之为内部轮函数,可以表示成如下形式:Round(State,RoundKey){SubBytes(State);ShiftRows(State);MixColumns(State);AddRoundKey(State,RoundKey);}State表示消息矩阵;RoundKey表示轮密钥矩阵;SubBytes(State)为字节代替变换、ShiftRows(State)为行移位变换、MixColumns(State)为列混合变换、AddRoundKey(State,RoundKey)为与子密钥异或。

最后一轮略微不同,将其记为FinalRoundKey(State,RoundKey),相当于前面的Round(State,RoundKey)去掉MixColumns(State)。

对于加密来说,输入到第一轮的State就是明文消息矩阵,最后一轮输出的State就是对应的密文消息矩阵。

AES的解密变换和加密变换时互逆的,轮函数也分为4层,分别为InvShiftRow(State)逆行移位变换、InvByteSub(State)逆字节代替变换、AddRoundKey(State,RoundKey)与子密钥位异或和InvMixColumn(State)逆列混合变换,可表示为:InvRound(State,RoundKey){InvShiftRow(State);InvByteSub(State);AddRoundKey(State,RoundKey);InvMixColumn(State);}AES加密过程1.3.2公钥密码RSARSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。

算法描述:(1)密钥的产生选择两个保密的大素数p和q;计算n=p*q,φ(n)=(p-1)(q-1),其中,φ(n)是n的欧拉函数值;选一整数e,满足1<e<φ(n),且gcd(φ(n),e)=1;计算d,满足d•e=1modφ(n),即d是e在模φ(n)下的乘法逆元;以{e,n}为公开钥,以{d,n}为秘密钥。

(2)加密加密时首先将明文比特串分组,是的每个分组对应的十进制数小于n,然后对每个明文分组m,做加密运算:c=m mod n。

(3)解密对密文分组的解密运算为:m=c mod n。

RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。

1.4实验设计我们使用VC编程来实验网络通信机制,并用C++编程实现AES加密机制。

我们设计的这款系统是通过用户输入密钥来作为AES加密机制对用户发送信息加密成密文发送,或者对用户接收加解信息解密恢复成明文的密钥。

客户/服务器通信模块:当“类型”选为“服务器”是,“连接”按钮变成“侦听”,服务器界面为:关键代码部分:服务器:m_sListenSocket.Create(m_nServPort);m_sListenSocket.Listen();客户机:m_sConnectSocket.Create();m_sConnectSocket.Connect(m_strServName,m_nServPort);发送:m_sConnectSocket.Send(LPCTSTR(m_code),m_code.GetLength()); 接收:nReceived=m_sConnectSocket.Receive(pBuf,nBufSize);加密模块:AES加密部分:AES解密部分:将AES加密机制写入到基于Dialog的通信机制中,利用对话框中获得的密钥,对发送或接收的消息进行加解密。

1.5实验成果连接建立前,如果未输入密钥则会弹出提醒,如图所示。

每一次通信传送的消息都会在“发送的消息”和“接收的消息”标签后显示。

(以此为了使实验结果,及其加解密机制更为直观)服务器通信:客户机通信:1.6实验小结通过本次实验,我们学习并熟悉了VC编程,了解并掌握了网络编程。

在软件系统中的AES加密机制也使我们对密码学的知识理解更深入。

在AES的实现过程中,最重要的一个心得就是,密码学中所描述的行列排序和计算机中我们常用的行列顺序是相反的。

计算机中是按行存取,密码学中是按列存取。

好在我们实验中采用面向对象的语言进行编写实现,误解以后修改起来也相对不是特别麻烦。

这也让我们更加感受到面向对象编程的灵活性。

该通信系统,在安全性能上,由于使用了AES对所传送的消息进行了加密,即使在传送过程中被监听了消息,也不会担心消息会被泄露。

此外,通信还可以用RSA机制自动产生的公钥和私钥来作为通信双方的一个身份认证。

这样可以防止第三方的欺骗。

但是由于时间关系,本次实验中,我们未加入RSA加密机制。

但是,我们会在接下来的学习中做更多的扩展,以使得本款通信软件尽可能地完备。

实验二网络攻防——利用135端口入侵个人计算机2.1实验目的评估操作系统的安全性,利用工具或独立编程发现系统漏洞,利用工具或独立编程攻破指定的系统,增强系统的安全性。

2.2实验内容了解系统漏洞,通过实践提高学生网络攻防能力,包括漏洞发现,利用脚本攻击远程系统。

2.3实验原理通过135端口入侵实际上是利用RPC漏洞来攻击计算机的。

一般情况下135端口主要用于使用RPC(Remote Procedure Call,远程过程调用)协议并提供DCOM(分布式组件对象模型)服务,通过RPC能确保在一台计算机上运行的程式能顺利地执行远程计算机上的代码,使用DCOM能通过网络直接进行通信,能够跨包括HTTP协议在内的多种网络传输。

RPC 本身在处理通过TCP/IP的消息交换部分有一个漏洞,该漏洞是由于错误地处理格式不正确的消息造成的。

会影响到RPC和DCOM之间的一个接口,该接口侦听的端口就是135。

2.4实验步骤1.通过135端口入侵,攻击者首先需要查找网络上存在135端口漏洞的主机地址,在查找此类主机过程中,能使用一些扫描工具,比如SuperScan 就是典型的端口工具之一。

在SuperScan“开始”文本框中输入需要扫描的起始地址,然后在“结束”文本框里填写好扫描结束的IP地址,在“扫描类型”选项中选择“所有端口定义”单选按钮,并在右侧的文本框中输入“135”。

再点击“开始”按钮即可开始扫描。

扫描结束后,在下方的列表中能查看目标主机打开的端口。

然后再点击“Save”按钮选好保存路径,把里面有漏洞的IP整理下即可。

第一步,用superscan得到打开端口135的主机IP。

第二步,保存刚才扫描得到的IP地址。

2.得到有漏洞后,我们更有一个功能强大的扫描工具,比如NTScan汉化版。

然后在“主机文件“处点击“打开”按钮找到我们刚才保存的IP 路径,在连接共享$处选择“WMI扫描”,在“扫描打开端口的主机”处填写135端口。

最后点击“开始”即可。

要不了多久就会有结果显示。

第一步,打开S扫描器,并用S扫描器打开端口为135的本地主机。

第二步,扫描后得到的主机IP地址第三步,使用NTscan进行扫描第四步,并且截得扫描的结果第一步,我们使用开启工具Recton第二步,把刚才得到的IP地址,用户名和密码输入TELNET界面的“远程主机”处第三步,我们发现链接成功。

相关主题