見出し画像

分散型IDとブロックチェーンの関係性とは?

前回の記事では、分散型IDとこれまでのデジタルIDとの違いについて紹介しました。今回は、もう少し踏み込んで、分散型IDとブロックチェーン技術との関係性にスポットライトを当ててみたいと思います。

分散型IDは、表面的にはただのグローバルな識別子( did:example:123456789abcdefghi )にしかみえません。しかし、より深いレベルでは、分散型の「識別子」と「公開鍵基盤」を組み合わせることで、インターネットのまったく新しい層の中核的なコンポーネントになります。弊社では、この新しい層のことを「The New Identity Stack」と呼んでいます。世界中のエンジニア・ポリシーメイカー・標準化を進めるコミュニティと協力し、この「The New Identity Stack」の構築に貢献することが我々のミッションの一つとなります。

さて、この分散型の「識別子」と「公開鍵基盤」を組み合わせることは、暗号化されたウェブトラフィックのための SSL/TLS プロトコルの開発(現在、世界最大の PKI )と同様に、世界のサイバーセキュリティとプライバシーに大きな影響を与える可能性があります。分散型IDの世界では、この「公開鍵基盤」にブロックチェーン技術を活用することがあります。

本ブログでは、公開鍵基盤とはなにか?公開鍵基盤の問題点とは?分散型の公開鍵基盤とはなにか?どのようにブロックチェーン技術を活用しているのか?その優位性はなにか?などをみていきたいと思います。

公開鍵基盤(PKI)

公開鍵基盤( PKI: Public Key Infrastructure )とは、公開鍵と秘密鍵のキーペアからなる「公開鍵暗号方式」という技術を利用し、インターネット上で安全に情報のやりとりを行うセキュリティのインフラ(基盤)のことです。公開鍵暗号方式は、暗号化(復号)するときに「公開鍵」と「秘密鍵」という別々の鍵を使うのが特徴です。 「公開鍵」は公開されている誰でも取得できる鍵ですが、「秘密鍵」は 受信側だけが保持している鍵のことです。

さて、この「公開鍵暗号方式」には一つ困りごとがあります。AさんとBさんが通信するために、AさんはBさんの「公開鍵」を知る必要があります。AさんとBさんが普段やりとりしていれば信頼できそうです。実際にあって公開鍵を手渡しするのも確実そうです。しかしインターネット上の誰かと通信する時にはそうはいきません。もし、その通信路が中間者攻撃を受けており、もしかするとCさんの鍵かもしれません。インターネット上の通信を安全にするために、Bさんの公開鍵が本当にBさんのものであると証明するドキュメントを「公開鍵証明書」といいます。一般的には国際電気通信連動( ITU: International Telecommunication Union )の一部門 ITU-T が定めた X.509 という規格が使われています。この公開鍵証明書の発行や失効の手続きをするところを認証局( CA: Certificate Authority )といいます。

公開鍵基盤(PKI)の問題点

CA認証局は、信頼された第三者機関として振る舞います。つまり「公開鍵証明書」は、CA認証局である民間企業、時には政府によって定義されていることになります。現在のインターネット空間には、私たち個人がデジタルIDを自分たちで選択し、信頼を構築する手段が少ないといえます。このCA認証局モデルには大きく3つの問題があると認識されています。

1. 単一障害点
世界には 3,600 を超えるCA認証局が存在しています。このいずれも攻撃されることで、大きな被害が発生します。2011年 COMODO や DigiNotar という認証局への攻撃があり、認証局が偽の証明書を発行してしまう事件がありました。DigiNotar は信頼を失い自身のルート証明書を無効化され、最終的に自己破産しました。2012年 Falme というマルウェアは偽物の Microsoft の Windows Update を本物に見せかける証明書を作って攻撃をしました。証明書の検証に MD5 という安全ではないハッシュ関数を利用していたことが原因の一つです(参照先:クラウドを支えるこれからの暗号技術 )。このようにCA認証局が攻撃されることで、私たちの通信の安全性が大きく損なわれてしまいます。

2. MITM(Man-In-The-Middle)攻撃
信頼できるCA認証局は、サイバー攻撃者にとって魅力的なターゲットです。MITM攻撃には、 ARP/IP/DNS/HTTPS/Browser Spoofing(なりすまし)など、さまざまな形態があります。SSL通信の中間者攻撃の事例として、Aさんがある銀行サイトBにログインするケースを考えてみます。Aさんと銀行Bの通信路に中間者Cさんがいます。Aさんは銀行サイトBに暗号化通信するための鍵をリクエストします。しかし、その通信が攻撃され、実際はCさんが銀行サイトBと通信します。銀行BはCさんへ鍵を渡しますが、Cさんはこれを破棄し、偽物の鍵をAさんに渡します。Aさんはこれを銀行サイトBの鍵だと誤解して、偽物の鍵で暗号化した暗号文をCさんに送ってしまい、銀行サイトBへのログイン情報を盗まれてしまいます。

このようにCA認証局、あるいはその仕組みを信頼しすぎることで、MITM攻撃のリスクが高まることは、すでに数多くの事件で明らかになっています。下図は、Ethereum の Vitalik Buterin を含む研究者グループ Rebooting the Web of Trust (RWoT)が発表したホワイトペーパー「 Decentralized Public Key Infrastructure 」から引用しています。下図のように、CA認証局の内部で不正操作されてしまうと、攻撃されていることに気がつくことが難しくなります。

