(罗定职业技术学院信息工程系,广东罗定 527200)
随着网络化、信息化水平不断提升,人们越来越关注信息安全问题.若信息安全得不到保障,不仅会影响个人隐私的保护、企业机构的业务开展,甚至会影响社会稳定和国家安全.然而,勒索病毒、数据泄露等威胁信息安全的事件时有发生,如何保护文件在传输、管理中的安全,成为人们关注的重点.
PGP(Pretty Good Privacy)是一款支持单向散列函数算法、对称密码算法、公钥密码算法的加密软件,能够有效防止信息在传输过程中被窃取或篡改,广泛应用于安全电子邮件传输、信息加密等领域.例如,吴培飞以PGP 8.1为例,阐述了基于PGP 的安全电子邮件系统的实现过程[1];赵楠楠利用PGP 对电子邮件内容和FTP 传输的文件进行加密,保障通讯的安全性[2];秦一鸣为保护手机用户的隐私,利用PGP 对称加密算法设计并开发了一款基于Android 手机的短信加密软件,用来加密手机短信[3];胡军针对PGP 的磁盘加密功能,研究了如何恢复PGP加密磁盘的口令[4].
本文针对文件的安全需求,结合PGP 的功能特点,提出一种基于PGP 的文件安全传输与管理方案,实现文件的安全传输和安全管理.
文件在传输过程中面临的主要安全威胁包括窃听、篡改、伪造、行为否认等,在管理过程中面临的主要安全威胁有非授权访问和非法篡改.保障文件的传输安全和管理安全,就是要保障文件在传输和管理中的保密性、完整性和不可否认性.
保密性是指在传输和管理过程中,文件信息不被泄露给非授权用户,即使非授权用户获得文件也无法得知文件中的具体内容,可以通过加密技术对文件进行加密来保障其保密性.完整性是指文件内容不被篡改、伪造,合法用户能够识别出篡改后的文件,可以通过哈希算法对文件进行完整性校验,验证文件是否被篡改或伪造.不可否认性是指用户在事后无法否认曾经对文件进行过生成、修改、发送、接收、存储等操作,可以通过数字签名技术,防止用户对文件操作的抵赖或欺骗.
PGP 加密软件结合了散列算法、数据压缩技术、对称加密技术、非对称加密技术、数字签名技术,能防止文件在传输过程中被窃取或篡改,有效减少信息泄露和信息诈骗的风险.
2.1.1 密钥功能
用户可以创建自己专属的密钥对,并对密钥进行管理,包括导入、导出密钥、验证密钥有效性等.密钥对包括一个公钥和一个私钥,用于对文件进行加密、解密、签名、验证等操作.
2.1.2 邮件功能
PGP 提供邮件加密和签名功能,能保障邮件在传输过程中的保密性和发件人、收件人身份的真实性.
2.1.3 压缩功能
用户可以将一个或多个文件(文件夹)加密并压缩成一个PGP ZIP 文件,然后把该PGP ZIP 文件通过网络传输给他人,或存储在磁盘中.只有合法授权者才能打开查看该压缩文件.
2.1.4 加密磁盘功能
用户可以创建自己专属的加密磁盘,用于存放需要保密的文件.文件被放入加密磁盘后会自动被加密,只有合法授权者才能访问加密磁盘中的数据.用户可以对PGP 磁盘执行创建、装配、存储、卸载等操作.
2.1.5 安全删除功能
在Windows 系统中通过“Delete”或“Shift+Delete”命令来删除文件,并无法将文件真正从磁盘中删除,已删除文件存在被不法分子恢复窃取的风险.PGP Shredder 能将待删除的文件彻底粉碎,粉碎后无法恢复,实现文件的安全删除.
2.1.6 自解密存档功能
用户可以使用PGP Self-Decrypting Archive(SDA)功能添加加密文件,加密时需要输入口令.在没有安装PGP 软件的Windows 环境下打开该加密文件时需要输入与加密时相同的口令.PGP SDA 功能方便用户在没有安装PGP 软件的计算机上打开加密文件.
2.1.7 网络共享加密功能
利用PGP NetShare 功能在网络中添加共享文件夹,并通过添加用户的公钥来设置哪些用户具有访问权限.共享文件夹被PGP 加密,只有授权用户才能访问.
结合文件的安全传输需求以及PGP 的功能特点,提出一种基于PGP 的文件传输方案,保障文件的保密性、完整性和不可否认性,实现文件的安全传输.
2.2.1 方案设计
图1 基于PGP 的文件安全传输
基于PGP 的文件安全传输过程如图1 所示,具体步骤如下:
(1)通信双方分别创建各自的PGP 密钥.密钥类型通常选择RSA,密钥包括一个私钥SK和一个公钥PK,其中PK 是公开的,SK 是保密的,一对PK 和SK 完全不同但又完全匹配.用户在创建密钥时可以设置密钥的高级属性,包括密钥长度、密钥期限、加密算法类型、哈希算法类型、压缩算法类型等.
(2)为保障文件在传输过程中的保密性,发送文件前需要对文件进行加密操作.PGP 使用对称加密技术对文件进行加密,支持的算法包 括 AES、CAST、TripleDES、IDEA、Twofish.AES算法具有安全性好、加解密效率高等特点,是对称密钥加密中最流行的算法之一[5].PGP 把AES 算法设置为首选的加密算法.在对称加密中,加密和解密使用同一个会话密钥,该会话密钥通过伪随机数生成器生成.发送方利用会话密钥对压缩后的文件进行对称加密操作,得到文件密文,然后把会话密钥和文件密文一起发送给接收方.
(3)为保障会话密钥在传输过程中的保密性,利用非对称加密技术对会话密钥进行加密.RSA 算法是应用最广泛的非对称加密算法,具有安全性高、易于实现等特点[6].PGP 将RSA 算法作为传送会话密钥的标准算法,发送方以接收方的PK 为密钥,对会话密钥进行RSA 加密,得到密钥密文.
(4)为保障文件在传输过程中的完整性,利用哈希函数得到文件的散列值.PGP 支持的哈希算法包括SHA-1、SHA-2-256、SHA-2-384、SHA-2-512 等,用户可以选择其中一种作为首选的哈希算法.为验证文件发送者的身份真实性,保障文件的不可否认性,利用数字签名技术对文件的散列值进行签名.PGP 将RSA算法作为数字签名的标准算法.为提高签名的效率,选择对文件的散列值进行签名(RSA 加密),而不是直接对文件进行签名.以发送者的SK 作为数字签名的密钥,得到签名信息.
(5)发送方把文件密文、密钥密文、签名信息通过网络传输给接收方.接收方对数据的处理过程是发送方对数据处理过程的逆过程.接收方首先用自己的SK 对密钥密文进行RSA解密,得到会话密钥;然后利用会话密钥解密文件密文并进行解压缩处理,得到接收文件.为验证发送方身份的真实性以及接收文件的完整性,利用发送者的PK 对签名信息进行签名验证(RSA 解密),得到验证信息(发送文件的散列值);把接收文件进行同样的哈希运算,得到接收文件的散列值,并与发送文件的散列值进行对比,若一致,则说明接收文件是完整的且发送方的身份是真实的.
2.2.2 具体应用
A 和B 都是PGP10.1.1 的用户,A 的公钥为PKA,B 的公钥为PKB,A 和B 都知道对方的公钥,A 要把文件file1 通过网络安全传输给B.A 以PKB 为密钥,对file1 进行加密,并用自己的私钥SKA 对file1 进行数字签名,把经过加密和签名的文件发送给B.B 收到文件后,以PKA为密钥对文件进行签名校验,并用自己的私钥SKB 对文件进行解密,得到解密校验后的文件.加密签名和解密校验的结果如图2 所示.
图2 加密签名和解密校验的结果
加密后的文件无法被用户B 以外的其他用户正确解密,同时用户A 也无法抵赖发送文件的事实,从而实现了文件的安全传输.
文件管理包括文件存储管理、文件共享管理以及文件删除管理.为保障文件在管理过程中的安全性,提出一种基于PGP 的文件安全管理方案.
2.3.1 方案设计
基于PGP 的文件安全管理过程如图3 所示.
图3 基于PGP 的文件安全管理
(1)在文件存储管理中,通过PGP 压缩功能把一个或多个文件(文件夹)加密并压缩成一个PGP ZIP 文件并存储在磁盘中,只有合法授权者才能打开查看该压缩文件.通过PGP Disk 功能创建加密磁盘,用于存放需要保密的文件,只有合法授权者才能访问加密磁盘中的数据.通过加密压缩和加密磁盘功能,实现文件的安全存储.
(2)在文件共享管理中,用户可以通过PGP NetShare 功能,在局域网中添加共享文件夹,并通过添加其他用户的公钥来指定拥有访问权限的用户.只有拥有访问权限的用户才能访问该共享文件夹,实现文件的安全共享.
(3)在文件删除管理中,通过PGP Shredder功能把需要删除的文件彻底粉碎,粉碎后的文件无法被恢复,实现文件的安全删除.
2.3.2 具体应用
用户A 要在本地计算机上存储一个机密文件file1,可以采取两种存储方法.
(1)利用PGP10.1.1 把file1 进行加密压缩,把加密压缩后的文件存储在磁盘中.在压缩时可以添加多个授权访问用户的公钥,同时可以对压缩文件进行数字签名,得到一个PGP ZIP 文件.解压缩时需要用到用户的私钥和口令,只有授权用户才能解压查看该压缩文件,如图4 所示.
图4 PGP 压缩与解压缩
图5 PGP 加密磁盘
(2)利用PGP 10.1.1 创建一个加密磁盘PGP_disk,把机密文件file1 存放在PGP_disk中.授权用户可以对PGP_disk 执行装载、存储、卸载等操作.只有授权用户才能装载磁盘,装载磁盘时需要验证用户的私钥和口令,如图5 所示.磁盘装载成功后才能读取磁盘中的数据,当磁盘被卸载后,磁盘中的数据是安全的.
本文分析了文件的安全需求和PGP 加密软件的基本功能,提出了基于PGP 的文件安全传输与管理方案,并以PGP 10.1.1 为例阐述了方案的具体应用.结果表明,该方案能实现文件的安全传输、安全存储、安全共享及安全删除,具有一定的实用价值.
在本方案中,文件的安全性取决于用户私钥和口令的保密性、公钥的安全交换和校验.用户必须保管好自己的私钥和口令,不泄露给其他人.用户可以把自己的公钥发布到PGP 全球名录上,由PGP 全球名录对公钥进行校验、存储和分发,实现公钥的安全交换和校验.若用户所在的网络不能访问PGP 全球名录服务器,可通过在局域网中搭建公钥服务器的方式实现局域网用户公钥的安全交换和校验,此问题有待进一步研究和解决.