学士学位论文--ssh加密技术研究及实现毕设论文.doc
《学士学位论文--ssh加密技术研究及实现毕设论文.doc》由会员分享,可在线阅读,更多相关《学士学位论文--ssh加密技术研究及实现毕设论文.doc(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、河北司法警官职业学院毕 业 论 文论文题目: SSH加密技术研究及实现 11 内 容 摘 要本论文通过对当前一些SSH加密技术研究的分析,以及对SSH的考察,对网络数据传输过程的一些技术问题提出一些实用性的建议及实现。论文首先从SSH的整个发展现况与前景进行分析,提出了SSH加密技术需面对以及注意的几个问题,在客观地分析当前大多数的加密技术的优点以及缺点的过程中,提出了一些个人对于SSH加密技术的设想与建议。关键词SSH 加密技术 网络数据传输安全 程序设计1AbstractThis paper through the analysis of the current some SSH encr
2、yption technology research, and on the investigation to the SSH, for some technical problem in the process of network data transmission put forward some practical Suggestions and implement. Paper first from SSHs whole development present situation and prospect analysis, put forward SSH encryption te
3、chnology must face and pay attention to several problems, the objective analysis of the current most of the encryption process, the advantages and disadvantages of put forward some personal ideas to SSH encryption and the suggestionKey words: SSH Encryption technology Network data transmission secur
4、ity The program design 14目 录1.绪论11.1.研究背景和意义11.2研究目标和主要内容11.2.1研究目标11.2.2主要内容11.2.对称密钥密码体质:21.3.非对称密钥密码体制21.3.1.RSA算法21.3.2.DSA算法32.安全SSH的工作原理42.1.SSH的应用范围42.1.1.特点及适用范围42.2.SSH的认证和加密方式:42.2.1.SSH的体系结构:42.2.2.SSH的工作模型(Client/Server):42.2.3.服务器端认证用户52.2.4.SSH的数据完整性53.SSH的安装和使用63.1.SSH的安装:63.2.服务器端SSH
5、D的使用和配置:63.2.1.安全Shell守护程序的使用63.3.客户程序SSH.SCP的使用和配置153.3.1.安全shell客户程序的使用15总 结28注释29参考文献30致 谢31271. 绪论1.1. 研究背景和意义随着计算机网络技术特别是Intennet技术的发展,网络安全问题日益受到人们的重视。21世纪全世界的计算机都通过Intennet连到一起,信息安全的内涵也就发生了根本的变化,它不仅从一般性的防卫变成了一种非常普通的防范,而且还从一种专门的领域变成了无处不在,当人类步入21世纪这一信息社会,网络社会的时候,网络数据传输加密技术受到各方面的重视及研究发展。传统的网络协议,如
6、FTP POP 和Telnet在传输机制和实现原理是没有考虑到安全机制的,基本质上都是不安全的;因为他们在网络上用文明来传数据 用账户和口令,别有用心的有人通过窃听 数据载流等网络攻击手段非常容易地就可以截获这些数据 用账户和口。而且,这些网络服务程序的简单安全验证方式也有其弱点,那就是很容易受到别人的攻击。服务器和登陆者之间的数据传送就被窃取和篡改就会出现很严重的问题。目前我国信息化建设大潮如火,我国政府机关 企业单位的内部网络结构。已由最初简单的办公电脑星状拓扑联接C/S B/S结构并向更高级的多层次分布式结构发展。SSH技术是近几年所出现的一种开源的安全协议,具有相当出色的可靠性。很多国
7、有大中型企业银行金融机构均采用基于该技术手段加强网络服务器的安全。SSH的广泛应用使各种服务应用免受攻击,网络数据传输有了更高的保证。1.2研究目标和主要内容1.2.1研究目标通过对网络数据传输的安全性的研究和分析,对SSH加密技术的工作原理研究及实现解决网络数据传输过程中一些不安全因素,便于使数据传输更加安全不被被窃取1.2.2主要内容 本文主要的目的是对SSH如何进行加密进行研究。首先通过研究SSH的工作原理及安装和使用以及研究的密钥学为了更好地了解SSH协议,这一章将介绍协议的算法知识、对称密钥体质、非对称密钥体质,HASH算法等基本概念。并对SSH协议中采用的算法,诸如:RSA、DSA
8、、DES3等进行介绍1.2. 对称密钥密码体质:对称密钥密码体质是一种比较传统的加密方式。他的特点是加密运算和解密运算使用的是同一个密钥,而且这个密钥是合法使用者秘密拥有的。因此对称密钥密码体制又可称为单密钥密码体制、秘密密钥密码体制。对称密钥密码体制算法一般对外是公开的起安全性主要依赖于密钥的秘密性。它在设计过程中加大了算法双核机的复杂度,并且设计长密钥进行加解密1.3. 非对称密钥密码体制 非对称密钥密码体制,与对称密钥密码体制最大的不同是非对称密钥密码体制使用的是有两个密钥组成的一对密钥。这对密钥分为公钥,私钥两个部分。公钥部分对外公开,而私钥部分则由秘密所有人自己保管。因此, 非对称密
9、钥密码体制又可称为公开密钥密码体制。非对称密钥密码体制的产生是密码学史上的一次根本性的变革与飞跃,大大地丰富了密码学的内容。非对称密钥密码体制的两个密钥分开管理的特点,解决了对称密钥密的通信环境中,密码体制中密钥分发和管理的问题。对于非对称密钥密码体制,早拥有n个用户的,n对密钥就能够满足所有用户之间的保密通信.弱有m供热用户加入到此通信环境中,则只需要增加m对新密钥即可满足需求而不会带来密钥管理的大变动。非对称密钥密码体制简单的密钥管理促进了密码学在现实生活中的应用。1.3.1. RSA算法RSA是目前应用最为广泛的一种非对称加密算法。由RonRivest、AdiShamir以及Leonar
10、dAdelman三位美国人共同的研究设计,RSA的工作原理主要是依据大整数因子分解问题。它的安全性由把一个大整数分解成两个大小差不多的素数的乘积的难度产生。有研究表明,对于一个常规512位密钥进行因式分解至少需要7个月的时间。这也就在说经由RSA公钥加密的消息,要通过已知公钥来破解私钥获得明文,一般情况下再消息的有效时间内是很难成功的,毕竟对于研究条件具备各种技术情况下,破解512位的的公钥都需要7个月时间,更何况RSA的公钥通常都是1024位,如果消息的保密性还高的话可以使用2048位,或者更多,这样RSA就利用了一个难以解决的数学问题。构建了一个安全性极高的公钥加密体制。首先,RSA是这样
11、进行设计公钥与私钥:1、 找到两个足够大的质数p和q:2、 球的z=p*q;3、 求得=(p-1)*(q-1);4、 寻找一个整数n,使得gcd(n,)=1;5、 寻找一个整数s,0s1;x为用户秘密密钥,想xq,x0;y为用户公开密钥,y=gkmod p;m为待签名数据;k为小于q的随机数。(不同的m签名时不同)。签名:r(签名)=(gkmod p)mod q;s(签名)=(k-1(H(m)+xr)mod q 。验证:w=s-1modq、u1=(H(m).w)mod q 、u2=(r.w)mod q ; v=(gu1.yu2)mod p)mod q。如果v=r,则验证成功。安全SSH的工作原
12、理1.4. SSH的应用范围1.4.1. 特点及适用范围SSH在端到端建立起一条安全会话的通道,包括使用公有密钥加密法进行用户和主机认证,和使用对称密钥进行数据加密。适用范围:防止包欺骗,IP/主机欺骗,密码截获,侦听,不适用的范围:侦听对特定端口的攻击,Dos攻击等。1.5. SSH的认证和加密方式:SSH的体系结构: 连接层用户认证层传输层 传输层:完成加密算法的协商,保证传输数据的致密性和完整性,在传送对称密钥的同时完成客户端对服务器端的认证。用户认证层:位于传输层之上,它在传输层保证数据致密性和完整性的情况下完成服务器方对用户方的认证。连接层:位于传输层和用户认证层之上,它负责连接通道
13、的分配和管理。如端口转发时虚通道的分配。1.5.1. SSH的工作模型(Client/Server):建立连接 1.5.2. 服务器端认证用户 认证的过程如上图所示:客户端用自己的私钥将一段明文加密,并将自己的公钥附在密文后面传给服务器,服务器端用公钥解密,如果成功,再将公钥送往公钥数据库或认证中心进行身份认证。客户端对服务器端进行认证和对称密钥传送过程如下:(1)客户端随机生成校验字节(2)将校验字节发送给服务器(可加密)(3)服务器依据一定算法从校验字节中抽取对称密钥(4)服务器将校验字节用私钥加密附在公钥上传回客户端(5)客户端解密后认证校验字是否为原始发送的校验字用对称密钥(会话密钥)
14、加密传输数据断开连接1.5.3. SSH的数据完整性SSH包格式验字节=摘要函数(数据,顺序号,会话密钥)如果发送方和接收方校验字节相同,说明数据未被改动。2. SSH的安装和使用2.1. SSH的安装:SSH1和SSH2基于不同的协议。SSH1基于SSH.1.2.26协议;SSH2基于SSH2.0.0协议,因此二者并不兼容。所以在选择版本时,要注意,你所连接或想要连接你的系统有什么版本你就应当选什么版本。2.2. 服务器端SSHD的使用和配置:-b bits #可以指定服务器密钥的比特数。隐含值为768bit,然而可以使它变得更大或更小,这取决于你是否从inetd启动守护或是否需要更强的安全
15、性。-d #调试模式。这和sshd1一样。安全shell守护被启动,但它并没有在后台运行也没有产生任何子进程。调试级别越高,你接受到的信息也越多。调试输出结果存放于系统的日志文件,而警报机制则将被关闭。该模式仅能被用于服务器的调试,而不是为了增加日志文件的长度。-f config-file #与sshd1一样,你可以指定一个特定的配置文件。隐含值为/etc/ssh2/sshd-lonfig,但如果你不是以超级用户的权限来运行安全shell,你就需要在其他地方定义这个文件。-g login_grale_time #与sshd1一样,它设置安全shell守护中的“警报”机制。它给客户程序一个确定的
16、时间,每到相应的时间间隔,客户将和服务器确认一次。隐含的时间为600秒(10分钟)。如果客户程序不确认,服务器进程将断开socket连接。你可以将它设置为0,这意味着对确认时间没有限制。如果你将安全守护设为调试模式,该选项将自动地设为零。-h host_key_file #与sshd1一样,它指定用于私有主机密钥的文件。如果你不是以超级用户的身份运行安全shell守护,你就必须使用该选项。正常情况下,私有的主机密钥文件是不可读的(超级用户除外)。但如果你以普通的用户身份运行安全shell守护,情况就不一样了。同样,如果你使用了替换文件,确信其权限已被设为400。-i #你可以指定是否从inet
17、d运行安全shell。与SSH1类似,你可以选择是否需要用TCP外包来运行安全shell守护程序或从inetd运行它。从inetd运行安全shell会带来一些问题,因为安全shell守护需要产生服务器客户,然后响应客户,而这将会产生潜在的问题。当服务器密钥重新产生时,客户程序为了得到一个正常长度或更为强壮的服务器密钥而不得不等待过长的时间。然而,你也可以使用一个小一点的服务器密钥以提高性能,不过要记住:密钥越小,系统越容易受到攻击。-o option #你可以指定用在配置文件中的选项,但命令行中的选项不能在这儿被指定。-p port #与sshd1类似。你可以指定服务器侦听socket的端口。
18、隐含值为端口22,它为安全shell所保留。记住这也是在/etc/services中定义的端口号,除非你已经改变了它。如果端口22已经被其他的应用程序使用或以非超级用户身份启动安全shell你可能希望定义一个替代的端口。-q #指定哑模式,这意味着系统日志接受不到任何信息。这同样与sshd1类似。通常情况下被发送的内容为连接的起始,用户的认证及连接的终止。除非你的系统日志总是很快就被填满,你最好不要打开这种模式。因为这样你可以检查是否有人非法地进入系统。-v #将安全shell守护置于详尽模式。这和将选项-d2给sshd效果是一样的。这同样意味着你不可能真正使sshd2的详尽模式运行,因为没有
19、产生任何子进程。注:sshd2中没有-k key_generation_time选项。服务器密钥每小时重新产生一次(1)在同一台主机上运行SSH1和SSH2守护程序出于兼容性的考虑,你可能想让系统与SSH1兼容。要做到这一点,你需要具备SSH1的最新版本(目前为1.2.27)以及SSH2的一份拷贝。必须同时运行两种守护程序从而能接受和发送这两种版本的安全shell客户的连接请求。如果没有这样做,你就不能发送或接受安全shell客户的连接请求。至于真正的兼容性,SSH1与SSH2之间并不存在。然而,你可以同时使用SSH1的最新版本与SSH2。如果连接请求来自SSH1客户,SSH2守护将会把连接转
20、寄到SSH1守护。但你不能连接SSH1客户与SSH2服务器,反之亦然。同样,如果你发现一个声称包长度有误的信息,检查一下,看看是否运行了一个SSH1的早期版本,要是这样,你就需要升级了。(2)一些例子这些选项并没有隐含地设置。安全shell守护的隐含设置是使用768-bit的服务器密钥,它每小时重新产生一次,认证超时限度则为10分钟,在端口22上侦听连接,在/etc/ssh2目录下寻找配置文件等。隐含情况下,安全shell守护以如下方式运行:# sshd下面的例子与第三章类似。你可以发现,在使用方法上它们仅有很小的差别。你也可以将这些选项赋上隐含值,这和隐含地执行命令有同样的效果。# sshd
21、 b 768 f /etc/ssh2/sshd_config g 600 h /etc/ssh2/ssh_host_key p 22你可以将安全shell的端口设置成高于1024:# sshd p 2022为不同的端口建不同的配置文件?没问题# sshd p 2022 f /etc/sshd_config_weird_port如果想通过inetd运行安全shell,你也可以做到这一点,不过别忘了将服务器密钥缩小一点。记住,你并不希望自己的密钥非常脆弱。同样,你也可能希望不是从命令行来完成该命令,而是在一个程序脚本上实现这一点:# sshd i b 512注:你应当编辑文件/etc/inetd.
22、conf,然后从中运行sshd。(3)从启动脚本中初始化安全shell运行安全shell的大多数的系统管理员希望它总是处于运行状态,并且也不希望每次都要启动它,就能使其运行。解决这个问题的一个简单的办法就是将其置于一个启动程序脚本中。这和第三章“安全shell守护程序sshd”中描述过的SSH1启动过程十分类似。下图显示了不同的操作系统中启动安全shell守护的位置。操作系统启动程序脚本Slackware Linux/etc/rc.dRed Hat Linux/etc/rc*.dSolaris/sbin/rc*.dHP-UX/sbin/rc*.dIrix/etc/rc*.dAIXDEC UNI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学士学位 论文 ssh 加密 技术研究 实现
限制150内