不安全网络中的数据安全传输利器——GnuPG(上)

本文涉及的产品
数据安全中心,免费版
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介:
不安全网络中的数据安全传输利器——GnuPG
李洋
1  GnuPG简介
随着网络与计算机技术的发展,数据存储与数据交换的安全性、完整性和一致性已经变得越来越重要。如何保证在不安全的网络上传输数据的安全性成为网络信息安全界研究的热点和经典问题。本文将通过具体的加解密实例向用户来介绍一种Linux下的基于PGP(Pretty Good Privacy)机制的加密及签名软件——GnuPG,包括密钥生成、公钥导出、加密文件、解密文件、对文件进行数字签名等重要步骤,通过它可以极大地保证网络用户传输及使用数据的安全性。并且,用户可以通过灵活运用本文的技术来对网络传送的文档、电子邮件等进行安全传输。
PGP(Pretty Good Privacy),是一个基于RSA公钥加密体系的邮件加密软件。它不但可以对用户的数据保密以防止非授权者阅读,还能对你的邮件加上数字签名从而使收信人确信邮件是由你发出。让人们可以安全地和从未见过的人们通讯,而事先不需要任何保密的渠道用来传递密钥。PGP采用了审慎的密钥管理,一种RSA和传统加密的杂合算法,用于数字签名的邮件文摘算法,加密前压缩等。它功能强大,速度很快。
PGP的创始人是美国的PhilZimmermann。他创造性地把RSA公钥体系的方便和传统加密体系的高速度结合起来,并且在数字签名和密钥认证管理机制上有非常巧妙的设计。因此PGP成为几乎最流行的公钥加密软件包。其中,RSA(Rivest-Shamir-Adleman)算法是一种基于“大数不可能质因数分解假设”的公钥体系。简单地说就是找两个很大的质数,一个公开给世界,一个不告诉任何人。一个称为“公钥”,另一个叫“私钥”。这两个密钥是互补的,就是说用公钥加密的密文可以用私钥解密,反过来也一样。
具体地说,GnuPG是实现安全通讯和数据存储的一系列工具集,可以做加密数据和做数字签名之用。在功能上,它和PGP是一样的。由于PGP使用了IDEA专利算法,所以使用PGP会有许可证的麻烦。但是GnuPG并没有使用这个算法,所以对用户来说使用GnuPG没有任何限制。GnuPG使用非对称加密算法,安全程度比较高。所谓非对称加密算法,就是每一个用户都拥有一对密钥:公钥和私钥。其中,密钥由用户保存,公钥则由用户尽可能地散发给其他人,以便用户之间的通讯。该软件可以从网站 http://www.gnupg.org/上进行下载安装。
GnuPG支持的算法有如下:
 公钥:RSA, RSA-E, RSA-S, ELG-E, DSA
 对称加密:3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH
 散列:MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512
 压缩:不压缩, ZIP, ZLIB, BZIP2
其使用的基本语法为:gpg [选项] [文件名]
其实现的功能包括签名、检查、加密或解密,默认的操作依输入数据而定。
2  详细使用方法
1.生成密钥对
使用GnuPG之前必须生成密钥对(公钥和私钥),参数选项"--gen-key"可以生成密钥对。可按如下步骤操作,如图1、图2所示。在图1中,首先用户需要注意有如下几个关键的步骤:
(1)GnuPG要求输入要生成的密钥的算法:GnuPG可以生成多种密钥对,这里有三种选择。DSA密钥是生成证书的最基本的密钥格式。ElGamal密钥对可以用来加密。第二种选择与第一种相似,但是仅仅生成DSA密钥对,第三种选择可以生成供签证和加密使用的ElGamal密钥对。对大多数用户来说,使用缺省的选择是非常方便的。
(2)选择密钥的长度,DSA密钥的长度在512位~1024位之间,Elmagal密钥的长度则没有限制。生成一个很长的密钥既有优点也有缺点,长的密钥无疑安全性非常高,但是会导致加密的过程变得缓慢,另外,密钥过长,也会使证书的长度变大。缺省的密钥长度1024位已经够用了,确定了密钥的长度之后,就不能再改变它。
(3)需要指定这个密钥对的有效日期,如果选择了生成ElGamal或者 DSA密钥对,它们需要指定密钥对的失效日期。对于大多数用户来说,密钥对没有失效期限是可以的。虽然在密钥对产生以后,可以改变它的有效日期,但是仍要谨慎选择这个参数。因为公钥发送出去以后,很难再改变其他用户拥有的您的公钥。
 
