2020年4月29日水曜日

eKYCとOpenID Connectに関する最近のアクティビティ

こんにちは、富士榮です。

年明けから異常な忙しさでほぼ4か月ぶりの投稿になってしまいました。

今日はOpenID Foundationが今年から本格的に仕様化を進めているeKYC、ID保証に関する新しい仕様である「OpenID Connect for Identity Assurance」について紹介したいと思います。
ワーキンググループが始まったころは、ここまでリモートワークや非対面が重要になる、という局面を誰も予測していませんでしたが、ここに来てオンラインでのID保証、eKYCに関するニーズが本格化しているのは恐ろしい偶然としか言いようがありません。

尚、この「OpenID Connect for Identity Assurance」は、ちょうど1年程前から私もOpenIDファウンデーションジャパンのKYCワーキンググループをリードさせていただいている関係で共同議長を務めさせていただいている、米国OpenID FoundationのeKYC and Identity Assurance Working Groupで仕様策定が進められています。

ID保証(Identity Assurance)とは?

アイデンティティ管理に必ず付いて回るのが、デジタル・アイデンティティの精度や鮮度をはじめとする「信頼性」の課題です。

例えば、エンタープライズのシナリオでは、そのアカウントの持ち主はまだ在籍しているのか、権限付与に使っている役職は正確なのか?などといった「アイデンティティ・ライフサイクル」を管理するためにMicrosoft Identity ManagerやLDAP Managerなどの製品を使って効率的かつ正確なアイデンティティ管理を行います。

また、コンシューマのシナリオではいわゆる「KYC:Know Your Customer」といわれるID保証に関する課題を常に抱えています。これは例えば、サービスの利用を開始する際に登録する氏名や住所、年齢などの属性が本当に正しいのか?という「本人確認」や「身元確認」と言われる課題で、サービスの種類によっては利用者が一定の年齢を超えていることが法令で決められていたり、サービスの利用を許可するために必要な収入や本人到達性などの要件を満たす必要があったりするケースにおいては非常に重要なID保証のユースケースの一つです。例えば、金融機関におけるAML(Anti Money Laundering:マネーロンダリング防止)やオンラインゲーム等における年齢制限などがユースケースとして該当しますね。


ちなみにIDに関する保証レベルを綺麗に体系化しているのが「NIST(米国国立標準技術研究所)」が発行しているセキュリティに関するガイドラインシリーズ(SP/Special Publications)の800-63です。※通称NIST SP800-63
尚、NIST SP800-63は連邦政府内の情報保護の要件を規定している「NIST SP800-53」の中のデジタル・アイデンティティに関するガイドラインとして位置付けられていますが、連邦政府と取引をする民間企業を対象としてNIST SP800-53から抜き出す形で定義された「NIST SP800-171」にも同様に適用されることなどから、実質的にデジタル・アイデンティティの保証に関するデファクトスタンダードとなっています。

脱線を続けますが、NIST SP800-63では以下の3つの区分でID保証に関する規定をしています。

  • Identity Assurance Level(IAL):NIST SP800-63A
    • ID登録を行う時の本人確認・身元確認の強度(自己申告<非対面<対面など)
  • Authenticator Assurance Level(AAL):NIST SP800-63B
    • 認証器の強度(単要素<ソフトウェアベースの多要素<ハードウェアベース多要素など)
  • Federation Assurance Level(FAL):NIST SP800-63C
    • アサーション保護の強度(Bearer+署名<Bearer+署名+暗号化<HoK+署名+暗号化など)

各ガイドラインの日本語訳をOpenIDファウンデーション・ジャパンが公開しているので、興味のある方は参考にしてください。
https://openid-foundation-japan.github.io/800-63-3-final/index.ja.html


このように単にアイデンティティに関する「保証」といっても多岐にわたって考慮すべき点があります。


OpenIDファウンデーションジャパンにおける活動

冒頭で述べた通り、OpenIDファウンデーションジャパンにおいても先に述べた「KYC」に関するワーキンググループを2019年1月より設置し活動をしています。

このワーキンググループではOpenID Connectの仕様の拡張などといった単純に技術にフォーカスしたワーキングではなく、日本国内の各種業界(金融、テレコム、古物など)におけるID保証、本人確認に関する現状の調査、および現在業界毎に分断されている本人確認に関する要件の共通化に向けた課題の洗い出しなどポリシー面からの整理や、OpenID Connect for Identity Assuranceの仕様への国内事情のインプット、分散台帳を活用したアイデンティティの保証として注目されている「DID:Decentralized Identifier」や「VC:Verifiable Credentials」といった新しい技術の調査も、NFCリーダを使った公的証明書のICチップ読み取りや画像認識などeKYCに関連する技術に関しても網羅的に調査を行っています。

現在、ワーキンググループは第1シーズンの活動を終え、第2シーズンの活動を開始したところですので、興味のある方はこの機会にOpenIDファウンデーションジャパンへの入会とワーキンググループへの参画をご検討ください。

尚、第1シーズンの活動実績と成果物については2020年1月に開催された「OpenID Summit Tokyo」の中で発表させていただきましたので、詳しくは発表資料・成果物をご覧ください。



米OpenID Foundationにおける活動

ようやくOpenID Connectの仕様の話です。米OpenID Foundationでは2020年1月より「eKYC and Identity Assurance Working Group」という新しいワーキンググループを立ち上げ、ID保証に関するOpenID Connectの新しい仕様である「OpenID Connect for Identity Assurance(通称OIDC4IDA)」の策定を進めています。尚、先に述べた通り、OpenIDファウンデーションジャパンでKYCワーキンググループをリードさせていただいている縁もあり、こちらのワーキンググループでは議長であるDr. Torste Lodderstedtの元、Mark Haine, Anthony Nadalinと共に共同議長を務めさせていただいております。

どのような仕様か

Abstractに記載されているとおり、本仕様は「OpenID Providerがエンドユーザに関する検証済みの属性をRelying Partyに対して提供するためのOpenID Connectの拡張」であり、「特定の法律に基づき自然人のアイデンティティを検証するために利用されることを意図して」定義されています。
This specification defines an extension of OpenID Connect for providing Relying Parties with verified Claims about End-Users. This extension is intended to be used to verify the identity of a natural person in compliance with a certain law.

簡単に言うと、OpenID Providerに登録されているアイデンティティが何に基づき、どのように検証されたものか?というメタデータを含めてRelying Partyに対して提供することにより、アプリケーション側が安心してサービスを提供することが出来るようにすることを目指しています。

例えば、ial_exmample_goldというトラストフレームワークに則って確認済みのgiven_nameとfamily_name属性の値である、ということをRelying Partyに伝達する時、id_tokenやuserInfoエンドポイントから以下のような形でverified_claimsとしてJSONが返却されます。
{
   "verified_claims":{
      "verification":{
         "trust_framework":"ial_example_gold"
      },
      "claims":{
         "given_name":"Max",
         "family_name":"Meier"
      }
   }
}

細かい技術面での解説はAuthleteの川崎さんが解説してくれていますし、少し前のDraftですが仕様の日本語化もされていますので、そちらをご覧いただければと思います。



仕様の現状

現在、本仕様は2nd Implementer's draftのレビュー期間が終わり、仕様の承認に関する投票が開始されています。
https://openid.net/2020/04/27/notice-of-vote-for-second-implementers-draft-of-openid-connect-for-identity-assurance-specification/

こちらも興味があれば米国OpenID Foundationの会員(個人でもなれます)として加入していただき、仕様策定にコントリビュートしていただければと思います。
(意外と日本人もいますよ!)




2019年12月31日火曜日

年忘れはFIDOで!指紋認証付きのeWBM Goldengateを試す

こんにちは、富士榮です。

世の中は大晦日ですが、今日になってeWBMさんよりGoldengate G310が届いたので軽く試してみます。

届いたのは、G310というFIDO2対応のキーです。
https://www.ewbm.com/security-keys/goldengate-g310/



韓国から直送で送られてきたっぽいです。
まだ日本のAmazonでは買えないので、直販サイトか米国Amazonで買うのがいいみたいです。
 直販サイト
  https://www.ewbm.com/store/products/goldengate-g310/
 米国Amazon
  https://www.amazon.com/s?k=ewbm+g310&ref=nb_sb_noss_2

定価は60ドルですが、直販サイトだと初回は45ドルで買えるみたいです。
(私はMVPのサードパーティ特典で頂きました)


なんだかキーばっかり増えちゃって微妙な感じですが、Yubikeyとの大きな違いは指紋認証機能があることですね。
キーだらけ・・・


やれることは正直他のFIDO2対応のキーと変わらないので、今更動きについて解説する必要もないと思いますので、先日のAXIES(大学ICT推進協議会)の年次大会でお見せしたG SuiteへAzure AD B2C+FIDO実装を使ってパスワードレスでログインするデモを張っておきます。



最大の特徴の指紋登録ですが、以下の2通りの方法で設定できます。
1.公式のツール「Goldengate BioManager」を使う
2.Windowsのアカウント設定を使う

それぞれ簡単に。
まずは公式ツール「Goldengate BioManager」を使う方式から。

ツールはこの辺りからダウンロードできます。
 https://www.ewbm.com/support/BioManager/

ちなみにダウンロードしてセットアップしようとするとWindowsに実行をブロックされますが無視して進めます・・・

セットアップが終わりツールを起動するとこんな画面が出てきます。
言語の切り替えもできて、日本語も選べます。


次は指紋の登録です。

指紋追加を選ぶとタッチする様に促されるのでベタベタ触ります。


登録が終わると、登録済みの指紋以外でタッチしてもキーが反応しなくなります。
あと、PINが聞かれなくなります。
※指紋登録していない状態だと単純にタッチ+PINだけでサインインできる(Yubikeyと同じ挙動)が、指紋登録をすると登録していない指だとサインインできない。


ちなみに、2つ目の登録手段であるWindowsの標準の設定です。
設定⇒アカウントのセットアップから登録できます。

ちなみにWindows Helloの設定も同じ設定メニュー内にありますが、あくまでセキュリティキーの設定なのでここでセットアップしてもセキュリティキーでWindowsログインが出来るようになるわけではありません。もしOSログインにも使いたければ使うアカウントの設定をMicrosoftアカウントなりAzure ADアカウントなりで設定する必要があります。

指紋の追加は先ほどのBioManagerとほぼ同じです。




セキュリティキー+PINだけでは不安な方は指紋認証機能も付いているGoldengateも一つの選択肢となりえますね!

2019年11月30日土曜日

Hyperledger Indy, Ursa, Ariesのオンラインコースで自己主権型アイデンティティについて学習する

こんにちは、富士榮です。

先日開催されたW3C/TPAC@福岡でDID WGが正式に発足したり、DIFやSovrin Foundationが活発に活動していたり、と自己主権型アイデンティティ(Self Sovereign Identity/SSI)や分散型アイデンティティ(Decentralized Identifier/DID)のムーブメントも本格化してきましたね。

そういえば@IdentityWomanことKaliya姉さんがおそらく世界初のSSIの本「A Comprehensive Guide to Self Sovereign Identity」を出版したのも今年の4月だったのでまだ半年ちょっとしか経ってないんですよね。


そんな中、元々Evernym~Sovrin Foundationが開発してきたSSIのための分散台帳技術でLinux Foundationの進めるHyperledgerプロジェクトの一員となったHyperledger Indyや、Wallet間のPeer to peer通信のプロトコルの標準化を進めようとしているHyperledger Aries、暗号化ライブラリであるHyperledger UrsaのオンラインのトレーニングコースがedXで公開されました。
※日本語記事あり:https://crypto.watch.impress.co.jp/docs/news/1220/815/index.html

HyperledgerファミリーとIndy, Ursa, Aries(出典:Evernym)

ざっくりいうと、Indyが分散台帳技術そのものであるのに対して、UrsaはZKP(ゼロ知識証明)などに使う暗号化技術、AriesはWalletやAgent間の通信に関する技術、という整理っぽいですね。(私もまだ勉強中なので間違っていたらすみません)

