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

简介:
3  GnuPG使用实例
1.使用GPG收发数据 
下面详细介绍如何使用GPG收发数据,主要会涉及到数据交换的两种方式:
 数字签名传输(Signed data):发送者使用私钥对数据加密,接收者使用公钥对数据解密。
 数据加密传输(Encrypted data):发送者使用公钥对数据加密,接收者使用私钥对数据解密。
(1)数字签名传输 
发送者使用私钥对数据进行签名,接收者拥有发送者的公钥,对之信任并使用它验证接收数据的完整性。对数据进行签名的最简单的方法是使用clearsign命令,这将使GPG创建一个易读的签名,很适于发送Email。具体命令及执行情况如下,参见图14:
#gpg --clearsign mymessage.txt
 
图14  对文件tansmit.txt生成签名(transmit.txt.asc)
从图14中可以看到:输入密码后,就将生成一个扩展名为.asc的新文件,这里就是transmit.txt.asc。这个文件包含了transmit.txt文件的原始内容以及签名信息(参见图15):
 
图15  文件transmit.txt.asc的内容
当接收者收到包含上述签名的信息或文件时,他可以使用发送者的公钥来验证信息的完整性,具体命令及执行情况如下,参见图16:
#gpg --verify transmit.txt.asc
 
图16  验证数字签名的完整性
(2)数据加密传输
第2种传输方式的目的是为了只让个别人看到发送信息发送者使用其公钥对文件或数据进行加密,接收者使用发送者的私钥对接收数据进行解密。加密命令包含两个部分,一部分指定接收者的Email,另一部分指定要加密的文件。具体命令如前面所述的加密和解密的流程完全一致,这里不再赘述,这里只给出一个加密后的transmit.txt文件的示例,如图17所示。在网络中传输时,即算该文件为黑客或者其他用户截获到,没有私钥,该用户也无法对该文件进行识别,因而具有很高的安全性。
 
图17  加密后的transmit.txt文件
另外,值得一提的是:通过以上方式被加密的信息也可以被签名,方法是在上述命令中再加上一个-s参数。如下命令所示:
#gpg –r < UID > --encrypt -s< file >
那么,在使用-d选项来解密该文件时,将会出现如图18所示的情况,该图的白色部分给出了对签名的检验情况:
 
