選擇語言

Web Bot Auth 金鑰產生器與 HTTP 訊息簽章工具

在瀏覽器本地生成 Ed25519 金鑰對,提供 JWK 與 PEM 格式輸出。自動建立 HTTP 訊息簽章目錄與範例請求,確保私鑰絕不外洩。

Web Bot Auth 金鑰產生器使用說明 ↓
提供金鑰目錄的 HTTPS 來源。這會成為 Signature-Agent 標頭的值。
僅用於下列已簽署的請求範例
將 nbf 和 exp 寫入目錄項目

金鑰組由瀏覽器的 Web Crypto API 建立,絕不會離開此頁面。重新載入會將其捨棄,因此請在離開前下載私密金鑰。

Mehmet Demiray 發佈日期 更新日期
分享

什麼是 Web Bot Auth 與 HTTP 訊息簽署

傳統的網路爬蟲與 AI 代理通常依賴 User-Agent 字串或 IP 白名單來表明身分,但這些特徵極易遭到偽造或頻繁變動。Web Bot Auth 提供了一套基於密碼學的安全機制,讓機器人能夠在每次發送請求時進行數位簽署,而目標網站則可透過公開金鑰驗證其真實性。這項技術建立在 IETF 關於 RFC 9421 HTTP Message Signatures 的草案之上,確保通訊雙方能建立不可否認的信任關係。

使用 Web Bot Auth 金鑰產生器,您可以快速建立符合規範的入門套件。與過去依賴伺服器端生成金鑰的做法不同,此工具完全在您的瀏覽器中透過 Web Crypto 生成 Ed25519 金鑰對。這意味著您的私鑰永遠不會離開本機裝置,從根本上消除了金鑰外洩的風險。對於希望被網站識別而非封鎖的 AI 代理營運者,或是需要精確位元組範例來實作簽署邏輯的工程師而言,這是一個安全且高效的起點。請注意,這些規範目前仍屬於 IETF 網際網路草案階段,但其實作邏輯已具備高度的生產環境參考價值。

Web Bot Auth 金鑰產生器的輸出內容解析

當您在 Web Bot Auth 金鑰產生器中輸入託管金鑰目錄的 HTTPS 來源、目標主機範例以及金鑰有效期後,工具會一次性輸出完整的設定素材。首先產生的是金鑰 ID,這是基於 RFC 8037 與 RFC 7638 計算出的 JWK 指紋,將作為後續每個簽署中的 keyid 參數。接著是金鑰目錄 JSON,僅包含公開金鑰,並可選擇性加入 nbf 與 exp 時間戳記,用於部署至 /.well-known/http-message-signatures-directory 路徑。

為了方便測試,輸出還包含帶有 24 小時 範例簽署的目錄回應標頭。在私鑰與公鑰方面,工具會提供 JWK 與 PKCS#8 PEM 格式的私鑰,以及 SPKI PEM 格式的公鑰。最實用的部分是簽署請求範例,包含完整的標頭與 curl 指令,涵蓋 @authority 與 signature-agent,並設定 web-bot-auth 標籤與 5 分鐘 的過期時間。最後,工具會顯示精確的簽名基底,這在除錯自訂簽署器時是不可或缺的參考基準。所有資料皆在本地生成,重新載入頁面即會丟棄。

發佈與管理 HTTP 訊息簽署目錄

要讓目標網站驗證您的機器人,必須將公開金鑰發佈至標準的已知路徑。Web Bot Auth 規定目錄必須託管在 /.well-known/http-message-signatures-directory,並使用特定的媒體類型。這個目錄回應本身也必須經過簽署,以確保金鑰資料在傳輸過程中未被篡改。在生產環境中,目錄的簽署必須定期更新,因為過期的簽署會導致驗證失敗。

金鑰有效期的選擇涉及安全性與維護成本的權衡。設定 nbf 與 exp 有助於強制執行金鑰輪換紀律。當您需要輪換金鑰時,只需再次使用 Web Bot Auth 金鑰產生器生成新的金鑰對,並將新的 JSON 目錄部署至該路徑。請確保您的 HTTPS 來源路徑不包含多餘的子路徑,因為 Signature-Agent 的值將直接取自該來源。若搭配 AI 爬蟲 robots.txt 產生器 使用,您可以同時規範機器人的存取權限與身分驗證機制,建構更完善的網站防護策略。

解析 RFC 9421 請求簽署流程

在 RFC 9421 HTTP Message Signatures 規範中,簽署請求的過程需要精確構建簽名基底。簽名基底是由多個涵蓋元件組合而成的純文字字串。這些元件包含標準的 HTTP 標頭,以及如 @authority 等衍生元件。在 Signature-Input 標頭中,必須定義簽署參數,包括 created、expires、keyid、alg、nonce 以及 tag。

構建簽名基底時,每個元件會以雙引號包覆,並與其對應的值以冒號和空格分隔,最後加上一個換行字元。Signature-Input 的值本身也會作為一個元件加入基底中。任何字元或空白的不一致都會導致簽名驗證失敗,這也是自訂簽署器最常遇到的問題。Web Bot Auth 金鑰產生器提供的精確簽名基底範例,能幫助開發者逐一比對位元組,確保實作邏輯完全符合規範。若需解碼或檢查相關的 JSON Web Token,可搭配 JWT 解碼器 來輔助分析。

保護私鑰安全與瀏覽器本地生成優勢

私鑰的安全性是整個 Web Bot Auth 機制的核心。過去許多線上工具要求使用者將金鑰傳送至伺服器進行處理,這帶來了極大的外洩風險。Web Bot Auth 金鑰產生器採用完全不同的架構,所有 Ed25519 金鑰對皆透過瀏覽器內建的 Web Crypto API 在本機生成。這意味著私鑰從未在網路上傳輸,也未被儲存於任何遠端資料庫中。

