吴玉芹,张枝令
(宁德师范学院计算机与信息工程系,福建宁德 352100)
Linux下的 iSCS I协议安全性的分析
吴玉芹,张枝令
(宁德师范学院计算机与信息工程系,福建宁德 352100)
从认证和数据加密两个角度研究了 iSCSI的安全性,分析了 SSH安全机制对 iSCSI存储系统的性能影响,并对 Rsync算法进行改进,在此基础上提供了 IP层和上层协议的 iSCSI安全;使用 IOmeter进行性能测试,并对 iSCSI在 2种安全机制下的性能测试结果进行分析.
iSCSI协议;数据加密;SSH;Rsync算法
由 Internet国际任务组 (IETF)主持制订的 Internet SCSI(iSCSI)协议[1],定义了通过 TCP/IP网络进行块级存储访问的方法,通过在 IP网络上传送 SCSI命令以及存储数据,iSCSI使得传输、存储以及管理数据的距离大大增加.但是,由于 iSCSI是基于 TCP/IP传递数据,TCP/IP本身又不具有安全特性,容易受到来自第三方的攻击和恶意破坏,从而影响数据存储的安全性和一致性[2].因此,iSCSI的安全性成为这项新技术被广泛应用的关键因素.
1.1 SSH协议内容SSH(Secure Shell)协议[3]于 1995年由 Tatu Ylonen提出.SSH加密口令及数据可以在不安全的网络上透明地提供强认证和安全通信.SSH不涉及与操作系统核心相关的技术细节,容易实现;已有的应用,只要是利用可靠传输服务实现 (比如 TCP over IP)的,都可以充分利用 SSH提供的 TCP端口转发功能达到安全防护的目的;SSH协议设计之初充分考虑到了扩展性的问题,很容易嵌入新的密码算法、认证方式以及密钥交换协议等.
传输层协议,提供诸如认证、信任和完整性检验等安全措施,此外还可以任意地提供数据压缩功能.通常情况下,这些传输层协议都建立在面向连接的 TCP数据流之上.用户认证协议层,用来实现服务器的跟客户端用户之间的身份认证,运行在传输层协议之上.连接协议层,分配多个加密通道至一些逻辑通道上,运行在用户认证层协议之上.
1.2 使用密钥登录SSH默认情况下,可以使用用户名和密码登录,此时安全性受到密码强度的限制.SSH还可以使用密钥登录.使用 SSH-keygen可以用来生成密钥,默认的密钥是 2 048位的 RSA密钥SSH-keygen会提示密钥的加密密码,每次使用密钥时需要该密码进行解密,增强密钥的安全性.SSH-keygen会生成两个文件:id_rsa和 id_rsa.pub,分别是私钥和公钥.将 id_rsa.pub文件改名为 authorized keys放在服务器上的~/.SSH/目录下,如果服务器该目录下已有这个文件,则可以把 id_rsa.pub中的内容,复制到 authorized keys中.将私钥放在自己电脑上~/.SSH/目录下,私钥需要妥善保管,此后登录,就不会再询问服务器密码,只会询问私钥的解密密码.
Rsync是一个远程数据同步工具,可通过 LAN/WAN快速同步多台主机间的文件.Rsync本来是用以取代 rcp的一个工具,它当前由 Rsync.samba.org维护.Rsync使用 Rsync算法来使本地和远程主机之间的文件达到同步,该算法只传送 2个文件的不同部分,而不是每次都整份传送,因此传输速度相当快.
Rsync算法主要针对当时网络情况的不稳定、窄带宽、高延时作出的,适合对一些小尺寸、相似度高的文件进行同步,不适合大尺寸、路径结构深、文件数量庞大的文件群进行同步.针对 Rsync算法已经不适合现在数量大的文件进行同步的问题,提出了两级缓存是目前解决网络带宽和防止重复访问的有效手段.
网络块NBD(Network Block Device)设备是一个软件,它从一个节点共享它的资源到另外一个节点.NBD是 C/S工作模式,在服务器端,NBD可以从磁盘空间、存储空间或者其他块设备请求一些资源,然后保留一个本地块级接口给客户端,客户端通过 TCP/IP可以访问这些资源.但这不是一种常用的方式,NBD本身有些缺限,它非常难于设置管理,如果只是要在少数几个Web服务器间复制数据,用 NBD只会带来更多的麻烦.在 NBD基础上,提出一个新的计划共享存储 RMP(Remote Memory Pool),也是 C/S模式,但是共享存储将不再是一个块设备,而是保留一个直接的 I/O接口给客户端,对于客户端,通过服务器共享存储是一个远程的存储池,远程存储池通过 I/O接口可以直接被访问.
RiCache是一个两级缓存,两级缓存都由一个管理者管理.一个 Cache在 iSCSI启动器的内存中,另一个在 RMP中,因此,iSCSI启动器和 RMP客户必须运行在相同的节点上,此外,RMP服务器可以分布在不同的其他节点上,这种设计可以充分利用空闲存储空间,在服务器端可以对不同的节点更有效地平衡存储问题.
缓存 (Cache)通过 Linux内核的高性能列表来组织,两个 Cache队列都有自己的通信列表.在内存中的 Cache,当读操作被访问某一地址在 Cache中命中,这个 Cache块将被放到列表的头部,如果没有命中Cache,这个请求将被传到目标器,请求数据返回到目标器后,一个新的 Cache块需要加入到列表中,如果列表满了,管理者将移走最后的 Cache块内容到 RMP中,用新的数据填充 Cache块,然后移动到列表的头部.在 RMP中,Cache块管理和在内存中 Cache的管理是相同的.
3.1 试验环境使用 2台普通的 PC机,一台作为目标器 (target),一台作为启动器 (initiator).实验平台配置如表 1所示.
表1 实验中 target和 initiator的硬件配置
选择 Linux作为试验平台.iSCSI的 initiator端和 target端都采用 Red HatLinux 9.0,内核版本为 2.6.18.作为 iSCSI的 initiator端和 target端实现.此外,笔者选择 openSSH作为 SSH协议的实现.initiator端 IP地址为 10.0.0.1,target端 IP地址为 192.168.0.1.
3.2 Linux下的openSSH的安装与启动 在 Linux 2.6.18内核中已经集成了 OpenSSH-4.3p2-10版本,首先需要将其卸载,运用以下命令进行卸载:
3.3 使用 Rsync做 Remo te syncRsync是 Linux系统下的数据镜像备份工具,从命名上就可以看出来了Remote sync.
首先要先对 target端 (192.168.0.1)把 Rsync的 Server on起来
3.4 SSH下 iSCS I安全的实现在基于 SSH的安全 iSCSI方案中,SSH的认证方式采用公钥认证方式.依次执行以下命令在 initiator端和 target端进行处理,如下图 1、图 2所示.
图1 initiator端密钥的生成
图2 target端公钥的追加
3.5 测试结果与性能分析考虑到 iSCSI是一种数据块级的传输技术,因此本文中的实验采用 Intel公司的 IOmeter[4]对安全 iSCSI的 CPU利用率进行测试.
根据 iSCSI协议的会话过程,在 login阶段使用 CHAP认证,在 iSCSI连接建立之后的数据传输阶段分别采用以下 2种方案对 iSCSI存储系统进行性能测试:
1)无任何安全机制下的 iSCSI存储系统;
2)基于 SSH的安全 iSCSI存储系统.
基于 SSH的安全 iSCSI存储系统的性能测试时,利用了 SSH的 Rsync远程数据同步工具建立了安全隧道,从而使得整个 iSCSI会话在 TCP层得到加密保护;为了进行公平的比较,2种安全机制下都使用3DES加密算法进行测试.
使用 Iometer在 initiator端挂载上的 sdb上通过读写操作测试 CPU利用率.I ometer的测试参数为:读写操作各占 50%、顺序和随机各占 50%、数据块大小从 1 K到 1 024 K,测试时间为 10 min,主要对 iSCSI存储系统的 CPU利用率进行测试.测试结果如图 3所示.
从图 3可以看出,CPU利用率在 2种安全方案下均有大幅度的增长.与不施加安全机制的 iSCSI相比,在 iSCSI+SSH模式下,CPU利用率的增幅为 46.5%.因此,基于 TCP/IP的 iSCSI本身是一种明显的CPU密集型业务,IP包的拆解和重装等业务会占用很多的系统资源,导致系统的 CPU利用率大幅度的增加,而在 TCP/IP中引入某种安全机制后,将会进一步加剧对系统资源的占用情况,进而影响 iSCSI的性能.而通过使用 SSH在 TCP层对 iSCSI进行安全保护的方法,CPU利用率却可以增幅 46.5%,具有比较明显的优势.
图3 CPU利用率的测试结果
本文从 iSCSI存储系统的安全出发,对 iSCSI协议和 SSH安全协议进行了介绍,针对 Rsync重点描述了它的核心算法改进,对基于 SSH的 iSCSI存储系统的性能进行了验证,使用 openSSH实现 SSH的安全机制,实验中通过使用 SSH在 TCP层对 iSCSI进行安全保护的方法,能够提高 iSCSI的性能.对上述方案的检验只能在较为理想的情况下进行,而其细节上还存在一些缺陷.对这些问题的解决以及对 iSCSI存储系统的改进与实现,将有待于在今后的工作中进一步研究,并期望提高 iSCSI的安全性能.
[1]OHSAKIH.Perfor mance Evaluation of iSCSI-APT(iSCSIwith Automatic Parallelis m Tuning)on S INET3 with Layer-1 Bandwidth on Demand Service:proceedings Information and Telecommunication Technologies(APSITT),2010 8th Asia-Pacific Symposium on,Kuching,June 15-18,2010[C].[s.n.],2010.
[2]MAO Bo,FENG Dan,Wu Su-zhen,et al.Performance-Directed iSCSI Security with Parallel Encryption:proceedings Advanced Information Ne tworking and Applications,Okinawa,March 25-28,2008[C].[s.n.],2008:855-860.
[3]XIE Chang-sheng,FU Xiang-lin,HAN De-zhi,et al.The study and imp lementation of a new iSCS I based SAN[J].Journal of Computer Research and Development,2003(40):246-251.
[4]高峰.网络存储的性能测试[D].哈尔滨:哈尔滨工程大学图书馆,2008.
Analysis of iSCSI Technology Security Based on L inux
WU Yu-qin,ZHANG Zhi-ling
(Department of Computer Information Engineering,Ningde Nor malUniversity,Ningde 352100,China)
In terms of authentication and data encryption,iSCSI security was analyzed,the effects of SSH on iSCSIwere analyzed,and Rsync algorithm was improved,and iSCSI security to IP layer and the upper protocols were proposed; IOmeter was used to measure perfor mance of it,and iSCSI’s performance results under two schemeswere discused.
iSCSIprotocol;data encryption;SSH;Rsync algorithm
TP 31 < class="emphasis_bold">文献标志码:A
A
1004-1729(2010)04-0332-06
2010-08-20
福建省教育厅B科研类项目 (JB09236);宁德师范学院科研资助项目(2009304)
吴玉芹 (1979-),女,内蒙古赤峰人,宁德师范学院计算机与信息工程系讲师,硕士.