图18  解密过程中检验数字签名
2.使用GPG验证RPM包
一旦学会使用RPM,很容易安装好它们就不管了,并且忘记了安全性问题。破解者可能会在网络上发布的RPM中植入病毒或木马。rpm命令包括了检查RPM完整性的方法,它同样使用的是GPG。它也可以验证程序包,甚至验证一个文件的内容。
该系统的关键是Fedora Core GPG密钥。它们应默认安装为/etc/gpg/rpm-gpg/RPM-GPG-KEY.*。接着,导入GPG公共密钥。例如,如果从安装CD或DVD导入,应该用下面的命令导入/var/lib/rpm /Pubkeys文件:
# rpm --import /media/disk/RPM-GPG-KEY
(1)验证程序包
现在可以验证RPM程序包是否有真正的Fedora Core签名。例如,在重新编译前想验证内核源RPM的完整性。要在本地目录验证kernel .src RPM的下载版本,可执行下面的命令:
# rpm -K kernel-2.6.15-1.2054_FC5.src.rpm
kernel-2.6.15-1.2054_FC5.src.rpm: (shal) dsa sha1 md5 gpg OK
该命令对照声明的加密方案(包括GPG)来验证内核源RPM的完整性。
(2)验证文件
对照原始配置检查文件是很有用的。例如,想了解计算机上的一个文件是否被破解者修改,需要对比原始配置检查文件的一系列标准属性。与通过RPM程序包安装的每个文件相关联的数据存储在/var/lib/rpm目录下的RPM数据库中。
如果怀疑某个命令运行不正常,可以对照此RPM数据库检查该命令。以mount命令为例。用下面的命令能检查mount的完整性:
# rpm -Vf /bin/mount
如果看不到任何输出,该命令还和原来安装时一样。
如果有人篡改了mount命令,会生成下面的输出:
# rpm -Vf /bin/mount
S.5 T /bin/mount
该命令将检查/bin/mount的9个属性。如果见到表1中的一个字母,说明文件在某一方面不同于原始文件。上面的例子说明文件大小、MD5校验和以及文件修改时间有变化。
表1  验证文件的错误输出
输出 错误原因
S 文件大小不匹配
M 模式(不同的权限和文件类型)
5 MD5校验和错误
L 符号链接不正确
D 设备号错误
U 用户所有权被修改
G 组所有权被修改
T 文件修改时间不匹配
? 不可读的文件
C 配置文件标志
在某些情况下,测试失败不是问题。比如,如果修改了/etc/inittab文件,就会看到一个像是验证失败的结果:
# rpm -Vf /etc/inittab
S.5 T c /etc/inittab
但这个失败也许不表示存在问题。例如,我是在修改了此配置文件中的initdefault变量后得到这个结果的。也就是说,文件大小(S)和校验和(5)发生变化是因为修改了文件的内容,文件修改时间(T)自然也不同于在计算机上安装Fedora Core的时间。
4  GnuPG使用技巧
在使用GnuPG的过程中,需要注意如下几个问题:
 需要根据实际的应用来确定生成密钥的算法、密钥的长度以及密钥的有效期限;
 需要用户通过交互移动鼠标、键盘来保证生成的密钥对的随机性;否则,极有可能被黑客破解;
 公钥的安全性问题是GnuPG安全的核心,一个成熟的加密体系必然要有一个成熟的密钥管理机制配套。公钥体制的提出就是为了解决传统加密体系的密钥分配难保密的缺点。比如网络黑客们常用的手段之一就是“监听”,如果密钥是通过网络传送就太危险了。对GnuPG来说公钥本来就要公开,就没有防监听的问题。但公钥的发布中仍然存在安全性问题,例如公钥的被篡改,这可能是公钥密码体系中最大的漏洞,因为大多数新手不能很快发现这一点。你必须确信你拿到的公钥属于它看上去属于的那个人。
 私钥的保密也是决定性的。相对公匙而言,私钥不存在被篡改的问题,但存在泄露的问题。GnuPG的办法是让用户为随机生成的RSA私钥指定一个口令。只有通过给出口令才能将私钥释放出来使用,用口令加密私钥的方法保密程度和GnuPG本身是一样的。所以私钥的安全性问题实际上首先是对用户口令的保密。当然私钥文件本身失密也很危险,因为破译者所需要的只是用穷举法试探出你的口令了,虽说很困难但毕竟是损失了一层安全性。在这里只用简单地记住一点,要像任何隐私一样保藏你的私钥,不要让任何人有机会接触到它。
 在实际的使用过程中,用户可以将GnuPG软件灵活地运用到网络数据传输,包括电子邮件发送,FTP文件传送等各个应用领域。













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


