[ubuntu-jp:6360] Re: Ubuntu 20.04でのOpenSSLのバージョン

Fumihito YOSHIDA hito @ ubuntu.com
2020年 10月 18日 (日) 11:08:33 UTC


> Ubuntu 20.04 ServerでのOpenSSLのバージョンは1.1.1fですが、これには
>
> curl: (35) error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small
>
> というエラーが発生する問題があります。
> これWeb APIなどを使う際に引っかかるので、そういうのを使ってる場合は結構クリティカルです。

これはそもそもの問題の捉え方を変えるのが良さそうで、次のように考えていく
必要がありそうです。

・そもそもこの挙動は、「短い鍵長を用いた接続で警告/Error扱いされる」ように
 なったというものであって、互換性に影響はあるが必ずしもバグではない。
 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=907788
・リスクを考慮して適切な設定で回避する(+そもそもはサービス提供側が適切に
 管理して、この問題をクライアント側に発生させないようにする)べきもので、
 問題を正しく解決しないと、HTTPSである意味を壊してしまう。
・その環境のライフサイクルによっては将来、真剣に危殆化する可能性がある。

で、独自ビルドで回避できてしまった部分は、「問題を回避した」というよりは
「問題を再現できなくしてしまった」属性のもので、本来の意図と合致していない
可能性がありそうな気がします。

で、対策としてどうするか、を考えると、次のようなものになりそうです。

 (D) 適切な設定を行って回避する

具体的には以下あたりでしょうか。

D-1) その接続にHTTPSが必須かどうか考える。必須であれば、その
サービスは(少なくともアップデートされて適切な暗号系で処理される
ようになるまで)死んだものと捉え、代替サービスを探す。

D-2) その特定の接続だけ、DH鍵を使わない or 弱い暗号系を許容する
ように設定する。
・curlに--ciphers 'DEFAULT:!DH' を足す。
・https://askubuntu.com/questions/1233186/ubuntu-20-04-how-to-set-lower-ssl-security-level
 にある、許容する暗号系を引き下げるssl.confを作って
 export OPENSSL_CONF する環境変数経由の設定を使う。
・などなど。

D-3) システム全体の許容する暗号系を下げてしまう。
・system wideのssl.confを更新する。
 ただし正直なところ、未来に向けて地雷を作り込む処理なので非推奨
 としか言いようがない。

なんとなくどれも、ヘタなことをすると「HTTPSを使っているつもり」状態を
伴う危険なシステムを作り上げました、みたいな展開になる予感もあるので、
対策はそこそこ考える必要があります。腕の見せ所感はありますが、考慮する
べきものを整える必要もあり、

 (D')Ubuntu Advantageのコストを支払える(or 個人利用で数台の範囲にある)
 のであれば、ESMを使って16.04を延命しつつ、(D) のための時間を稼ぐ

という手もありえる感じはします。
(16.04のまま使っていくのも暗号系リスクを抱えることになりますが、
D-3のような不適切な手当をして20.04にする、という手と本質はイコールですが、
「問題が残っていることを認識しやすい」という点で圧倒的にマシそうです)


ubuntu-jp メーリングリストの案内