APP下载

FREEBSD下基于SSH技术的数据安全实现方法

2020-08-04

淮北职业技术学院学报 2020年3期
关键词:公钥加密算法密钥

徐 辉

(淮北职业技术学院 计算机科学技术系,安徽 淮北 235000)

互联网技术高速发展,遗传算法的使用和人工神经网络的发展,使得各行各业对于网络办公和网络商业平台的依赖性越来越高。这种依赖性产生了两个方向的发展,一个方向就是依托于网络办公和网络商业平台的便利性,进一步提高经济效率和经济发展,另外一个方向网络办公和网络商业平台的广泛使用,产生了大量的网络用户,其中大多数的网络用户是缺乏相关的专业知识,TCP/IP协议由于其本身协议的脆弱性[1]和不安全性,造成可见的大量非安全通信在网络上被使用,其结果就是很多的数据被非授权访问、被恶意篡改,给用户带来了巨大的经济损失。

1 FREEBSD系统在数据加密传输中的优势和特性

为了保证数据的安全性,在互联网发展的早期,针对互联网开放性的特点,人们为了能制定出来一套便于使用的安全标准,采用将安全保障和安全功能分离的方法,制定了一系列十分详细和复杂的条款,并在互联网发展的过程中,不断的修改这些条款,最终形成了具有实际操作意义开放互联的安全体系结构框架。安全体系框架目前基本上包括了:身份认证、访问控制、数据加密、数据安全性、防止抵赖。通过安全体系框架包含的内容可以看出数据加密技术在其起到了决定性的作用,为了保证在现有互联网环境下信息数据传输交换的安全性,密码技术得到了长足的发展,通过密码技术可以很好的保证信息交换的安全性;还可以保证数据的机密性和完整性以及不可否认性,可以发现,密码技术正是现在电子商务和电子商业平台所必须的。密码技术大致可以分为以下三类:单向散列函数、对称密钥算法和非对称密钥算法。由于单向散列函数这种加密方式不需要密钥,但是加密的过程中计算量大,对于目前的网络来说,只能用来检验网络数据是否被篡改,性价比比较低,只在一些短数据时被偶尔用到。另外两种加密算法是对称密钥算法和非对称密钥算法,分别以DES[1]算法和RSA[2]算法为典型。下面简单分析这两种算法在FREEBSD系统中的应用。

对称密钥算法的安全性,由于经过16轮的替换和换位的迭代运算,使得想要获得密钥,只能采用时间消耗量最大的穷举法,对于长度为112位甚至是168位的密钥,非授权用户基本没有任何可能获得密钥。对称加密算法的安全性,FREEBSD系统中的用户口令就采用这种算法进行加密。对称加密算法实现简单,计算量小,密钥破解困难,但是其在面对庞大的网络通信时,基于用户基数的增加,对称加密算法的密钥数量也急速的增加,对于密钥的管理是个艰难的工作。RSA算法被公认为是目前理论和实际应用中最为成熟和完善的一种公钥密码体制[3],非对称加密算法的安全性基于大数分解的难度,用一对大素数的函数作为公钥和私钥。所以只要我们使用的大数足够大,那么我们的密钥安全性就会增强。非对称加密算法可以很好的实现电子商务中的数字签名,使其有了更多的使用空间。FREEBSD在应用中既可以使用对称密钥算法也可以使用非对称密钥算法,根据使用的场合和用途不同,可以依据这两种加密算法的特点来挑选适合当前通信的加密算法。

FREEBSD[4]是一种和Linux非常类似的操作系统,因其很多的命令行和操作方式和Linux非常相近,某些人认为FREEBSD就是Linux操作系统的一个子版本,其实FREEBSD来源于386BSD,因为和Linux的知识产权版本问题,从而衍生出完全独立的操作系统,Linux 一般使用GPL授权,根据规则使用GPL授权,产生的任何源代码的衍生物也必须是开源的。 并且Linux只是指操作系统的内核,除了内核以外的操作系统所包括的一些应用程序功能则是相应的发行版本商提供的,由此可知,Linux版本是多样的,不同版本的Linux采用不同RPM安装包管理器,RPM可以处理安装的应用程序和操作系统的依赖关系,但是PRM不提供自动下载功能,并且从源码中编译得到的程序PRM是无法识别的。FREEBSD包含了整个的操作系统和完整的应用程序包,和Linux不同的是FREEBSD只有一个,FREEBSD采用“包”的方式来进行安装,通过连接点树技术,让每一个文件夹都包含Makefile,通过$PATH连接点树能找到它需要的东西,可以使用户自动下载所需的应用程序,和Linux比起来,FREEBSD不追求更多的新特性,FREEBSD更看重整个操作系统的稳定性,更信任经过长期测试和使用的应用程序,这就使得FREEBSD版本号比较单一,但是稳定性极佳,很多大型的网站都采用FREEBSD作为他们服务器的操作系统。现在的FREEBSD包含了GNU、ISC、CDDL等许可证的程式码,使得FREEBSD获得了更多自由软件使用者的追捧,可以说,虽然FREEBSD不是Linux,但是其易用性、安全性、开源性,已经使得其应用范围越来越广,大家所熟知的苹果的IOS操作系统,一定程度上都是基于FREEBSD的。当然FRSSBSD也不是完美的,现在全球使用最广泛的操作系统依然是视窗操作系统,而FREEBSD因其专业性使得用户基数远远不及视窗操作系统,这也造成了FREEBSD在硬件系统的驱动兼容上存在着瑕疵。也恰恰是因为FREEBSD的用户基数少,对很多第三方软件的不兼容,以及自己独立的内核,形成了FREEBSD极强的安全性。有些观点认为FREEBSD不需要加装任何的安全软件,这种观点是不正确的,基于网络的各种复合型计算机病毒、木马所能侵犯的操作系统,基本上涵盖了所有的操作系统。如何保证自己的信息在网络传输的过程中的安全性,是要考虑的重点,利用FREEBSD自带的SSH可很好实现网络数据的加密传输。