生成後,您必須立即下載 JWK 或 PEM 格式的私鑰,並將其安全地儲存於組織的機密管理系統中。請絕對不要將 JWK 中的 d 參數公開或提交至程式碼儲存庫。由於工具不會保留任何狀態,一旦重新載入頁面,當前生成的金鑰就會永久遺失,您必須重新生成並更新公開目錄。這種用完即棄的設計確保了最高級別的隱私。若您需要將金鑰或相關憑證進行編碼以便傳輸或儲存,可以使用 Base64 編碼 工具來處理字串格式。

結合機器人控制與存取規範

Web Bot Auth 解決了請求是否來自合法機器人的身分驗證問題,但它並不決定該機器人可以讀取哪些內容。身分驗證與存取控制是相輔相成的兩層防護。當網站確認了機器人的密碼學身分後,仍需要依據預先定義的規則來允許或拒絕特定的 URL 路徑。

這就是 robots.txt 與 llms.txt 發揮作用的地方。robots.txt 提供了傳統的爬蟲存取指引,而 llms.txt 則專門針對大型語言模型代理,提供結構化的內容摘要與使用限制。您可以使用 AI 爬蟲 robots.txt 產生器 來建立標準的存取規則,並利用 Robots.txt 測試器 來驗證您的機器人是否會正確遵守這些限制。結合 Web Bot Auth 的簽署機制與這些控制檔案,網站管理員能夠在擁抱 AI 技術的同時,精確掌握流量來源並保護核心資產,實現安全且可控的自動化互動。

最常被問到的問題

如何為我的爬蟲或 AI Agent 設定 Web Bot Auth?

首先使用 Web Bot Auth 金鑰產生器建立金鑰對,將產生的 JSON 金鑰目錄託管在您網域的特定路徑下。接著在您的爬蟲程式中匯入私鑰,並對每個 HTTP 請求進行簽章,簽章通常設定在 5 分鐘 內有效。目標網站會透過您發佈的公鑰目錄來驗證請求的真實性。

我的私鑰會被傳送到你們的伺服器嗎?

不會。Web Bot Auth 金鑰產生器完全在您的瀏覽器本地端運行,利用 Web Crypto API 產生 Ed25519 金鑰對。私鑰從未離開您的裝置,也不會上傳到任何伺服器。重新載入頁面後金鑰就會被清除,確保最高等級的隱私與安全性。

為什麼選擇 Ed25519 演算法而不是其他簽章演算法?

Ed25519 是目前 Web Bot Auth 草案中指定的標準演算法。它具備金鑰尺寸小、簽章速度快且具備確定性等優勢,非常適合需要頻繁發送請求的爬蟲與 AI Agent。它也能有效避免某些傳統演算法中隨機數產生器缺陷所導致的安全漏洞。

金鑰 ID 是如何計算出來的?

金鑰 ID 是根據規範計算的 JWK 指紋。系統會將公鑰的 JSON 物件進行字典排序,計算其 SHA-256 雜湊值,最後進行 Base64url 編碼。這個 ID 會作為參數包含在每個請求的標頭中,讓伺服器知道該使用哪把公鑰來驗證。如果需要解碼相關的憑證,可以使用 JWT 解碼器 來協助分析。

為什麼我重新整理頁面後,剛剛產生的金鑰就不見了?

這是基於安全考量的設計。Web Bot Auth 金鑰產生器不會在瀏覽器中儲存任何金鑰資料。如果您不小心重新載入或關閉頁面,必須重新產生一組新的金鑰對並更新伺服器上的金鑰目錄。請務必在產生後立即下載並妥善保存 JWK 或 PEM 格式的私鑰。

Web Bot Auth 與傳統的 User-Agent 或 IP 白名單驗證有什麼不同?

User-Agent 字串極易被偽造,而 IP 白名單在雲端環境下難以維護。Web Bot Auth 透過密碼學簽章提供無可偽造的身份證明,伺服器只需驗證簽章即可確認請求來源。除了密碼學驗證,您也應該搭配 AI 爬蟲 robots.txt 產生器 來規範爬蟲的存取權限。

設定金鑰有效期時,應該選擇有期限還是無期限?

這取決於您的金鑰輪替策略。選擇無期限可以減少維護成本,但一旦私鑰外洩風險較高。建議選擇 90 天 或 365 天 的有效期,並在金鑰目錄中設定生效與過期時間參數,強制執行定期的金鑰輪替以符合最佳安全實務。

什麼是 Signature base,為什麼它對簽章驗證很重要?

Signature base 是根據規範將 HTTP 請求中的特定標頭與元件按照嚴格格式組合而成的純文字字串。它是實際被私鑰簽章的內容。如果客戶端與伺服器端組合的邏輯有任何位元組級的差異,就會導致簽章驗證失敗。產生器提供的範例可作為您除錯自訂簽章程式的標準參考。

這個工具是免費的嗎,需要註冊帳號才能使用嗎?

Web Bot Auth 金鑰產生器是完全免費的,且不需要註冊任何帳號或登入。您可以直接開啟網頁使用所有功能,包含產生金鑰、匯出多種格式以及產生帶有簽章的範例指令。這讓開發者能快速建立測試環境而無需繁瑣的設定流程。

瀏覽器顯示無法產生金鑰,或是我的 origin 被拒絕,該怎麼辦?

請確保您使用的是最新版本的現代瀏覽器,因為 Ed25519 需要完整的 Web Crypto API 支援。您輸入的 origin 必須是有效的 HTTPS 網址,且不能包含任何路徑或查詢參數。輸入帶有路徑的網址會被系統拒絕,請僅保留網域部分。