我如何以加密方式驗證某人是否擁有他們聲稱擁有的網站?

我如何以加密方式驗證某人是否擁有他們聲稱擁有的網站?

更具體地說,我可以讓他們使用 x509 私有憑證簽署一串文本,然後我可以使用相關網站使用的公共憑證來驗證它嗎?也許我可以向他們提供未簽名的證書供他們簽名或類似的東西。

提前致謝 :)

答案1

是的,正如您所建議的,您可以向他們發送一串位元組(在這種情況下,我們可能將其稱為質詢文字),並讓他們使用伺服器的SSL/TLS 私鑰對其進行加密,然後發回密文,然後您可以驗證它透過使用 SSL/TLS 伺服器憑證中的公鑰對其進行解密。

或者,您可以產生一串字節,使用伺服器憑證中的公鑰對其進行加密,將其發送給他們,讓他們使用伺服器的私鑰對其進行解密,然後讓他們將原始明文發送回給您。

但請注意,知道如何使用 SSL 私鑰執行此類操作的人相對較少,因此,如果您必須向他們提供查找私鑰以及加密或解密您的私鑰的分步說明,請不要感到驚訝。 。

答案2

您可以讓他們從該網域向您發送電子郵件,或執行 whois(CLI 或使用https://www.whois.net/)並查看是否列出了他們的聯絡人,或者您可以讓他們將驗證頁面上傳到他們的網站。 url/yeaIownthis.html 上面有一些密碼或其他東西。

答案3

這是使用 M2Crypto 和 python 的方法:

f = open(CERT_FILE)
cert_buffer = f.read()
f.close()

from M2Crypto import RSA, X509 
cert = X509.load_cert_string(cert_<wbr>buffer, X509.FORMAT_PEM) 
pub_key = cert.get_pubkey() 
rsa_key = pub_key.get_rsa() 
cipher = rsa_key.public_encrypt('<wbr>plaintext', RSA.pkcs1_padding)

print cipher

ReadRSA = RSA.load_key(KEY_FILE)
try:
    plaintext = ReadRSA.private_decrypt (cipher, RSA.pkcs1_padding)
except:
    print "Error: wrong key?"
    plaintext = ""

print plaintext

摘錄自文章。

相關內容