誰かが主張するウェブサイトをその人が所有していることを暗号的に確認するにはどうすればよいでしょうか?

誰かが主張するウェブサイトをその人が所有していることを暗号的に確認するにはどうすればよいでしょうか?

もっと具体的に言うと、x509 プライベート証明書を使用してテキスト文字列に署名してもらい、問題の Web サイトで使用されているパブリック証明書を使用してそれを検証することはできますか? 署名されていない証明書を提供して署名してもらうか、それに類するものを提供することもできます。

前もって感謝します :)

答え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

抜粋これ記事。

関連情報