منبع / شواهد
چگونگی کارکرد شواهد
زنجیره هش، امضاها، نقاط کنترل و شاهدان با فرمولهای دقیقی که اعتبارسنج استفاده میکند توضیح داده شدهاند.
TgWitness آنچه را که یک حساب گردآورنده مشاهده کرده است حفظ میکند، این مشاهدات را به یک دفترچه ثبت امضا شده پیوند میدهد و به شخص دیگری اجازه میدهد تا یک خروجی را با استفاده از یک کلید مورد اعتماد و یک نقطه کنترل قبلی که نگهداری شده است، تأیید کند.
وبسایت مستندات محلی، مثالهای تعاملی را در /docs/concepts/ و یک کاوشگر تصمیمگیرنده نقطهکنترل را در
/docs/witness/ اضافه میکند. تمام پیامهای نمونه، شمارشها و تأخیرها فرضی هستند. هشها در محیط شبیهسازی زنجیره با SHA-256 در مرورگر محاسبه میشوند. هیچ چیزی به تلگرام ارسال نمیشود.
پیامی تغییر میکند؛ مشاهدات انباشته میشوند#
نمودار به صورت متن
- تلگرام → جمعآور: پیام جدید: ساعت ۱۰:۰۰ ملاقات کنیم
- جمعآور → دفترچه ثبتشده: پیوست: message.new
- تلگرام → جمعآور: ویرایش: ساعت ۱۱:۰۰ ملاقات
- جمعآور → دفترچه ثبتشده: پیام را ضمیمه کنید. ویرایششده
- تلگرام → جمعآور: اطلاعیه حذف
- جمعآور → دفترچه ثبتشده: پیوست: پیام حذفشده
- یادداشتی دربارهٔ دفترچه ثبتشده: مشاهدهٔ اصل + ویرایش + حذف باقی میماند
این توالی سادهشده فرض میکند که تلگرام هر بهروزرسانی را تحویل داده و حساب انتخابشده قادر به مشاهده آن بوده است. رویدادهای عملیاتی نیز ژورنال را به اشتراک میگذارند. یک اعلان حذف، حذفکننده یا زمان دقیق حذف را ارائه نمیدهد. تحویلهای تکراری مشاهدات جداگانهای هستند؛ هیچ حذف تکراری در سطح کل ژورنال انجام نمیشود.
آنچه یک هش پوشش میدهد#
فرمول را از داخل به بیرون بخوانید: C نُه فیلد را به بایتهای دقیق تبدیل میکند؛ SHA-256 هش آنها را تولید میکند؛ هگز روشی است که آن هش با آن ذخیره میشود. هش قبلی از قبل در رویداد وجود دارد. unhex هش ذخیرهشده را دوباره به ۳۲ بایت که Ed25519 امضا میکند، تبدیل میکند.
بگذارید C(ei) نشاندهندهٔ JSON استاندارد UTF-8 از نه فیلد رویداد باشد. اولین
previous_hash شامل ۶۴ کاراکتر صفر است. هر رکورد بعدی شامل هش هگزادسیمال رکورد قبلی است:
امضا، ۳۲ بایت هش خام را پوشش میدهد. ورودی هش دقیقاً حاوی
seq، observed_at، source_at، kind، chat_id، message_id، actor_id،
payload و previous_hash است. کلیدهای شیء مرتب شدهاند؛ فاصلههای خالی و فرار ASCII حذف شدهاند؛ NaN و بینهایت رد شدهاند.
رمزگذاری دقیق را ببینید.
نمودار به صورت متن
- ۶۴ کاراکتر صفر → ثبت ۱ / هَش h1
- ثبت ۱ / هَش h1 → رکورد ۲ شامل h1 / هَش h2
- رکورد ۲ شامل h1 / هَش h2 → رکورد ۳ شامل h2 / هَش h3
- رکورد ۳ شامل h2 / هَش h3 → نقطهٔ کنترل امضا شده: شمارش ۳، سربرگ h3 (در جای دیگری نگهداری کنید)
| تغییر به ژورنال ارائهشده | چه چیزی آن را تشخیص میدهد |
|---|---|
| سوابق رکورد ۲ را تغییر دهید در حالی که هش ذخیرهشدهٔ آن دستنخورده باقی میماند | هَش رویداد بازمحاسبهشده متفاوت است؛ امضای آن دیگر رویداد تغییر یافته را پوشش نمیدهد |
| سوابق تغییر یافته و هر هش بعدی را بازسازی کنید | امضاهای اصلی ناموفق هستند؛ یک نقطهٔ کنترل نگهداشتهشده در مرز آسیبدیده نیز با آن اختلاف دارد |
| دم را حذف کنید اما پیشوند باقیمانده را دستنخورده نگه دارید | یک نقطهکنترل نگهداشتهشدهی قبلی که فراتر از پیشوند ارائهشده قرار دارد نشان میدهد که خروجی بیش از حد کوتاه است |
| روزنامه جایگزین را با کلید دیگری مجدداً امضا کنید | اثر انگشت کلید مورد اعتماد جداگانه، هویت جایگزین را رد میکند |
منطق را روی رکورد ۲ امتحان کنید: در رویداد ذخیره شده، Meet at 11:00 را به Meet at 12:00 تغییر دهید. هش بازمحاسبهشده آن دیگر مطابقت ندارد. بازمحاسبه زنجیره بعدی میتواند پیوندهای آن را ترمیم کند، اما نمیتواند باعث شود امضاهای اصلی، هشهای جدید را پوشش دهند. در مقابل، یک ویرایش مشاهدهشده در تلگرام به یک رکورد جدید در دفترچه تبدیل میشود.
فقط لینکهای هش مانع از محاسبه مجدد یک زنجیره جایگزین توسط شخص دیگری نمیشوند. اعتماد از طریق بررسی امضاها با استفاده از یک کلید مورد اعتماد مستقل و مقایسه آنها با مراجع نگهداریشده خارج از گردآورنده حاصل میشود.
آنچه یک نقطه کنترل قبلی اضافه میکند#
مرجع ثابت میماند در حالی که مجله در حال رشد است. اگر نقطه کنترل بگوید «۳ رکورد، سر h3»، یک خروجی چهار رکوردی میتواند با تطبیق h3 در موقعیت ۳ عبور کند. سر جدیدتر آن h4 است که انتظار میرود متفاوت باشد. یک خروجی شامل فقط دو رکورد با شکست مواجه میشود.
پس از تأیید امضای نقطه کنترل، الزامی است:
یک خروجی ممکن است از یک نقطه کنترل فراتر رود. این خروجی باید در مرز حفظشده با آن مطابقت داشته باشد. اعتبارسنج واقعی همچنین توالی، لینک قبلی، هش و امضای هر رویداد را بررسی میکند. مقایسه تنها با سرخط نهایی ذخیرهشده، یک رکورد داخلی تغییر یافته را که هش ذخیرهشدهاش بهروزرسانی نشده است، نادیده میگیرد.
جایی که شاهد به آن تعلق دارد#
نمودار به صورت متن
- جمعآورنده / جلسه حساب / کلید A → نقطه پایانی نقطهکنترل فقط-خواندنی
- شاهد / کلید جمعآوری ثابتشده / کلید خود B → روزنامه شاهد امضا شده جداگانه
- شاهد / کلید جمعآوری ثابتشده / کلید خود B → نقطه پایانی نقطهکنترل فقط-خواندنی (درخواست بررسی)
- نقطه پایانی نقطهکنترل فقط-خواندنی → شاهد / کلید جمعآوری ثابتشده / کلید خود B (پاسخ امضا شده)
- شاهد / کلید جمعآوری ثابتشده / کلید خود B → کانالی با پستهای امضاشده TGW1 (رابط برنامهنویسی ربات / توکن اختصاصی)
این شاهد بازپخش، یک سر دیگر در همان شمارش، کلیدهای تغییر یافته، پاسخهای نامعتبر و پاسخهای از دست رفته را ثبت میکند. صرفاً یک شمارش بزرگتر ثابت نمیکند که هر رکورد قبلی بدون تغییر باقی مانده است؛ خروجی را با نقاط کنترل نگهداریشده مقایسه کنید. یک شاهد روی میزبان دیگر از به اشتراک گذاشتن قطعی میزبان گردآورنده جلوگیری میکند؛ یک اپراتور جداگانه استقلال بیشتری فراهم میکند.
شاهد به وضعیت گزارششدهٔ دفترچهٔ یادداشت گردآورنده گواهی میدهد. این ابزار بهطور مستقل همهٔ پیامهای تلگرام را مشاهده نمیکند. به بخش راهاندازی شاهد مراجعه کنید.
ارسال را در برابر اقدامات شناختهشده آزمایش کنید#
از یک گروه کنترلشده، حسابهای جمعآوری مجزا و یک نشانگر جدید استفاده کنید. پیامها را عمداً ارسال، ویرایش و حذف کنید و در فواصل مراحل، ضبط را بررسی نمایید. اقدامات مورد انتظار و یک نقطه قطع را تعریف کنید و سپس نتایج را بازرسی کنید.
تنها اقدامات مطابقتیافته با انتظار شمرده میشوند؛ رسیدهای تکراری مخرج را افزایش نمیدهند. مخرج باید غیرصفر باشد. یک رسید مفقود، تأخیر اندازهگیریشدهای ندارد. عدم قطعیت ساعت سند را مستند کنید؛ از زمان اقدام حذف کنترلشده خود استفاده کنید، زیرا تلگرام زمان دقیق حذف را ارائه نمیدهد. نتایجهای مانند ۵/۶ (۸۳.۳٪) اقدامات آزمایشی را توصیف میکند، نه کامل بودن کل ترافیک تلگرام را.
یک گردش کار را انتخاب کنید#
راهنمای کامل تحقیق، یک رویداد را در یک کانال، گروه، ربات و چت خصوصی دنبال میکند:
- حالت تحقیق کل حساب را فعال کرده و فهرست تمام چتهای قابل دسترسی را تهیه کنید.
- دریافت اسنپشاتهای ژورنال، تاریخچه کامل هر چت و پیوستهای نگهداریشده.
- تغییرات زنده و هرگونه تعامل عمدی با پنل را همراه با رسیدهایشان حفظ کنید.
- شناسههای عددی فرستنده، روابط پاسخگویی، مقاصد تکراری و هشهای فایل را در سوابق استنادشده و پروفایلهای افراد دنبال کنید.
- بازسازی خط زمانی میانگفتگوها با هر دو نشانگر زمانی و فواصل صریح.
- فضای کاری سایر حسابها را مقایسه کنید، در حالی که منشأ و کلیدهای آنها را جدا نگه میدارید.
- ژورنالهای امضا شده، پروفایلها و خروجیهای تاریخچه را همراه با یادداشتهای پرونده گردآوری و تأیید کنید.
راهنمای /docs/cases/ وبسایت شامل یک نقشه پرونده تعاملی و گزینههای مختلف برای اختلافات ربات، پیامهای حذفشده و تغییر نام شرکتکنندگان است. یادداشتهای پرونده و تحلیل بین فضاهای کاری خارجی هستند؛ این برنامه بهطور خودکار نمودار تحقیق جهانی یا آرشیو ادغامشده پروندهها را ایجاد نمیکند.
اعتبارسنجی انجامشده و کارهای باقیمانده · صادرات و تأیید · با یک حساب کاربری شروع کنید