当前位置: 首页 > 科技观察

GnuPG-GNUPGP使用指南

时间:2023-03-15 16:36:22 科技观察

随着网络和计算机技术的发展,数据存储和数据交换的安全性变得越来越重要,长期以来,加密技术一直被用于数据存储和数据交换。为保证网络数据交换时双方身份的正确性,签证系统也日趋成熟。GnuPG是一套用于加密数据和制作证书的工具,其功能类似于PGP。但PGP使用了很多专利算法,属于“臭名昭著”的美国加密出口限制。GnuPG是GPL软件,没有使用任何专利加密算法,因此使用起来更加自由。具体来说,GnuPG是一系列用于安全通信和数据存储的工具集,可以用来加密数据和做数字签名。在功能上,它与PGP相同。由于PGP使用的是IDEA专利算法,所以使用PGP时会遇到license的麻烦。但是GnuPG并没有使用这个算法,所以对用户使用GnuPG没有任何限制。GnuPG采用非对称加密算法,具有较高的安全性。所谓非对称加密算法就是每个用户都有一对密钥:公钥和私钥。其中,密钥由用户保管,公钥由用户尽可能分发给其他人,以便其他人与您进行通信。下载地址:http://down.51cto.com/data/148107>>去网络安全工具宝箱看其他安全工具----GnuPG主要有以下特点:----完全兼容PGP----不使用任何专利算法,无专利问题----遵循GNUPublicLicense----兼容OpenPGP----使用广泛,安全性高于PGP2,可以加密校验和和PGP5.x格式信息--支持多种加密算法----支持扩展模块----用户ID遵循标准结构----多语言支持(暂不支持中文)----在线帮助系统----支持匿名信息接收----支持HKP密钥服务----有多种GUI界面支持----GnuPG的源代码可以在http://www.gnu.org/download.html获得。GnuPG的安装----首先获取GnuPG的源代码,然后进行如下操作:----1.解压源代码包:----[kerberos@dev9]tarxvzfgnupg-version。tar.gz----[kerberos@dev9]cdgnupg-version----[kerberos@dev9gnupg-version]./configure----2.编译源码----[kerberos@dev9gnupg-version]make----3.检查生成的工具----[kerberos@dev9gnupg-version]makecheck----4.准备安装----[kerberos@dev9gnupg-version]su----5.安装工具包----[root@dev9gnupg-version]makeinstallGnuPG命令使用----1.生成密钥对----使用GnuPG前必须生成密钥对(公钥和私钥),参数选项“--gen-key”可以生成密钥对。请按照以下步骤操作。[root@dev9/]#gpg--gen-keygpg(GnuPG)1.0.2;版权所有(C)2000FreeSoftwareFoundation,Inc.此程序绝对不提供任何保证。这是免费软件,欢迎您在特定条件下重新分发它。详见文件COPYING.gpg:/root/.gnupg:directorycreatedgpg:/root/.gnupg/options:newoptionsfilecreatedgpg:你必须再次启动GnuPG,这样它才能读取新的选项文件并重新使用上面的指令。gpg(GnuPG)1.0.2;版权所有(C)2000FreeSoftwareFoundation,Inc。此程序不提供任何担保。这是免费软件,欢迎您在特定条件下重新分发它。详见文件COPYING.gpg:/root/.gnupg:已创建的目录gpg:/root/.gnupg/options:已创建新的选项文件gpg:你必须再次启动GnuPG,以便它可以读取新的选项文件请选择什么样的密钥您想要:(1)DSA和ElGamal(默认)(2)DSA(仅签名)(4)ElGamal(签名和加密)您的选择?1DSA密钥对将有1024位。即将生成一个新的ELG-E密钥对。最小密钥大小为768位默认密钥大小为1024位建议的最高密钥大小为2048位您想要什么密钥大小?(1024)2048你真的需要这么大的密钥吗?yRequestedkeysizeis2048bitsPleasespecifyhowlongthekeyshouldbevalid.0=keydoesnotexpire=keyexpiresinndaysw=keyexpiresinnweeksm=keyexpiresinnmonthsy=keyexpiresinnyearsKeyisvalidfor?(0)0Keydoesnotexpireall这是否正确(是/否)?y----然后你需要一个用户ID来标识你的密钥,GnuPG可以根据你的真实姓名、评论和E-mail地址生成一个用户ID真实姓名:kerberos邮箱地址:kerberos@minigui.org评论:Unix/Linux顾问你选择了这个USER-ID:“kerberos(Unix/Linux顾问)”更改(N)ame、(C)omment、(E)mail或(O)kay/(Q)uit?oYouneedaPassphrasetoprotectyoursecretkey.Enterpassphrase:[enterapassphrase]----在生成密钥的过程中,GnuPG需要得到一些随机数。这些随机数可以从你的系统当前状态中获取,所以这时候你可以随意敲击键盘或者移动鼠标来生成高质量的随机数。----GnuPG然后要求您输入要生成的密钥的算法。请选择您想要的密钥类型:(1)DSA和ElGamal(默认)(2)DSA(仅签名)(4)ElGamal(签名和加密)您的选择?----GnuPG可以生成多种密钥对,这里有3个选项。DSA密钥是用于生成证书的最基本的密钥格式。ElGamal密钥对可用于加密。第二个选项与第一个类似,但只生成DSA密钥对,第三个选项可以生成ElGamal密钥对,用于签证和加密。对于大多数用户来说,使用默认选择是非常方便的。----下面要选择密钥的长度,DSA密钥的长度在512位到1024位之间,Elmagal密钥的长度不限。即将生成新的ELG-E密钥对。最小密钥大小为768位默认密钥大小为1024位建议的最高密钥大小为2048位您想要什么密钥大小?(1024)----生成一个很长的密钥有利也有弊,长密钥无疑是非常高的,但是会减慢加密过程。另外,如果密钥太长,也会增加证书的长度。----默认密钥长度1024位就足够了。密钥长度确定后,不可更改。----***,您需要指定此密钥对的有效日期。如果您选择生成一个ElGamal或DSA密钥对,他们需要指定密钥对的有效日期。请指定密钥的有效期0=密钥不过期=密钥在n天后过期w=密钥在n周后过期m=密钥在n个月后过期y=密钥在n年后过期密钥有效吗?(0)----对于大多数用户来说,密钥对没有有效期是可以的。虽然密钥对的有效期在生成后可以更改,但是这个参数还是要慎重选择。因为公钥发出后,其他用户拥有的你的公钥是很难改变的。----现在您需要提供一个用户ID。当您申请签证时,公钥需要与用户ID绑定,以证明您的真实身份。----您需要一个用户ID来识别您的密钥;软件根据真实姓名、评论和电子邮件地址构造用户ID,格式如下:----"kerberos(Linuxconsultant)"----真实姓名:您的用户名----电子邮件address:Enteryouremailaddress----Comment:Enteracomment----***,GnuPG需要私钥,由用户Save提供----Enterpassphrase:输入密钥密码----这个密码的作用是加密你的私钥,这样即使有人偷了你的私钥,没有这个密码也无法使用,这个密码的长度没有限制,但是,据我们所知,一个短密码很容易被破解。同样,如果您的密码是一个单词,也很容易被破解。----2.证书吊销----当你的密钥对生成后,你应该立即制作一个公钥吊销证书。如果您忘记了您的私钥密码或您的私钥丢失或被盗,您可以颁发此证书来声明之前的公钥不再有效。生成吊销证书的选项是“--gen-revoke”。----[root@dev9/]#gpg--outputrevoke.asc--gen-revokemykey----其中参数mykey为可以表示的密钥标识,生成的恢复证书放在revoke.asc文件,一旦被吊销的证书签发,之前的证书就不能再被其他用户访问,所以之前的公钥就失效了。----3.Listofkeys----Listkeysusingthe--list-keysoption----[root@dev9/]#gpg--list-keys----4.导出公钥----您可以导出您的公钥在您的主页上使用,或者放在密钥服务器上,当然也可以用在其他方面。在您可以使用此公钥之前,您必须先将其导出。选项--export可以实现这个功能,使用这个选项时,还必须使用附加选项来指定要导出的公钥。----下面的命令表示以二进制格式输出公钥:----[root@dev9/]#gpg--outputkapil.gpg--exportkerberos@minigui.org----下面的命令表示以ASCII格式输出公钥字符格式输出:----gpg--outputkapil.gpg--export-armor>kerberos-key.asc----5.导入公钥----您可以将从第三方的公钥数据库中获取的公钥导入到您的私有数据库中,在与他人通信时使用。----[root@dev9/]#gpg--import----其中参数filename为公钥文件。----例如:导入redhat的公钥,redhat.asc可以在redhat的主页下载。----[root@dev9/]#gpg--importredhat.asc----gpg:key:9B4A4024:公钥导入----gpg:/root/.gnupg/trustdb.gpg:trustdbcreated----gpg:处理总数:1----gpg:导入:1----6.确认密钥----导入密钥后,使用数字签名验证证书是否合法。要查看数字签名,请使用--fingerprint选项。----[root@dev9/]#gpg--fingerprint----其中,UID是你要验证的公钥。----7.密钥签名----导入密钥后,可以使用--sign-key选项进行签名。签名的目的是为了证明您完全信任这个证书的合法性。----例如:[root@dev9/]#gpg--sign-key----其中UID是要签名的公钥。----8.检查签名----我们可以使用--check-sigs选项来检查我们在上面的密钥上所做的签名。----[root@dev9/]#gpg--check-sigs----这个选项可以列出这个密钥文件的所有签名。----9.加密和解密----对一个文件进行加密和解密是非常容易的。如果要给redhat发送一个加密的文件,可以使用redhat的公钥加密这个文件,而这个文件只能被redhat用自己的密钥解密Check。----加密一个文件,可以使用如下命令----[root@dev9/]#gpg--sear----其中,UID是文件的公钥对方,文件是加密文件。----如果你想解压另一个用户发给你的文件,可以使用如下命令:----[root@dev9/]#gpg-d----其中,file就是你要解密的文件。在解密过程中,GnuPG会提示你输入使用密钥所需的密码,即生成私钥时输入的密码。