2024年2月5日~2024年2月11日に読んだ中で気になったニュースとメモ書きです。社内勉強会TLSらじお第143回分。
[CTログのモニタリング]
こちらのツイートから。
サーバ証明書を監視するGo言語ライブラリを作ってみたので、必要のある人はどうぞ
— akakou (@_akakou) 2024年2月5日
(要はCertificate Transparency技術です)https://t.co/UIi3TjiBs6#CertificateTransparency
リンク先はこちら。
Meta社がCTのAPIを提供していたとは知らなかった。このAPIを利用するためのGoのライブラリを作った、と。
対象のドメインを指定して、証明書アラートを飛ばしてくれるWebhookは便利そう。Meta Appとやらを作ってApp IdとAccess Tokenをもらわないと利用できなさそうなのが残念。
Cert Spotterは有償だしなあ...と思ってたけど、OSS版もあるっぽい。使ってみようかなあ。
[耐量子暗号ハンドシェイク遅延]
こちらのツイートから。
『The impact of data-heavy, post-quantum TLS 1.3 on the Time-To-Last-Byte of real-world connections』
— ゆき (@flano_yuki) 2024年2月8日
ポスト量子暗号のTLS1.3のハンドシェイク遅延影響のペーパー。AWS 勢が書いてるhttps://t.co/1xAyoL9seo#yuki_paper
リンク先はこちら。
Kyber(ML-KEM)とDilithium(ML-DSA)による耐量子鍵交換を利用した場合に、最初の1バイトが届くまでの時間は30%程度増加する可能性があるが、安定した高帯域のネットワークの場合最後の1バイトが届くまでの時間は5%程度しか増加しないらしい。
そもそも不安定なネットワークの方が問題だ、とも書かれている。意外と耐量子暗号を使っても、なんとかなるのかも?
[その他のニュース]
▼Google Trust Servicesのインシデント(2024/01/31)
こちらのツイートから。
📝Google Trust Servicesでのインシデント報告。
— Yurika (@EurekaBerry) 2024年2月6日
Google Trust Services: Failure to properly validate IP addresshttps://t.co/RXwTvzDnmP
リンク先はこちら。
Googleの認証局GTSのACMEの仕組みに長年の問題があったらしい。一般的にサーバ証明書のSANの値はドメイン名が指定されるが、IPアドレスを指定することもできる(他に、メールアドレスなども。RFC 5280)。
で、ドメイン名の処理は十分に自動化されていたが、IPアドレスの方はそうではなかったため、IPアドレスの検証(Validation)が十分にされないまま、証明書が発行されてしまったらしい。
インシデントのタイムラインが2011年から2024年までの長期間にわたっていて、全体を理解するのが大変...。
▼Microsoft Cloud PKI
こちらのツイートから。
みんな大好き Cloud PKI のリリースが近づいています。
— tamaiyutaro (@tamai_pc) 2024年2月6日
YouTube の動画で、Microsoft Cloud PKI の使い方について事前にキャッチアップしておきましょう!
早く触りたいな~https://t.co/qyBT4tnbzG#MSIntune #CloudPKI
リンク先はこちら。
デバイスの証明書管理とかに使うサービスっぽい。そんなのあるんだ。
▼Go 1.22リリース
こちらのツイートから。
Go 1.22 released https://t.co/gfELJqCHwa
— Frank ⚡ (@jedisct1) 2024年2月7日
リンク先はこちら。
TLSサーバとして動作する場合の最小バージョンが、クライアントに合わせてTLS1.2になるとのこと。なかなか保守的だったんだなあ。
と思ったら、ECDHEを含まない暗号スイートをデフォルトではサポートしなくなったとも。こっちはちょっと急進的な気もする...。
▼OV/EV証明書のACME
こちらのツイートから。
以前からOV/EV証明書のACMEってどう運用してるのか謎だったんだけど、先日のイベントでDgiCertさんの展示ブースで教えてもらって理解した。やっぱり手動認証は平行して必要だけど、一度認証されると1年はアカウントと紐づいているから、その間毎日でも証明書再発行できるし、次の認証も進められる。 https://t.co/KC3i715svZ
— Ichihara Hajime / 市原創 (@haj18) 2024年2月10日
コロナ禍になってから、オフラインのイベントはほとんど行けてない...。OV証明書のACME気になるし、今度何か参加してみようかな。
▼ルートDNSのDoT
こちらのツイートから。
> Enabling testing of TLS at the root
— ゆき (@flano_yuki) 2024年2月10日
あんまり考えたことなかったけど、Root DNSでもDNS over TLSをサポートしてるとこが出てきてたんだ。
(スライドにも書かれてるけど必要性については詳しい人に聞いてみたいhttps://t.co/LZd8CcJlzt
リンク先はこちら。
先日の暗認本のDNSの回でDoTとかDoHはあくまでクライアントとキャッシュDNSサーバの間がメインと理解したところ。そもそもルートDNSへのリクエストってどう動いてるんだろう...よく分からない。
▼3ツイートでChaCha20-Poly1305
こちらのツイートから。
I've just implemented ChaCha20-Poly1305 in JavaScript, fitting it into 3 tweets. Couldn't make it fit into a single tweet, but I think it's impossible 😅
— 대나무젓가락 (@csapp3e) 2024年2月9日
// Usage:
// All parameters are Uint8Array
// Nonce should be 12 bytes
await encrypt(plaintext, aad, key, nonce) https://t.co/q5J692ZyUU
encrypt=async(P,Q,K,N)=>{I=-64;do{T=U=Uint32Array,J=0;O=await(A=async(...V)=>W(await(new Blob(V)).arrayBuffer()))("expand 32-byte k",K,(W=x=>new U(x))([I/64+1]),N),R=O.slice(),(D=b=>(S=[7,8,12,L=16],J<80&&(B=(W,Z,Y,X)=>(s=S.pop())&&(w=O[W]^=O[X]+=O[Y],O[W]<<=s,O[W]|=w>>>-s,B(Y,X
— 대나무젓가락 (@csapp3e) 2024年2月9日
,W,Z)))((M=i=>i*4+((J/4&1&&i)+J)%4)(3),M(2),M(1),J++%4)+D()))();for(i=L;i;O[--i]+=R[i]);U=Uint8Array;O=await A(O);P=I?P:W(P);Y=I<0?O:Y;for(i=0;i<64;i++)P[I++]^=O[i]}while(P[I]+1);r=(F=(a,i,j)=>(j??=L)?BigInt(a[i])+F(a,i+1,--j)*(Z=256n):0n)(Y,0)&0xffffffc0ffffffc0ffffffc0fffffffn;
— 대나무젓가락 (@csapp3e) 2024年2月9日
a=0n;p=P[l='length'],q=Q[l],k=(1<<30)*4,Q=await A(Q,(X=x=>W(x%L&&L-x%L))(q),P,X(p),new T([q,q/k,p,p/k]));for(I=0;Q[I]+1;I+=L)a=(a+F(Q,I)+(1n<<128n))*r%*1]}
— 대나무젓가락 (@csapp3e) 2024年2月9日
It's 779 bytes!
— 대나무젓가락 (@csapp3e) 2024年2月9日
I thought a tweet is 260 bytes, so did my best to make it under 780 bytes.
Looks I didn't have to though :/
あってるのかどうか分かんないけどすごい...。
▼ErlangのmTLSバグ修正
こちらのツイートから。
https://t.co/iwtk19HHvA Erlang/OTP 26.2.2 でてます。自分が報告した mTLS 利用時に TLS 1.3/1.2 をオプションに指定した際、TLS 1.2 が採択された際、クライアントの署名アルゴリズムが TLS 1.3 のままになってしまい、クライアント証明書が空で送られてしまう問題が修正されています。
— V (@voluntas) 2024年2月9日
これ(↓)がついに直ったらしい。
[暗認本:42 VPN]
『暗号と認証のしくみと理論がこれ1冊でしっかりわかる教科書』より、Chapter 8 ネットワークセキュリティのセクション42をまとめた。
- インターネットプロトコルスイート(RFC1122)
- データ構造
- LANからインターネットへ
- VPN(Virtual Private Network)
- VPNの種別
- IPSec(Internet Protocol security)
[まとめ]
Appleの出した新しい言語、どうしてもPKIに見える...。
PKIに見えて仕方がない😅>Appleがシステム構成のためのプログラミング言語「Pkl」をオープンソースでリリース - GIGAZINE https://t.co/3I0JpZyhFe
— Nat Sakimura/崎村夏彦 (@_nat) 2024年2月6日
*1:1n<<130n)-5n);a+=F(Y,L);return[P,W(L).map(t=>(r=a%Z,a/=Z,`${r}`