Cloudflare WorkersでHMAC付きCookieを使ったステートレスセッションを実装した

github.com

Cloudflare WorkersのランタイムはNodejsではない。Web Standards API (Crypto, atob, btoa, ... )で実装する必要がある。

有効期限を持ち、MACで改ざんされたら分かるようにしたトークンを発行する。このトークンをクッキーに設定して、ブラウザとサーバーでの連続したラウンドトリップ間にセッションを作る。

この実装ではHMACのハッシュアルゴリズムにはSHA256を選択した。

キーの長さは32bitで十分らしい timing attackへの対策、定数時間でのハッシュ値比較、web cryptoのhmac verifyはどうなってる?