برای سازمانها
تأیید یک یادداشت
کسی از شما میخواهد یک چیز را تأیید کنید: دورهای که گذرانده، اجارهای که پرداخته، کاری که داشته. شما همان یک یادداشت را با کلیدی که روی دامنهی خودتان منتشر کردهاید تأیید میکنید. دفترش پیش خودش میماند.
امضای تأیید فقط وقتی پذیرفته است که کلیدش روی دامنهی خود شما منتشر شده باشد.
چهار گام
- ۱
آن آدم یک یادداشت را به شما نشان میدهد
یادداشتی را که باید تأیید شود و اثر محتوایش (hash) را نشان میدهد. نه دفترش را، و نه هیچ یادداشت دیگری را.
- ۲
شما همان اثر را امضا میکنید
با کلیدی که در
https://<your domain>/.well-known/3p-keys.jsonمنتشر میکنید. امضای تأیید (3p.countersign/1) روی اثر همان یادداشت و هویت همان آدم است، و دامنهی شما و شناسهی کلید را نام میبرد. - ۳
آن آدم بعد از شما کارتش را امضا میکند
امضای تأیید شما اول در یادداشت مینشیند. امضای او بعد روی آن میآید، پس بیآنکه کارت بشکند نمیشود برداشتش یا جابهجایش کرد.
- ۴
هر کسی میتواند بررسی کند
بررسیکننده پروندهی کلید دامنهی شما را میگیرد و کلید، کاربرد و تاریخهایش را میسنجد. بعد میگوید «با کلیدی که در <your domain> منتشر شده تأیید شده است». این همان دامنهای است که از آن گرفته، هرگز نامی که کارت برای خودش ادعا میکند.
در بررسیکننده، نمونهی Countersigned را انتخاب کنید. یک دورهی ساختگی است که با کلید نمایشیِ همین سایت تأیید شده است.
پروندهی کلید
قالب 3p.domain-keys/1، دقیقاً در /.well-known/3p-keys.json روی دامنهی شما، با HTTPS و با Access-Control-Allow-Origin: * تا بررسیکنندهی درون مرورگر بتواند بخواندش. فقط همان دامنهی دقیق پذیرفته است: نه زیردامنه، و نه تغییر مسیر به میزبانی دیگر.
keys: هر کدام باkid، کلید عمومی (jwk)،purpose(که بایدcountersignرا داشته باشد)،valid_fromوvalid_until.retired: کلیدهای قدیمی، با تاریخ پایانشان، تا امضاهایی که در زمان خودشان زدهاند هنوز پذیرفته باشند.revoked: شناسهی کلیدهایی که دیگر اصلاً پذیرفته نیستند، مثلاً کلیدی دزدیدهشده.
نمایشی این همان پروندهی واقعیِ 3rdpersona.com/.well-known/3p-keys.json است. هیچ مؤسسهای را نشان نمیدهد و چیز واقعیای را تأیید نمیکند.
{
"format": "3p.domain-keys/1",
"domain": "3rdpersona.com",
"keys": [
{
"kid": "demo-2026",
"jwk": {
"crv": "P-256",
"kty": "EC",
"x": "Ug-XJSfB-wzSnaLLWM_UdAHJtcbvsPI9aoRNQxU6vuI",
"y": "wqF1mLltHUcCUJezV58_XPg0aYHRPIw-rva8xFqIM5M"
},
"purpose": [
"countersign"
],
"valid_from": "2026-10-01",
"valid_until": null,
"demo": true
}
],
"retired": [],
"revoked": [],
"note": "DEMO KEY. 3rdpersona.com publishes this key so anyone can try a countersigned packet in the verifier. It identifies no institution and vouches for nothing real."
}
فرمانها
از domain_keys.py در نود 3P. فقط پایتون ۳ و openssl لازم دارد.
# 1. Make the key file (creates inst-key.pem if it does not exist; keep that file off the web server)
python3 domain_keys.py keyfile example.org inst-key.pem --kid 2026-registrar > 3p-keys.json
# then host it at https://example.org/.well-known/3p-keys.json, with Access-Control-Allow-Origin: *
# 2. Countersign entry f1 of a card the person has NOT signed yet
python3 domain_keys.py countersign packet.json f1 --domain example.org --kid 2026-registrar --key inst-key.pem
# 3. Check every countersignature in a card, online
python3 domain_keys.py check packet.json
تأیید کارتی که از پیش امضا شده رد میشود: امضای آن آدم باید بعد از امضای شما بیاید.
آنچه پذیرفته نیست
- کلیدی که دامنهی شما منتشر نکرده. شاید امضا درست باشد، ولی بررسیکننده میگوید این کلید در آن دامنه منتشر نشده است. آزمون:
test_a_key_the_domain_does_not_publish_does_not_count - پروندهی کلید دامنهای دیگر. پروندهای که روی دامنهی شما است ولی نام دامنهی دیگری را دارد رد میشود. آزمون:
test_a_key_file_for_another_domain_does_not_count - امضای تأییدی که به یادداشت دیگری برده یا دستکاری شده. روی اثر یک یادداشت است و نه هیچ یادداشت دیگری. آزمون:
test_a_countersignature_moved_to_another_fact_or_altered_does_not_count
اینها هم رد میشوند: کلید باطلشده، کلیدی که برای countersign فهرست نشده، و تاریخی بیرون از اعتبار کلید. اگر پروندهی شما در دسترس نباشد، بررسیکننده میگوید آن دامنه را ادعا میکند ولی آنلاین بررسی نشده؛ نه میپذیرد و نه رد میکند.
آنچه بررسی به شما میگوید
بررسیکننده پروندهی کلید شما را از مرورگر خودِ خواننده میگیرد، هر بار که کارتی را بررسی میکند. پس سرور شما میفهمد که کارتی که ادعای تأیید شما را دارد در حال بررسی است، کی، و از کدام نشانی. خود کارت در این درخواست نیست.