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

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

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

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

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



  导入公钥
  
  作为用户也会收到别人GPG公钥它们可能来自网站WebSite、电子邮件、FTP和目录服务等只要信任其来源就可以将其导入自己GPG环境的后才可以和相应人员进行基于GPG各种应用导入公钥过程可以分为以下 3步:
  
  1.导入
  
  比如Terry收到朋友Brian公钥文件brian.gpg可以使用以下命令导入文件:
  
  #gpg --import terry.gpg
  
  2.核对“指纹”
  
  公钥是可以伪造James可以伪造个Brian公钥然后想办法让Terry得到如果Terry对收到公钥不加验证那么他发给Brian加密邮件就可能被James解密GPG架构中并没有个PKI这样证书管理系统GPG公钥信任是通过“Truth Web”实现
  
  生成Terry公钥“指纹”:
  
  #gpg --fingerpr [email protected]
  pub 1024D/7234E374 2004-09-10 Terry
  Yu (for test) <[email protected]>
  Key fingerpr = A58F D71A 28BA
  499D 805B 588E 82FB CD0F 7234 E374
  sub 2048g/4907EA0A 2004-09-10 [expires: 2005-09-10]
  
  这个“指纹”是惟可以通过和对方核对“指纹”是否来确定这个公钥是否可信和合法
  
  3.签名
  
  在成功导入并确定这个公钥是可以相任的后要立即对这个公钥进行签名这样就可以验证来自对方邮件真实性了
  
  对公钥进行签名可以使用如下命令:
  
  #gpg --sing-key [email protected]
  
  或者
  #gpg --edit-key name
  #command > sign
  
  检查对方邮件比如Brian签名:
  
  #gpg --check-sigs [email protected]
  
  现在有了Brian签名公钥通过这个公钥就可以和Brain进行非对称加密通信了
  
  应用GPG
  
  GPG使用是非对称密钥体系用户拥有对密钥包括个公钥和个私钥公钥对外公布私钥则由自己保存使用公钥加密数据可以用私钥解密同样使用私钥加密数据可以用公钥解密
  
  非对称密钥可以用来加密和做数字签名当用户关心信息保密性时使用加密功能;当用户关注信息完整性及不可抵赖性时使用数字签名功能;当用户需要同时关注信息机密性、完整性及不可抵赖性时可以将加密和数学签名混合使用
  
  简单了解这些密码学概念后就可以开始真正应用实战了
  
  对文件进行加密和数字签名
  
  KDE中提供了图形化加密操作思路方法比如在KDE中对个文件加密只需在KDE文件管理器Konqueror中选中该文件单击右键选择“Actions”中“Encrypt File”就可以加密文件加密后文件以.asc结尾
  
  对于图形方式加密操作不多做介绍下面将重点放在命令行操作方式上介绍命令行下各种文件加密和签名操作思路方法
  
  1.对文件进行数字签名
  
  #gpg --clearsign policy.txt
  You need a passphrase to unlock the secret key for
  user: "test (test) <[email protected]>"
  1024-bit DSA key, ID ADD93830, created 2004-07-01
  
  运行以上命令生成个名为report.txt.asc文件该文件中除了原文件信息外还包含数字签名信息
  
  2.验证文件数字签名
  
  #gpg --very policy.txt.asc
  gpg: Signature made 2004年11月04日 星期 4 15时58分07秒 UTC using DSA key ID ADD93830
  gpg: Good signature from "test (test) <[email protected]>"
  
  以上命令运行结果显示该签名是正确
  
  3.用指定公钥对文件加密
  
  #gpg --encrypt -r [email protected] report.txt
  gpg: checking the trustdb
  gpg: checking at depth 0 signed=0 ot(-/q/n/m/f/u)=0/0/0/0/0/1
  gpg: next trustdb check due at 2005-09-10
  
  运行以上命令使用自己公钥加密report.txt文件生成加密文件report.txt.gpg如果使用编辑软件Software打开该加密文件会发现它包含些不可理解和乱码
  
  4.用私钥对加密文件解密
  
  #gpg --decrypt report.txt.gpg >report.txt
  You need a passphrase to unlock the secret key for
  user: "test1 (unfication) <[email protected]>"
  2048-bit ELG-E key, ID 33735683, created 2004-09-29
  ( key ID 79EB3D97)
  gpg: encrypted with 2048-bit ELG-E key, ID 33735683,
  created 2004-09-29
  "test1 (unfication) <[email protected]>"
  
  以上命令要求输入对应私钥保护口令才能成功解密解密后文件内容被输出到report.txt文件中
  
  5.用公钥同时进行文件签名和加密
  
  #gpg -se -r [email protected] report.txt
  You need a passphrase to unlock the secret key for
  user: "test (test) <[email protected]>"
  1024-bit DSA key, ID ADD93830, created 2004-07-01
  
  以上命令要求输入对应私钥保护口令输入正确口令后签名和加密成功完成
  
  这些都是应用GPG签名和加密文件些常用命令更详细使用方法可以参考GPG帮助文件
  
  对电子邮件进行加密和数字签名
  
  实际上GPG应用最多地方是在电子邮件加密和数字签名上许多电子邮件客户端软件Software都支持PGP/GPG方式加密及数字签名这里以Kmail为例介绍如何设置Kmail并利用Kmail发送加密及数字签名电子邮件
  
  Kmail是KDE环境中电子邮件客户端类似于下Outlook Express在选单中选择“Settings→Configure-Kmail→Identites”选定个身份单击“Mody”进行编辑选择其中“Advanced”标签页可以看到类似图2界面
  
 

  
