簡體   English   中英

安全地將數據從一個站點發送到另一個站點?

[英]securely send data from one site to another?

我將一些數據從一個網站發布到另一個網站。 我需要接收網站的一種方法,以確保數據是從發送網站發送的,而不是由其他一些惡意用戶發送的。 我正在使用PHP4。

我怎樣才能做到這一點?

謝謝!

只需使用雙向SSL。 客戶端不僅在服務器上使用ssl證書對自己進行身份驗證。

因此服務器知道他是數據表的正確客戶端。

客戶知道他將數據發送到正確的服務器

抖動解決方案(雙向SSL)有效。 但是,一種可能更簡單的方法是使用單向SSL(身份驗證接收服務器)和基本身份驗證。 SSL提供機密性,基本身份驗證對客戶端進行身份驗證。

對於僅PHP的解決方案:

如果您可以保守秘密(在兩端),則可以使用密鑰哈希消息身份驗證代碼(HMAC或KHMAC)的自我實現的變體(是,變體)。

概念是,如果兩端都具有相同的機密,則可以在發送端進行哈希處理(消息+秘密),而在接收端進行哈希處理(消息+秘密)。 如果哈希匹配,則您將收到一條有效消息。

秘密是鑰匙(雙關語)。 因為沒有秘密,攻擊者無法更改消息並生成將在接收端進行驗證的新哈希,這是不可行的。

這是一些示例PHP代碼:

// On the sending end:
define('SECRET', '12734981273912379128739128739127938794729327492');
$message = 'your-message';
$packet = $message . sha1($message . SECRET);

// On the receiving end:
define('SECRET', '12734981273912379128739128739127938794729327492');
$message = substr($packet, 0, -40);
if(sha1($message . SECRET) != substr($packet, -40))
    throw new Exception("Message Authentication failed!")
else
    do_something_with($message);

如果您希望黑客重新發布同一條消息來提高安全性,則可以向每個請求添加一個隨機請求標識符,並確保絕不接受相同的哈希。

免責聲明:與所有安全敏感代碼一樣,在被敏感數據信任之前,應進行同行審查和驗證。 通過對該主題的研究來做,或者更好的是,使用處理這種類型的驗證+認證的現有庫。

我會考慮使用GnuPG: http : //devzone.zend.com/article/1265

我的投票贊成SSL,但可以選擇。

如果兩個站點都知道密鑰(SK),

  1. 網站1(WS1)可以向網站2(WS2)發送一個隨機數(N1)
  2. WS2可以向WS1發送包含以下內容的消息:
    • 數據(可以使用密鑰加密)
    • md5(SK。N1)(即WS2知道SK的證明)
    • md5(SK。data)(即證明該數據未被第三方操縱的證據)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM