专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Linux » 安全是生命的保障:用GPG加密使您的信息安全保障无忧一(图) »正文

安全是生命的保障:用GPG加密使您的信息安全保障无忧一(图)

来源: 发布时间:星期四, 2009年2月12日 浏览:14次 评论:0



  加密和数字签名作为保护信息机密性、完整性和不可抵赖性重要手段在各种信息通信场合得到广泛应用目前已有不少商业加密和数字签名产品比如商业软件SoftwarePGP(Pretty Good Privacy)
  
  另外在开放源代码库中也有些免费加密和数字签名软件Software其中最被认可是GPG(GNU Privacy Guard)GPG是个完全免费、源代码公开并且和PGP完全兼容软件Software产品今天GPG已经拥有众多企业和个人用户
  
  在我国由于信息及隐私保护意识还比较薄弱PGP或GPG在商业和个人用户中使用并不普遍随着信息及隐私带来问题甚至诉讼增加更多企业和个人开始把眼光投向安全问题解决
  
  但是由于非专业用户对签名和加密等概念畏难情绪GPG应用还多局限于IT技术人员本文将对Linux环境下如何应用GPG进行讲解为企业和个人用户应用GPG提供帮助
  
  建立GPG环境
  
  GPG软件Software作为用于加密和数字签名开放源码工具许多Linux发行版本都自带了该软件Software在默认安装情况下gpg会作为个基本命令事先安装好
  
  如果选用Linux发行版默认没有安装GPG可以通过tar包或RPM包进行安装可从http://www.gnupg.org/download/安装包安装过程比较简单这里省略了
  
  判断是否安装有GPG思路方法也很简单直接在命令行下输入“gpg -h”命令如果系统已经安装有GPG就会显示有关GPG使用方法信息
  
  确定Linux系统中已经安装了GPG后就可以开始下面加密和签名工作了
  
  生成密钥
  
  用户应用GPG首先要有对自己密钥所以步就是产生对密钥gpg命令通过大量参数提供所需要几乎所有操作其中参数“-gen-key”就是用来产生对密钥在安装了GPGLinux系统上可以运行以下命令:
  
  #gpg --gen-key
  
  如果想对产生密钥操作进行些个性化设置还可以加上其它参数比如要指定生成密钥存放位置可以运行以下命令:
  
  #gpg --gen-key --homedir /mygnupg
  
  命令开始运行后首先会看到版本和路径信息如下:
  
  gpg (GnuPG) 1.2.1; Copyright (C) 2002 Free Software Foundation, Inc.
  This program comes with ABSOLUTELY NO WARRANTY.
  This is free software, and you are welcome to redistribute it
  under certain conditions. See the file COPYING for details.
  gpg: /home/terry/.gnupg: directory created
  gpg: configuration file `/home/terry/.gnupg/gpg.conf' created
  gpg: keyblock resource `/home/terry/.gnupg/secring.gpg': file open error
  gpg: keyring `/home/terry/.gnupg/pubring.gpg' created
  
  随后需要回答系列问题以帮助产生对密钥首先遇到问题是要求选择密钥使用算法:
  
  Please select what kind of key you want:
  (1) DSA and ElGamal (default)
  (2) DSA (sign _disibledevent=>   = key expires in n days
  w = key expires in n weeks
  m = key expires in n months
  y = key expires in n years
  Key is valid for? (0) 1y
  Key expires at Sat 10 Sep 2005 01:48:07 PM CST
  Is this correct (y/n)? y
  
  原则上密钥使用频率越高密钥有效时间越长被攻击可能性就越大所以要根据应用实际情况综合考虑确定个适当时间长度需要注意密钥要定期更换建议绝对不要永远使用同对密钥
  
  最后需要输入些个人信息包括真实姓名、电子邮件地址等用来识别密钥最好是如实填写比如:
  
  Real name: Terry Yu
  Email address: [email protected]
  Comment: for test
  You selected this USER-ID:
  "Terry Yu (for test) "
  Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? o
  
  然后必须输入个密码密码用来保护密钥没有这个密码任何人都不能看到密钥本身内容密码是在密钥文件泄露后惟保密措施最大敌人是暴力破解和字典攻击所以定要选择个强壮密码来有效地对抗这些攻击
  
  密码确定以后系统开始运算:
  
  We need to generate a lot of random s.
  It is a good idea to perform some other action
  (type _disibledevent=>  sub 2048g/94BF182C 2004-09-29 [expires: 2005-09-29]
  pub 1024D/7234E374 2004-09-10 Terry Yu (for test)
   Key fingerpr = A58F D71A 28BA 499D 805B 588E 82FB CD0F 7234 E374
  sub 2048g/4907EA0A 2004-09-10 [expires: 2005-09-10]
  
  以上信息表示已经成功地为“Terry Yu”生成并签名了对密钥密钥过期时间为“2005-09-10”在生成密钥同时默认用户目录.gnupg目录中也存放了和该用户相关GPG配置及密钥文件这些文件控制了用户GPG环境用户不能直接修改这些文件所有改动都将通过“gpg”命令实现
  
  查看密钥
  
  密匙生成后可以随时用以下命令查看
  
  查看所有密钥:
  
  #gpg -list-key
  
  查看所有公钥:
  
  gpg -list-public-key
  
  查看所有私钥:
  
  gpg -list-secret-key
  
  列出所有签名:
  
  gpg -list-sig
  
  导出公钥
  
  在非对称加密体系中私钥是由用户保管而公钥是对外公开用户在生成密钥对后需要把其中公钥导出到个文件中然后将其分发给其它用户
  
  导出公钥思路方法很简单通过gpg命令“-export”参数就可完成为了使导出文件是ASCⅡ编码还需要加上参数“-a”比如导出Terry Yu ASCⅡ编码公钥文件可以使用以下命令:
  
  #gpg --export -a [email protected] > terry.asc
  
  该命令最终生成ASCⅡ编码公钥文件terry.asc如图1
  

  
图1 公钥文件terry.asc

  
  分发公钥
  
  这个包含公钥信息文件需要对外分发可以通过各种方式将terry.acs文件分发给所有和用户有信息通信需求
  
  最简单分发方式是将该文件放到上供人这种方式需要注意问题是所发布公钥文件网站WebSite定要是个可以信赖站点实际应用中类似做法很普遍
  
  比如Red Hat公钥就是在它官方网站WebSite上发布任何人都可以获得并用来验证Red Hat所发布软件Software签名正确性
0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: