Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Macaroons

 Macaroons

ライトニングノード実装のLNDは、RPCコールにTLS暗号化とMacaroonsによる認証機構を組み込んでいます。今回は、このMacaroonsの原著論文を掘り下げてみたいと思います。

暗号通貨読書会 #75 Macaroonsでの発表資料となります。
https://cryptocurrency.connpass.com/event/276334/

Toshihide Hara

March 27, 2023
Tweet

More Decks by Toshihide Hara

Other Decks in Technology

Transcript

  1. Macaroonsとは Macaroonsの原論文: A. Birrell, et al. "Macaroons: Cookies with Contextual

    Caveats for Decentralized Authorization in the Cloud." 2014. https://static.googleusercontent.com/media/research.google.com/ja//pubs/archive/41892.pdf 背景 1997年 DHTML登場、CookieがRFC標準化 - HTML+CSS+JavaScriptなWeb1.0時代に 2005年 Ajax登場 - Google Mapを筆頭に動的に通信する UIがはじまる 2006年 マッシュアップはじまる - WebサービスAPIが提供され、Web2.0時代に 2007年 OAuth1.0登場 - APIアクセス権限委譲のしくみが標準化される 2008年 Chrome Browser登場 - JS V8エンジンが次元を上げた 2012年 AngularJS v1.0.0登場、OAuth2.0 RFC標準化 - SPA時代に 2017年 LND v0.2がgRPCの認証方式としてMaracoonsを導入 Webサービスの連携が増え、デジタルアイデンティティの共有が問題となってきた時代に提案された
  2. Macaroonsが解決したいこと Webサービス間での連携は大変だよ問題 実現したいこと • Google Photoで管理しているプライベートな写真を、 • その画像へのURLリンクを電子メールで安全に送信し、 • Apple写真アプリで家族だけに共有する

    課題感 これら2つのサービスが独自に連携を作り込めば可能だけど... 公開鍵証明書ベースな仕組みを構築すると、”認可”をサービス間で委任できるけど、証明書の取消問題、 公開鍵ベースは重い問題等が課題になる また、アイデンティティの共有を要求するページにリダイレクトされたりなど、UXは微妙 技術的背景 主なWEBサービスでの制御は、Bearer Tokenを運ぶHTTP Cookie認証メカニズムに基づいている 利用可否が「トークンの所有」のみで決定されるもの
  3. Macaroons Macaroonsは制限(Caveat)を付加できる Hash(secret, identifier, location) => signature Hash(signature, “user =

    emily”) => signature Hash(signature, “action = read”) => signature Hash(signature, “resource =cat.gif”) => signature Predicates 実際にはHMACを使う
  4. Macaroonsについて ProsCons Federationな仕組みをつくる際に、効率良く簡単に導入できる 既存の方法 • 単純なBearer Tokenベースで、無条件に権限が付与され、ドメイン間で直接送信される • APIキー、OAuthトークン、SAML、OpenIDアサーションなど •

    これらが使われているのは効率性、幅広い適用性、採用のし易さのため Macaroonsの利点 • HMACベースであり、上記特性をすべて備える • BearerベースなのでMacaroonsを集めるだけで権限を得ることができる • ユーザーがクレデンシャルをいつ、どこから使うかを制限できる Macaroonsの欠点 • 検証できるのは(鍵を持つ)サービス提供者だけ • 鍵を使い回すような複雑な仕組みには応用できない(セクション IV-D, V-B, V-Hで公開鍵を使った ワークアラウンドを提案)
  5. Macaroonsについて 応用例 CookieとしてMacaroonsを利用する 全てのOutbound Cookieを単一のクライアント IPに制限し、有効期限を数秒に制限することで、 Cookie盗 難時のリスクをさげられる ❓ クライアントがAPIリクエストを行う際に

    Cookie Macaroonsに付加された制限を Clientが持つ秘密鍵で 検証するということ? クライアントの子クライアントにて Cookie Macaroonsを保持するということ?
  6. References Macaroonsの原論文: A. Birrell, et al. "Macaroons: Cookies with Contextual

    Caveats for Decentralized Authorization in the Cloud." 2014. LND (Lightning Network Daemon): • GitHubリポジトリ: https://github.com/lightningnetwork/lnd • LND Macaroonsドキュメント: https://github.com/lightningnetwork/lnd/blob/master/docs/macaroons.md ChatGPT https://chat.openai.com/chat/
  7. 株式会社AndGo代表取締役 原 利英,博士(理学)  2010年3月 東京理科大学理工学研究科情報科学専攻博士後期課程卒業  2010年4月 - 2015年3月 東京理科大学理工学部情報科学科助教  2015年4月 - 2017年4月 アクテイブ株式会社IT研究所主任研究員  2017年4月 株式会社AndGo創業 著書:数理物理と数理情報の基礎,

    近代科学社, 2016. SNS: 専門: 電子工作 天空の城ラピュタ ドラゴンボール 東芝J3100 (白黒液晶) QBasic, Delphi Doom, Quake, Unreal 小学生 中学生・高校生 ゲノム解析手法 塾教師/がん研究会 アーチェリー github/toshihr @ToshihideHara 大学生 Genome Analysis / Drug Delivery System / Chaos / Crypto 研究職 暗号と出会う ゲノムは暗号! ・高精度アライメント法 ・AESより速い暗号化法 ・暗号化したまま比べる技術
  8. 株式会社AndGo代表取締役 原 利英,博士(理学)  2010年3月 東京理科大学理工学研究科情報科学専攻博士後期課程卒業  2010年4月 - 2015年3月 東京理科大学理工学部情報科学科助教  2015年4月 - 2017年4月 アクテイブ株式会社 IT研究所主任研究員  2017年4月 株式会社AndGo創業

    著書:数理物理と数理情報の基礎 , 近代科学社, 2016. SNS: 専門: 電子工作 天空の城ラピュタ ドラゴンボール 東芝J3100 (白黒液晶) QBasic, Delphi Doom, Quake, Unreal 小学生 中学生・高校生 ゲノム解析手法 塾教師/がん研究会 アーチェリー github/toshihr @ToshihideHara 大学生 Genome Analysis / Drug Delivery System / Chaos / Crypto 研究職 暗号と出会う ゲノムは暗号! ・高精度アライメント法 ・AESより速い暗号化法 ・暗号化したまま比べる技術 Who is me