画像1

3. ユーザビリティ
最後にCA認証局モデルは、利用者のユーザビリティを制限する問題を抱えています。ある企業は、CA認証局側の不正行為によるセキュリティ侵害に対応するために多大なリソースを費やすことになります。また証明書の失効期限や無効化などの操作をサービス提供者が管理する必要があります。例えば、IoTデバイスのセキュリティを向上させるために、デバイスごとに証明書を発行して管理しようとすると、多大な運用コストと脆弱性が発生することになります。

このようにCA認証局モデルは単一障害点、MITM攻撃への脆弱性、ユーザビリティの三つの点で問題を抱えていることが知られています。

分散型公開鍵基盤(DPKI)とは?

分散型公開鍵基盤( DPKI )は、CA認証局の代わりに、分散台帳技術を活用して公開鍵の登録や管理を行います。DPKI では、信頼する第三者機関を必要とせず、登録される公開鍵情報の正当性が担保され、誰でも参照可能な仕組みである必要があります。また途中でシステムが落ちたり、ネットワークの一部が途切れるとサービスが止まるようなことがあると困るわけです。このような要件を満たすために、ブロックチェーンと呼ばれる分散台帳技術が採用されています。同様の、あるいはより優れたセキュリティ特性を提供する他の技術があればそちらをサポートすることもできます。弊社は DPKI の Trust Anchor としてパブリックブロックチェーンを採用しています。

さて、分散型IDの世界では、分散型IDに紐づく鍵を本人の管理下にあるデバイスで生成します。この分散型IDと公開鍵から生成される識別子を lookup key として DPKI に登録することで、誰もがこの識別子から公開鍵情報を取得できます。取得される公開鍵情報などを含むドキュメントを DID Document と呼んでおり、W3Cにより標準化されています。

// An example of DID Document

{
 "@context": [
   "https://www.w3.org/ns/did/v1",
   "https://w3id.org/security/suites/jws-2020/v1",
   "https://w3id.org/security/suites/ed25519-2020/v1"
 ]
 "id": "did:example:123456789abcdefghi",
 
 "verificationMethod": [{
   "id": "did:example:123#_Qq0UL2Fq651Q0Fjd6TvnYE-faHiOpRlPVQcY_-tA4A",
   "type": "JsonWebKey2020", 
   "controller": "did:example:123",
   "publicKeyJwk": {
     "crv": "Ed25519", 
     "x": "VCpo2LMLhn6iWku8MKvSLg2ZAoC-nlOyPVQaO3FxVeQ", 
     "kty": "OKP", 
     "kid": "_Qq0UL2Fq651Q0Fjd6TvnYE-faHiOpRlPVQcY_-tA4A" 
   }
 }, {
   "id": "did:example:123456789abcdefghi#keys-1",
   "type": "Ed25519VerificationKey2020", 
   "controller": "did:example:pqrstuvwxyz0987654321",
   "publicKeyMultibase": "zH3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
 }],
 "service": [{
   "id":"did:example:123#linked-domain",
   "type": "LinkedDomains", 
   "serviceEndpoint": "https://bar.example.com"
 }]
}

分散型公開鍵基盤(DPKI)の優位性

先ほどのAさんと銀行サイトBとの通信を考えてみます。Aさんと銀行サイトBの通信路に中間者Cさんがいます。分散型IDの場合、Aさんは銀行サイトBの識別子を lookup key として、DPKI ネットワークから銀行サイトBの公開鍵情報を取得することができます。つまり、Aさんと銀行サイトBの通信路で公開鍵の通信は行われず、この通信路にいる中間者CさんはAさんに偽物の鍵を使わせることが難しくなります。また、Cさんが分散型の公開鍵基盤を攻撃することで全体のセキュリティを損なわせることは容易ではありません。この点で DPKI は単一障害点と MITM 攻撃の脆弱性を解消していると言えます。

また、この分散型公開鍵基盤の仕組みは、人やサービスだけでなく、IoT製品のようなモノにも適用することができます。デバイスごとに鍵を生成し、対応する識別子を登録することで、DPKIの仕組みを活用することができます。
このようにDPKIの仕組みは、CA認証局モデルの抱える、単一障害点を回避し、ユーザビリティやセキュリティの問題を解消することができます。

まとめ

公開鍵基盤(PKI)とは、通信する相手の公開鍵を確かめるためのセキュリティのインフラのことでした。現在はCA認証局によりその信頼が支えられていますが、CA認証局モデルでは、単一障害点・MITM攻撃への脆弱性・ユーザビリティなどの問題を抱えています。そこで分散型公開鍵基盤(DPKI)では、CA認証局の代わりに、ブロックチェーンと呼ばれる分散台帳技術を活用しています。DPKIにより、単一障害点・MITM攻撃への脆弱性・ユーザビリティなどの問題を改善することができます。分散型IDプラットフォーム「UNiD」では、このDPKIの仕組みをSidetreeとBitcoinで構築しています。より詳しい技術概要についてはこちらから確認できます。

この分散型公開鍵基盤(DPKI)と分散型IDを活用することで、個人情報を個人がコントロールすることや、取引されるデータの自動検証などの仕組みを用意に構築することができます。こちらのページから「DEMO REQUEST」を受け付けております。顧客体験のデジタル化に取り組む事業者さまからのリクエストをお待ちしております。


この記事が気に入ったらサポートをしてみませんか?