相关文章
|
1天前
|
安全 JavaScript 前端开发
第十六届山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题—B模块安全事件响应/网络安全数据取证/应用安全
该内容描述了一次网络安全演练,包括七个部分:Linux渗透提权、内存取证、页面信息发现、数字取证调查、网络安全应急响应、Python代码分析和逆向分析。参与者需在模拟环境中收集Flag值,涉及任务如获取服务器信息、提权、解析内存片段、分析网络数据包、处理代码漏洞、解码逆向操作等。每个部分都列出了若干具体任务,要求提取或生成特定信息作为Flag提交。
3 0
|
1天前
|
安全 测试技术 网络安全
2024年山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题-C安全事件响应/网络安全数据取证/应用安全
B模块涵盖安全事件响应和应用安全,包括Windows渗透测试、页面信息发现、Linux系统提权及网络安全应急响应。在Windows渗透测试中,涉及系统服务扫描、DNS信息提取、管理员密码、.docx文件名及内容、图片中单词等Flag值。页面信息发现任务包括服务器端口、主页Flag、脚本信息、登录成功信息等。Linux系统渗透需收集SSH端口号、主机名、内核版本,并实现提权获取root目录内容和密码。网络安全应急响应涉及删除后门用户、找出ssh后门时间、恢复环境变量文件、识别修改的bin文件格式及定位挖矿病毒钱包地址。
2 0
|
1天前
|
安全 测试技术 Linux
2024年山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题-A模块安全事件响应/网络安全数据取证/应用安全
该内容描述了一个网络安全挑战,涉及Windows和Linux系统的渗透测试以及隐藏信息探索和内存取证。挑战包括使用Kali Linux对Windows Server进行服务扫描、DNS信息提取、密码获取、文件名和内容查找等。对于Linux系统,任务包括收集服务器信息、提权并查找特定文件内容和密码。此外,还有对Server2007网站的多步骤渗透,寻找登录界面和页面中的隐藏FLAG。最后,需要通过FTP获取win20230306服务器的内存片段,从中提取密码、地址、主机名、挖矿程序信息和浏览器搜索关键词。
2 0
|
1天前
|
安全 测试技术 网络安全
2024年甘肃省职业院校技能大赛中职组 “网络安全”赛项竞赛样题-C模块安全事件响应/网络安全数据取证/应用安全
涉及安全事件响应和应用安全测试。需使用Kali对Windows Server2105进行渗透测试,包括服务扫描、DNS信息提取、管理员密码、文件名与内容、图片中单词等。另外,需收集win20230305的服务器端口、页面信息、脚本、登录后信息等。在Linux Server2214上,要获取SSH端口、主机名、内核版本并进行提权操作。网络安全响应针对Server2228,涉及删除后门用户、查找SSH后门时间、恢复环境变量、识别篡改文件格式和矿池钱包地址。最后,对lin20230509进行网站渗透,获取端口号、数据库服务版本、脚本创建时间、页面路径、内核版本和root目录下的flag文件内容
3 0
|
5天前
|
存储 安全 网络安全
构筑安全之盾:云计算环境下的网络安全与信息保护策略
【4月更文挑战第19天】随着云计算技术的飞速发展,企业和个人越来越依赖于云服务来存储、处理和交换数据。然而,这种便利性背后隐藏着潜在的安全风险。本文深入探讨了在云计算背景下,如何通过综合性的安全措施和策略来强化网络安全防护,确保数据的完整性、可用性和机密性。我们将分析当前面临的主要安全挑战,并基于最新的技术进展提出相应的解决方案,以期达到有效防御外部威胁和内部漏洞的目的。
16 4
|
5天前
|
运维 监控 安全
等保合规:保护企业网络安全的必要性与优势
等保,全称为“信息安全等级保护”,是国家强制性标准,要求特定行业和企业通过安全评估确保网络安全。等保涉及物理安全(如门禁、人员管理、设备保护等)、网络安全、主机安全、应用与数据安全、制度与人员安全、系统建设管理及系统运维管理等七个方面,确保信息系统的安全和可靠性。企业进行等保合规是为了满足《网络安全法》等法律法规要求,防止网络数据泄露,避免罚款。等保工作包括定级备案、安全测评、建设整改等,企业需建立良好的安全保护生态,确保网络安全。通过等保,企业能构建有效的安全保障体系,防御系统入侵,保障用户信息,提升故障修复效率,并符合法律义务。
|
5天前
|
人工智能 监控 安全
构筑安全之盾:云计算环境下的网络安全策略与实践
【4月更文挑战第19天】 在数字化转型的浪潮中,云计算已成为企业IT架构的核心组成部分。然而,随着云服务使用的普及化,网络安全问题亦变得日益复杂和挑战性。本文将深入探讨如何在云计算环境中实施有效的网络安全策略,保障数据的安全性和完整性。我们将从云服务模型出发,分析不同服务模型下的安全威胁,并提出相应的防护措施。文章还将讨论信息安全管理的最佳实践,包括加密技术、身份验证、访问控制以及安全监控等方面,旨在为企业提供一套全面的云计算安全防护框架。
|
7天前
|
运维 安全 Cloud Native
安全访问服务边缘(SASE):网络新时代的安全与连接解决方案
SASE(安全访问服务边缘)是一种云基安全模型,结合了网络功能和安全策略,由Gartner在2019年提出。它强调身份驱动的私有网络、云原生架构和全面边缘支持,旨在解决传统WAN和安全方案的局限性,如高延迟和分散管理。SASE通过降低IT成本、提升安全响应和网络性能,应对数据分散、风险控制和访问速度等问题,适用于移动办公、多分支办公等场景。随着网络安全挑战的增加,SASE将在企业的数字化转型中扮演关键角色。
|
9天前
|
SQL 安全 Java
Java安全编程:防范网络攻击与漏洞
【4月更文挑战第15天】本文强调了Java安全编程的重要性,包括提高系统安全性、降低维护成本和提升用户体验。针对网络攻击和漏洞,提出了防范措施:使用PreparedStatement防SQL注入,过滤和转义用户输入抵御XSS攻击,添加令牌对抗CSRF,限制文件上传类型和大小以防止恶意文件,避免原生序列化并确保数据完整性。及时更新和修复漏洞是关键。程序员应遵循安全编程规范,保障系统安全。
|
12天前
|
安全 算法 网络协议
保障数据安全:网络安全漏洞与加密技术探析
网络安全漏洞的存在已成为当今互联网世界中的一大隐患,而加密技术的应用则被视为保障信息安全的有效手段。本文将就网络安全漏洞的成因、加密技术的原理以及提升安全意识的重要性进行探讨,旨在加深读者对网络安全与信息安全的认识,为构建更安全的网络环境贡献一份力量。
16 2