2009年12月8日星期二

GPG与安全相关

好久没更新的感觉了,先来感受下气氛。
呼吸~~~

The GNU Privacy Guard
http://www.gnupg.org/
OpenPGP标准用于加密和签名,而GPG是GUN实现的工具。

按习惯先man gpg一下
http://linux.die.net/man/1/gpg
还有就是,官方的一些资料
中文的使用说明
http://www.gnupg.org/howtos/zh/index.html
完整教程
http://www.gnupg.org/gph/en/manual.html
以下内容参考以上内容,命令尝试可用。

概念及应用
公钥 公开发布的,别人可以用来加密或验证签名
密钥 个人保密的,用来解密被指定收信人的数据,或者用来签名文档
加密 不在传输中被第三方知道数据意义
签名 确保数据的完整性和来源可靠
信赖 是基于 公钥的可靠度,密钥的保密程度,破解方法的成本

使用
生成钥匙,会有一步步的向导的
gpg --gen-key
记住你的uid

Public钥匙
输出 gpg --export -a -o key.asc
导入 gpg --import key.asc

加密与解密
加密
gpg -o doc.gpg -e -r uid doc
其中可选"-r xxx"用于指定接受者
对称加密用 -c
-u 指定Private钥匙,即发送者
解密
gpg -o doc -d doc.gpg

签名和检验签名
对数据签名 gpg -s [file]
用"-b [file]"把签名放在单独文件
加-a 输出为ASCII
其中-s替换为--clearsign可以让生成的文件文本依旧可读

通用命令为
gpg [-u Sender] [-r Recipient] [-a] -s -e [file]
混合了加密和签名

gpg [file]
暗含--verify和--decrypt
都需要先倒入发送者的公钥

密钥也可以导出,但不是PGP默认要实现的功能

确认公钥真实性
gpg --fingerprint
得到公钥对应的一段较小的文本,可以用电话等方式核对
然后gpg --edit-key UID,
输入sign命令设定公钥的可信度

如进行钥匙管理,有一组对应的命令。

如果是单纯用密码进行加密的话,
用"gpg -c [file]"就行
可以和以上的加密和签名方式组合使用

这个是PGP的站点,包含了比GPG更广泛的内容
http://www.pgpi.org/

SSH的无密码认证
用ssh-keygen按照操作提示生成一对钥匙
放在了~/.ssh/路径下
其中公钥放在服务器上,密钥放在客户端上
这样可以在登录中避免密码输入的操作的危险

关于MD5以及sha1/sha256
通过不易可逆或碰撞的HASH算法,表示为较短的二进制串(可写为ASCII形式)
常被用来验证传输文件的完整性
或进行用以验证的密码的非公开存放形式
对MD5的破解方式有制造碰撞以及查表(常附加一个种子值以防止)
而CRC循环冗余校验是冗余校验的一种方式,最简单的是奇偶校验也很有用

====
一些无关的东西:
附[转 http://www.debian.org/doc/]
quick reference cards
refcards.com
http://refcards.com/
A collection of quick reference cards focused mainly on Free and Open Source Software
Quick Reference Cards
http://www.digilife.be/quickreferences/quickrefs.htm
A collection of quick reference cards for the most popular programs and programming languages

没有评论: