首頁 > 後端開發 > Golang > 主體

從客戶端獲取 TLS 信息

WBOY
發布: 2024-02-09 12:27:09
轉載
1213 人瀏覽過

从客户端获取 TLS 信息

php小編百草將為您介紹如何從客戶端取得TLS資訊。在網站開發過程中,取得客戶端的TLS資訊對於實現一些安全性相關的功能非常重要。 TLS是一種加密協議,用於保護網路通訊的安全。透過取得客戶端的TLS訊息,我們可以取得客戶端的憑證資訊、加密演算法、金鑰長度等相關信息,從而提高網站的安全性。在接下來的文章中,我們將詳細講解如何從客戶端獲取TLS信息,以及如何應用這些信息來增強網站的安全性。

問題內容

net/http go 套件有一個類型請求,它定義了一個儲存 ConnectionState 的欄位 TLS。不過,描述中的最後一條語句表示它被 HTTP 用戶端忽略。我在調試時也檢查過,它是 nil

我需要從該連線狀態(或其他位置)取得值TLSUnique,以便我可以將其包含在我的憑證請求(又稱CSR)中,然後才能註冊/將其發送到伺服器.

伺服器超出了我的問題範圍。我關心的是客戶。

然後,伺服器收到請求,並檢查 CSR 的簽章以及 TLS 唯一值,證明建立 TLS 連線的用戶端與簽署 CSR 的用戶端是同一客戶端。

這是來自 RFC 7030 - 第 3.5 節(EST 協定)的內容

[我正在使用的]

我正在試驗 GlobalSign EST Go 軟體包,但它們似乎不包含此功能。

他們的 EST 客戶端似乎為每個 EST 操作創建一個 http 客戶端,我想我可以改變這種行為並擁有一個客戶端來發送所有請求。

但是,由於客戶端接受 RoundTripper 接口,因此我無法在實作之外使用底層連接的資訊。

解決方法

一種方法需要對 進行一些小的更改全域符號EST包.

就像我之前所說的,目前的實作為每個 EST 操作(CACerts、CSRAttrs、Enroll 等)建立一個新的 http 用戶端

1- 讓我們為所有 EST 操作使用一個 http 客戶端。
2- 無論哪種方式,我們都需要在註冊 CSR 之前呼叫以取得 CA 憑證。
3-對任何客戶端請求的http回應都會公開欄位http.Response.TLS.TLSUnique
4- 讓客戶端將其包含在憑證請求中,對其進行簽名並註冊。

當我想到 全域符號 EST 套件以及為什麼他們選擇每次建立一個新的 http 用戶端。
(除非只是等待根據使用者意願使用的範例)

以上是從客戶端獲取 TLS 信息的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!