Qithub-BOT / Qithub-ORG

✅ Qithub サークルのメインリポジトリ。運用/ルール/全リポジトリの Issue など取りまとめています。
https://Qithub.tk/
Creative Commons Attribution Share Alike 4.0 International
10 stars 2 forks source link

Delete -ssl option from openssl rsautl command #179

Closed emadurandal closed 5 years ago

emadurandal commented 5 years ago

私のMac (Mojave)環境で試したところ、OS標準のLibreSSL2.2.xでもbrewインストールしたOpenSSL1.0.2でも、 -sslオプションがついていると、

emadurandal@MacBook-Pro:/o/bin > openssl rsautl -encrypt -pubin -inkey github-rsa.pub.pkcs8 -ssl -in test.txt -out test.txt.enc
Usage: rsautl [options]
-in file        input file
-out file       output file
-inkey file     input key
-keyform arg    private key format - default PEM
-pubin          input is an RSA public
-certin         input is a certificate carrying an RSA public key
-ssl            use SSL v2 padding
-raw            use no padding
-pkcs           use PKCS#1 v1.5 padding (default)
-oaep           use PKCS#1 OAEP
-sign           sign with private key
-verify         verify with public key
-encrypt        encrypt with public key
-decrypt        decrypt with private key
-hexdump        hex dump output

のようにCommand Usageの表示が出てしまい、正しく処理されない結果となってしまいました。 (以前はうまく言っていた気がするのですが……)

他の方も現在そうなっているのではないかと思い、-sslオプションを取り除いたプルリクを投げさせていただきます。 ご検討いただければ幸いです。

TL;DR(結論 2019/02/01 現在)

KEINOS commented 5 years ago

@emadurandal

ご報告ありがとうございます。VirtualBOX 上の入れ立てホヤホヤの Mojave でも再現いたしました!

SSL v2 はそもそも非推奨らしいので、v2 を使うための -ssl オプションはブロックされた可能性が高いのですが、Mojave でのセキュリティ強化の一貫なのか調べてみてもなかなか情報が出てきませんでした。

しかし、やはり Mojave から rsautl-ssl オプションは削除されたっぽいです。

$ openssl rsautl --help には -ssl オプションはあるのですが、$ man opensslrsautl 欄には -ssl オプションはありませんでした。どうやら Mojave で削除され help が更新されていないっぽいです。

$ man openssl 
...
RSAUTL
     openssl rsautl [-asn1parse] [-certin] [-decrypt] [-encrypt] [-hexdump] [-in
     file] [-inkey file] [-keyform der | pem] [-oaep | -pkcs | -raw] [-out file]
     [-pubin] [-sign] [-verify]
...

もう少しリサーチいたしますが、基本的にマージさせていただく方向で進めます!PR ありがとうございます。

なお、このリポジトリ( https://github.com/Qithub-BOT/Qithub-ORG )にあるスクリプトは情報がいささか古くなる可能性があるのと、ローカルに Clone するには雑多なデータも多いため、エイリアス元である QiiCipher のリポジトリをご利用いただくのがよろしいかと思います。(整理が出来ておらず、わかりづらく申し訳ありません)

本 PR をマージ後、QiiCipher に DIFF を適用いたします。

KEINOS commented 5 years ago

進捗です。 OpenSSL のマニュアルの日付を見ると今日の日付になってました。

$ openssl version
LibreSSL 2.6.5
$ man openssl | tail -1
BSD                            January 29, 2019                            BSD
$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.14.3
BuildVersion:   18D42

しかし、Mojave 10.14.3 のリリースノート をみても言及がなく、アップルさん、あわててアップデートして --help の更新忘れをしたのかなと思ったのですが、どうも LibreSSL の OpenBSD 側が更新されていないようです。

以下 OpenBSD の最新コミットのソースコードの該当行です。

なので、こちらはマージしちゃいたいと思います。

KEINOS commented 5 years ago

@emadurandal

-ssl オプションがないのにある件ですが、一応本家に Issue をあげてみました。

https://github.com/libressl-portable/openbsd/issues/101

本当は PR を上げたかったのですが、どうも OpenBSD の CVS かメールでのパッチ受付のみらしく GitHub 側には上げないらしいので、CVS がよくわからないため Issue を放つだけにしました。

KEINOS commented 5 years ago

@emadurandal

本家の最新ブランチで修正され Issue も Close されました。

https://github.com/libressl-portable/openbsd/commit/033f890a3c613623c454d0a44ac14130c8764dba#diff-7cd392812913edd7bb9bc6354a2e43efL321

あとは、Apple 側が反映するのを待つだけですが、安定版になるまで採用はされないかもですね。いずれにしても -ssl は使えないということで。取り急ぎご報告まで。→ TL;DR 更新済み