图2 Kmail设置界面

  
  其中“OpenPGP Key”项是该身份所对应PGP或GPG密钥可以单击“Change”按钮从GPG环境中选择对应密钥对
  
  保存后GPG设置完成试写封邮件如图3所示图中工具栏中凹下去“钢笔尖”图标表示此邮件使用了数字签名紧靠旁边锁形图标表示加密如果两个图标都凹下去则表示同时使用了加密和数字签名
  
 

  
图3 使用数字签名电子邮件

  
  发送邮件时Kmail会要求给出对应密钥保护口令如图4所示
  
 

  
图4 要求输入密钥保护口令

  
  正确输入保护口令后会弹出个确认窗口如图5
  

  
图5 确认窗口

  
  确认内容无误后单击“OK”按钮封带有数字签名电子邮件就成功发出发送加密邮件以及发送同时加密和数字签名邮件思路方法都是类似
  
  软件Software包签名验证
  
  对于Red Hat等Linux发行商来说他们常常会利用GPG对发布软件Software包进行签名用户可以通过验证软件Software包签名来确保得到软件Software包没有损坏或者是被他人动过手脚
  
  验证个软件Software包GPG签名可以按照以下步骤来进行:
  
  1.从网上或其它方式得到软件Software发行商公钥并将其导入自己GPG环境中
  
  2.通过对比“电子指纹”来确认公钥并对此公钥进行签名
  
  3.使用以下命令来验证软件Software包GPG签名:
  
  #gpg --very singaturefile.tar.gz taballpackage.gz
  
  如果该软件Software是RPM格式还可以使用如下命令来验证:
  
  #rpm -Kv your.rpm
  
  密钥管理
  
  前面介绍了GPG在加密和签名两方面应用在应用过程中用户要认真地对待密钥管理问题GPG密钥采用是信任机制并没有个中心PKI可以帮助发布和验证GPG用户公钥为了防止公钥欺骗保证公钥不可否认性(Non-repudiation)需要有种机制来进行管理下面是些有益建议可供参考
  
  ◆ 备份好私钥
  
  旦私钥丢失或损坏则无法打开以前加密文件并且即使知道私钥被他人滥用也无法使自己公钥过期有了私钥备份就能有效地回避此类风险
  
  ◆ 建立有过期保护公钥机制
  
  万私钥丢失不能人工收回公钥时公钥也可以在预定时间后自动过期
  
  ◆ 为私钥加上强口令保护
  
  这样即使私钥文件泄漏还有口令保护保护口令定要有足够复杂度才能有效地对抗暴力破解
  
  ◆ 多重机制
  
  在紧急情况下恢复密钥要有多重控制
  
  ◆ 使用版本控制软件Software
  
  使用版本控制软件Software来收集和维护自己公钥库版本控制软件Software可以有效地记录历史变更情况保证公钥库有条不紊
  
  小结
  
  GPG作为个开源并且免费加密和数字签名软件Software已经存在多年它不但可以为企业、个人的间重要信息提供加密保护还可以为出版软件Software、内核等电子产品进行数字签名
0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: