見出し画像

ユーザーデータを暗号化して保持するDappsを提供 :IC Vault(音声和訳)

元記事:

ユーザーデータを暗号化して保持するDappsを提供

IC Vaultは、エンドツーエンドの暗号化により、インターネットコンピュータを介したデバイス間のデータの安全な同期を保証します(インターネットコンピュータはいかなる平文も見ることができません)。

チームメンバーは、Yvonne-Anne Pignolet, Thomas Locher, Stefan Kaestle, Helge Bahmann, Timo Hanke, and Rüdiger Kapitzaです。


元記事はこちら:https://www.youtube.com/watch?v=16xxA8EKEhE
(個人名、製品名、タームなど誤訳ご容赦を)


皆さん、またまたこんにちは。今回のビデオでは、先日の社内ハッカソンでの受賞作品の一つをご紹介します。このデモ、ティモ・ハンキー Timo Hanke は、ビットコインとインターネットのコンピュータのスーパーヒーローです。

関連リンク:


Twitter:https://mobile.twitter.com/c3f_iu
まとめサイト:https://dfinity-c3f.softr.app/
イベント:https://c3f.connpass.com/event/


彼は暗号解読者であり、世界最大規模のビットコインマイニングの多くで使用されているASICブーストシステムを考案しました。彼はまた、2016年にストリングラボに入社した最初のDefinityチームメンバーの1人です。Definity Foundationをインキュベートしている間、最初の論文の1つを書くのを手伝ってくれたのですが、それはDefinity consensusと呼ばれるものだと思います。そこでTimoチームは、他にも何人かの暗号技術者がいて、非常に重要な問題に取り組んでいました。DAPの開発者が、インターネット上のコンピュータにデータを保存する際に、ユーザーのデータを確実に暗号化できるようにすることを、非常に簡単に実現したいと考えたのです

例えば、オープンチャットを使う場合、チャットメッセージはすべて暗号化されてインターネット上のコンピュータに保存され、ユーザーは自分が送ったメッセージや自分に送られてきたメッセージにしかアクセスできないようにすることができるのです。

icy driveのようなものは、インターネット上のコンピュータでファイルが暗号化されていることを確認することができます。

DeFiのアプリやウォレットを使えば、すべての取引履歴が暗号化されていることを確認できます。つまり、考えられるすべてのDAPが、この素晴らしい機能を利用することができるのです。さて、重要なことは、ユーザーデータの暗号化は、ユーザーがDAPで自分を認証するために使用しているインターネット・アイデンティティ・ハンドルとリンクしている必要があるということです。まず、データを暗号化するための秘密鍵などをどこに保存するか、インターネットIDの利便性を維持しながら、それをどのように取得するかを考えなければならないからです。

さて、インターネット・アイデンティティは、もちろん匿名化されたブロックチェーン認証システムです。その機能はかなり画期的で、IDハンドルに追加した任意のデバイスを使って、自分自身を認証して適応させることができるのです。望めば、たくさんの潜在的なハンドルを持つことができます。例えば、ノートPCの指紋センサーや携帯電話の顔認証システム、YubiKeyや台帳を追加することができます。そして、通常、1つのインターネットIDには、複数のデバイスが追加されることになります。これは明らかに重要です。利便性のためだけでなく、ノートパソコンでも携帯電話でも財布でも、オープンチャットにアクセスしたいかもしれませんから、ノートパソコンでも携帯電話でも。しかし、セキュリティの理由もあります。ラップトップのような1つのデバイスだけをインターネットIDに接続したいとは思わないでしょう。そのノートパソコンが紛失したらどうなるでしょうか?さて、舞台裏では、もちろん、静的なWebauthnと安全なハードウェア機能に依存しています。例えば、ノートパソコンに指紋センサーを搭載する場合、実際にはTPMと呼ばれるセキュアチップが搭載されています。

このチップには、あなたのインターネット・アイデンティティに関連するキーパッドが搭載されていて、実際には何らかのトランザクションやセッション・キーなどに署名しているわけではありません。

