ホームページ > バックエンド開発 > Golang > クライアントからTLS情報を取得する

クライアントからTLS情報を取得する

WBOY
リリース: 2024-02-09 12:27:09
転載
1265 人が閲覧しました

从客户端获取 TLS 信息

php エディタ Baicao がクライアントから TLS 情報を取得する方法を紹介します。 Web サイトの開発プロセス中、クライアントの TLS 情報を取得することは、セキュリティ関連の機能を実装するために非常に重要です。 TLS は、ネットワーク通信を保護するために使用される暗号化プロトコルです。クライアントのTLS情報を取得することで、クライアントの証明書情報、暗号化アルゴリズム、鍵の長さなどの関連情報を取得し、Webサイトのセキュリティを向上させることができます。次の記事では、クライアントから TLS 情報を取得する方法と、この情報を適用して Web サイトのセキュリティを強化する方法について詳しく説明します。

質問の内容

net/http go パッケージには、ConnectionState を保持するフィールド TLS を定義するタイプ リクエストがあります。ただし、説明の最後のステートメントは、HTTP クライアントによって無視されることを示しています。デバッグ中にも確認しましたが、nil でした。

サーバーに登録/送信する前に、その接続状態 (または他の場所) から値 TLSUnique を取得して、それを証明書リクエスト (別名 CSR) に含める必要があります。

サーバーは私の質問の範囲を超えています。私が大切にしているのは顧客です。

サーバーはリクエストを受信し、CSR の署名と TLS の一意の値をチェックし、TLS 接続を確立しているクライアントが CSR に署名したクライアントと同じであることを証明します。

これは RFC 7030 - セクション 3.5 (EST プロトコル) からのものです

[使用しているもの]

GlobalSign EST Go パッケージを試していますが、この機能は含まれていないようです。

彼らの EST クライアントは、EST 操作ごとに http クライアントを作成するようです。この動作を変更して、1 つのクライアントにすべてのリクエストを送信できるようにできると考えました。

ただし、クライアントは RoundTripper インターフェイスを受け入れるため、基盤となる接続の情報を実装の外で使用することはできません。

回避策

1 つの方法では、 グローバル シンボル EST パッケージ .

にいくつかの小さな変更を加える必要があります。

前に述べたように、現在の実装では、EST 操作 (CACerts、CSRAttrs、Enroll など) ごとに新しい http クライアントが作成されます。

1- すべての EST 操作に http クライアントを使用しましょう。
2- いずれの場合も、CSR を登録する前に、呼び出して CA 証明書を取得する必要があります。
3- クライアント要求に対する http 応答は、フィールド http.Response.TLS.TLSUnique を公開します。
4- クライアントに証明書リクエストにそれを含めてもらい、署名して登録してもらいます。

EST パッケージの グローバル シンボル と、毎回新しい http クライアントを作成する理由について考えるとき。
(ユーザーの希望に応じてサンプルが使用されるのを待っている場合を除く)

以上がクライアントからTLS情報を取得するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート