邬余崎
(湖南城市学院,湖南 益阳 413000)
随着云技术逐渐渗透到各个领域,云计算安全技术也得到了快速发展。现阶段常用的云计算安全技术有Kerberos 认证协议、SAML 协议、自主访问燮制、非对称式加密等。在设计云计算安全系统时,首先要结合项目特点和系统运行需求,确定云计算安全策略,在此基础上选择相应的云计算安全技术。例如,保证数据的机密性是设计云计算安全系统时的一项核心诉求,为此需要从数据传输、数据存储、数据擦除等环节,分别选择数据加密解密技术、数字签名认证技术,从而保证系统数据的安全。
该系统的身份认证流程主要包括3 部分,即用户与AS 服务器之间的身份认证、用户与票据认证服务器(TGS)之间的身份认证、用户与Hadoop 平台之间的身份认证。这里以AS 服务器认证为例,简要概述其认证流程:
用户从客户端向AS 认证服务器发出一个认证请求,该请求中包含了用户的ID 信息、当前时间点信息等。在AS 服务器顺利接受到认证请求后,执行一个判断程序“查询用户ID”。如果该用户已经进行了注册,可以顺利查找到用户ID,则允许认证;如果该用户未注册,无法查询到用户ID,则拒绝认证请求。在验证通过以后,该系统会自动生成一个票据(Ticket),除了用户ID 信息外,还包含了TGS 信息、AS 信息等。AS 认证服务器会将票据信息进行加密处理,同时将加密后的票据以及用于加密的密钥一同发送至客户端。用户在接收到票据后,可通过密钥对票据做解密处理,并核对信息是否有误。如果票据内容未出现失真、篡改等问题,则说明身份认证成功。整个认证流程见图1。
图1 AS 认证流程
在AS 认证过程中,除了用于解密票据的密钥外,还会得到用户与TGS 服务器会话密钥。使用2 份密钥对同一票据进行解密,然后对比票据中的用户ID、时间点、用户IP 地址等信息是否一致。如果一致,则确认用户通过身份认证;如果不一致,则用户未通过身份认证,TGS 服务器将拒绝用户提交的发送票据的请求[1]。这样一来,就可以利用AS 服务器和TGS 服务器进行双重认证,使得该系统的身份认证功能更加精确,彻底杜绝了非相关人员越权操作的情况。
该模块由4 部分组成,分别是请求服务、用户管理、角色管理、服务功能管理。这里以请求服务和角色管理为例,具体设计如下:
(1) 请求服务部分。用户发出请求服务后,系统需要验证用户名和密码,并判断该用户是否正常登录。如果未登录,则直接跳转至系统的登录界面,用户需要重新输入配对的账号、密码后方可发送请求。如果该用户已经成功登录,系统会从后台调取该用户的角色权限列表,然后识别用户请求内容,并对照角色权限列表,判断用户提交的请求是否在权限列表的范围内。如果不在该范围,则阻止服务请求,结束会话;如果在该范围内,则系统通过服务请求,结束会话。
(2) 角色管理部分。该部分的主要功能是实现系统内角色信息的添加、修改、删除等操作。这里以添加新的角色信息为例,进入系统主界面后,选择“创建角色”选项,在弹出的对话框中分别输入角色名称和角色描述。然后执行一个判断程序“角色ID 是否为0?”如果“为0”,说明该角色未被注册,可成功创建角色;如果“不为0”,说明系统中已经存在该角色,则需要重新修改角色信息后再次执行判断,直到角色成功创建。角色创建代码如下:
数据加密模块是基于大数据的云计算安全系统的核心部分,无论是数据传输还是存储,均应用数据加密技术保障数据的隐私与安全。本系统的数据加密模块设计,采用的是AES 算法,所有用户上传至系统的数据,会在客户端提前完成加密处理,这样既可以减轻系统的运行燮荷,同时也能保证数据在传输过程中不会以明文形式出现,从而解决了数据被第三方窃取的问题。服务器端接收数据后,不需要进行解密,可以直接以密文形式进行存储。只有当用户调用相关数据时,系统才会使用密钥将对应的密文解密。
在设计数据加密模块时,使用AES 算法的优势在于该算法可以同时生成2 份密钥,其中一份为保密密钥,由用户保管;另一份为公开密钥,可对外公开[2]。当用户需要对某一信息进行加密处理时,可以选择公开密钥完成加密,操作较为简便;当用户需要对加密信息进行解密时,则选择保密密钥,从而保证信息的绝对安全。另外,本系统中使用的RSA 密钥长度最大可以达到512 位,使得密钥破解难度大幅度增加,数据加密效果得到了可靠保障。
在云计算安全系统中,数据完整性验证模块的主要功能是验证口令、密钥、身份等数据的完整性;系统通过对比输入数据是否符合预设参数,来判断数据是否完整,实现对数据的保护。基于MD5 算法的数据完整性验证流程见图2。
图2 数据完整性验证流程
MD5 算法的功能是从某一段信息(Message)中提取关键数据,然后生成信息摘要(Message-Digest)。在信息存储、传输过程中,只显示信息摘要以便于系统检索和识别信息,而隐藏信息的主要内容,从而达到防止信息被篡改的目的。在云计算安全系统运行中,使用MD5 算法将海量数据看作成一个文本集合,然后使用不可逆转的字符串转换算法,转换后得到唯一的MD5 信息摘要,并保存到系统的数据库中。当用户登录该系统后,系统会将用户登录时输入的密码进行MD5 预算,将运算结果与保存在系统内的MD5 值进行对比[3]。如果两者一致,说明密码正确,这样就保证了用户登录访问系统的合法性,从而避免了第三方恶意登录破坏数据完整性的情况。
为验证云计算安全系统各项功能的应用效果,开展了本次测试。测试内容主要分为4 个部分,即RBAC能否限制用户的访问权限、Kerberos 能否正常传递用户身份信息、加密模块能否将明文转变为密文、MD5能否正常完成数据完整性验证。本次测试在Windows环境下进行。
在Kerberos 模块,分别尝试了3 种不同的输入信息,测试系统的输出结果,见表1。
表1 Kerberos 身份认证输入输出情况
在本次测试中,输入错误的用户名后,AS 服务器不能从数据库中匹配到对应的用户名,此时AS 服务器拒绝提供身份认证;输入错误的密码后,AS 服务器首先对用户注册时保存的密码进行解密,经过RSA 算法解密后再与输入信息进行配对,如果两者不能匹配,说明当前用户输入的密码错误,此时也无法登录系统。只有用户名与密码同时匹配,才能完成身份认证。基于Kerberos 的身份认证见图3。
图3 Kerberos 身份认证通过
在RBAC 模块功能测试中,提前保存3 个角色、5个用户的信息,然后分别在5 个不同的服务器上进行登录,并向云计算安全系统发出访问请求。当用户Fyh登录时,由于该用户属于系统最高权限的admin 角色,因此能够在登录后获取查看、修改用户信息的权限;而用户xp 和wb 登录时,由于该用户属于系统reg-member 角色,只能访问保存在服务器上的信息,而无法对用户信息作出修改,说明该系统的访问燮制功能可以正常实现[4]。
对于经过加密处理后的文件,虽然也能够从系统中检索到,但是在未进行解密前,文件内容为乱码(如图4),从而避免了文件重要信息的泄露,表明云计算安全系统的数据加密功能正常。
图4 经过RSA 加密处理过的文本文件
在数据完整性验证测试中,由系统调用保存在数据库中的用户密码,然后进行MD5 值计算。将计算结果与最近一次登录时输入的用户密码的MD5 值进行对比。如果两者的MD5 值一致,说明保存在系统数据库中的用户密码完整未被修改;反之,则说明密码不正确,禁止通过该密码登录系统。同理,该系统还可以通过对比存储文件MD5 值来判断文件的完整性。对所有导入系统的文件进行MD5 值计算,将计算结果与系统存储的MD5 值进行对比。如果两者一致,说明该文件完整,没有出现篡改的情况;如果两者不一致,则文件有损坏或篡改的风险,需要安排相关人员做进一步的查证[5]。如果经查证文件确实损坏,则从其他备份的存储文件中选择MD5 值一致的未损坏文件进行覆盖,从而保证了文件的完整性。
经过系统测试表明,本研究设计的云计算安全系统可以准确识别用户的身份信息,并对不具备访问权限的用户进行禁止登录的限制。同时,该系统还能将明文加密成密文,在解密后进行数据完整性验证,以保证文件信息不会泄露。
在云服务逐渐成为一种“刚需”的背景下,如何保障云存储数据的安全性、完整性,成为用户和云服务供应商共同关注的焦点问题。本研究设计的一种云计算安全系统,可通过Kerberos 模块进行用户身份认证,只有通过认证的用户才能获得系统操作权限,从而杜绝了恶意访问的情况。用户在进入系统后,利用RBAC 模块进行访问燮制,保证了用户只能在权限范围内进行数据的检索、浏览,或者是个人信息的更改等操作,避免了用户越权操作带来的风险。系统会根据用户需求对数据进行加密,每个一段时间自动完成数据完整性验证,通过冗余备份的形式保证了用户数据的完整性。该系统在保证用户数据安全的前提下,还能为用户提供便捷的数据查询、调用等服务,很好地满足了设计要求与使用需求。