web-dev-qa-db-ja.com

仲介者としてのデータの暗号化

Plaid を使用して、ユーザーがお金を使うときに財務データと更新を提供する財務アプリに取り組んでいます。

現在、私はHashicoprの Vault を使用してトランザクション/銀行口座データを暗号化しています。これにより、データベースがダンプされた場合にハッカーがデータを見るのを防ぐことができます(幸い、実用的な財務データは存在しません。単にトランザクションデータ)。

ただし、ここでの問題は、必要に応じて、アプリの所有者として任意のユーザーのデータを(Vaultを使用して)復号化できることです。私はそれができたくありません。

Plaidからの受信データを暗号化し、アプリの開発者として復号化することなく、Web UIを介してユーザーが利用できるようにする方法はありますか?

残念ながら、Plaidからのデータを暗号化するために秘密鍵を保存する必要があるため、秘密鍵は機能しません。

本当にありがとう!

1
Mike

アプリの開発者として復号化することなく、Plaidからの受信データを暗号化し、Web UIを介してユーザーが利用できるようにする方法はありますか?

はい。エンドユーザーのpublicキーを使用して暗号化し、privateキーが手元にあるようにクライアントを実装します、そして他の誰も-消費のためにデータを復号化します。

これには、単にWebブラウザーを使用するよりも太いクライアントが必要ですが、独自のアプリを実装している場合は、それを行うことができます。また、サーバーはそのすべてのデータの意味を知らされていないため、エンドポイントですべてのロジックを実装する必要があることも意味します。

このモデルを使用する(マルチプラットフォーム)アプリケーションの例は Keybase です。エンドユーザーがクラウドに保存されているファイルへのアクセスを保護できるようにするだけでなく、ユーザーのグループが、クラウドに保存されているが、によってのみ復号化できるファイルへのアクセスを相互に共有できるようにします適切なエンドユーザー。

残念ながら、Plaidからのデータを暗号化するために秘密鍵を保存する必要があるため、秘密鍵は機能しません。

そのため、秘密(対称)鍵は機能しません。公開鍵を使用して暗号化し、ユーザーが秘密鍵を使用して復号化する公開(非対称)鍵ペアが機能します。

2
gowenfawr