SlideShare a Scribd company logo
1 of 13
Download to read offline
Verifiable Credentialと画像を用いたSSOの実証
と課題点
Copyright © 2023 chaintope Inc. All rights reserved.
自己紹介
2
● Yukishige Nakajo
● 株式会社chaintope
Chief Ethereum Researcher
● core research
○ EVM, Beacon chain consensus
○ go-ethereum implementation
○ truffle
● twitter: @nakajo
● blog:
https://y-nakajo.hatenablog.com/
https://goblockchain.network/
Copyright © 2023 chaintope Inc. All rights reserved.
今日の話すこと
3
1. 実証のポイント
2. 実証で作成したシステムの構成
3. DIDとVCとは何か?
4. DID/VCを実際に用いる際の課題
Copyright © 2023 chaintope Inc. All rights reserved.
実証ポイント
4
1. 目視確認もできる様に画像にVerifiable Credentialを埋め込み※1たい。
2. Verifiable Credentialを埋め込んだ画像を認証に用いたい
※2。
3. 一番わかりやすい認証=ログイン
4. Verifiable Credentialをログインに用いるため、今回は
OpenIDと簡易的に融合させた
※3。
Copyright © 2023 chaintope Inc. All rights reserved.
システム構成
5
ID Provider / VC Issuer
Resource Provider
PNG chunk
Verifiable Data Registry
(Nginx, did:web)
1. 登録
2. 発行
<
3. 画像でlogin
4. did:webで検証
5. userInfo要求
画像の保有者であるとい
うclaim
subjectは保有者。一意
のidを発行
6. ログイン要求
・アクセス許可
Copyright © 2023 chaintope Inc. All rights reserved.
一般的なOpenID Connect
6
https://www.slideshare.net/oidfj/openid-connect-intro-september-2013 より
この部分をVCを
使って省略
Copyright © 2023 chaintope Inc. All rights reserved.
Verifiable Credentialの一般構成
7
ID Provider
が兼任
Resource
Providerが兼任
did:webを利用
Copyright © 2023 chaintope Inc. All rights reserved.
DIDとVerifiable Credentialの整理
8
DID
● 人物・物・データ等何かしらの Entityを識別するだけのもの。 (Identifier)
● 属性情報(名前や年齢など)は一切持たない。
● 唯一、claimを表現可能とするために検証可能な鍵情報と紐づいているのみ
Verifiable Credential
● 1つもしくは複数のclaimを表す物。
● これ自体はIDではなく、資格情報であり属性情報。
● Entityを表すのにDIDは不要。
● Issuerが発行したこと・内容が改ざんされていないことが検証可能でなければなら
ない。
● Privacyに配慮して、必要最低限の情報しか載せない。
(ex: 18歳以上であることを示すために、誕生日を記載するのは開示しすぎ。 )
Copyright © 2023 chaintope Inc. All rights reserved.
Verifiable Credential発行までの流れ
9
1. CredentialのClaimで使うためのschemaを策定
2. schemaを表現するcontextを策定
3. Verifiable Credentailの発行機能(Issuer)を実装
4. Verifiable Credentialの検証機能(Verifier)を実装
5. DID Documentをwebサーバ(今回は自前のNginx)に配置
6. Verifiable Credentialを発行
● 1.と2. を策定するのが大変。
○ claimは自由に定義可能。
○ claimはPrivacyに配慮して最低限、もしくはゼロ知識であるのが好
ましい※4。
○ claimのサンプルが増えてくると利用が加速していくのかも?
● claimのschemaが個別に異なるため、Verifier = Issuerの構造になりや
すい。
Copyright © 2023 chaintope Inc. All rights reserved.
contextとは
10
画像の所有者を表す
context(独自定義) credentialのcontext定義
(https://www.w3.org/2018/credentials/v1)
● Issuer - Holder - Verifier間でVCの(機械的な)解釈を統一させるためのもの。
● Verifiable Credentialに含まれるparameterと型情報などを定義するもの。
● JSON-LD形式で定義する。人間が可読可能なドキュメント形式でも可。
● XMLSchemaなど標準でさまざまな typeも定義されている。
Copyright © 2023 chaintope Inc. All rights reserved.
理想的なVerifiable Credential発行の流れ
11
Issuer Holder Verifier
1. 認証要求
2. 必要なclaimと
Issuerを指示
3. VC発行依頼
4. VC発行 or 拒否
5. VCの提出
Verifiable Data Registry
6. VCの検証
7. OK / NG
● 必要となった時に、最低限の情報のみを持つ VCが発行できることが望ましい。
● 実現のためには、2. と 3. を可能にするプロトコル定義が必要
株式会社chaintope
Chief Ethereum Researcher
中城 元臣
info@chaintope.com
12
Copyright © 2023 chaintope Inc. All rights reserved.
Appendix
13
※1. OpenBadgeのbakingをVCで利用可能であるかの検証も見越しての仕様。
https://www.imsglobal.org/sites/default/files/Badges/OBv2p0Final/baking/index.html
※2. 証明書関連は検証方法として目視確認も求められるため。
※3. DID + OpenIDの標準仕様はすでにある。が、今回はこれに準拠したいわけではなく、 VCを使っ
た何らかのシステム構築が目的。
https://openid.net/specs/openid-connect-self-issued-v2-1_0.html
※4. Verifiable Credetialの仕様にPrivacyに十分に配慮する必要性が記載されている。
https://www.w3.org/TR/vc-data-model/#privacy-considerations

More Related Content

Similar to 20230227 - Verifiable Credentialと画像を用いたSSOの実証と課題点.pdf

CCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptx
CCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptxCCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptx
CCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptxTomoaki Tada
 
20230728_VMUG_cisco.pptx
20230728_VMUG_cisco.pptx20230728_VMUG_cisco.pptx
20230728_VMUG_cisco.pptxunemotoakihiro
 
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(基礎編)配布用
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(基礎編)配布用Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(基礎編)配布用
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(基礎編)配布用シスコシステムズ合同会社
 
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)Masanori Ishigami
 
NGINX App Protect for Secure Coding Webinar
NGINX App Protect for Secure Coding WebinarNGINX App Protect for Secure Coding Webinar
NGINX App Protect for Secure Coding WebinarNGINX, Inc.
 
Kinect Camp with TMCN / Kinect入門ハンズオン 2015.06.06
Kinect Camp with TMCN/ Kinect入門ハンズオン 2015.06.06Kinect Camp with TMCN/ Kinect入門ハンズオン 2015.06.06
Kinect Camp with TMCN / Kinect入門ハンズオン 2015.06.06Akira Hatsune
 
July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話
July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話
July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話Shingo Kawahara
 
VMware Horizon へ YubiKey を使って認証をキメる話
VMware Horizon へ YubiKey を使って認証をキメる話VMware Horizon へ YubiKey を使って認証をキメる話
VMware Horizon へ YubiKey を使って認証をキメる話Wataru Unno
 
Unityゲームにオンラインランキングとゴースト機能を追加しよう!
Unityゲームにオンラインランキングとゴースト機能を追加しよう!Unityゲームにオンラインランキングとゴースト機能を追加しよう!
Unityゲームにオンラインランキングとゴースト機能を追加しよう!史識 川原
 
[Cloud Native Days Tokyo 2022] たまにはオンプレもいいぞ? GKE と Armadillo IoT で実現する ハイフ...
[Cloud Native Days Tokyo 2022] たまにはオンプレもいいぞ? GKE と Armadillo IoT で実現する ハイフ...[Cloud Native Days Tokyo 2022] たまにはオンプレもいいぞ? GKE と Armadillo IoT で実現する ハイフ...
[Cloud Native Days Tokyo 2022] たまにはオンプレもいいぞ? GKE と Armadillo IoT で実現する ハイフ...Ryo Sasaki
 
20210824 Pico session at CEDEC2021(旧)
20210824 Pico session at CEDEC2021(旧)20210824 Pico session at CEDEC2021(旧)
20210824 Pico session at CEDEC2021(旧)Miyu Nishikawa
 
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Hitachi, Ltd. OSS Solution Center.
 
Microsoft DevOps Hackathon (Sep 2015) Team 4 Presentation
Microsoft DevOps Hackathon (Sep 2015) Team 4 PresentationMicrosoft DevOps Hackathon (Sep 2015) Team 4 Presentation
Microsoft DevOps Hackathon (Sep 2015) Team 4 PresentationYuichiro Saito
 
CoreOS OEM on NIFTY Cloud - CoreOS Meetup Tokyo #1 #coreosjp
CoreOS OEM on NIFTY Cloud - CoreOS Meetup Tokyo #1 #coreosjpCoreOS OEM on NIFTY Cloud - CoreOS Meetup Tokyo #1 #coreosjp
CoreOS OEM on NIFTY Cloud - CoreOS Meetup Tokyo #1 #coreosjp雄也 日下部
 
AzureActiveDirectoryの認証の話(Azure周りの自動化編)
AzureActiveDirectoryの認証の話(Azure周りの自動化編)AzureActiveDirectoryの認証の話(Azure周りの自動化編)
AzureActiveDirectoryの認証の話(Azure周りの自動化編)Masahiko Ebisuda
 
PyconJP2017 Kivyによるアプリケーション開発のすすめ
PyconJP2017 Kivyによるアプリケーション開発のすすめPyconJP2017 Kivyによるアプリケーション開発のすすめ
PyconJP2017 Kivyによるアプリケーション開発のすすめJun Okazaki
 

