私は単純なライセンス ファイル システムを実装していますが、現在の実装ラインに間違いがないかどうかを知りたいです。
メッセージ データはキーより小さいです。キーサイズが 3072 ビットの RSA を使用しています。
ライセンスの発行者は、署名するメッセージを生成し、単純な RSA ベースのアプローチを使用して署名し、同様のアプローチを適用してメッセージを暗号化します。暗号化されたメッセージと署名は、ライセンス ファイルとして一緒に保存されます。
- Sha512 メッセージ。
- 秘密鍵でハッシュに署名します。
- 秘密鍵でメッセージに署名します。
- 連結して送信します。
受領時の検証プロセスは次のとおりです。
- 公開鍵でメッセージを復号化する
- メッセージをハッシュする
- 公開鍵を使用してファイルからハッシュを復号化し、ローカル ハッシュと比較します。
実装は今のところ正しく機能しており、有効であるように見えます。
私は現在、キーサイズに合わせてメッセージをゼロパディングしていますが、これはおそらく悪い動きです (1 や 1.5 などの PKCS パディングアルゴリズムを使用する必要があると思いますか?)
この戦略は有効だと思われますか? 私が見落としている明らかな欠陥や視点はありますか?