图1  生成密钥对的前3个关键步骤
完成上述步骤后,用户还需要注意如图5所示的后续几个关键步骤:
(4)用户需要指定一个用户ID来标识选择的密钥,GnuPG可以根据用户的真实姓名、注释和E-mail地址产生一个用户ID。在图2中,我们使用姓名(liyang),电子邮件地址( liyang@tsinghua.com)和注释( liyang@tsinghua),并设定了密钥的密码,来完成了该步骤。这个口令的目的是用来加密用户的私钥,这样,即使有人偷走了用户的私钥,没有这个口令,也无法使用,这个口令的长度没有限制,但是,正如我们所知道的,一个短的口令是很容易被破解的。同样,如果用户的口令是一个单词,也很容易被破解。
(5)在产生密钥的过程中,GnuPG需要得到一些随机的数字。这些随机的数字可以从用户的系统当前状态中得到,所以这时候,用户可以随机敲一下键盘或者移动鼠标,来产生高质量的随机数。图2中系统就明显地要求笔者尽量多产生一些随机数字来生成密钥,以保证质量。
 
图2  生成密钥的后续2个关键步骤示意
完成了上述5个关键步骤后,如果系统显示如图3所示的成功界面,则生成密钥成功,否则用户需要再重复如上5个步骤。
 
图3  生成密钥成功
2.为密钥建立吊销证书
当用户的密钥对生成之后,用户应该立即做一个公钥回收证书,如果忘记了私钥的口令或者私钥丢失或者被盗窃,用户可以发布这个证书来声明以前的公钥不再有效。生成回收证书的选项是"--gen-revoke"。具体使用的命令是:
# gpg --output revoke.asc --gen-revoke mykey 
其中mykey 参数是可以表示的密钥标识,产生的回收证书放在revoke.asc文件里,一旦回收证书被发放,以前的证书就不能再被其他用户访问,因此以前的公钥也就失效了。具体的过程如图4至6所示。在该过程中我们为用户liyang的密钥建立了一份吊销证书,在建立过程中需要依次输入吊销理由和为密钥设定的密码才能成功建立:
 
图4  输入吊销理由
 
图5  输入为密钥建立的密码
 
图6  成功建立吊销证书
3.显示密钥列表
完成上述操作后可以使用 --list-keys 选项列出我们生成的密钥,如图7所示:
 
图7  密钥列表
4.输出公钥
用户可以输出您的公钥供您的主页使用,也可以把它放在密钥服务器上,当然,还可以使用于其他的途径。在使用此公钥之前用户首先要导出它。选项--export可以实现这个功能,在使用这个选项时,还必须使用附加的选项指明用户要输出的公钥。
下面的命令表示以二进制格式输出公钥:
# gpg --output pubring.gpg --export  samsunglinux@minigui.org
如下命令表示以ASCII字符格式输出:
#gpg --output pubring.gpg --export--armor> liyang_public-key.asc
5.导入公钥
用户可以把从第三方的公钥数据库中得到的公钥导入自己的私有数据库,在与他人进行通讯时使用。命令如下:
#gpg --import < filename >
其中,参数filename为公钥文件。
图8给出了将用户liyang的公钥导入到用户samsunglinux自己的私有数据库的例子:
 