Similar to 20230227 - Verifiable Credentialと画像を用いたSSOの実証と課題点.pdf (20)

CCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptx
CCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptxCCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptx
CCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptx
 
20230728_VMUG_cisco.pptx
20230728_VMUG_cisco.pptx20230728_VMUG_cisco.pptx
20230728_VMUG_cisco.pptx
 
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(基礎編)配布用
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(基礎編)配布用Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(基礎編)配布用
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(基礎編)配布用
 
React vtecx20171025
React vtecx20171025React vtecx20171025
React vtecx20171025
 
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
 
NGINX App Protect for Secure Coding Webinar
NGINX App Protect for Secure Coding WebinarNGINX App Protect for Secure Coding Webinar
NGINX App Protect for Secure Coding Webinar
 
React vtecx20171129
React vtecx20171129React vtecx20171129
React vtecx20171129
 
Kinect Camp with TMCN / Kinect入門ハンズオン 2015.06.06
Kinect Camp with TMCN/ Kinect入門ハンズオン 2015.06.06Kinect Camp with TMCN/ Kinect入門ハンズオン 2015.06.06
Kinect Camp with TMCN / Kinect入門ハンズオン 2015.06.06
 
July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話
July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話
July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話
 
VMware Horizon へ YubiKey を使って認証をキメる話
VMware Horizon へ YubiKey を使って認証をキメる話VMware Horizon へ YubiKey を使って認証をキメる話
VMware Horizon へ YubiKey を使って認証をキメる話
 
Fido self issued
Fido self issuedFido self issued
Fido self issued
 
Unityゲームにオンラインランキングとゴースト機能を追加しよう!
Unityゲームにオンラインランキングとゴースト機能を追加しよう!Unityゲームにオンラインランキングとゴースト機能を追加しよう!
Unityゲームにオンラインランキングとゴースト機能を追加しよう!
 
[Cloud Native Days Tokyo 2022] たまにはオンプレもいいぞ? GKE と Armadillo IoT で実現する ハイフ...
[Cloud Native Days Tokyo 2022] たまにはオンプレもいいぞ? GKE と Armadillo IoT で実現する ハイフ...[Cloud Native Days Tokyo 2022] たまにはオンプレもいいぞ? GKE と Armadillo IoT で実現する ハイフ...
[Cloud Native Days Tokyo 2022] たまにはオンプレもいいぞ? GKE と Armadillo IoT で実現する ハイフ...
 
Keycloak開発入門
Keycloak開発入門Keycloak開発入門
Keycloak開発入門
 
20210824 Pico session at CEDEC2021(旧)
20210824 Pico session at CEDEC2021(旧)20210824 Pico session at CEDEC2021(旧)
20210824 Pico session at CEDEC2021(旧)
 
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
 
Microsoft DevOps Hackathon (Sep 2015) Team 4 Presentation
Microsoft DevOps Hackathon (Sep 2015) Team 4 PresentationMicrosoft DevOps Hackathon (Sep 2015) Team 4 Presentation
Microsoft DevOps Hackathon (Sep 2015) Team 4 Presentation
 
CoreOS OEM on NIFTY Cloud - CoreOS Meetup Tokyo #1 #coreosjp
CoreOS OEM on NIFTY Cloud - CoreOS Meetup Tokyo #1 #coreosjpCoreOS OEM on NIFTY Cloud - CoreOS Meetup Tokyo #1 #coreosjp
CoreOS OEM on NIFTY Cloud - CoreOS Meetup Tokyo #1 #coreosjp
 
AzureActiveDirectoryの認証の話(Azure周りの自動化編)
AzureActiveDirectoryの認証の話(Azure周りの自動化編)AzureActiveDirectoryの認証の話(Azure周りの自動化編)
AzureActiveDirectoryの認証の話(Azure周りの自動化編)
 
PyconJP2017 Kivyによるアプリケーション開発のすすめ
PyconJP2017 Kivyによるアプリケーション開発のすすめPyconJP2017 Kivyによるアプリケーション開発のすすめ
PyconJP2017 Kivyによるアプリケーション開発のすすめ
 

