منبع / جمعآوری
Telegram · گفتگوهای مخفی: پیادهسازی و دمو
پیادهسازی مجزای Secret Chat را درک کنید، رابط کاربری فرضی را امتحان کنید و نواقص باقیمانده را بررسی کنید.
وضعیت بررسی شده در 6 نوامبر 2026: یک پیادهسازی جداگانه برای چت مخفی در حال توسعه وجود دارد. این با نسخه منتشر شده ادغام نشده است. main در 3d23e52b647b.
جمعکننده معمولی و خروجی Takeout، چتهای مخفی را جمعآوری نمیکنند. سناریوی وبسایت تعاملی رابط کاربری را با دادههای فرضی نشان میدهد؛ این سناریو ارتباط تلگرام را فعال نمیکند.
محل استقرار پیادهسازی#
کامیت 0e60f88e افزود Sources → Pseudo-secret در شاخه توسعه محلی
fix/panel-routes-sessions. اسنپشات بررسیشده bb8788fb685c است.
پیادهسازی آن شامل tgwitness/secret_chats.py، مسیرهای برنامه،
tgwitness/static/views/secret-chats.js و تستهای اختصاصی است.
خروجی اختیاری secret-chats در آن شاخه از KiaroSama/Telethon-Secret-Chat استفاده میکند که به d87bf037b90060383c7b704d8a06ebb98c621c6f متصل شده است. این کتابخانه پروتکل چت از سر تا سر تلگرام را بر روی مجوز Telethon موجود در حساب کاربری پیادهسازی میکند. نصب تنها این کتابخانه، یکپارچهسازی گمشده را به main اضافه نمیکند.
کاربرد رابط توسعه#
| اقدام | رفتار ضبطشده |
|---|---|
| شروع گفتگو با نام کاربری یا شناسهٔ کاربر | درخواست ارسال کنید؛ شرکتکنندهٔ دیگر باید آن را بپذیرد. |
| قبول درخواست ورودی | TgWitness به نقطهٔ پایانی دریافتکنندهٔ آن چت تبدیل میشود. پذیرش خودکار یک تنظیم جداگانه است که بهصورت پیشفرض غیرفعال است. |
| ارسال یا دریافت یک پیام | یک رکورد خروجی یا ورودی secret_chat.message اضافه کنید و آن را در نخ گفتگو نمایش دهید. |
| دریافت یک پیوست | آن را رمزگشایی کنید، بایتهای آن را با SHA-256 ذخیره کرده و secret_chat.file را ثبت کنید. |
| دریافت اعلان تایمر یا حذف | اعلان را ثبت کنید و محتوای قبلاً ضبطشده را حفظ کنید. |
| گفتگو را بازبینی کنید | پیامها، فایلها، اعلانها و نمای اصلی را نمایش دهید. زبانهٔ باز هر چهار ثانیه یکبار تازه میشود. |
در یک نسخهٔ توسعه شامل این یکپارچهسازی، اپراتور ماژول را برای حساب کاربری انتخابشده فعال کرده و آن را متصل میکند. راهاندازی، پذیرش و ارسال نیازمند اجازه برای تعامل و غیرفعال بودن محافظت فقط-خواندن حساب کاربری است. شرکتکنندهٔ دیگر باید یک گفتگوی خروجی جدید را بپذیرد. این کنترلها در اپلیکیشن منتشرشده در بازنگری بالا وجود ندارند.
تنها چتهایی که توسط این جلسه TgWitness ایجاد یا پذیرفته شدهاند، پوشش داده میشوند. چتهای مخفی موجود روی یک گوشی در همان دستگاه باقی میمانند. وارد کردن یک جلسه، کلیدهای رمزگذاری جداگانه آنها را فراهم نمیکند. مواد کلیدی و شمارندههای چت مخفی در گاوصندوق فضای کاری ذخیره میشوند؛ پیامهای نگهداریشده و فایلهای رمزگشاییشده از محافظتهای معمول ذخیرهسازی فضای کاری پیروی میکنند.
نمایش وبسایت#
سناریوی «Try Secret Chat» وبسایت یک گفتگوی خیالی را باز میکند. این سناریو به خواننده اجازه میدهد یک درخواست را آغاز کند، پذیرش آن را شبیهسازی کند، یک پیام نمونه ارسال کند، یک پاسخ و فایل اسکریپتی دریافت کند و تایمر و اعلان حذف را بررسی کند. یک درخواست ورودی نیز میتواند پذیرفته شود. کنترلها، اقدامات همتای شبیهسازیشده را به صراحت برچسبگذاری میکنند.
این سناریو در حافظهی مرورگر اجرا میشود. ریست یا بارگذاری مجدد آن را پاک میکند. این سناریو وارد تلگرام نمیشود، با آن تماس نمیگیرد، کلیدهای رمزگذاری واقعی ایجاد نمیکند یا دانلود نمونههای امضا شده را تغییر نمیدهد. پیامهای نمایش داده شده توسط آن، شواهد امضا شده نیستند. این سناریو تعامل مورد نظر را نشان میدهد؛ اما تأیید نمیکند که پیادهسازی توسعهای آماده است.
بررسیها و نقصهای باقیمانده#
پنج تست موجود، پایداری کلید رمزگذاریشده، چرخه عمر و سوابق پیام، سیاست پذیرش ورودی، ارسال فقط-خواندنی و خروجیگیری پیوست را پوشش میدهند. آنها در طول بازبینی مورخ 6 نوامبر در برابر کتابخانه ثابتشده (pinned library) با موفقیت اجرا شدند. سه بررسی مصنوعی اضافی، نقصها را در همان اسنپشات بازتولید کردند:
| یافتهها | پیامد |
|---|---|
بستن دورزنی read_only |
مسیر بسته میتواند در صورتی که تعاملات باید مسدود شوند، یک اقدام از راه دور را انجام دهد. |
| جستجوی تشخیص تکراری فقط در سوابق اخیر 500 انجام میشود. | یک بازپخش قدیمیتر میتواند پس از راهاندازی مجدد یک نسخهٔ مشابه ایجاد کند. |
| دانلود ناموفق پیوست، ورودی در انتظار آن را حذف میکند. | یک خطای موقت، وظیفهٔ تلاش مجدد را از دست میدهد. |
اینها نقصهای باز هستند که در حسابرسی منتشرشده نیز ثبت شدهاند. پنج تست گذرا این شکستها را پوشش نمیدهند. بازبینی از فضاهای کاری مصنوعی و عملیات شبیهسازیشده تلگرام استفاده کرد؛ این بازبینی دستدادن زنده را تکرار نکرد و استقرار در محیط تولید را تأیید نکرد.