快速直通车:
http://developer.zendesk.com/blog/2013/02/03/signing-gems/
实战指南:
http://blog.meldium.com/home/2013/3/3/signed-rubygems-part
讲讲我的理解:
当我看完这个slide: Hacking with gems (https://speakerdeck.com/benjaminleesmith/hacking-with-gems-ruby-conf-australia) ,我意识到现在的gem太不安全了。理论上任何人都是可以发布gem包到rubygems平台。这里没有签名的后果是,如果第三方把你的gem下载来,解压后打入漏洞文件就可以让任何人的电脑安上后门。那怎么办?
我们知道rubygems是社区驱动的,如果强制让大家安装签名,不是不可以,只是这样行不通,因为并不是每个人都理解和支持你。这里是开源社区,需要的是一种可以选择的安全模型,让任何人可以表达安全问题的关注,但大家谁也强制不了谁。
首先,gem 提供了一个”-P”参数来支持HighSecurity. bundler也提供了一个”—trust-policy“支持HighSecurity。这样在工具链上提供了安全机制的功能选项。
然后,大家可以通过gem生成自签名的证书。这个证书是关键,私钥由个人保管,公钥提供给rubygem发布使用。大家看出问题的关键了吗?安全信任关系完全还是归于个人。rubygem并没有增加增加更多的安全防范,还是提供和原来一样的gem repo功能。目前这种安全模型还需要时间来验证,不管你信不信,我是做了。发布lazy_high_charts 1.4.1,支持签名gem.