IndyとAriesの関係の整理(出典:Evernym)



ということで、もう少し深く勉強してみるいい機会なのでコースを受講してみようと思います。(せっかくなので受講証明がもらえる有料コース/99USドルにしました。12/2までならクーポンコード「CYBER20」を入れると20ドルくらい割引になります)

以下、コース登録までの道のりです。(実際の内容はこれからなので、また気づきがあれば書こうと思います)

1.edXのコースサイトを開く

こちらが今回のターゲットとなるコースのURLです。
https://www.edx.org/course/identity-in-hyperledger-aries-indy-and-ursa


ここからEnrollを押してスタートしていきます。

2.会員登録を行う

メールアドレスで登録するか、Facebook、Google、Microsoftアカウントでアカウントを作成します。


作成が終わると、有料会員に誘われますw。せっかくなのでお金を払ってみようと思います。

3.有料会員登録を行う

会員登録後、誘われるがままに登録をしてみます。

どうやら有料登録をすると色々と特典があるようです。(最後のは特典なのか?)

  • Unlimited Course Access
  • Graded Assignments
  • Easily Sharable
  • Support our Mission
「Pursue the Verified Track」で迷わず購入へ進めましょう。

左の中央に「Add coupon code」があるので先ほどの「CYBER20」を登録すると20ドルくらい安くなります。(12/2までらしいですが)
クレジットカードがPayPalで支払えますが、私はPayPalで支払いました。

購入が終わると登録者の本人確認が行われます。

4.本人確認を行う(eKYC!!)

方法としてはWebカメラで顔とIDドキュメント(パスポートや免許証など。名前と顔写真が一致していることを見るっぽいので、実質日本人で使えるのはパスポートだけだと思いますが)の写真を撮り1日~2日くらい審査があるようです。


まずは顔写真を撮ります。(黒線は筆者都合w)

次にパスポートの写真を撮ります。

両方揃えてアップロードして審査待ちです。



5.コースの受講を開始する

とりあえず登録はこれで終わりなので、ゆっくりコースを受講していきます。


コース目次は以下の通りです。ゆっくり学習していこうかと。

  • Welcome!
  • Chapter 1: Something Is Missing
  • Chapter 2: Adding a Layer of Trust to the Internet
  • Chapter 3: SSI Using Indy, Aries and Ursa
  • Chapter 4: A Blockchain for Identity
  • Chapter 5: The All-Important Agent, Or Rather, Agents!
  • Chapter 6: When Things Go Wrong
  • Chapter 7: Possibilities
  • Final Exam

なかなか興味深いです。





2019年11月29日金曜日

Ignite Tour TokyoでAzure AD B2C + SSI/DIDの話をします

こんにちは、富士榮です。

あっという間に11月も終わりですね・・・

なんだか最近、月に2~3本の勢いでイベントでお話をしている気がします。おかげで色々と実験はしているもののBlogへのアウトプットが後手後手に回ってしまっていて反省です。

まぁ、その分講演の中では実験した内容を含めじっくりお話させていただいているつもりなので、是非機会があれば見に来ていただければ、ということで。

ということで、あっという間に来週の開催になってしまいましたが、12/5~6にIgnite Tour Tokyoがあり、こちらでAzure AD B2C + SSI/DIDの話をすることになっています。
基本的には前のde:codeEuropean Identity & Cloud ConferenceConsumer Identity World USAでお話してきた内容の続きではありますが、この自己主権型アイデンティティや分権型IDってキーワードが全くもってキャッチーじゃないので、地道に世界観を浸透させていくしかないのかな?と思っています。

ということでIgnite Tour Tokyoでは「分権型IDテクノロジーによる効率的な外部ユーザのID管理」というタイトルで「B2BやB2Cのシナリオにおいて外部アイデンティティの管理、特にIDの確認(KYCなど)は管理者にとって非常に頭の痛い問題です。本セッションではそれらの問題をAzure AD B2Cとブロックチェーンを使った自己主権型アイデンティティのシナリオでどのように解決するのかについて説明します。」という話をする予定です。

