kdnakt blog

hello there.

今週気になったTLS関連のニュース

2023年9月11日~2023年9月17日に読んだ中で気になったニュースとメモ書き(TLSらじお*1第123回の原稿)です。
全文を公開している投銭スタイルです。

[Androidのルートトラストストア]

こちらのツイートから。

リンク先はこちら。

www.g1a55er.net

Android 14でルートトラストストアに独自の証明書を追加できなくなる可能性があったが、何とかする方法が見つかった、という話らしい。

そもそもAndroidだとルート証明書ごとに信頼する・しないを決定できるのを知らなかった。

iOSだとTrust Storeのバージョンが見えるだけで信頼の変更は変更できなさそう。

[ISO 18031の新ドラフト]

こちらのツイートから。

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の鍵アイコンの行方]

こちらのツイートから。

ついにモバイルChromeから鍵アイコンがなくなってしまったらしい。
自分のiPhoneChromeもアップデートしてみたところ、鍵アイコンは確かになくなったが、新しいアイコンも表示されなかった。
こちらがアップデート前。

こちらがアップデート後の画像。アイコンが...。

鍵アイコンに関するChromiumのブログを読むと、確かにiPhoneの鍵アイコンはタップできないので削除する、と書かれていた。なるほど。
Androidだと新しいアイコンが表示されるんだろうか。

Macの方のChromeは117まで更新しても鍵アイコンのままだった...なかなか新しいアイコンにさわれなくて悲しい。

[その他のニュース]

IETF 117耐量子暗号WG(PQUIP)紹介

こちらのツイートから。

リンク先はこちら。

gmo-cybersecurity.com

PQUIP(Post-Quantum Use In Protocols)のWGは2023年3月に横浜で開催されたIETF 116で設立されたらしい。意外と最近だった...。TLS WGやCFRG(Crypto Forum Research Group)などに情報が点在していたのをつなぐ役割が期待されているっぽい。
2023年11月に次回IETF 118が開催されるとのこと。

自分はまだこの域には到達できてないな...😅

▼Let's Go Eevee!

こちらのツイートから。

リンク先はこちら。

eprint.iacr.org

イーブイシリーズはAEADの一種で、AES-GCMが適切でないIoT機器において、データを暗号化してクラウドに送り、マルチパーティ計算を行なって分散方式で復号するらしい。

▼コネクション・タンパリング

こちらのツイートから。

リンク先はこちらの論文

コネクション・タンパリング(通信の改ざんやブロック)に関する研究で、最大20%が影響を受けているとのこと。思ったより多いな...。TLS1.3でEncrypted Client Helloが利用され始めているが、それでも平文のSNI情報は残っており、初期のEncrypted SNI時代には中国が平文部分をチェックしてブロックに利用していたという話もある。

イランの例では、TLSのClient Helloパケットをサイレントにドロップしてタイムアウトを強制したり、RSTパケットを勝手に送ってきたりしている例もあるとか。夕方にタンパリングが多いのは仕事が終わってからのプライベートな通信が影響を受けているということだろうか。

▼Let's Encrypt 8周年

こちらのツイートから。

最初の証明書を発行したのが2015/9/15だったらしい。おめでとうございます。

[暗認本:22 OpenSSLによるRSA暗号鍵の作り方]

引き続き、ニュース以外のメインコンテンツとして『暗号と認証のしくみと理論がこれ1冊でしっかりわかる教科書』を読んでいく。
今週はChapter 4 公開鍵暗号から、セクション22をざっとまとめた。

  • OpenSSL
  • RSA暗号秘密鍵と公開鍵の作成方法
    • openssl genrsa 2048 > seckey.txt
    • openssl rsa -pubout < seckey.txt > pubkey.txt
      • 対応する公開鍵ファイルを作成
      • -----BEGIN PUBLIC KEY-----で始まる
  • 秘密鍵と公開鍵の確認方法
    • openssl rsa -text -pubin -noout < pubkey.txt
    • 公開鍵に関する情報が出力される
      • 公開鍵が何ビットか
      • Modulus:割る数n
      • Exponent:べき乗する値e
    • openssl rsa -text -noout > seckey.txt
  • 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
""")
  • PythonによるRSA暗号の動作確認
    • convert_to_intでn、dの値を変数の保持する
    • RSA暗号の関数f(x,y,n) = x^y mod nPythonだとpow(x, y, n)
# 平文m
>>> m=123456789
# 暗号化
>>> c=pow(m, e, n)
# 復号
>>> result=pow(c, d, n)

[まとめ]

OSによって結構違うもんだな...というのを改めて実感した。

※以降に文章はありません。投銭スタイルです。

*1:TLSらじおは社内勉強会です。このブログを読み上げつつ弊社サービスの実情を語ったりします。

*2:『プロフェッショナルSSL/TLS』のpp.248-249参照。

*3: °ω°

この続きはcodocで購入