20230227 - Verifiable Credentialと画像を用いたSSOの実証と課題点.pdf

  • 2. Copyright © 2023 chaintope Inc. All rights reserved. 自己紹介 2 ● Yukishige Nakajo ● 株式会社chaintope Chief Ethereum Researcher ● core research ○ EVM, Beacon chain consensus ○ go-ethereum implementation ○ truffle ● twitter: @nakajo ● blog: https://y-nakajo.hatenablog.com/ https://goblockchain.network/
  • 3. Copyright © 2023 chaintope Inc. All rights reserved. 今日の話すこと 3 1. 実証のポイント 2. 実証で作成したシステムの構成 3. DIDとVCとは何か? 4. DID/VCを実際に用いる際の課題
  • 4. Copyright © 2023 chaintope Inc. All rights reserved. 実証ポイント 4 1. 目視確認もできる様に画像にVerifiable Credentialを埋め込み※1たい。 2. Verifiable Credentialを埋め込んだ画像を認証に用いたい ※2。 3. 一番わかりやすい認証=ログイン 4. Verifiable Credentialをログインに用いるため、今回は OpenIDと簡易的に融合させた ※3。
  • 5. Copyright © 2023 chaintope Inc. All rights reserved. システム構成 5 ID Provider / VC Issuer Resource Provider PNG chunk Verifiable Data Registry (Nginx, did:web) 1. 登録 2. 発行 < 3. 画像でlogin 4. did:webで検証 5. userInfo要求 画像の保有者であるとい うclaim subjectは保有者。一意 のidを発行 6. ログイン要求 ・アクセス許可
  • 6. Copyright © 2023 chaintope Inc. All rights reserved. 一般的なOpenID Connect 6 https://www.slideshare.net/oidfj/openid-connect-intro-september-2013 より この部分をVCを 使って省略
  • 7. Copyright © 2023 chaintope Inc. All rights reserved. Verifiable Credentialの一般構成 7 ID Provider が兼任 Resource Providerが兼任 did:webを利用
  • 8. Copyright © 2023 chaintope Inc. All rights reserved. DIDとVerifiable Credentialの整理 8 DID ● 人物・物・データ等何かしらの Entityを識別するだけのもの。 (Identifier) ● 属性情報(名前や年齢など)は一切持たない。 ● 唯一、claimを表現可能とするために検証可能な鍵情報と紐づいているのみ Verifiable Credential ● 1つもしくは複数のclaimを表す物。 ● これ自体はIDではなく、資格情報であり属性情報。 ● Entityを表すのにDIDは不要。 ● Issuerが発行したこと・内容が改ざんされていないことが検証可能でなければなら ない。 ● Privacyに配慮して、必要最低限の情報しか載せない。 (ex: 18歳以上であることを示すために、誕生日を記載するのは開示しすぎ。 )
  • 9. Copyright © 2023 chaintope Inc. All rights reserved. Verifiable Credential発行までの流れ 9 1. CredentialのClaimで使うためのschemaを策定 2. schemaを表現するcontextを策定 3. Verifiable Credentailの発行機能(Issuer)を実装 4. Verifiable Credentialの検証機能(Verifier)を実装 5. DID Documentをwebサーバ(今回は自前のNginx)に配置 6. Verifiable Credentialを発行 ● 1.と2. を策定するのが大変。 ○ claimは自由に定義可能。 ○ claimはPrivacyに配慮して最低限、もしくはゼロ知識であるのが好 ましい※4。 ○ claimのサンプルが増えてくると利用が加速していくのかも? ● claimのschemaが個別に異なるため、Verifier = Issuerの構造になりや すい。
  • 10. Copyright © 2023 chaintope Inc. All rights reserved. contextとは 10 画像の所有者を表す context(独自定義) credentialのcontext定義 (https://www.w3.org/2018/credentials/v1) ● Issuer - Holder - Verifier間でVCの(機械的な)解釈を統一させるためのもの。 ● Verifiable Credentialに含まれるparameterと型情報などを定義するもの。 ● JSON-LD形式で定義する。人間が可読可能なドキュメント形式でも可。 ● XMLSchemaなど標準でさまざまな typeも定義されている。
  • 11. Copyright © 2023 chaintope Inc. All rights reserved. 理想的なVerifiable Credential発行の流れ 11 Issuer Holder Verifier 1. 認証要求 2. 必要なclaimと Issuerを指示 3. VC発行依頼 4. VC発行 or 拒否 5. VCの提出 Verifiable Data Registry 6. VCの検証 7. OK / NG ● 必要となった時に、最低限の情報のみを持つ VCが発行できることが望ましい。 ● 実現のためには、2. と 3. を可能にするプロトコル定義が必要
  • 13. Copyright © 2023 chaintope Inc. All rights reserved. Appendix 13 ※1. OpenBadgeのbakingをVCで利用可能であるかの検証も見越しての仕様。 https://www.imsglobal.org/sites/default/files/Badges/OBv2p0Final/baking/index.html ※2. 証明書関連は検証方法として目視確認も求められるため。 ※3. DID + OpenIDの標準仕様はすでにある。が、今回はこれに準拠したいわけではなく、 VCを使っ た何らかのシステム構築が目的。 https://openid.net/specs/openid-connect-self-issued-v2-1_0.html ※4. Verifiable Credetialの仕様にPrivacyに十分に配慮する必要性が記載されている。 https://www.w3.org/TR/vc-data-model/#privacy-considerations