2 SSH和Telnet的异同

Telnet以其易用性得到很多人的追捧。Telnet可以很好的满足现在的网络状态需求,可以保证用户在任何一个地方远程登陆计算机从而获得计算机上的信息,但是Telnet存在着巨大的安全隐患,因为他是一个明文传输协议。明文也就意味着将传输的内容不加掩饰的放在互联网上,对于非授权的第三方而言,可以轻松的获取传输数据的内容。因此就需要一种安全的远程传输协议,来保证数据的安全性,SSH协议很好地解决了该问题。

SSH英文全称为secure shell,由IETF来制定标准,它是建立在应用层上的一种远程会话登陆安全协议,目前SSH使用的端口号默认为22,因其在传输信息的过程中,采用的是加密的密文,比起Telnet,安全性要高的多。目前流行的SSH验证方式是两种,一种是基于口令的,另外一种是基于密钥的。基于口令的验证方式受密码复杂度的局限,使用范围较小;基于密钥的验证方式,用户可以根据自己的需要生成不同长度的密钥,安全性高、使用方便。用户在FREEBSD上利用SSH创建一对密钥,密钥分为公钥和私钥,把私钥放在自己的计算机上,把公钥放在需要访问的计算机上。采用SSH进行连接时,远程的计算机会向本地的计算机发出请求,请求使用公钥进行安全验证。本地计算机接收到请求后,对比发送过来的公钥是否和本地的公钥一致,如果一致就可以进行通信。最重要的就是进行通信的过程中,所有的信息都是加密的,极大的保证了信息的安全性。

3 数据加密连接

3.1 主机端SSH的加密的实现过程

1.利用SSH生成密钥对。首先使用ssh-keygen生成密钥对,SSH的加密目前主要有两种,一种为DSA算法,另外一种为RSA[4]算法,目前采用的加密算法为安全性较好的RSA加密,加密的位数可以选择从1024—4096位,加密的位数越多,安全性越高。在这采用了1024位的RSA算法:运行SSH-KEYGEN命令如图1所示。

图1 SSH-KEYGEN的1024位RSA加密

执行完成后会生成The key fingerprint和The key’s randomart image如图2所示

图2 The key fingerprint和The key’s randomart image

然后会生成两个密钥文件:id_rsa这是私钥文件;id_rsa.pub是生成的公钥文件。需要将生成的公钥文件拷贝给目标主机路径为/.ssh/目录下,并将文件名改为authorized_keys,在目标主机需要赋予.ssh目录700的权限,以及authorized_keys文件的权限为600。

3.2 目标主机的SSH连接设置

由于FREEBSD的安全性要求比较严格,需要对目标主机的安全选项进行设置,完成首次连接从而保证公钥文件可以顺利的拷贝到目标主机,具体实现的步骤为:

首先,设置/etc/ssh/sshd_config中的PermltRootlogin 选项设置为yes;PermitEmptyPasswords选项设置为yes并将前面的#号去掉,如图3所示。

图3 对PermltRootlogin和PermitEmptyPasswords选项的修改

然后,启用目标主机的SSH服务,如图4所示,并且激活它,这样就可以保证第一次通过root密码的形式完成密钥的传递。

图4 启用SSH服务

3.3 密钥文件形成

通过以上的步骤已经保证主机端产生了密钥文件,并且密钥文件里面含有公钥和私钥, 将生成的私钥保留在主机端,用如下的命令行:ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.80.137,通过目标主机的IP地址将公钥发送到目标主机端。目标主机端接收到公钥后,将公钥存放在~/.ssh下的authorized_keys文件中。将authorized_keys文件打开,可以清楚的看到公钥来自于host001主机,以及采用的加密算法是RSA算法。

图5 文件authorized_keys里的密钥记录

为了更清楚的看到主机的登陆情况,还可以将 know_hosts文件打开,如图6所示,通过里面的IP地址可以清楚的看到哪台主机采用加密方式连接到本机。通过SSH的方式完成了两台主机的加密连接,保证了在这两台主机之间的通信也是加密的。这样可以极大的提升通信的安全性。

图6 know_hosts文件里的记录

4 结语

网络技术的发展带来更广泛的应用,更广泛的应用会带来更多的安全隐患。为了保证网络数据的私密性、安全性、不可更改性,就需要对数据进行加密,加密技术随着计算机速度的提升,也在进行着迭代升级,FREEBSD系统的优秀安全性加上数据传输的数据加密,能很好的保证安全需要。SSH技术能极大的提升信道数据的安全传输,而且FREEBSD的系统开源性,用户可以根据自己的安全需要自己开发或者加装不同的插件,更好的保证数据在信道传输下的安全性。

猜你喜欢

公钥加密算法密钥
幻中邂逅之金色密钥
幻中邂逅之金色密钥
基于DES加密算法的改进研究
案例教学法在公钥密码体制难点教学中的应用——以ssh服务中双向认证为例
密码系统中密钥的状态与保护*
DES加密算法的实现
基于整数矩阵乘法的图像加密算法
TPM 2.0密钥迁移协议研究
神奇的公钥密码
国密SM2密码算法的C语言实现