お分かりのように、Open Charter(?)のウォレットのような機能を作り、スマートコントラクト内のインターネットコンピュータに保存するデータをシームレスに暗号化することができ、同時にインターネットIDを持つ匿名の匿名化ブロックチェーン認証システムが提供するユーザビリティ機能を全て維持するのは難しいことです。

しかし、明らかに、この問題を解決する可能性は非常に大きいです。だからこそ、このデモは超超超エキサイティングなんです。

先に進む前に、実はキャニスターと呼ばれるインターネットコンピューター上のスマートコントラクトは、すでにいくつかのプライバシー保証を提供していることを、不思議に思っている人のために触れておきます。インターネット上のスマートコントラクトは、データを永続的なメモリページ内に保持します。

インターネット上のスマートコントラクトは、直交型パーシステンスと呼ばれるシステムを使用しています。つまり、スマート・コントラクトのコードを書くと、そのコードが永続的なメモリ・ページで実行されるわけです。

この永続的メモリ・ページは ネットワークが特定のスマート・コントラクトを 複製するために選んだ特別なノード・マシンでのみ利用可能です 近いうちに私の提案を自動化する予定です 5番目のハードウェア機能をオンにすることで メモリ・ページは常に暗号化されたままです そうすれば、たとえプロバイダーも知らない誰かがノード・マシンに物理的にアクセスし、それを開いたりすることができたとしても、基盤となるデータに非常に簡単にアクセスすることができなくなります。もちろん、ハードウェアによる保護は常に改善されていますが、暗号化だけをベースにした純粋なソリューションのような安全性は確保できません。だから、このデモはとてもエキサイティングなんです。

多くのDappがこのような強力なプライバシー保証を提供し ユーザーのデータは全て暗号化された形で インターネットのコンピュータブロックチェーンに保存されていると ユーザーに伝えたいと思っているはずです。さて、それではこのハッカソンで優勝したデモの視聴に進みましょう。



あなたのインターネットIDでログインするだけで、すべてのパスワードと安全なメモがPCに保存され、すべてのデバイスでアクセスできるICの金庫にLastPassを入れたらどうでしょうか。簡単そうでしょう?

しかし、エンドツーエンドの暗号化では、すべてのデータは、ユーザーのブラウザでクライアント側に暗号化されます。ICのどの部分も、平文を見ることはできません。

興味深いですが、これ以上はありません。このエンド・ツー・エンドの暗号化にもかかわらず、です。我々は、インターネットIDを介してシームレスなデバイスの同期を持っています。

ご存知のように、例えば、QRコードをスキャンして、通常のメッセンジャーなどから新しいデバイスを追加するだけです。

いいえ、そのようなことはAIを正しくセットアップするときにすでにやっているので、もうやる必要はありません。そして、あなたはそうしない。インターネット上のIDでログインできるデバイスであれば、VOLを復号化することができます。それがこの世界の魔法だ そして、それは些細なことではありません。Iはデバイス間で秘密を共有することを許さないので、Iだけではそれができないのです。

ハッカソンで優勝するのに十分なアイデアでしょう?私たちもそう思っています。しかし、あなたにはもっと多くの特典があります。今すぐです。これを見てください。

moldはkissingというサービスをベースに作られていますね。kissingはオープンなアプリケーションです。オープンです。一般的なものです。オープンなサービスで、例えばオープンシェアやICyドライブなど、どんなアプリケーションでも、自分たちの電子メール暗号化に使うことができます。

チャットやファイルなどを暗号化するために。垢ウォレットも使える。例えば、あなたが財布や新しいデバイスのようにインストールされたと言った場合、あなたはあなたのニモニックフレーズを再入力する必要があり、現在少なくとも、もうKiesslingとしません。

フレーズは、バックグラウンドでシームレスに同期させることができます。新しいデバイスを追加すると、重要なことは、インターネットIDだった一度だけログインするのと同じくらい簡単です。

そして、あなたが一種の互いから秘密を盗むために、互いに分離されている別のアプリケーションを尋ねた場合に備えて。そして、金庫は、その内部とキーバリューストアのキーに決定論的暗号化を使用して、それがキャニスター側で検索可能になります。巨大な世界ですが、1つの項目だけが欲しい場合、検索はケネストンで行われるので、ボード全体をダウンロードする必要はありません。では、デモを行うために、ここで別の画面を共有しましょう。

左側のウィンドウには1つのデバイスがあります。右側がラップトップだとします。右側がノートパソコンで、私はすでに「I」でログインしています。それぞれのデバイスで公開鍵ペアが作成され、公開鍵が鍵同期用のKennestoneにアップロードされます。

これで、1つのデバイスが全体を見ることができるようになりました。シードは、共有または共有される秘密が生成されることを意味します。そして、様々な公開鍵のために暗号化され、Kisonキャニスターにアップロードされます。

もう一方のデバイスがすでにシードされている場合、そのことに気づき、そこにあるレースコンディションを処理します。

この2つを同期させると、暗号化されたチャットの秘密がデバイスにダウンロードされて復号され、その間に登録された他の全てのデバイスのために再暗号化されます。他のデバイスを同期させると、同じ共有秘密がダウンロードされて復号化され、そのチャットシークレットを使ってデータ保管庫にアクセスできるようになります。そして、順番に、例えば、アプリケーション名がここのキーであることをキーバリューストアにいくつかのエントリがあります。パスワード、値とインターネットコンピュータ上の使用のペアは遅いようですが、私はすでにボードの私のビューをリフレッシュすることができますし、同じエントリがポップアップする必要があります他のデバイス上。

だから重要なことは、本当に様々なデバイス間の同期については、異なるユーザー間の共有の間の同期についてではありません。もちろん、それも可能ですが、それはアプリケーションの一部です。そして、ここでは、同じエントリが他のデバイスにも表示されるようになったことを確認します。


Hello everyone again. In this video, I'm going to show you one of the winning entries from our recent internal hackathon. This demo is presented by Timo Hankey Timo hanky is a Bitcoin and internet computer superhero.

He's a cryptographer, and he devised the ASIC boost system used in much of the world's largest scale Bitcoin mining. He was also one of the first Definity team members joining string labs in 2016. While it was incubating the Definity Foundation, and helping me write one of our first papers, I think it's called Definity consensus. So tmos team, which included several other cryptographers was working on a very important problem. They wanted to make it very, very easy for DAP developers to ensure that user data is encrypted when it's stored on the internet computer. So for example, if the system were used an open chat, you can be sure that all your chat messages were stored in encrypted form an internet computer and you as a user could only access messages that you send or have been sent to you.

Something like icy drive could ensure that the files are encrypted on the internet computer.

If you had a defy app or a wallet say you can be sure that all the transaction history was was encrypted and so on. I mean, you know, arguably just about every conceivable DAP could make can make use of this amazing feature. Now, what's important is that the encryption of user data needs to be linked to whatever internet identity handle the user is using to authenticate themself in the DAP. Now, this is actually pretty challenging, because first of all, you've got to work out where to store things like the private keys to encrypt the data and think about how that's obtained while preserving all of the convenience that internet identity gives you. Now, internet identity, of course is an anonymizing blockchain authentication system. It's pretty revolutionary in its capabilities, and it allows you to authenticate yourself to adapt by using any any device that you've added to your identity handle. You can have lots of potentially handles if you want. So you can do things like you can add you know, the fingerprint sensor on your on your laptop the face ID system on your phone or a YubiKey or ledger. And, you know, typically any any one internet identity will have several devices added to it. And that's obviously important, not only for convenience, because you might want to access so open chat both on your laptop laptop, or on your phone or your wallet, on your laptop or on your phone. But also for reasons of security. You wouldn't want to just have one device like your laptop connected to your internet identity. What would happen if that laptop got lost? Now, behind the scenes, of course, this is depending on statical webauthn and secure hardware features. So for example, when you when you do the fingerprint sensor on your laptop, what's actually happening is there's a secure chip called a TPM.

That's, that holds some keypad that's related to your internet identity that's actually not signing some transaction or session key or something like that.

So as you can probably see you know, creating this functionality where something like open charter a wallet, you can sort of seamlessly encrypt your data for storage on the internet computer inside of a smart contract, while preserving all of the incredible use of it. usability features that the you know, anonymous anonymizing blockchain authentication system that has internet identity provides you with is challenging.

Obviously though, the potential of solving this problem is enormous. And that's why this demo is so super, super exciting.

Before proceeding, I will mention for those wondering that actually smart contracts on the internet computer that called canisters already provide some privacy guarantees. So smart contracts on the internet computer, maintain data inside persistent memory pages.

smart contracts on the internet computer, use a system called orthogonal persistence. So essentially, you just write smart contract code that it runs on these persistent memory pages.

Now those persistent memory pages are only available on machines, this special node machines that the network has chosen to replicate the specific smart contract in question and soon we will turn my proposal on automatic system to all go through hope to turn on a fifth hardware feature that will cause those memory pages to always remain encrypted. And that will mean that even if someone you know no provider has physical access to the note machine and can open it up and so on and so forth, it won't be possible to gain access very easily at all to the underlying data. Now, hardware protection of course is improving all the time, but it will never never be as secure as you know, pure solutions that are based on encryption only because of course you know encryption is derives its soundness from mathematics, not hardware and the guarantees provided by mathematics are much stronger. And that's why this demo is so exciting.

You know, there are many many daps out there that would love to be able to tell their users that they're providing these strong privacy guarantees and all of their user data is being stored in encrypted form on the internet computer blockchain. Okay, so without further ado, let's proceed to watch this hackathon winning demo. Okay.

So I see what you think of LastPass on the ICU vault for all your passwords and secure notes stored on the PC accessible on all your devices just by logging in with your internet identity. Sounds easy, right?

But with end to end encryption, all data is client side encrypted in the user's browser. No part of the ice can see any clear text.

Interesting, but no comes more. Despite this end to end encryption. We have seamless device syncing through the internet identity.

As you know, for example, QR code scanning just to add a new device from your normal messenger or something like that.

No, you've already done that kind of stuff when you set up your AI right so you should not have to do it again. And you don't. You can decrypt the Vols on any device on which you can log in with your internet identity. That's the magic of the world. And that's not trivial. I alone doesn't give you that because I doesn't allow to share a secret between devices.

Wow, it was think enough to win a hackathon right? We think so too. But even more perks for you. Now. Listen to this.

I see mold is built on a service called kissing. Kissing is an open application. It's open. It's generic. It's an open service, and any application such as for example, open shares, or IC drive, can use it for their own e to e encryption.

To encrypt chats, files and so on. Even plaque wallet can use it. For example, if you said you installed like a wallet or new device then you have to re enter your mnemonic phrase, currently at least but not with Kiessling anymore.

The phrase can be synced seamlessly in the background. Adding a new device was key thing is as simple as logging in once was the internet identity.

And in case you asked different applications that are isolated from each other to kind of steal secrets from each other. And the vault uses deterministic encryption for the keys in its internal and key value store, which makes it searchable on the canister side. It's a huge world and you only want one entry then the search happens in the Kennestone and you don't have to download the entire board. So now let's skip to do a demo and share a different screen here and there's two windows.

On the left window is one device. So let's say on the right is a laptop. I'm already logged in with the I now I register each of the two devices. What happens is on each device the public key pair is created and the public key is uploaded to the key sync Kennestone.

Now, one device has to see the whole thing. Seeding means a shared or to be shared secret is generated. It is then encrypted for the public various public keys and uploaded to the Kison canister.

If the other device noise already seeded, it notices that and we handled the race condition that's there.

Now syncing those two things downloads the encrypted chat secret to the device and decrypted and it also re encrypted for all other devices that have maybe registered in the meantime. So now if I do the sync of the other device, it should download and decrypt the same shared secret and now I can use the chat secret to go to the vault. And in turn, for example, some entry into the key value store that application name is the key here. The pair of use on passwords the value and internet computer seems to be slow but on the other device I can already refresh my view of the board and same entry should pop up.

So the key thing is really about syncing between various devices does not about syncing between sharing between different users. That of course can be done as well but it's part of the application. And here we see the same entry which became visible on the other device as well.

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