knqyf263's blog

自分のためのメモとして残しておくためのブログ。

2022-01-01から1年間の記事一覧

curlでKeyless Signingする (6) - Trillian編

はじめに Trillianとは Verifiable Data Structures Tree head hash Signed tree head Inclusion proof 検証方法 Inclusion proof ハッシュ計算 Leaf hash Node logIndex 完全二分木でない場合 概要 計算方法 手動で試す Signed tree head (STH) Inclusion p…

curlでKeyless Signingする (5) - Verify編

はじめに 全体像 手動で試す Fulcioのルート証明書と中間証明書を取得する Rekorでtlogを検索する 検索API 取得API UUIDの検証 tlog内の証明書を取り出して検証する 証明書チェーンの検証 メールアドレスやワークフロー情報の検証 SCTの検証 渡された署名を…

curlでKeyless Signingする (4) - Rekor編

はじめに Cosignで試す 手動で試す 【参考】rekor-cliによるアップロード curlでアップロード リクエストの作成 Signed Entry Timestampの検証 余談 まとめ はじめに 手動でKeyless Signingしてみようという誰にも望まれていないシリーズの4本目です。 curl…

curlでKeyless Signingする (3) - Signed Certificate Timestamp編

はじめに SCTとは? sigstoreにおけるSCT SCTの確認 CTログサーバの公開鍵取得 Log IDの検証 署名検証 SCTのデータフォーマット sct_version signature_type timestamp entry_type signed_entry tbs_certificate extensions SCT署名対象の作成 SCTの検証 ま…

curlでKeyless Signingする (2) - Fulcio編

はじめに 証明書発行の流れ Certificate Request Input Authentication Verifying the challenge Constructing a certificate Signing the certificate Certificate Transparency log inclusion Return certificate to client 手動で発行する Certificate Re…

curlでKeyless Signingする (1) - OpenID Connect編

確実に忘れるであろう将来の自分と、Keyless Signingに異常な興味を持つ日本に数人しかいないであろう人達のための記事です。 背景 前提 Keyless Signing全体のフロー OIDCのフロー 認可コードの取得 IDトークンの取得 手動で試す OpenIDプロバイダーの情報…

至高のGoプラグイン用ツールを作った

最近YouTuberのリュウジの料理を毎日作っているので至高とか無限とか言いがちですが個人の感想です。万人にとって美味しい料理はないように、万人にとって至高のツールは存在しません(何の話?)。ちなみに公開してすぐバグを見つけてしまったので全然至高…

GoのWasmランタイム上でZigで作ったWasmモジュールを動かす

Zigのコミッタの方から有益なフィードバックを頂いたり、Wasmランタイムのメンテナからコメントしてもらったり、Twitterでプロ開発者に助けてもらったり、と良い話が多かったのでそのへんの話も含めつつメモとして残しておきます。 最初に断っておきますがWa…

cargo-auditableで依存するcrateをバイナリに埋め込む

概要 詳細 事前準備 プロジェクトのビルド .dep-v0 section 解凍 余談 まとめ 概要 cargo-auditable というものがあるというのをGitHubで教えてもらいました。 github.com これを使ってRustプロジェクトをビルドすると依存するcrateの情報をバイナリに埋め込…

CVE-2022-32224(Railsの脆弱性)を試す

前回の記事は割と濃い味付けでしたが、今回は薄味です。 脆弱性自体は簡単なやつなのですが、調べている過程でRuby 3.1からYAMLのパースが安全になったことを知ったのでその共有がてら書きました。最近はあまりRubyを触る機会がなかったのでリハビリを兼ねて…

Dirty Pipe(CVE-2022-0847)の発見経緯が面白かった

最初に断っておくと今回は万人向けの記事ではないです。面白かったので自分が忘れないようにまとめているだけです。 本記事の位置付け はじめに 発見経緯 CRCのエラー HTTPアクセスログ 壊れたgzipのtrailerを見てみる 壊れたファイルの法則性 月次ログファ…

セキュリティツールの評価は難しい

前から思ってたことをちょっと書かずにいられなくなったのでポエムを書きました。 背景 問題 検知している方が正しいように見えがち 条件を揃えるのが難しい 環境の再現が難しい 検知数が多い方が良さそうに見える 正解かどうかの判断が難しい カバー範囲の…

20分で分かるDirty Pipe(CVE-2022-0847)

極限まで詳細を省けば何とか20分で雰囲気だけでも伝えられるんじゃないかと思って書きました。書き終えてから見返したら多分無理なので誇大広告となったことを深くお詫び申し上げます。 背景 概要 脆弱性の影響 ページキャッシュやsplice パイプ マージの可…

spliceを使って高速・省メモリでGzipからZIPを作る

良い話を含むので概要の最初だけでも読んでもらえると幸いです。この話が実用的かと言うと多分全然実用的ではないので理解しても仕方ないかなと言う気がします。 概要 ファイルフォーマット gzip 10-byteのヘッダ 拡張ヘッダ ファイル本体 フッタ(trailer)…

sigstoreによるコンテナイメージやソフトウェアの署名

恐ろしく長い上に割と複雑なので最後まで読む人はほとんどいないと思うのですが、将来確実に忘れてしまう自分のために書いたので別に悲しくありません。 まえがき 背景 sigstoreの概要 sigstoreを構成するツール群 Cosign Rekor Fulcio 署名方法 コンテナイ…

Docker DesktopからRancher Desktopに乗り換えてみた

この記事はPRを含みます。 概要 背景 移行 Docker Desktopのアンインストール Rancher Desktopのインストール Kubernetesクラスタの無効化 宣伝 まとめ 概要 Rancher Desktopがcontainerdに加えdockerにも対応したのでDocker Desktopから乗り換えてみました…

自分でやるべき(ように思える)ことを得意な誰かに任せるという考え方

完全なるポエムです。自分にとって斬新な考え方だったので思わず勢いで書いていますが、知っている人からすると当たり前ですし、冷静に読み返すとだから何だよという内容に仕上がっています。読んだあとにだから何だよと言われても責任は取れません。 はじめ…