ブックマーク / ritou.hatenablog.com (19)

  • デジタル署名文脈での公開鍵暗号方式の誤解を避けるため、署名鍵/検証鍵という表現を使うというお話 - r-weblife

    ritouです。 タイトルに全部書きましたが、Xでharuyamaさんが書かれていたものです。 (広義の公開鍵暗号の)電子署名の文脈においては公開鍵/秘密鍵と言わないで署名鍵/検証鍵などと言ったほうがいいのではないかな— HARUYAMA Seigo (@haruyama) 2024年5月19日 よくある誤解 最近、公開鍵暗号方式がデジタル署名文脈で使われているユースケースに触れる機会が増えてきました。 自分の守備範囲でいうと OpenID ConnectのIDToken パスキーのAttestation/Assertion 雰囲気で使われているJWT認証() あたりでしょうか。 もちろん暗号化/復号のユースケースもあるにはあるのですが、自分の観測範囲ではデジタル署名文脈の方が圧倒的に多く使われています。 このあたりを解説しようとする記事において、誤解というか誤った認識をされがちなのが、

    デジタル署名文脈での公開鍵暗号方式の誤解を避けるため、署名鍵/検証鍵という表現を使うというお話 - r-weblife
  • PWA Night vol.57 ~認証・認可〜 にてパスキーの話をしました - r-weblife

    ritou です。 これで話しました。 pwanight.connpass.com 発表資料と発表内容を公開します。 発表資料 speakerdeck.com 発表内容 台チラ見しながら話したので実際にはこのとおりになってなかった部分もあります。 今日は、パスキーについて話します。 細かい自己紹介は省略します。 色々宣伝したいものがありますがブログに書きます。 今日の内容ですが、初めにパスキーの概要についてざっと触れます。 続いてWebアプリケーションにパスキーを導入するとなった場合にどこから手をつけるべきかというところに触れた後、一番の悩みどころになりそうなログインのUI/UXについて紹介します。 概要からいきましょう。 パスキーの紹介記事もたくさん出ているので要点だけまとめます。 パスキーとは「パスワードが不要な認証方式」であり、それを支える仕様はFIDOアライアンスとW3Cにより策

    PWA Night vol.57 ~認証・認可〜 にてパスキーの話をしました - r-weblife
  • 最近よく見かける初心者エンジニアが転職の際に作る今時のポートフォリオに必須だと噂の「ゲストログイン」について - r-weblife

    おはようございます。ritou です。 タイトル長くてすみません。 QiitaでID連携や認証まわりの投稿記事を見ていると、最近「ゲストログイン」という文字列が目に止まることが増えたので何か書いておきます。 ゲストログインとは 「ゲストログイン」の検索結果 - Qiita 実はそんなに引っかかりませんが、このゲストログインと呼ばれる機能、実装者により内容もバラバラです。 どれが正解ってのもない気はしますが、1/31ぐらいの検索結果からどんな認識なのかを見てみます。 qiita.com ポートフォリオ必須といわれているゲストログイン。 そうなの? それとは異なり今回のゲストログインはあらかじめ設定されたデータでUserを新しく作成します。 なので「ゲストログイン」より「簡単新規作成」の方が言葉的に近いかもしれません。 def guest user = User.new(user_params

    最近よく見かける初心者エンジニアが転職の際に作る今時のポートフォリオに必須だと噂の「ゲストログイン」について - r-weblife
  • FIDOの最新動向から考える巨大プラットフォーマーとの関係 - r-weblife

    おはようございます、ritouです。 Google I/O の "A path to a world without passwords" っていう発表、ご覧になりましたか? www.youtube.com FIDO, WebOTP, FedCM...いいネタ揃ってますね!今回はFIDOの話をしましょう。 パスワード認証はもう終わり!時代はパスワードレス認証ですよと言い続けてはや数年経ちましたが、最近こんなプレスリリースが出ていました。 prtimes.jp すべての人にとってウェブをより安全で使いやすいものにするための共同の取り組みとして、AppleGoogleMicrosoft日、FIDOアライアンスとWorld Wide Web Consortium(以下、W3C)が策定した共通のパスワードレス認証のサポートを拡大する計画を発表しました。 何やら大ごと感ありますが、3行でまと

    FIDOの最新動向から考える巨大プラットフォーマーとの関係 - r-weblife
  • OAuth 2.0/OpenID Connectで使われるBindingの仕組みについて整理する - r-weblife

    おはようございます、OAuth警察を装っている ritou です。 qiita.com 認証認可技術 Advent Calendar 2019 2日目の記事です。 今日もやっていきましょう。 (2020/3/9追記)投稿の内容をさらにわかりやすく整理されたを @authyasan さんが書かれています。 #技術書典 応援祭の新刊をBOOTHで公開! OAuth・OIDCへの攻撃と対策を整理して理解できる(リダイレクトへの攻撃編 https://t.co/OtNRNQGmOJ 以下について学びたい方はぜひお読みください state nonce PKCE c_hash at_hash CSRF リプレイ攻撃 認可コード横取り攻撃 トークン・コードインジェクション— Auth屋@技術書典応援祭を応援!OAuthへの攻撃執筆中 (@authyasan) 2020年3月7日 私もレビューをさ

    OAuth 2.0/OpenID Connectで使われるBindingの仕組みについて整理する - r-weblife
  • JSON Web Signatureを簡単かつ安全に使うためのkid/typパラメータの使い方 - r-weblife

    こんにちはこんにちは、ritou です。 現状、様々な用途で利用されているJWTですが、今後はますます開発者にとって "簡単に" かつ "安全に" 利用できる状況が求められていくと考えられます。 今回はそのために重要になる、各種パラメータの扱いに注目します。 とりあえずライブラリ使えで終わりでは? JWTを扱うためには 各種暗号化処理 JSON, Base64URLエンコード/デコード あたりの処理が必要です。 関連仕様がRFC化されてからある程度時間も経っており、各言語で仕様を忠実に実装されたものから自身が使う機能をピンポイントで抽出して実装したものまで様々なライブラリが存在します。 ここで、 仕様に忠実に、全ての暗号化処理をサポートするライブラリ を使うだけで、誰もが安心、安全に利用できるかと言うと、そうでもないことは想像できるでしょう。 JWTの各種仕様とは別で最近RFC化された "

    JSON Web Signatureを簡単かつ安全に使うためのkid/typパラメータの使い方 - r-weblife
  • OAuth 2.0/OIDCに入門した開発者が仕様沼に潜るための次のステップとは? - r-weblife

    お疲れ様です、ritou です。 OAuth 2.0やOIDCの入門書(?)を読み終えた開発者の方に、仕様を理解していくための次のステップは何があるかを聞かれました。 そもそもそんなこと言う人は クライアントを実装したい(しなければならない) 認可サーバーを実装したい(しなければならない) セキュリティエンジニアを名乗っていてこの分野を抑えときたい ただ単純に興味がある : そんな人いる? とかそんな感じな気はしますが、基的なフローを乗り越えた先に広がる仕様沼への潜り方に戸惑っておられるようでした。 そこで、いわゆる RFC6749/6750/7636 あたりを完全に理解した開発者が山ほどある仕様にどう立ち向かっていくかを考えます。 仕様にも色々ある IETF の OAuth関連の仕様、いっぱいあります。密です。密です。みみみみみみみみ... tools.ietf.org 去年に一回まと

    OAuth 2.0/OIDCに入門した開発者が仕様沼に潜るための次のステップとは? - r-weblife
  • β公開された1Passwordのパスキー対応について調べてみた - r-weblife

    こんにちは、ritouです。 β公開から少し時間が経ってしまいましたが、1Passwordのパスキー対応について確認して整理しました。 www.publickey1.jp これまでAppleiCloud KeychainやAndroidGoogleパスワードマネージャーなどが プロバイダとしてのパスキーのサポートをしてきた中で、1Passwordが同様の対応をすることでクロスプラットフォームなパスキー利用環境が整うのか?と注目が集まっています。 個人的に1Passwordを活用しているので、使い勝手を見てみました。 環境は Chrome バージョン: 114.0.5735.133 @ macOS です。 1Passwordのβ版の拡張機能を有効にすることで動作確認ができます。 Relying Partyにはwebauthn.ioを利用します。 webauthn.io パスキーの生成/登

    β公開された1Passwordのパスキー対応について調べてみた - r-weblife
  • Appleの発表したPasskeys in iCloud KeychainはWebAuthnをどう変えるのか - r-weblife

    おはようございます、ritouです。 先日のWWDC2021の "Move beyond passwords" というセッションにて発表された "Passkeys in iCloud Keychain" という仕組みについてどんなものかを紹介します。 developer.apple.com WebAuthn 数年前からパスワード認証を置き換えると言われ続けている認証技術の一つである "WebAuthn" (やFIDO)という技術をご存知でしょうか。(ご存知ない方は "WebAuthn builderscon" "WebAuthn droidkaigi" などで検索してみましょう) 今回の話をするにあたって、WebAuthnがどんなものかをある程度理解しておく必要があります。 公開鍵暗号の仕組みを利用 パスワード認証のようにユーザーとログイン対象のWebアプリケーションがパスワードを共有する

    Appleの発表したPasskeys in iCloud KeychainはWebAuthnをどう変えるのか - r-weblife
  • bosyuが実装したメールアドレスでの登録/ログイン機能とは!? - r-weblife

    こんばんは、ritouです。 今日はこの機能を使ってみましょう。 /#bosyu をメールアドレス✉️で ご利用いただけるようになりました! \ 今まで、TwitterかFacebookのアカウントがないとご利用いただけませんでしたが、メールアドレスだけでも使えるようになりました。 より多くの方に、bosyuしたり応募していただければうれしいです☺️#bosyu開発室 pic.twitter.com/46zCST53Kg— bosyu公式 (@bosyu_me) 2020年7月27日 何の話? medium が前から採用していた方式です。 medium.com これを新しい方式と捉えるかどうか、個人的にはそれほど新しくは感じません。 長年の歴史からいわゆる「パスワード認証を用いた登録や認証フロー」には人類の持つ脆弱性への対策として必ずメールやSMSによるリカバリーがセットになって実装されて

    bosyuが実装したメールアドレスでの登録/ログイン機能とは!? - r-weblife
  • JWT+RDBを用いたOAuth 2.0 ハイブリッド型トークンの実装例 - r-weblife

    おはようございます、ritouです。 (⚠️認可イベントの識別子のあたり、ちょっと見直しました!最初に見ていただいた方はもう一回どうぞ!) 前回、ハイブリッド型と呼ばれる OAuth 2.0 のトークン実装について書きました。 ritou.hatenablog.com その続きとして JWT(JWS) + RDBでできる実装例を紹介します。 理解するにはそれなりの OAuth 2.0 に関する知識が必要になるかもしれませんが、よかったら参考にしてみてください。 何を考えたのか OAuth 2.0のRefresh Token, Access Tokenを考えます。 要件から整理しましょう。 要件 結構ありますが、最低限の OAuth 2.0 の Authorization Server を実装しようと思ったらこれぐらいはやらないといけないでしょう。 RFC6750 で定義されている Bear

    JWT+RDBを用いたOAuth 2.0 ハイブリッド型トークンの実装例 - r-weblife
  • ID連携の標準化仕様紹介とセキュアな実装のためのアプローチ ~ 2021 - r-weblife

    おはようございます ritou です。 久々に「解説付きスライド全公開」的なやつをやります。 先月、チーム内でID連携のための標準化仕様に関する勉強会(私が一方的に話す会)を行いました。 が、実際はだいぶグダグダになってしまい、これはその後色々付け足してるうちに別物になってしまった資料です。 内容としては、ID連携のための標準化仕様にどのようなものがあるかを知ってもらうための「入門編」のような立ち位置で作りました。 OpenID Connect(やSAMLのような) ID連携のための標準化仕様を紹介しようと思うと、ついつい個別にシーケンスやリクエスト/レスポンスの説明を始めがちですが、初学者が気になるのはそんな細けぇことではないでしょう。 まずは「この仕様で何ができるようになるのだろう」「この仕様では何を実現したいんだろう」と言うところから理解していくのが良いのではないでしょうか。 そこで

    ID連携の標準化仕様紹介とセキュアな実装のためのアプローチ ~ 2021 - r-weblife
  • GitHubの2要素認証がWebAuthnに対応したらしいので触ってみた - r-weblife

    どーも、ritouです。 世の中みんながこの話題に夢中かと思います(大げさ)。 github.blog GitHubは以前から2要素認証の方式としてセキュリティキーをサポートしてきました。2015年ですって。 github.blog 今回、その実装がWebAuthnに変更になったということです。 forest.watch.impress.co.jp 将来的には“Windows Hello”や“Touch ID”などもサポートされるという。 Windows HelloやmacOSChromeなどを用いたTouch IDが利用可能になるのは、将来の話ではありません。もう対応しています。 www.publickey1.jp この記事はパスワードレスを実現したかのような書きっぷり。 WebAuthnはパスワードレスを実現するための仕組みだが、今回のGitHubの対応は用途を2要素目の認証方法に限

    GitHubの2要素認証がWebAuthnに対応したらしいので触ってみた - r-weblife
  • 認証機能を独自実装する代わりにIDaaSのREST APIを使うアプローチ - r-weblife

    こんにちは、ritou です。 最近のあれこれでIDaaSと呼ばれる機能に注目が集まっているような気がしますが、どうしてもフロントエンドでの導入部分が目に付きます。 「新規サービスで使っていこう」ならまだしも「既存のを何とかしたい」みたいな場合にフロントエンドまでごっそり変えるのなんて腰が重くなって仕方ない感じでしょう。 そこで今回は、REST APIを用いた新規導入、移行というアプローチもあるのかなという話を書いておきます。 SPAとなると当然フロントエンドの振る舞いに注目されるけど、Deviseからの...を考える人たちはこの辺りから攻めるのもアリかと思う。ちゃんと整理して考えよう。https://t.co/fwhoA6wtjx— 👹秋田の🐱 (@ritou) 2020年8月19日 IDaaS の REST API この辺りをみてみてはどうでしょう。 Firebase Authe

    認証機能を独自実装する代わりにIDaaSのREST APIを使うアプローチ - r-weblife
  • 2020年版 チーム内勉強会資料その1 : JSON Web Token - r-weblife

    おはようございます。ritou です。 5月下旬ぐらいにチーム内勉強会としてJSON Web Token(JWT)についてわいわいやりました。 その際に作成した資料に簡単な説明を添えつつ紹介します。 このブログではJWTについて色々と記事を書いてきましたが、その範囲を超えるものではありません。 ちょっとだけ長いですが、ちょっとだけです。お付き合いください。それでは始めましょう。 JSON Web Token boot camp 2020 今回の勉強会では、JWTについて概要、仕様紹介という基的なところから、業務で使っていくにあたって気をつけるべき点といったあたりまでカバーできると良いなと思っています。 JSON Web Token 概要 まずは概要から紹介していきます。 JSON Web Tokenの定義とはということで、RFC7519のAbstractの文章を引用します。 JSON W

    2020年版 チーム内勉強会資料その1 : JSON Web Token - r-weblife
  • 「使える人にだけ使わせる」 ~ マネーフォワード IDのログインUXから見るパスキー普及のポイント - r-weblife

    ritouです。 いよいよドコモさんもパスキー対応が始まりましたね!いや、これを書いている時点ではまだです。 k-tai.watch.impress.co.jp それよりも、今回はマネーフォワード IDのパスキー対応に注目します。 corp.moneyforward.com (4/5追記) マネーフォワード側からも解説記事が出ていました。この記事で言いたいことが全部書いてあります。 moneyforward-dev.jp ブラウザのパスワードマネージャー機能を利用したパスワード認証のUX パスキー対応に触れる前に、マネーフォワードIDのパスワード認証のUXから見ていきましょう。 マネーフォワードの「メールアドレスでログイン」のフローを何も考えずに使うと、最初にメールアドレスを入れてからパスワード入力を求めるUXになっています。 このようなUXでブラウザのパスワードマネージャーの機能を使う場

    「使える人にだけ使わせる」 ~ マネーフォワード IDのログインUXから見るパスキー普及のポイント - r-weblife
  • SPAなClientがトークンを安全に扱えるかもしれない拡張仕様「OAuth2.0 DPoP」とは - r-weblife

    おはようございます、ritou です。 今日は日頃の情報収集方法の一つである Mike Jones氏のブログ記事に書いてあったドラフト仕様のご紹介です。 self-issued.info The specification is still an early draft and undergoing active development, but I believe the approach shows a lot of promise and is likely to be adopted by the OAuth working group soon. まだDraft中のDraftな状態ですが、まいくたんの推し感が出ているのでざっと見ておきましょう。 OAuth2.0 DPoPとは? tools.ietf.org This document describes a mechanism

    SPAなClientがトークンを安全に扱えるかもしれない拡張仕様「OAuth2.0 DPoP」とは - r-weblife
  • Webアプリケーションのセッション管理にJWT導入を検討する際の考え方 - r-weblife

    おはようございます、ritou です。 qiita.com これの初日です。 なんの話か 皆さんは今まで、こんな記事を目にしたことがありませんか? Cookie vs JWT 認証に JWT を利用するのってどうなの? JWT をセッション管理に使うべきではない! リンク貼るのは省略しますが、年に何度か見かける記事です。 個人的にこの話題の原点は最近 IDaaS(Identity as a Service) として注目を集めている Auth0Cookie vs Token とか言う比較記事を書いたことだと思っていますが、今探したところ記事は削除されたのか最近の記事にリダイレクトされてるようなのでもうよくわからん。 なのでそれはおいといて、この話題を扱う記事は クライアントでのセッション管理 : HTTP Cookie vs WebStorage(LocalStorage / Sess

    Webアプリケーションのセッション管理にJWT導入を検討する際の考え方 - r-weblife
  • OAuth認証とは何か?なぜダメなのか - 2020冬 - r-weblife

    こんばんは。ritouです。 Digital Identity技術勉強会 #iddance Advent Calendar 2020 1日めの記事です。 qiita.com 初日なのでゆるふわな話をしましょう。 何の話か もうだいぶ前ですね。9月のお話です。こんなTweetを見かけました。 社内Slackにいる「OAuth認証」と書くと訂正してくれるbotが丁寧な解説をするようになっていた 認証(Authentication)と認可(Authorization)は間違えやすいわりにミスると甚大な被害をもたらしがちなので、常日頃から意識を高めていきたいですね pic.twitter.com/oVQxBgZcHS— greenspa (@greenspa) 2020年9月28日 このbotに対する思うところはもう良いです。 今回は、「OAuthの仕様に沿ってID連携を実装するいわゆる"OAut

    OAuth認証とは何か?なぜダメなのか - 2020冬 - r-weblife
  • 1