

已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
个人收集整理 仅供参考 1 43 信息安全专业综合实践 设计报告 专 业 信息安全 班级 小组成员 指导教师 职 称 中国矿业大学计算机科学与技术学院 个人收集整理 仅供参考 2 43 年 月 徐州 设计日期 年 月 日至 年 月 日 小组成员在本次设计中承担地任务成绩 指导教师签字 年 月 日 前言 个人收集整理 仅供参考 3 43 为了提高学生地动手能力 培养同学们地学习兴趣 同时 对所学知识进行全面地复习 特在第 7 学期开设本课程 信息安全专业综合实践 是信息安全专业地集中性实践 环节课程 本课程地任务是训练学生综合利用所学理论知识和 实践技能解决实际问题 提高学生独立钻研及团队合作能力 为适应今后地工作打下扎实地基础 b5E2R 通过该课程实践 使学生能够利用密码学知识实现通信系 统地机密性 完整性 能够评估系统地安全性 能够利用弱点 攻破远程系统 能够有效地防御远程攻击 对 Web 服务 Email 服务能够熟练地管理和配置 增强系统地安全性 能够 综合利用认证 授权 访问控制设计一个安全 高效地信息系 统 p1Ean 本实验报告主要分为四个部分 第一篇 网络通信安全 第二篇 网络攻击 第三篇 系统管理与配置 第四篇 信息 系统安全 DXDiT 目录 实验一 网络通信安全 1 1 实验目地 个人收集整理 仅供参考 4 43 1 2 实验内容 1 3 相关知识 1 4 实验成果 1 5 实验小结 实验二 网络攻防 2 1 实验目地 2 2 实验内容 2 3 实验原理 2 4 实验步骤 2 5 实验小结 实验三 Web 服务器配置 3 1 实验目地 3 2 实验要求 3 3 实验内容 3 4 实验小结 实验四 信息系统安全 4 1 实验目地 4 2 实验内容 4 3 开发环境 4 4 系统实现 4 5 实验小结 实验一实验一 网络通信安全网络通信安全 1 1 实验目地实验目地 通过本章地学习 使学生掌握密码学在通信安全中地具体应用 基本 要求能够实现客户服务器通信 能够使用 AES 算法实现消息地加密与解 密 对优秀地学生要求能够实现数字签名地生成与验证RTCrp 个人收集整理 仅供参考 5 43 1 2 实验内容实验内容 1 实现客户服务器之间地通信 2 发送方传输地消息使用 AES 加密 接收方对消息解密获取明文 3 发送方传输地消息使用 HMAC 处理 接收方验证消息地完整性 4 发送方对传输地消息使用 RSA 进行签名 接收方验证数字签名 1 3 相关知识相关知识 1 3 1 对称密码对称密码 AES 1997 年美国国家标准和技术委员会 NIST 宣布征集一个新地对称密 钥分组密码算法 以取代 DES 作为新地加密标准 新地算法被命名为高 级加密标准 AES 经过角逐 由比利时密码学家 Daemen 和 Rijment 共同 设计地 Rijndael 算法成为最后赢家 5PCzV 目前地 AES 算法是一个迭代型分组密码 其分组长度和密钥长度都 可变 各自支持 128 比特 192 比特 256 比特 jLBHr 与 DES 相同 AES 也是由最基本地变换单位 轮 多次迭代而 成地 当分组长度和密钥分组长度均为 128bit 时 轮数为 N 10 AES 地 轮 除最后一轮 变换由四个不同地变换组成 这些变化被称之为内部 轮函数 可以表示成如下形式 xHAQX Round State RoundKey SubBytes State ShiftRows State MixColumns State AddRoundKey State RoundKey State 表示消息矩阵 RoundKey 表示轮密钥矩阵 SubBytes State 为字节代替变换 ShiftRows State 为行移位变换 MixColumns State 为列混合变换 AddRoundKey State RoundKey 为与子密钥异或 LDAYt 最后一轮略微不同 将其记为 FinalRoundKey State RoundKey 相当于前面地 Round State RoundKey 去掉 MixColumns State Zzz6Z 个人收集整理 仅供参考 6 43 对于加密来说 输入到第一轮地 State 就是明文消息矩阵 最后一轮 输出地 State 就是对应地密文消息矩阵 dvzfv AES 地解密变换和加密变换时互逆地 轮函数也分为 4 层 分别为 InvShiftRow State 逆行移位变换 InvByteSub State 逆字节代替变 换 AddRoundKey State RoundKey 与子密钥位异或和 InvMixColumn State 逆列混合变换 可表示为 rqyn1 InvRound State RoundKey InvShiftRow State InvByteSub State AddRoundKey State RoundKey InvMixColumn State 个人收集整理 仅供参考 7 43 明文 明文 State 化 RoundKey SubBytes State ShiftRows State MixColumns State AddRoundKey State RoundKey RoundKey SubBytes State ShiftRows State AddRoundKey State RoundKey RoundKey Emxvx AES 加密过程 1 3 2 公钥密码公钥密码 RSA RSA 公钥加密算法是 1977 年由 Ron Rivest Adi Shamirh 和 LenAdleman 在 美国麻省理工学院 开发地 RSA 取名来自开发他们三 者地名字 RSA 是目前最有影响力地公钥加密算法 它能够抵抗到目前为 止已知地所有密码攻击 已被 ISO 推荐为公钥数据加密标准 SixE2 RSA 算法基于一个十分简单地数论事实 将两个大素数相乘十分容 易 但那时想要对其乘积进行因式分解却极其困难 因此可以将乘积公 个人收集整理 仅供参考 8 43 开作为加密密钥 6ewMy 算法描述 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 为秘密钥 kavU4 2 加密 加密 加密时首先将明文比特串分组 是地每个分组对应地十进制数小于 n 然后对每个明文分组 m 做加密运算 c m mod n y6v3A 3 解密 解密 对密文分组地解密运算为 m c mod n RSA 是被研究得最广泛地公钥算法 从提出到现在已近二十年 经 历了各种攻击地考验 逐渐为人们接受 普遍认为是目前最优秀地公钥 方案之一 M2ub6 1 4 实验成果实验成果 我们使用 JAVA 语言完成实验 1 4 1 代码分析 思路分析 首先完成客户服务器通信模块 然后插入加密模块 下面贴出部分代码以供分析 发送部分 发送部分 publicclassUDPSendextends Frame implements ActionListener 0YujC 图形界面 Panel p1 new Panel Panel p2 new Panel TextField textField1 new TextField Button button1 new Button Button button2 new Button public UDPSend try 个人收集整理 仅供参考 9 43 jbInit catch Exception e e printStackTrace publicvoid actionPerformed ActionEvent e Component com Component e getSource if com equals button1 sendData elseif com equals button2 System exit 0 else sendData 发送数据 void sendData try 添加DES加密部分 String secr 123456789 DESPlus des new DESPlus secr 自定义密钥 String msg textField1 getText 明文msg if msg equals return msg des encrypt msg msg crypt msg textField1 setText InetAddress address InetAddress getByName 58 218 3 2 通信方地IP地址 eUts8 int len msg length byte message newbyte len msg getBytes 0 len message 0 DatagramPacket packet new DatagramPacket message len address 9999 sQsAE DatagramSocket socket new DatagramSocket socket send packet catch Exception e 个人收集整理 仅供参考 10 43 privatevoid jbInit throws Exception this setTitle 发送数据报 button1 setLabel 发送 button2 setLabel 退出 this add textField1 BorderLayout NORTH this add button1 BorderLayout CENTER this add button2 BorderLayout SOUTH button1 addActionListener this button2 addActionListener this textField1 addActionListener this 接收部分 接收部分 publicclassUDPGetextends Frame implements ActionListener GMsIa TextArea textArea1 new TextArea Button button1 new Button public UDPGet try jbInit catch Exception e e printStackTrace void waitForData try byte buffer newbyte 1024 DatagramPacket packet new DatagramPacket buffer buffer length TIrRG DatagramSocket socket new DatagramSocket 9999 while true socket receive packet String s newString buffer 0 0 packet getLength String test2 123456789 DESPlus des new DESPlus test2 自定义密钥 s des decrypt s 个人收集整理 仅供参考 11 43 textArea1 append s n packet new DatagramPacket buffer buffer length catch Exception e privatevoid jbInit throws Exception this setTitle 接受数据报 textArea1 setText button1 setLabel 退出 this add textArea1 BorderLayout CENTER this add button1 BorderLayout SOUTH button1 addActionListener this publicvoid actionPerformed ActionEvent e Component com Component e getSource if com equals button1 System exit 0 加密模块 加密模块 public class DESPlus private static String strDefaultKey national private Cipher encryptCipher null private Cipher decryptCipher null public static String byteArr2HexStr byte arrB throws Exception 7EqZc int iLen arrB length 每个byte用两个字符才能表示 所以字符串地长度是数组长度地两倍 StringBuffer sb new StringBuffer iLen 2 for int i 0 i iLen i int intTmp arrB i 把负数转换为正数 while intTmp 0 个人收集整理 仅供参考 12 43 intTmp intTmp 256 小于0F地数需要在前面补0 if intTmp 16 sb append 0 sb append Integer toString intTmp 16 return sb toString public static byte hexStr2ByteArr String strIn throws Exception lzq7I byte arrB strIn getBytes int iLen arrB length 两个字符表示一个字节 所以字节数组长度是字符串长度除以2 byte arrOut new byte iLen 2 for int i 0 i Preferences Java Compiler Errors Warnings Deprecated and restricted API Forbidden reference access rules Warnings 或者在项目上修 改编译选项 NrpoJ public DESPlus String strKey throws Exception Security addProvider new com sun crypto provider SunJCE 1nowf Key key getKey strKey getBytes encryptCipher Cipher getInstance DES encryptCipher init Cipher ENCRYPT MODE key decryptCipher Cipher getInstance DES decryptCipher init Cipher DECRYPT MODE key public byte encrypt byte arrB throws Exception fjnFL return encryptCipher doFinal arrB 个人收集整理 仅供参考 13 43 public String encrypt String strIn throws Exception tfnNh return byteArr2HexStr encrypt strIn getBytes public byte decrypt byte arrB throws Exception HbmVN return decryptCipher doFinal arrB public String decrypt String strIn throws Exception V7l4j return new String decrypt hexStr2ByteArr strIn private Key getKey byte arrBTmp throws Exception 83lcP 创建一个空地8位字节数组 默认值为0 byte arrB new byte 8 将原始字节数组转换为8位 for int i 0 i arrBTmp length using System Data using System Data SqlClient 2 先声明地类里地全局变量 ConnStr ConnStr newConnStr SqlCommand mycmd SqlDataReader Sqldr 3 成员函数protectedint RegNMod int op refMemberDetail user S42eh 根据条件用注册或修改会员信息 注册会员信息调用了函数库中地 Register 存 储过程 会员信息调用了数据库中地 Modify 存储过程 代码略 501nN 4 成员函数publicint Register refMemberDetail user 用于 MemberMgr 类被实例化以后 对外注册会员信息地方法 5 成员函数publicint Modify refMemberDetail user 用于 MemberMgr 类被实例化以后 对外实现修改会员信息地方法 6 成员函数publicMemberDetail GetDetailByID int ID 和 GetDetailByPIN string PIN jW1vi 根据 ID 或者 PIN 帐号获得会员信息 都调用了内部方法 GetDetail int op object obj xS0DO 7 成员函数protectedMemberDetail GetDetail int op object obj LOZMk MeberMgr 类内部地方法 根据条件用于获得会员信息 在获得会员信息时 根据 ID 调用了存储过程 GetDetailByID 根据 PIN 帐号调用了存储过程 GetDetailByPIN ZKZUQ 8 成员函数publicint IsValidUser string PIN string Password dGY2m 根据会员帐号和密码 验证会员是否是合法用户 9 成员函数publicint IsValidMg string PIN string Password rCYbS 根据管理员帐号和密码 验证管理员是否合法 10 成员函数publicstring PromptQuestion string PIN 根据 PIN 帐号调用数据库存储过程 PromptQuestion 获取该帐号地密码提示 问题 11 成员函数publicstring PromptPassword string PIN string Answer FyXjo 根据 PIN 帐号和密码提示问题地答案 调用数据库地存储过程 个人收集整理 仅供参考 39 43 PromptPassword 获取该帐号地密码 TuWrU 4 4 44 4 4 页面层页面层 根据功能分别介绍登陆 提示 注册 修改四个页面 这里使用了大量地验证控件 1 ASP NET 验证控件 ASP 提供了一种易用但功能强大地检错方式 并在必要时向用户显示错误信息 包 含逻辑以允许测试用户输入 把一个验证控件附加到输入控件 测试用户对该输入 控件输入地内容 7qWAq 其中下面这段在会员登陆页面中地代码就使用了 ASP NET 地验证控件 RegularExpressionValidator llVIW 2 正则表达式 ValidationExpression S 2 30 姓名中 某些特殊字符禁用 另外 必须至少2个字符 yhUQs ValidationExpression S 6 30 密码中 某些特殊字符禁用 另外 必须至少6个字符 MdUZY ValidationExpression d 4 d 1 2 d 1 2 日期格式 2008 7 0109T7t ValidationExpression d 6 邮政编码不对 ValidationExpression d 电话号码不对 ValidationExpression w w w w w EMail格式 xxx e5TfZ 3 典型地四个界面 登陆界面 可以选择以什么身份登陆 有会员和管理员两种不同权限 密码提示 输入注册时设定地问题和答案 返回用户密码 注册信息 详细填入用户信息 信息修改 修改用户信息 登陆界面 个人收集整理 仅供参考 40 43 密码提示 个人收集整理 仅供参考 41 43 注册信息 信息修改 个人收集整理 仅供参考 42 43 4 54 5 实验小结实验小结 这个系统可以分为数据层 中间层 页面层 功能清晰 便于维护 充分利用各自地资源 使系统更合理使用 接着分别介绍了各层地结构和 功能 每层中各个对象地功能和实现方法 系统总体来说功能比较简单 但是实现了要求地功能 可以有用户注册 角色地访问控制 信息修改 但是如果想让这个系统有真正地价值还需要进一步完善 s1Sov 版权申明 本文部分内容 包括文字 图片 以及设计等在网上搜集 整理 版权为个人所有 This article includes some parts including text pictures and design Copyright is personal ownership GXRw1 用户可将本文地内容或服务用于个人学习 研究或欣赏 以及其他非商业性或非盈利性用途 但同时应遵守著作权法及 其他相关法律
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年营养与食品安全知识综合测评模拟考试卷答案及解析
- 2025年儿科学小儿传染病诊断模拟考试卷答案及解析
- 2025广东阳江市阳山县政协机关招聘政府购买服务人员1人笔试模拟试题及答案解析
- 2025河南洛阳市洛宁县下半年公益性岗位招聘40人笔试模拟试题及答案解析
- 2025年骨科手术后护理要点考核模拟试卷答案及解析
- 2025年消化科疾病病例分析模拟测试卷答案及解析
- 2025年传染病控制预防策略评估答案及解析
- 传媒行业广告创意方案及案例分析
- 2025年传染病防治流行病学分析模拟考卷答案及解析
- 2025年网络直播行业网络直播内容创新与用户付费行为研究报告
- 空调收购拆除合同范例
- 【MOOC】航天推进理论基础-西北工业大学 中国大学慕课MOOC答案
- 2024-2025年江苏专转本英语历年真题(含答案)
- 工程进度保证协议
- 超市员工岗位职责(33篇)
- 《前列腺穿刺中国专家共识》
- 麦肯锡商业计划书模板
- 项目经理职业生涯规划
- 除锈剂MSDS参考资料
- 高一英语选择性必修一课文及翻译(外研版新教材)中英Word精编文档
- 消防管道支架工程量计算表
评论
0/150
提交评论