web-dev-qa-db-ja.com

SQLログイン認証の暗号化のしくみ

私は以下のリンクを通過しています

https://docs.Microsoft.com/en-us/dotnet/framework/data/adonet/sql/authentication-in-sql-server

そしてそれは言う

SQL Serverログインを使用すると、SQL Serverログイン名と暗号化されたパスワードがネットワーク経由で渡されるため、安全性が低下します。

パスワードはどのように暗号化され、SQLサーバーはそれをどのように復号化しますか?それにはどのような暗号化が関係していますか?

6
ioquestion

パスワードはどのように暗号化され、SQLサーバーはそれをどのように復号化しますか?それにはどのような暗号化が関係していますか?

超高レベル。インスタンスに暗号化が設定されている場合、構成されている証明書を使用できます。有効にしていない場合、SQL Serverの起動時に作成された自己署名証明書が使用されます。

どちらを使用するかに関係なく、このためのSSL/TLS設定は、ログイン前のネゴシエーションフェーズ中に行われます。ただし、暗号化が設定または適用されていない場合、TLS/SSL部分は資格情報の転送の間のみアクティブになり、これが完了するまで直ちにプレーンテキスト(SSL/TLSなし)に戻ります。接続。

SQL Server自体はデータを暗号化または復号化せず、送信中にのみ暗号化および復号化されます。クライアントドライバーとアプリケーションに応じて、これはプロセスのメモリ空間にプレーンテキストで存在する場合と存在しない場合があります。さらに、SQL Serverはハッシュを使用してパスワードをチェックし、SQLログインの元のプレーンテキストのパスワードは保存しません(プロキシアカウントやリンクサーバーについて熟練したくない場合を除く)。

7
Sean Gallardy

ショーンが彼の回答で述べたすべての点に同意します。

ただし、ドキュメントページでのポイントは、Windowsを介したKerberos認証は、1 パスワードをネットワーク経由で渡します。 SQL認証では、パケットをキャプチャした誰かがそのパスワードを復号化してSQL Serverにログインできる可能性があります。

Windows認証はトークンに基づいています。ログインすると、アカウントにはログイン認証局からトークンが与えられます。このトークンは、ネットワーク全体に渡され、ログイン認証局によって確認されるため、アカウントのパスワードを危険にさらすことはありません。

その結果、SQL Server認証はWindows認証より安全性が低く安全性が低い

3
Max Vernon