セッションコード:BRK30053
セッションURLはこちら)
https://tokyo.myignitetour.techcommunity.microsoft.com/sessions/87724


絶賛、過去のスライドをかき集めて準備中ですw

ベースはこの辺りなので、事前に目を通しておいていただけると理解がはやいかも。
de:codeの資料
 https://www.slideshare.net/naohiro.fujie/kyc-identity-on-blockchain
OSSコンソーシアムの資料
 https://www.slideshare.net/naohiro.fujie/kyc-153297605
didconの資料
 https://www.slideshare.net/naohiro.fujie/ssidid


では、当日お会いしましょう。

2019年10月8日火曜日

Azure AD B2Cのリージョンに日本が選択できるようになりました

こんにちは、富士榮です。

ずっと日本リージョンが選択できなかったAzure Active Directory B2C(Azure AD B2C)ですが、いつの間にか?(9月末~?)日本リージョンの選択が出来るようになっています。といってもデータの保管場所はAPACということですが。

むしろ大ニュースなのはこれまでデータの保管場所がEUとUSしかなかったのにAPACが追加されたことかもしれません。

・・・実はPrivate Previewがあったことは知ってたんですが、今回の突然のGAは全然アナウンスされてないのは何故なんだろうかという疑問が。。(2019/10/08時点)

※オフィシャルリリースがされていない以上、消える可能性はあります。現時点での利用は自己責任にて。

◆これまでの問題点とFeedback

Azure AD B2C自体はリージョンに依存しないサービスなので全リージョンでエンドポイントは使えましたが、データの実体の保管場所がEUとUSしか選べなかったので、個人データの保管場所を気にする業種・業界においてはブロック要素となってきました。(AWS Cognitoは日本にもデータを置けますし、Auth0には最後の手段カスタムデプロイプランがあったりするので無理やり日本にデプロイできたりしました)

過去から日本マイクロソフトの人を含めフィードバックはあげてきましたが中国が優先されてしまい、先に中国がPreviewとしてリリースされてしまっていました。

2019/05/06 中国におけるAzure Active Directory B2C
https://azure.microsoft.com/ja-jp/updates/azure-active-directory-b2c-in-china/

涙ぐましいフィードバック
https://feedback.azure.com/forums/169401-azure-active-directory/suggestions/20208730-add-japan-region-to-data-residency-location-of-azu
⇒Unplannedという悲しい状態のまま放置されています

◆これまでの回避手段

データの保管場所の問題はもちろん日本だけの話ではなく、特に政府・行政系のシステムにAzure AD B2Cを採用するケースではディレクトリ上にはPII(個人情報)を置かずにREST API連携などを使って他のデータベースに逃がす、などの手段が取られてきました。
ただ、全体としての可用性を担保しようとするとそれなりにお金がかかったり、カスタムデプロイとなるのでメンテナンスが面倒くさい、といった問題が残るためいわば最後の手段でした。

◆今回のリリース(?)の内容

ひっそりドキュメントが更新されています。

https://docs.microsoft.com/ja-jp/azure/active-directory-b2c/active-directory-b2c-reference-tenant-type

日本を選択するとデータはアジア太平洋に保存される、と明記されています。

実際にディレクトリを作るとき、リージョンに日本の選択が出来るようになっています。


作成するとasiapasificに配置されます。


とりあえずはアナウンス待ちですね。

2019年9月24日火曜日

Consumer Identity World USA 2019に登場します

こんにちは、富士榮です。

今週からシアトル~サンフランシスコ(というかマウンテンビュー周辺)です。

今回は9/25~27にシアトルで開催されるCIW(Consumer Identity World) USA 2019でお話し、その足で翌週マウンテンビューのComputer History Museumで開催されるIIW(Internet Identity Workshop)に顔を出してきます。

最近の私の個人的テーマがBYOID(Bring Own Your Identity/自前のIDの持ち込み)とDID(Decentralized Identity/分散台帳上でのIdentity)でして、最近の各種カンファレンスでも色々とお話させていただいていますが今回もその一環です。

