數位簽署的HTTP(S)
個要求
Last update: Sat Jul 20 2024 00:00:00 GMT+0000 (Coordinated Universal Time)
Audience Manager需要數位簽署HTTP(S)
伺服器對伺服器要求才能有效。 本檔案說明如何使用私密金鑰簽署HTTP(S)
請求。
概述
我們可以使用您提供並與Audience Manager共用的私密金鑰,以數位方式簽署在IRIS與您的HTTP(S)伺服器之間傳送的HTTP(S)
個要求。 這可確保:
- 認證:只有擁有私密金鑰(IRIS)的寄件者才能傳送有效的
HTTP(S)
郵件給合作夥伴。 - 訊息完整性:使用此方法,即使在
HTTP
上,您也會受到保護,不會受到中間人攻擊的訊息失真。
- 用來簽署要求的金鑰。
- 將保留所產生簽章的
HTTP(S)
標頭名稱(下方範例標頭中的X-Signature)。 - 可選:用於簽名的雜湊型別(md5、sha1、sha256)。
* Connected to partner.website.com (127.0.0.1) port 80 (#0)
> POST /webpage HTTP/1.1
> Host: partner.host.com
> Accept: */*
> Content-Type: application/json
> Content-Length: 20
> X-Signature: +wFdR/afZNoVqtGl8/e1KJ4ykPU=
POST message content
運作方式
- IRIS建立要傳送給合作夥伴的
HTTP(S)
訊息。 - IRIS會根據
HTTP(S)
訊息和協力電腦所通訊的私密金鑰建立簽章。 - IRIS傳送
HTTP(S)
要求給合作夥伴。 此訊息包含簽名和實際訊息,如上面的範例所示。 - 夥伴伺服器接收
HTTP(S)
要求。 讀取從IRIS收到的郵件內文和簽章。 - 合作夥伴伺服器會根據收到的訊息本文和私密金鑰重新計算簽章。 請參閱下方的如何計算簽章一節,瞭解如何達成此目的。
- 比較夥伴伺服器(接收者)上建立的簽章與從IRIS (傳送者)收到的簽章。
- 如果簽章相符,則已驗證 真實性 和 郵件完整性。 只有擁有私密金鑰的寄件者才能傳送有效的簽章(真實性)。 此外,中間人無法修改訊息並產生新的有效簽章,因為他們沒有私密金鑰(訊息完整性)。
如何計算簽名
HMAC (雜湊式訊息驗證碼)是IRIS用於訊息簽署的方法。 實作和程式庫基本上提供每種程式語言版本。 HMAC沒有已知的延伸攻擊。 請參閱以下Java中的範例:
// Message to be signed.
// For GET type HTTP(S) destinations, the message used for signing will be the REQUEST_PATH + QUERY_STRING
// For POST type HTTP(S) destinations, the message used for signing will be the REQUEST_BODY.
// String getData = "/from-aam-s2s?sids=1,2,3";
String postData = "POST message content";
// Algorithm used. Currently supported: HmacSHA1, HmacSHA256, HmacMD5.
String algorithm = "HmacSHA1";
// Private key shared between the partner and Adobe Audience Manager.
String key = "sample_partner_private_key";
// Perform signing.
SecretKeySpec signingKey = new SecretKeySpec(key.getBytes(), algorithm);
Mac mac = Mac.getInstance(algorithm);
mac.init(signingKey);
byte[] result = mac.doFinal(postData.getBytes());
String signature = Base64.encodeBase64String(result).trim();
// signature = +wFdR/afZNoVqtGl8/e1KJ4ykPU=
HMAC雜湊實作的RFC是https://www.ietf.org/rfc/rfc2104.txt。 測試網站: https://asecuritysite.com/encryption/hmac (請注意,您必須將十六進位編碼轉換為base64)。
旋轉私密金鑰
若要輪換私密金鑰,合作夥伴必須將新的私密金鑰傳達給其Adobe Audience Manager顧問。 舊金鑰已從Audience Manager中移除,IRIS只會傳送新的簽章標題。 金鑰已旋轉。
用於簽署的資料
對於GET
型別目的地,用於簽署的訊息將為 REQUEST_PATH +查詢字串 (例如 /from-aam-s2s?sids=1,2,3)。 IRIS未考量主機名稱或HTTP(S)
標題 — 這些可能會沿著路徑修改/錯誤設定或報告不正確。
對於POST
型別目的地,用於簽署的訊息是 要求內文。 同樣地,標頭或其他請求引數會被忽略。
recommendation-more-help
de293fbf-b489-49b0-8daa-51ed303af695