2023-05
2023-05-29
クレデンシャル管理に真剣
git-credential-manager を Git credential helper として導入
OAuth2 を使ったトークンの取得 + OS のクレデンシャル管理機構への保存を行う
今まで macOS では osxkeychain helper を,Linuxデスクトップでは gnome-keyrings-helper を使っていたが,無期限の PAT に依存するという問題があった
この機構便利すぎるし docker の credential helper や kubectl の client-go credential plugin として同じようなことをやるやつがほしい
secretive を導入した
YubiKey の PIV スマートカード機能を使って SSH の鍵管理をしているが,macOS では刺すのが面倒だったり PIN を打つのが面倒だったりする
タップで解除できるようにはできるが所有認証一本は若干の怖さがある
macOS の Secure Enclave ならそれなりに信用できるし Touch ID が使えて便利
PGP の鍵を生成するために色々
YubiKey に閉じた副鍵の生成ができるかなど
GPG でaddcardkeyでできる
公開鍵/秘密鍵,X.509,SSH,PGP の3種類くらいあり面倒
X.509 と PGP がフルサイズの規格として存在し,JWT や CWT が軽量版として存在するという印象
e.g. JWT などの軽量な規格にはトラストチェインの概念が存在しない
X.509 なら拡張として記録するような情報しか無い(公開鍵を持たない)
SSH は双方からアプローチされてて面白い
X.509 証明書を公開鍵の代わりに使って PKI の仕組みに乗って認証できるし
PGP の鍵を使って SSH することもできる
なぜか2023年になっても公開鍵のリストで認証が管理されがちなので公開鍵による認証の仕組みを理解するには単純でわかりやすい
authorized_keysが大きくなったら?→公開鍵を他の鍵で署名してその鍵の公開鍵だけ書いておけばいいんだ!みたいな導入でトラストチェインを理解している
ところで近年の PGP は Web of Trust なしで運用されることが主流になりつつあるらしい
e.g. keys.openpgp.org は Third party signature をサポートしていない
こうなると本当に暗号メッセージの送受信と署名にしか使わない
主鍵で副鍵を署名する以外のトラストチェインが存在しない
これなら別にオレオレ CA と証明書の関係でよくね?となってしまう
S/MIME を使えば同じようなことができるので
鍵サーバがある以外にいいところがなくないか?
現状(おそらく最大手の用途である)Git のコミットへの署名という観点ではまだ一番使えるということを書いておく
SSH 鍵は(少なくとも GitHub の仕組みの上では)チェインを構成できないので永続性の観点で問題があり
S/MIME は(GitHub では,というか一般の運用では)(オレオレでない)CA から発行された証明書が必要
署名の意味という観点では……
S/MIME はインターネットを普通に使うのなら信じていいはず
PGP は信用関係を真面目に構築しているのなら意味があるだろう
どれだけの人間が真面目にやっているのかという問題がある
Linux のコアコミッターはやってそう
SSH 鍵の場合意味があるかは怪しい
というか下の2つは GitHub を CA として究極的に信用する限りでは信じられるという話にはなる
GitHub のユーザーと commiter を厳密に結びつける手段ですと言われれば確かにそうではあるし,そのための目的ならば SSH 鍵であってもよいはず
GitHub を使っているのなら,概ね GitHub によるコミットを信頼する運用になる
GitHub によるコミットは PGP を使って署名されている
これを認めているなら,(そういう信用関係が PGP の上に存在するわけではないが)GitHub を中心とする信用構造ができていることになるのでは
2023-05-25
最近の RSC
Server Actions ってコア側のサポートがあるんだ
2023-05-18
知った
berglas
悩みに悩んだ Kubernetes Secrets の管理方法、External Secrets を選んだ理由 | PLAID engineer blog に書いてあったので正確には思い…出した!らしい
名前空間がフラットなのは気に食わないが,「全シークレットを読む」権限を持つコンポーネントが出現することを防げるのはポイントが高い
Pod が自らシークレットを取ってくるので,Pod に結びつけられた Service Account を workload idenitty federation を用いて必要な最小権限を持った GCP Service Account と結びつけてやることでシークレット単位の権限管理が可能になる
2023-05-15
ArgoCD Image Updaterの新機能でイメージ更新用のPRの作成を自動化する - もうずっといなかぐらし
任意ブランチへの同期できるようになってたんだ
2023-05-06
みた
BIRDIE WING 第18話「偽りとの決別」
偽りすぎるだろ
2023-05-05
みた
私の百合はお仕事です! シフト.03 「何を信じたらいいんですの?」
ギースギスギス
アイドルマスター シンデレラガールズ U149 第4話「羽が折れてるのに飛んでいくもの、なに?」
ありす 顔芸 コレクション
2023-05-04
みた
機動戦士ガンダム 水星の魔女 第16話「罪過の輪」
本質情報
神無き世界のカミサマ活動 第5話
Google が Passkey に対応したらしいので,ついでに Firefox で使える Passkey 実装が存在するのか調べてみた
Firefox で使える Passkey 実装
各ブラウザにおいて YubiKey のような Roaming Authenticator にアクセスするためのフローを見ていた
Firefox
選択肢がないので初手でセキュリティキーを使おうとする
通知許可とかの UI を流用しているっぽくて体験が絶妙に悪い
caBLE くらいは使えるようになってもいいんじゃないでしょうか
Chromium
Conditional UI (WebAuthn) に対応している
この場合,
1. 「他のデバイス」を選び
2. caBLE のためのQRコードが出るのでこれをキャンセルして他のデバイスの選択に移動し
3. 「USB セキュリティキー」を選ぶ
そうではない場合,
0. Platform Authenticator に登録されているサービスならばこれが優先されて表示されるのでこれをキャンセル
1. 他の方法が出てくるので「USB セキュリティキー」を選ぶ
デスクトップの Safari も概ねこんな感じ
Mobile Safari
Conditional UI (WebAuthn) のときだけデスクトップと異なる挙動をする
「近くのデバイス」の表示がない
パスワードマネージャ選択から「iCloud キーチェーン」を選ぶとその中に「パスキー」の表示があってそこから「近くのデバイス」に飛ぶことができる
異常すぎ
ちなみに YubiKey の NFC でいけそうに見えるがうまく動作しなかった
#日報