2023年9月11日~2023年9月17日に読んだ中で気になったニュースとメモ書き(TLSらじお*1第123回の原稿)です。
全文を公開している投銭スタイルです。
- [Androidのルートトラストストア]
- [ISO 18031の新ドラフト]
- [Chromeの鍵アイコンの行方]
- [その他のニュース]
- [暗認本:22 OpenSSLによるRSA暗号鍵の作り方]
- [まとめ]
[Androidのルートトラストストア]
こちらのツイートから。
Correction: the previous CA injection method doesn't work on Android 14, but there is still a way. https://t.co/PPJ6NNmkO5
— /r/netsec (@_r_netsec) 2023年9月16日
リンク先はこちら。
Android 14でルートトラストストアに独自の証明書を追加できなくなる可能性があったが、何とかする方法が見つかった、という話らしい。
そもそもAndroidだとルート証明書ごとに信頼する・しないを決定できるのを知らなかった。
iOSだとTrust Storeのバージョンが見えるだけで信頼の変更は変更できなさそう。
[ISO 18031の新ドラフト]
こちらのツイートから。
Happy to report that the new revision of ISO 18031 gets rid of Dual_EC_DRBG and MS_DRBG 🥳 (still in the 2011 version), contains a rational discussion about entropy input, and allows (even suggests!) the usage of SHA3 & SHAKE. Entropy src stochastic model is still optional here. pic.twitter.com/nuiRxr967Y
— mjos\dwez (@mjos_crypto) 2023年9月13日
It's now like a combo of NIST Stuff (SP 800-90A/B/C) and BSI things (AIS-21/31). More like the NIST thing.
— mjos\dwez (@mjos_crypto) 2023年9月13日
The old ISO 18031:2011 was basically 800-90A + crazy stuff from NSA.
ps. What was MS_DRBG? See: https://t.co/rJRiI0cry3 and https://t.co/gYbd7xe6Qz
ISO規格といえば情報セキュリティのISO 27001とかクラウド絡みのISO 27017くらいしか知らなかったけど、ランダムビット生成に関する規格としてISO 18031:2011というのがあるらしい。
名前から分かる通り、2011年に策定された古い規格である。なので、2013年に問題となったNSA(アメリカ国家安全保障局)のバックドア・アルゴリズムDual_EC_DRBGがまだ規格中に残っている*2。ドラフトではDual_EC_DRBG(ともう一つ問題になっているMS_DRBG)を削除したり、新しくSHA3やSHAKEといったハッシュ関数を追加したりしているらしい。
MS_DRBGは、最近の研究でISO規格の内容では安全でないパラメータが利用される可能性があり、バックドアにつながる危険性があると指摘されている。
ISO、意外と古いままなんだな...。
[Chromeの鍵アイコンの行方]
こちらのツイートから。
My mobile Chrome just started displaying the spoons icon instead of the HTTPS lock icon! Soon in your Chromes as well.https://t.co/MgG1Qsr1BO pic.twitter.com/1OlCsYglhy
— Michal Špaček (@spazef0rze) 2023年9月13日
ついにモバイルChromeから鍵アイコンがなくなってしまったらしい。
自分のiPhoneのChromeもアップデートしてみたところ、鍵アイコンは確かになくなったが、新しいアイコンも表示されなかった。
こちらがアップデート前。
こちらがアップデート後の画像。アイコンが...。
鍵アイコンに関するChromiumのブログを読むと、確かにiPhoneの鍵アイコンはタップできないので削除する、と書かれていた。なるほど。
Androidだと新しいアイコンが表示されるんだろうか。
Macの方のChromeは117まで更新しても鍵アイコンのままだった...なかなか新しいアイコンにさわれなくて悲しい。
[その他のニュース]
▼IETF 117耐量子暗号WG(PQUIP)紹介
こちらのツイートから。
ブログを更新しました!
— GMOサイバーセキュリティ byイエラエ株式会社【公式】 (@gmo_ierae) 2023年9月12日
「IETFにおける耐量子暗号関連WG(PQUIP)の紹介」by酒見 由美(@ysakemin)https://t.co/F58YNAhoAK#GMOイエラエ#デベロッパーエキスパート#暗号のおねぇさん#IETF#PQC
リンク先はこちら。
PQUIP(Post-Quantum Use In Protocols)のWGは2023年3月に横浜で開催されたIETF 116で設立されたらしい。意外と最近だった...。TLS WGやCFRG(Crypto Forum Research Group)などに情報が点在していたのをつなぐ役割が期待されているっぽい。
2023年11月に次回IETF 118が開催されるとのこと。
自分はまだこの域には到達できてないな...😅
> 私は暗号プリミティブなら何でも好きでごはんが何杯も食べられちゃいます・:*+.\*3/.:+
— ゆき (@flano_yuki) 2023年9月12日
わかる。僕もHTTPのDraftでご飯食べれる。 https://t.co/9tBgTRiQeb
▼Let's Go Eevee!
こちらのツイートから。
ポケモン暗号シリーズに新作が出ていた (Bhati et al. CCS 2023)
— xagawa (@xagawa) 2023年9月13日
Eevee (イーブイ) シリーズとして, Umbreon (ブラッキー: 安全性優先), Jolteon (サンダース:パフォーマンス優先), Espeon (エーフィ: 中間) を作ったとのことhttps://t.co/Sfg9zmSsdv
リンク先はこちら。
イーブイシリーズはAEADの一種で、AES-GCMが適切でないIoT機器において、データを暗号化してクラウドに送り、マルチパーティ計算を行なって分散方式で復号するらしい。
▼コネクション・タンパリング
こちらのツイートから。
The Internet is not neutral. This is the first large-scale passive measurement of tampering online.
— Nick Sullivan (@grittygrease) 2023年9月13日
Anything sent in cleartext (including metadata like IPs and host names) can be used and *is* being used by ISPs to block content, even when using HTTPS. So fun to work on. https://t.co/dGpFtsOdka
リンク先はこちらの論文。
コネクション・タンパリング(通信の改ざんやブロック)に関する研究で、最大20%が影響を受けているとのこと。思ったより多いな...。TLS1.3でEncrypted Client Helloが利用され始めているが、それでも平文のSNI情報は残っており、初期のEncrypted SNI時代には中国が平文部分をチェックしてブロックに利用していたという話もある。
イランの例では、TLSのClient Helloパケットをサイレントにドロップしてタイムアウトを強制したり、RSTパケットを勝手に送ってきたりしている例もあるとか。夕方にタンパリングが多いのは仕事が終わってからのプライベートな通信が影響を受けているということだろうか。
▼Let's Encrypt 8周年
こちらのツイートから。
Eight years ago today. https://t.co/nO5cJDe8aD
— Let's Encrypt (@letsencrypt) 2023年9月14日
最初の証明書を発行したのが2015/9/15だったらしい。おめでとうございます。
[暗認本:22 OpenSSLによるRSA暗号鍵の作り方]
引き続き、ニュース以外のメインコンテンツとして『暗号と認証のしくみと理論がこれ1冊でしっかりわかる教科書』を読んでいく。
今週はChapter 4 公開鍵暗号から、セクション22をざっとまとめた。
- OpenSSL
- RSA暗号の秘密鍵と公開鍵の作成方法
- 秘密鍵と公開鍵の確認方法
openssl rsa -text -pubin -noout < pubkey.txt
- 公開鍵に関する情報が出力される
- 公開鍵が何ビットか
- Modulus:割る数n
- Exponent:べき乗する値e
openssl rsa -text -noout > seckey.txt
- privateExponent:秘密鍵d
- Pythonによる鍵の設定方法
- opensslで出力したデータを変換する関数convert_to_int
def convert_to_int(s): return int("".join(s.split()).replace(":", ""), 16) # 使い方 >>> n = convert_to_int(""" 00:c8:b4:8b:64:89:1c:7f:47:6c:69:50:72:18:8f: ...(略)... db:bb """)
# 平文m >>> m=123456789 # 暗号化 >>> c=pow(m, e, n) # 復号 >>> result=pow(c, d, n)
[まとめ]
OSによって結構違うもんだな...というのを改めて実感した。
※以降に文章はありません。投銭スタイルです。