最近はこのようなカンファレンスだけではなく実際の商談でも色々と手を変え品を変えてこの世界観の定着を試みているんですが、まだまだ浸透してくるのは先のような気がしています。パスワードレスのような利便性の話や、eKYCなどアイデンティティの真正性の証明など色々と違った切り口で有用性もあると思うので、引き続き啓発活動が必要ですね。


さて今回ですが、B2B/B2Cなど外部IDの管理の面倒臭さBYPODとeKYCで簡素化する方法の案についてお話させていただきます。


概要は以下のような感じで、Azure AD B2CとuPortを使ったB2Bシナリオで社員証を使った身元確認によりパートナー向けWebサイトへのID登録のBYOID化、というデモもお見せできればと思います。

タイトル:
 Boost your B2B/B2C scenario with BYOID + eKYC using Decentralized Identity
概要:
 Managing external accounts such as suppliers in B2B or consumer account is painful problem for IT administrators. In this presentation, I'll show you our scenario and demo to make it easy to manage external identities powered by BYOID + eKYC. e.g. Sign-up social media account and proof their identity using driver's license as verifiable credentials in the identity wallet.

 Key takeaways:

  1. Best practice of managing external identity on supply chain management scenario with BYOID+eKYC approach.
  2. How the Decentralized Identity approach is used in eKYC process.
  3. Implementation details of the scenario, Azure AD B2C, uPort.


また、唐突に主催のKuppingerColeからアサインされたんですが、パネルディスカッションにも参加する予定です。
最近の自己主権型アイデンティティやDID周りで色々と情報交換をさせて頂いていて今回CIWのKeynoteも担当されるKristina Yasudaさんと一緒です。
プレゼンはナントカ乗り切るだけの「慣れ」という名の精神力(英語力ではない)は身についてきましたがパネルは何が出るかわからないのでかなりビビってます。最後の手段はKristinaに通訳してもらうか・・・w


帰国後も登壇続きなので、その準備をしつつ商談もこなしつつというハードコア出張に今回はなりそうですが、新しいネタを色々と仕入れてこれそうなので可能な限りレポートしていこうと思います!

2019年9月21日土曜日

iOS13でSign in with Appleがようやく使い物になってきた

こんにちは、富士榮です。

色々と騒動もあってついつい忘れがちなSign in with Appleですが、先週iOS13が正式に出てきてようやく使い物になってきました。
iPhone11は・・・ボトムズですよね。買ってません。

Sign in with Appleとは

いわゆるAppleのOpenID Connect実装です。iPhoneやMacを持っている人は必ず持っているApple Idを使って自前WebサイトなどへOpenID Connectを使ってログイン出来るようになります。
6月のWWDCで発表されて結構盛り上がりました。と、どうじにOpenID Connectの実装内容についても色々と意見がついてプチ炎上?してました。最近まともになっているようですが。
私もAzure AD B2CやAuth0へ組み込んでみたりしました。

 Azure AD B2Cへの実装
  https://idmlab.eidentity.jp/2019/06/sign-in-with-appleid-ad-b2c.html
 Auth0への実装
  https://idmlab.eidentity.jp/2019/06/sign-in-with-appleidaasauth0.html

8月頭には idcon でSign in with Apple特集も開催され一瞬で定員をオーバーするなど、注目度も結構高かった記憶があります。

iOS13未満の環境での課題

Sign in with Appleが発表された当時、まだiOS13はβ版でしたので人柱になっている人たち以外の一般人はあまり恩恵を受けられませんでした。
と、言うのもSign in with Appleでログインを行う都度、メールアドレス+パスワードの入力に加えてiPhoneへワンタイムコードが飛んでくる、という実装で、せっかく同じApple IdでログインしているiPhoneやiPadでも再度認証が要求されていたためです。

こんなUXでした。

iOS13からのUX

OSに統合されたのでTouch IDやFace IDでそのままログイン出来るようになりました。
素晴らしい!


日本人はiPhoneが大好きなので各種WebサイトのSign in with Apple対応も今後進んでくると思います。(みんながiOS13以上になるのがいつか?という話はありますが)