Dado o recente hack do rubygems.org, alguma preocupação foi levantada sobre a execução do código de joias baixadas na instalação.
A boa notícia é que o rubygems oferece algum nível de proteção ao cliente ao instalar os arquivos .gem, desde que o autor da gem tenha assinado a própria gem.
Para assinar uma joia:
$ gem cert –build replace.yourname@yourdomain.com
Isso produzirá dois arquivos: gem-public cert.pem e gem-private key.pem.
gem-private key.pem deve ser movido para um local seguro (este é um tópico em si, mas nem é preciso dizer, não compartilhe sua localização ou conteúdo com ninguém. Um stick USB ou algum outro dispositivo externo que pode ser desconectado pode ser um bom começo). O gem-public cert.pem será distribuído com cada gem que você assinar.
A última etapa será dizer ao .gemspec para usar estes arquivos:
gem.signing_key = "/private/path/that/is/secure/gem-private_key.pem"
gem.cert_chain = ["gem-public_cert.pem"]
Em seguida, construa a gema e implante normalmente. Ao instalar esta gema, o usuário agora pode fazer afirmações de que a assinatura deve ser válida e a gema é criada pelo próprio autor:
$ gem install option-1.0.1.gem -P HighSecurity
Antes que a linha acima seja executada com sucesso, no entanto, temos que confiar no certificado público, que você pode obter examinando o código-fonte do gem (não o .gem que foi baixado, código publicado em uma fonte confiável):
$ gem cert --add gem-public_cert.pem
A instalação deve ser bem-sucedida agora.