まず、基本的に建設業界向けの eTendering ソリューションである当社のシステムに関する情報です。
そう:
- リスト項目
- 私たちのシステムには複数の会社があります
- 各企業には複数のユーザーがいます
- 各企業は複数のオークションを作成できます
- その後、他の企業は利用可能なオークションに入札を送信できます。入札は数百または数千の個々のアイテムで構成されており、これらのレコードの「価格」セクションを暗号化するだけで済みます。
私たちが直面している問題は、大規模な顧客が、少なくとも入札が進行している間は、私たちが入札価格にアクセスすることを望んでいないことです。これは完全に理解できます。現在、対称暗号化を使用して価格を単純に暗号化しているため、価格はデータベースで効果的に暗号化されていますが、価格を復号化するための鍵を持っていることを懸念しています。
したがって、何らかの形式の公開鍵暗号化システムを検討しています。ソリューションに関する最初の考えは次のとおりです。
- 企業がサインアップすると、OpenSSL を使用して公開/秘密キーのペアを作成し、S3 または直接データベースに保存します。これを本当に便利にするには、秘密鍵に強力なパスワードを使用するようにユーザーに強制します。もちろん、秘密鍵はデータベースに保存されません。
- 企業がオークションに入札すると、オークションの所有者企業の公開鍵を使用して価格を暗号化し、データベースに保存します。
- オークションの入札期間が終了し、発行会社が最初にレポートを生成する場合、パスワードを入力し、それを会社の秘密鍵と一緒に使用して価格を復号化するよう依頼します。
- 後続のトラフィックを高速化するために、復号化されたデータをキャッシュします (単純な対称暗号化システムを使用して暗号化することもできます)。
質問は次のとおりです (残念ながら、私たちはセキュリティの専門家ではありません。ばかげた質問でしたら申し訳ありません)。
- これは意味がありますか、それとも完全にばかげた、またはやり過ぎの解決策ですか?
- OpenSSL、OpenPGP、または別のソリューションを使用してキーを生成しますか?
- ユーザーが自分のパスワードを変更したり、新しいキーを生成したりしたい場合はどうなりますか? 新しいキーですべてを復号化/再エンコードする以外に方法はありませんか?
- このソリューションにはどのような落とし穴がありますか?
- 推奨できるより良い解決策はありますか?