3P English نوشتن را شروع کن

بررسی کارت

کسی به شما کارتی داده است: چند یادداشت که خودش خواسته به شما نشان دهد، با امضای خودش. این صفحه بررسی می‌کند که کارت از وقت امضا تغییری نکرده، هنوز در تاریخ اعتبارش است، و کدام یادداشت‌ها را سازمانی با کلیدی که روی دامنه‌ی خودش منتشر کرده تأیید کرده است.

هر کسی می‌تواند امضای یک کارت را در مرورگر خودش بررسی کند.

یادداشتی روی کارت می‌تواند ثابت کند پیش از یک دیدار در دفتر بوده، با گواهی همان کسی که دیده شده. نه ساعتی که باید به آن اعتماد کرد، نه سروری.

ترتیب را ثابت می‌کند، نه ساعت را؛ و هر گواه به اندازه‌ی اعتماد شما به کلیدش ارزش دارد.

یک نمونه را امتحان کنید

نمونه‌ها از همین سایت بار می‌شوند. اگر دیده نشدند، باز هم می‌توانید کارتی را پایین بچسبانید.

می‌توانید فایل را روی همین کادر هم رها کنید.

این صفحه چه چیزی را می‌گیرد، و چه چیزی را هرگز نمی‌فرستد

بررسی چطور انجام می‌شود

گام‌ها را نوشته‌ایم تا بتوانید کارت را با کد خودتان هم بررسی کنید. هر کارت کلید عمومی‌اش را با خودش دارد، پس به هیچ فهرست مرکزی‌ای نیاز نیست. فقط امضای تأیید به گرفتن فایلی از دامنه‌ی خود آن سازمان نیاز دارد.

  1. اگر هر کلیدی، در هر عمقی، نام یکی از فیلدهایی را در خود داشته باشد که هرگز از دفتر خود آدم بیرون نمی‌روند (delta، declared_vs_lived، declared_graph، lived_graph، divergence، self_deception، band_mismatch)، کارت رد می‌شود؛ با هر بزرگی و کوچکی حروف، هر جداکننده، حروف تمام‌عرض یا حروف هم‌شکل.
  2. proof.sig را بردارید. باقی را به شکل استاندارد بنویسید: کلیدهای هر شیء به ترتیب واحدهای UTF-16، بی‌فاصله‌ی اضافه، با UTF-8. عددها باید صحیح و در بازه‌ی امن باشند؛ عدد اعشاری یا صحیحِ بزرگ‌تر استاندارد نیست و کارت رد می‌شود.
  3. امضا را روی همین بایت‌ها با proof.key (یک JWK عمومی) بسنجید: ECDSA / P-256 / SHA-256، امضا به شکل خام r‖s در base64url.
  4. اگر identity نباشد: subject باید همان اثر انگشت RFC 7638 کلید proof.key باشد. اگر باشد: سند 3p.identity/1 باید با کلید آغازینش امضا شده باشد و اثر انگشت آن کلید همان subject باشد. هر گزاره در زنجیره پشت سر قبلی می‌آید (seq یکی بیشتر، prev همان کلیدی که جایگزین می‌شود) و کلید تازه آن را می‌پذیرد. چرخش کلید را کلید قبلی امضا می‌کند؛ بازیابی را کلیدهای بازیابی‌ای که از آغاز نام برده شده‌اند، و این کلیدها هرگز کارت امضا نمی‌کنند. کلیدِ کارت باید در تاریخ issued از آنِ این هویت باشد و از کلیدهایی نباشد که از آن پس لو رفته اعلام شده‌اند.
  5. اگر expires آمده باشد، باید هنوز نرسیده باشد. کارتی که تاریخ انقضا ندارد، «بی‌انقضا» نشان داده می‌شود.
  6. یادداشتی تأییدشده به حساب می‌آید که گواهی‌اش یک 3p.countersign/1 داشته باشد که امضای خودش درست باشد؛ of آن صاحب همین کارت و SHA-256 شکل استاندارد همان یادداشت (بی گواهی‌هایش) را نام ببرد؛ و by.domain آن، فایل 3p.domain-keys/1 را در https://<domain>/.well-known/3p-keys.json برای دقیقاً همان دامنه ارائه کند. آن فایل باید کلید را زیر by.kid (جاری یا بازنشسته، نه باطل‌شده) برای کار countersign و معتبر در تاریخ امضای تأیید فهرست کرده باشد. برچسب تنها هیچ ارزشی ندارد. اگر فایل گرفته نشد، همین را بگویید: یادداشت تأیید نشده است.
  7. «آنچه حالا مهم است» (3p.salience/1) فقط وقتی از امروز می‌گوید که با کلید جاری هویت امضا شده باشد. تاریخ کهنه‌شدنش جداست و ربطی به انقضای کارت ندارد.
  8. کارت مشترک (3p.composite/1): هر یادداشت مشترک فقط با دو امضای هم‌زمانِ درست یا بیشتر ثابت می‌شود، هر کدام روی صاحب کارت مشترک و همان یادداشت.
  9. یادداشتی که زیر written_before آمده ثابت می‌کند متنش پیش از آنکه کس دیگری دفتر را ببیند در آن بوده است: canon({salt, text}) را هش کنید، از before تا آخر path زنجیر کنید (هر گام SHA-256 حلقه‌ی قبلی و هش بعدی، به‌صورت هگز)، و نتیجه باید همان headی باشد که یک 3p.witness/1 در seq خودش، برای همین کارت، با کلیدی غیر از کلید صاحب کارت امضا کرده است. ترتیب را ثابت می‌کند، نه ساعت را؛ و هر گواه به اندازه‌ی اعتماد شما به کلیدش ارزش دارد.

امضای درست نشان می‌دهد کارت با همین کلید امضا شده و از آن پس تغییری نکرده است. نشان نمی‌دهد کلید دست چه کسی است، و نشان نمی‌دهد یادداشت‌ها راست‌اند. فقط امضای تأیید، یادداشتی را از حد «حرف خود آدم» بالاتر می‌برد.

دفترت را شروع کن.

نوشتن را شروع کن