最近、Web API エンドポイントの保護に関するこの記事に出くわしました。
SSL を使用している場合、ヘッダーのユーザー文字列を暗号化する利点はありますか? ユーザーキー (Id) を暗号文ではなく平文として含めると、どのようなリスクがありますか?
最近、Web API エンドポイントの保護に関するこの記事に出くわしました。
SSL を使用している場合、ヘッダーのユーザー文字列を暗号化する利点はありますか? ユーザーキー (Id) を暗号文ではなく平文として含めると、どのようなリスクがありますか?
この記事の著者は、基本的に、ユーザー ID とユーザー シークレットの概念を 1 つの暗号化トークンに結合しています。代わりにプレーンテキストでユーザー識別子を送信することを選択した場合、そのユーザー識別子は秘密にしておく必要があります (トークンを秘密にしておく必要があるのと同様)。その秘密が維持される限り、トークンを使用するメリットはありません。
このシステムは、提示されているほど安全ではないように見えることに注意してください。攻撃者が有効なユーザー ID を推測できる場合、有効なトークンを生成できます。著者は基本的に RSA を美化されたハッシュ関数として使用しています。別のリファレンスを探すことをお勧めします。
TLS はトランスポート レベルのセキュリティです。つまり、データがトランスポートに到達する前とその後、データは TLS によって保護されません。データが長期にわたる場合、および/またはトランスポート セッション中に使用する以外の場所に保管している場合は、データを暗号化しておく (可能であれば暗号化して転送する) ことが理にかなっている可能性があります。データの有効期間が短く、トランスポート セッション中にのみデータが意味を成す場合、TLS 以外にデータを暗号化しても意味がありません。