你好,游客 登录 注册 搜索
背景:
阅读新闻

opmsg: GPG的替代品

[日期:2015-07-28] 来源:Solidot.org  作者:Linux [字体: ]

SuSE Linux安全组,也是自由软件社区著名0ld sch00l黑客Sebastian Krahmer认为在大规模监控的后棱镜时代应该做点什么,在经过一系列的讨论后于2015年5月公布了一个新的自由软件项目:opmsg。opmsg是一个可以加密,签名,验签邮件或者本地文件的GPG替代品,虽然opmsg看起来比较类似GPG,但从整个设计思路还是很不同。personas是opmsg里的关键概念,personas是一个和EC或者RSA密钥绑定的身份,两个personas之间的通信可以靠EC/RSA密钥的hashsum作为唯一的标示,如果是RSA personas,密钥交换则用DH,如果是EC personas,密钥交换使用ECDH

opmsg还有一个很有趣的feature是PFS( Perfect Forward Secrecy),opmsg的消息总是会被发送端签名,当Peer A发送一个opmsg信息给对端Peer B的persona时会生成一组(EC)DH密钥并且attach到信息里,而Peer B的opmsg会验证它的完整性后保存到自己的密钥列表,如果Peer B这时发消息给Peer A,Peer B可以选择之前拿到的(EC)DH。如果(EC)DH密钥消耗完了,opmsg会根据persona的类型回退到本地的RSA或者EC加密,删除已经使用过的(EC)DH公钥以保证不能再次使用.....

创建以及验证密钥和签名的例子:

----------------------------------------------------------------------------

Peer A:

#opmsg --newp --name shawn

opmsg: Successfully generated persona with id

opmsg: cac78af4f7f1b8ce f0ea2bd4612d5ba2 0f9e2dd7c361e820 0337432985b706f9

opmsg: Tell your remote peer to add the following

pubkey like this:

opmsg: opmsg --import --phash sha256 --name shawn

-----BEGIN PUBLIC KEY-----

MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEArBM7YiBFmB5UlgtUR8z3 ZrLCk5g/zHwct0MVFTbf/5IXwHom3FnrLpTI027W2wZY/BlsWIABAEFoFgsBOYrb nVrJf7S8/vkCy1VII5hADNT24cOdnK79yelrmib0pp2bZAU31LOtAW6SWVPUMhBZ ycvKBmUuvWKkWBi9MWjR276nuHmHfNV7w0HUj4AzqSs499p+UezclkaJSp5F7Et/ 2QAvqr51Dg7WvNHL8g5fJW1/w9CgqiHAboKTYiboI0c3uBq+41FewWcWNSa2LqDV BjZSUow+1GTpWubv3LOuMtFbGIWfjb+Qpph3YrYNieOpGFQOO4Dukc9KtBfFGrNR n3DLYOfvZzoifNFyJJBL82onbww+PRbCvSrGF6x6UtFJLL2pALC4g8tkDI+xuuan AOa1Iezqj/EhUhV/eTHpqWK3BA2hqQ3kOPJ6jQT/6M7WB7FtwDrFPDaSWWkiqAhR rzWpI7/ftdRxOWSK8VntHFMaSEz2AFVBO4rgExWvGCzRtcIAJOo1PVj2RG9T7Xhd DGP3Tt32QuUhnwbSIEFnzS8sOL1+5+7DiFvSLsVVg6HrWoOgJnKECkIARuiJRoV6 jUsGZEf9wRJEsKSokwoLC7iI9fWlh6H4yAmC63T1GZM+dSZhLXj1Js5sJV5yWdg8 qC39q2/nkrw38z8lFTgLqr0CAwEAAQ==

-----END PUBLIC KEY-----

Peer B:

#opmsg --newp --name john

opmsg: Successfully generated persona with id

opmsg: a70719fbf6392c02 6ef034e49db509f7 52ccea9475977af2 c4c5f23ae956744f

opmsg: Tell your remote peer to add the following

pubkey like this:

opmsg: opmsg --import --phash sha256 --name john

----BEGIN PUBLIC KEY---- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAn+kEKZR31KZn8j4boe/T bHxtCUjCclAmyweOjt4vjdmX4NrgBOJu6dgk/gEifk3nfhK9pWhTAxkjtWGVYTsm 7vBmfEpGdRCkdUT4FgsfWZILxayjSKoOuYU6wCJ1kOnk1p2iJ9HGFs3zougdhL8O M2wUoOIlQEgqaHZZjih3wIjWBukIemVlVNRaWvSfyr5/Kvj5DFsBjcD0xo9sswBW 3Lx5brSEkYBBF46C9PLCmy6zw5Myecdjxjyb6FV+Y/d5Nsq/XCUoy9fKyxKJokLB u92BD7eU5TM830CedBHz9LVgjnfRbNp0RNnhdUArZmTjFs5CvfjGWIi/MpIRDynf P5dbuUggnsOszKZzUyCfPZX3GzcJDxL2otgRy0Xs0oW7LKsnH+eGXbkzGMxPWXM9 UBCr9/Bhx5yqqrGd2SREhn8LBmwFI2AJgnaPhEQUtqhqAOUOLSrCvKlMlVA0rsjG 7rifRVvGbEEy5MrvdKK4NC2r5JxdcxTGEt51iNkoM4SaxQq8t3xIsSl4O5KKWy8S GMQ/uklb/GoSUelbe5RRwWmLW0lGkStJZ/fbwF+/nmk4zOsvFz4bGNxU7s/AWvbF V2vPHKxiqJbR/4MtjSqNQzKm+/lCJw1sDkuW8Bxtx+pjaMJLHp5mc6kzcCmWG5SD hewiYRjh4Tjhr8yeRcUfRsMCAwEAAQ==

----END PUBLIC KEY----

#opmsg --import --phash sha256 --name shawn

Peer A:

#opmsg --import --phash sha256 --name john #opmsg --list --short

#opmsg -S -i 1.png -o 1.pgp -P cac78af4f7f1b8ce 把1.*发给Peer B......... Peer B

验证签名:

#opmsg -V 1.png -i 1.pgp

 

加密/解密的例子:

-----------------------------------------------------------------------

Peer A

#opmsg --encrypt a70719fbf6392c02 -i 1.png -P cac78af4f7f1b8ce -o 2.enc Peer B

#opmsg --decrypt -i 2.enc -o 1.png

本文永久更新链接地址http://www.linuxidc.com/Linux/2015-07/120667.htm

linux
相关资讯       GPG  opmsg 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款