图8  导入公钥示例
6.确认密钥
导入密钥以后,使用数字签名来验证此证书是否合法。查看数字签名使用 --fingerprint 选项。其命令如下所示:
#gpg --fingerprint < UID > 
其中,UID为用户要验证的公钥。图9给出了验证证书的例子:
 
图9  确认密钥示意
7.密钥签名
导入密钥之后,可以使用 --sign-key 选项进行签名,签名的目的是证明用户完全信任这个证书的合法性。其命令格式为:
# gpg --sign-key < UID > 
其中,UID 是要签名的公钥。图10为使用该命令的结果示意:
 
图10  确认密钥示意
8.检查签名
用户可以使用 --check-sigs选项来检查在上面对密钥所作的签名。其命令格式为:
# gpg --check-sigs < UID >
这个选项可以列出此密钥文件的所有的签名。图11给出了相应的示意:
 
图11  检查签名示意
9.加密和解密
使用GnuPGP加密和解密一个文件非常容易,如果用户要给对方用户发送一个加密文件,可以使用对方用户的公钥加密这个文件,并且这个文件也只有对方用户使用自己的密钥才可以解密查看。
加密一个文件可以使用下面的指令
#gpg –r < UID > --encrypt < file > 
其中,UID是对方的公钥,file为要加密的文件。
对应地,如果用户要解开一个其他用户发给您的文件可以使用下面的指令:
#gpg -d < file >
其中,file是要解密的文件。解密过程中,GnuPG会提示用户输入使用密钥所需要的口令,也就是在产生私钥时用户所输入的口令,否则,该文件将无法正常解密和为用户进行使用。图12和图13分别显示了用户samsung对文件gpg.conf进行加密传输,用户liyang对该加密文件gpg.conf.gpg进行解密的过程。
 
图12  用户samsunglinux对文件gpg.conf进行加密
 
图13  用户liyang对文件进行解密并浏览(白色部分)












本文转自samsunglinuxl51CTO博客,原文链接: http://blog.51cto.com/patterson/237646 ,如需转载请自行联系原作者




相关文章
|
7天前
|
存储 安全 网络安全
云计算与网络安全的融合之路:技术演进与安全挑战
【9月更文挑战第10天】在数字化浪潮的推动下,云计算成为企业信息技术架构的核心。随着服务模型的多样化和应用场景的扩展,云服务的安全性问题日益凸显。本文从云计算的基本概念出发,探讨了网络安全在云计算环境中的重要性,分析了云服务面临的安全威胁,并提出了相应的防护措施。通过深入浅出的方式,旨在为读者提供云计算与网络安全融合的全景视图,强调在享受云计算带来的便利性的同时,如何构建坚固的安全防护体系。
|
5天前
|
安全 网络安全 数据安全/隐私保护
智能家居安全:保护您的家庭免受网络威胁
本文探讨了智能家居设备在现代生活中的重要性,并强调了保障这些设备免受网络攻击的必要性。通过分析常见的安全风险和提出相应的防护措施,帮助读者了解如何确保家庭网络安全。
|
3天前
|
存储 安全 算法
守护网络空间的钥匙:网络安全与信息安全深度剖析
本文旨在深入探讨网络安全与信息安全领域的核心议题,包括网络安全漏洞、加密技术及安全意识等关键方面。通过分析这些领域的最新进展和技术细节,旨在为读者提供一个全面而深入的理解框架,帮助构建更加安全可靠的网络环境。
12 3
|
5天前
|
人工智能 安全 大数据
守护网络疆域:探索网络安全漏洞、加密技术与安全意识的融合之道
在这个数字时代,网络安全与信息安全已成为全球关注的焦点。本文深入探讨了网络安全漏洞的本质、加密技术的关键作用以及提升公众安全意识的紧迫性。通过分析真实案例,揭示网络攻击的复杂手段和防护策略的不断演进,强调了构建全方位网络安全防御体系的重要性。同时,倡导个人用户和企业应采取积极措施,包括定期更新软件、使用复杂密码和多因素认证,以增强网络空间的安全性。本文旨在启发读者思考如何在快速变化的技术环境中保持警觉,共同维护一个安全、稳定的网络世界。
|
3天前
|
安全 物联网 网络安全
智能家居安全:保护您的智能设备免受网络威胁##
在现代科技迅速发展的时代,智能家居设备已经深入人们的生活。然而,随着便利性增加的同时,这些设备也面临着越来越多的网络安全威胁。本文将探讨如何保护您的智能家居设备免受黑客攻击,并介绍几种常见的安全措施和最佳实践。通过采取适当的预防措施,您可以确保家庭网络的安全性,保护个人隐私和数据不受侵害。 ##
|
5天前
|
存储 安全 网络安全
云计算与网络安全:构建安全的数字基石##
本文探讨了云计算和网络安全之间的关系,重点介绍了云服务、网络安全和信息安全等关键技术领域。通过分析这些技术的基本原理和应用案例,揭示了它们在现代信息技术中的重要性。同时,提出了一些实用的建议,以帮助企业和个人更好地应对日益严峻的网络安全挑战。 ##
|
6天前
|
监控 安全 网络安全
云端的守护者:云计算中的网络安全挑战与策略
在数字时代的浪潮中,云计算以其灵活性和可扩展性成为了企业信息技术架构的核心。然而,随之而来的网络安全问题也日益凸显。本文将探讨云计算环境下的网络安全挑战,分析云服务模型的安全考量,并提出有效的安全防御措施。通过深入浅出的方式,旨在为读者提供一套清晰的云计算网络安全指南,确保数据的安全与隐私保护,同时促进企业的健康发展。
|
4天前
|
云安全 安全 网络安全
探索云计算与网络安全的共生之道在数字化浪潮席卷全球的今天,云计算作为信息技术的一大革新,正重塑着企业的运营模式与服务交付。然而,随着云服务的普及,网络安全与信息安全的挑战也日益凸显,成为制约其发展的关键因素。本文旨在深入探讨云计算环境下的网络安全问题,分析云服务、网络安全及信息安全之间的相互关系,并提出相应的解决策略,以期为构建一个更安全、可靠的云计算生态系统提供参考。
本文聚焦于云计算环境中的网络安全议题,首先界定了云服务的基本概念及其广泛应用领域,随后剖析了当前网络安全面临的主要威胁,如数据泄露、身份盗用等,并强调了信息安全在维护网络空间秩序中的核心地位。通过对现有安全技术和策略的评估,包括加密技术、访问控制、安全审计等,文章指出了这些措施在应对复杂网络攻击时的局限性。最后,提出了一系列加强云计算安全的建议,如采用零信任架构、实施持续的安全监控与自动化响应机制、提升员工的安全意识教育以及制定严格的合规性标准等,旨在为云计算的安全可持续发展提供实践指南。
15 0
|
4天前
|
安全 网络安全 API
云计算与网络安全:构建安全的数字天空##
随着云计算技术的飞速发展,越来越多的企业和个人选择将数据和应用程序迁移到云端。然而,随之而来的网络安全问题也日益凸显,特别是云服务中的信息安全成为了亟待解决的重要课题。本文将探讨云计算与网络安全的关系,分析云服务中常见的安全威胁,并提出相应的防护措施。通过深入浅出的讲解,帮助读者了解如何在享受云计算带来的便利的同时,保障数据的安全性和隐私性。 ##
10 0
|
6天前
|
存储 安全 网络安全
云计算与网络安全:技术演进中的安全挑战与对策
随着云计算技术的飞速发展,企业和用户越来越依赖于云服务以实现数据存储、处理和分析。然而,云服务的广泛应用也带来了前所未有的网络安全风险。本文从云计算的核心概念出发,深入探讨了网络安全的重要性,并分析了当前云环境下面临的主要安全威胁。通过实际案例,本文展示了如何实施有效的安全策略来保护云环境,旨在为读者提供一套全面的云计算网络安全解决方案。