今週から、一週間に読んだTLS関連のニュースの中で気になったものをブログに残してみます。
[まとめ記事を書こうと思った理由]
2021年3月から、TLSらじおと称して、週1回30分間TLSに関する社内勉強会を開催している。2022年3月13日時点で第47回まで開催した。
勉強会の主なコンテンツは以下の2点。
- GitHubのtls-radioリポジトリのissueにまとめた関連ニュースを雑に紹介する
-
前週に読んでまとめた『プロフェッショナルSSL/TLS』の読書メモを読み上げる
このうち、後者はアウトプットとして一応形になっているものの、前者がアウトプットとしての形が弱い。
勉強会の初期から、勉強会で取り上げるための記事をストックしておく場所としてGitHubのissueを使っていた。最初はURLだけでなく多少のコメントも残していたのだが、だんだん面倒になって最近はURLしかないものがほとんどになってしまった。
勉強会中も雑に記事を紹介するだけにとどまってしまっているため、GitHubのissueはこれまでどおりストック場所として活用し、改めてブログの記事としてまとめることで、これを改善したいと考えた。
...というのは半分本当で半分嘘。
次回の第48回のための記事をストックしていたらロシアの新認証局に関するツイート・記事が散らばってしまって、話すのに苦労しそうだと思ったので、原稿がわりにブログにまとめることにした、というのが大きい。
[ロシアの新CA]
こちらのツイートでゲットした情報。
ロシアが制裁を回避するために独自のTLS認証局(CA)を設立。海外発行の証明書が失効された場合の代替に使え、サイト保有者の法的主体向けに提供されるサービスで、5営業日以内に発行。現時点ではロシアのYandexブラウザとAtom製品群のみに信頼されている。 https://t.co/3cOsis2pyH
— kokumօtօ (@__kokumoto) 2022年3月11日
元記事はこちら。
経済制裁の影響がこんな形をとるとはちょっと驚き。
経済制裁の結果、欧米のCAがロシアのサイトの証明書を失効したり、ロシアと取引ができなくなってロシアのサイトはSSL証明書が更新できなくなる、だから自前の認証局(CA)を作る、ということらしい。
Scott Helme氏によると、実際にルートCAのThawte (DigiCert)がロシアの銀行VTBやPromsvyazbankの証明書を2022年2月28日〜3月1日にかけて失効したらしく、crt.sh*1で記録を確認することができる。
Given the sanctions against Russia, it seems that CAs are now ceasing issuance for Russian domains and even going so far as to revoke certificates previously issued for Russian domains. Here are some for a Russian bank revoked by Thawte CA: https://t.co/10ARMvsz65
— Scott Helme (@Scott_Helme) 2022年3月11日
同様にLet's Encryptもいくつかの.ruドメインの証明書を失効しているが、制裁との関連は不明とのこと。
I've found several examples of Let's Encrypt certificates issued to Russian sites that are revoked, but there's no indication of whether this is related to sanctions or not just yet. No statement from LE. https://t.co/czztdZ1aYthttps://t.co/CxN9hg1YULhttps://t.co/j1oN8LCFra
— Scott Helme (@Scott_Helme) 2022年3月11日
3月1日にできたばかりのRussian Trusted Root CAは名前制約を持っていないため、ロシア国内のサイトだけでなく、全世界のサイトに対して証明書を発行できるため、ロシア国内の通信に対して中間者攻撃ができてしまう懸念があるらしい*2。
The Root CA doesn't have any name constraints which means it's capable of issuing certificates for any domain that exists, not just Russian domains. This has raised the concern that it could be used to intercept and decrypt the traffic of Russian citizens. https://t.co/aKEEfVlZWa
— Scott Helme (@Scott_Helme) 2022年3月11日
ChromeやFirefoxといったブラウザではこの証明書はデフォルトでは信頼されていないため、手動で証明書を追加する必要がある。しかし、上記のような懸念があるとすると、ロシア国内では銀行などのサイトでRussian Trusted CAの証明書が必要な場合はこれをデフォルトで信頼するYandexなどのブラウザを使い、それ以外はChromeやFirefoxを常用する、といった形で使いわけをすることになるのだろうか。なかなかに面倒だ。
もっとも、こちらの記事によると、「国家認証局は、ドメインの証明書を明示的に要求した組織にのみ発行します。これらのドメインの完全なリストは、https://www.gosuslugi.ru/tlsで公開されています。」ということらしい。
日本語でもいくつか記事が出ていた。
[その他のニュース]
▼NVIDIAのコード署名証明書が流出した話。
有効期限が切れた証明書ではあるものの、Windowsは有効期限をチェックしないため危険、ということらしい。
▼TLS1.3のCA証明書スキップ
TLS1.3で認証局の証明書データを送信せずにハンドシェイクメッセージのサイズを小さくしよう、という試みがあるらしい。現在ドラフトとして提案されている新しいTLS拡張tls_flags(TLS1.3限定)をもとにした仕組みのようだ。
▼MSのルート証明書変更
Microsoft365やSkypeの証明書のルートCA証明書が2025年に期限切れになるのに伴い、2022年10月までかけて順次変更になるらしい。確かにピンニングしてるとダメかも。
Microsoft 365のサービスで利用しているTLS証明書のルートCAが変更になりますよー
— Yurika (@EurekaBerry) 2022年3月10日
基本的にはユーザー影響は出ませんが、信頼するルートCAを ”証明書ピニング” などで決め打ち固定をしている場合は新CAへ設定変更などが必要ですので要注意ですhttps://t.co/eCXKdxeCcC
▼Mocana nanoSSLの脆弱性(CVE-2022-22805)
Mocana nanoSSLという組み込み向けのSSLライブラリのリモートコード実行の脆弱性により、無停電電源装置が壊れるらしい。
元のレポートによると、TLSレコードヘッダで指定されるデータ長は暗号化の対象外なので、ここを操作されるとライブラリが不要なデータを読み込んでしまう。その結果が一定値を超えるとエラーとなるが、その際にTLSコネクションをライブラリが破棄すべきところ、アプリケーション側にTLSコネクションの破棄を委ねてしまったことが一因とのこと。
同ライブラリには他にも脆弱性が見つかっているようだ。
▼Certainlyの続報
TLSらじお第46回で触れた、Fastlyが新設しようとしている認証局Certainlyについて。
前述のロシアの新認証局がなかなかトラストストアに入れてもらえなそうなのに対して、MozillaはGoDaddyによるCertainlyへのクロス署名証明書を承認することになりそう。Mozillaのルートトラストストアで使えるようになる、ということはFirefoxやLinux上のソフトウェアで利用できるということになりそう。
Mozilla plan to approve the GoDaddy cross-signing of Certainly intermediate certificates unless there are any significant objections in the next 7 days: https://t.co/MjVI560kSc
— Scott Helme (@Scott_Helme) 2022年3月11日
[まとめ]
2018年に仕様が決まった、と思っていたTLS1.3もまだまだ変更が入りそう。プロフェッショナルSSL/TLSのPDF版にはTLS1.3の解説もあるので、まずは今年のうちに基本を押さえておきたい所存。
Special Thanks: kapieciiさん