منبع / شواهد
Telegram · صادرات حساب
صادرات آنچه یک حساب اکنون میتواند بخواند: دامنه، کارهای قابل از سرگیری، یک آرشیو امضا شده و نسخههای اشتراکگذاریشدهٔ به حداقلرسیده.
TgWitness / مستندسازی · شواهد و تأیید
خروجی حساب، آن حساب را انحصاری رزرو میکند. پیش از شروع یا ازسرگیری، پایش یا گردآوری دیگر را صریحاً موقتاً متوقف کنید؛ برنامه هرگز آن را خودکار متوقف نمیکند.
بهعنوان مدیر نصب، «از اینجا شروع کنید» → «حسابم را صادر کن» یا «صادراتها» → «حساب تلگرام» → «تنظیم صادرات حساب» را انتخاب کنید. در صورت لزوم وارد شوید، دامنه را بررسی کنید و خروجیگیری را به صراحت آغاز کنید. نظارت مداوم ضروری نیست. مشاهدات ذخیرهشده، یک خروجیگیری جداگانه از ژورنال موجود است؛ ZIP آن شامل تمام منابع، صرفنظر از فیلترهای ژورنال میشود. هر فضای کاری دارای جابها، هویت امضا و ذخیرهسازی خاص خود است. دسترسی به پنل صادرشده، از جمله مجوز خروجیگیری عادی نامحدود، نمیتواند این مسیرهای در سطح حساب را باز کند.
فیلترهای فرستنده و متن زیر «فیلتر بر اساس فرستنده» یا «متن پیام» باز میشوند. بخش «دادههای حساب و روش اتصال» شامل دستهبندیهای اختیاری حساب و گزینه «خروج/جلسه عادی» است؛ خلاصه آن حتی وقتی بسته است، گزینههای فعال را نشان میدهد. بستن این بخشها تنظیمات آنها را حفظ میکند. پیشنویسهای خروج و گزارش در جلسه پنل جاری باقی میمانند و با تغییر نما ذخیره نمیشوند. کارهای موجود از هر دو گزینه خروج قابل دسترسی هستند.
این گردش کار دادههای در حال حاضر قابل دسترسی به حساب متصل را صادر میکند. پیشفرض از Telegram Takeout استفاده میکند؛ این یک نسخه پشتیبان از دادههای در دسترس نبوده یا حذفشده تلگرام نیست. چتهای مخفی، تاریخچه غیرقابل دسترسی و ویرایشهای قبلی بازیابی نمیشوند. تلگرام میتواند قبل از شروع Takeout یک دوره انتظار تعیین کند. پنل آن دوره انتظار را نمایش میدهد؛ بهطور بیصدا روش انتقال را تغییر نمیدهد. گزینه صریح regular-API پوشش متفاوتی دارد و دستهبندیهای پشتیبانینشده را ثبت میکند.
Takeout، API رسمی خروجی است که تلگرام دسکتاپ نیز از آن استفاده میکند. TgWitness میتواند مستقیماً از طریق جمعآوری دادههای خود، JSON سازگار با دسکتاپ بنویسد؛ وارد کردن آرشیو شخص دیگر الزامی نیست. شناسههای چت و پیام از طریق هر دو روش انتقال در دسترس هستند. یک چت عمومی یا اجازه فوروارد کردن، تضمینکننده خروجی سریعتر نیست و تأخیر تأیید Takeout را از بین نمیبرد. قبل از مقایسه سرعت، دامنه و تنظیمات رسانه را یکسان در نظر بگیرید.
برای حداکثر 20 شناسه چت صریحاً انتخابشده، خروجیگیری با API معمولی، آن همتایان را مستقیماً قبل از در نظر گرفتن کل فهرست مکالمات حساب کاربری، حل میکند. بنابراین، یک کانال عمومی قابلخواندن را میتوان بدون پیوستن به آن، حتی زمانی که در فهرست مکالمات وجود ندارد، صادر کرد. همکاران (peers) بدون کش به موجودی عادی بازمیگردند. فیلتر بایگانی همچنان اعمال میشود: اگر تلگرام یک گفتگوی جدید را بازنمیگرداند و چتهای بایگانیشده حذف شدهاند، وضعیت بایگانی نامشخص به عنوان یک حذف ثبت میشود.
Takeout روش موجودی بازه-تقسیمشده خود را حفظ میکند. هیچیک از مسیرها چتها را به هم متصل نمیکنند یا مجوزهای فوروارد را تغییر نمیدهند.
در JSON سازگار با دسکتاپ، کانالهایی که تلگرام به عنوان left علامتگذاری میکند، در زیر left_chats ظاهر میشوند، از جمله کانالهای عمومی قابل خواندن که حساب کاربری به آنها نپیوسته است.
هم FLOOD_WAIT و هم FLOOD_PREMIUM_WAIT درخواستها را برای کل دورهٔ درخواستی سرور متوقف میکنند. مهلت حساب کاربری در طول اتصال مجددها و راهاندازی مجددها حفظ میشود؛ یک انتظار کوتاهتر بعدی نمیتواند آن را کوتاهتر کند. تلاشهای مجدد محدود هستند، لغو، صفحات مهر و موم شده را حفظ میکند، و اعتبارنامههای API برای دور زدن محدودیت نرخ چرخانده نمیشوند. هیچ خرید پریمیومی انجام نمیشود.
انتخاب کنید چه اطلاعاتی جمعآوری شود#
| تنظیمات | معنی |
|---|---|
| هدف | ثبت کنید که چرا این اکتساب ضروری است. نامهای غیرضروری یا جزئیات حساس پرونده را اینجا وارد نکنید. |
| زبان گزارش | زبان برچسبهای گزارش قابلخواندن را انتخاب کنید. متن پیام اصلی بدون تغییر باقی میماند؛ برچسبهای قالب بدون ترجمه از انگلیسی استفاده میکنند. زبان با گزینههای شغل امضا شده ثابت میشود. |
| انواع چت / شناسههای چت | تمام انواع انتخابشده، یا فقط چتهای فهرستشده؛ پیامهای ذخیرهشده مربوط به چتهای خصوصی هستند. چتهای بایگانیشده بهطور جداگانه قابل انتخاباند. |
| تاریخها | UTC. تاریخهای تقویمی From و Through پنل هر دو لحاظ میشوند. API از مقادیر شامل استفاده میکند from_utc و انحصاری to_utc؛ پنل شروع روز بعد از Through را ارسال میکند. یک محدوده خالی آن سمت را بدون محدودیت باقی میگذارد. |
| شناسه فرستندهها | فقط پیامهای ارسالکنندگان فهرستشده؛ یک فهرست خالی شامل همه ارسالکنندگان است. |
| متن شامل | عبارات تحتاللفظی بدون توجه به حروف بزرگ/کوچک که با OR مطابقت داده میشوند. شرایط فرستنده/تاریخ/پیام-خود با AND ترکیب میشوند. |
| پیامهای خود | فقط پیامهای ارسالی را نگه دارید. |
| انواع رسانه | دستهبندیهای پیوست را انتخاب کنید، یا همه را پاک کنید تا از دانلود فایلهای پیام جلوگیری شود. |
| فایل / محدودیتهای کلی رسانه | میگابایت (MiB) برای هر فایل و گیگابایت (GiB) کل رسانههای دانلودشده. متن، رسیدها، گزارشهای قابلخواندن و سربار ZIP به فضای دیسک اضافی نیاز دارند. |
| دستهبندیهای حساب | پروفایل، مخاطبین، عکسهای پروفایل، استوریها، متادیتای جلسه و سایر دادههای Takeout کنترلهای جداگانهای دارند. |
پیشتنظیم «Minimize collection» متادیتای فایلها و حسابها را غیرفعال میکند. فیلترهای فرستنده/محتوا پیش از نگهداری صفحات پیام و دانلود رسانهها اعمال میشوند. تلگرام همچنان صفحات تاریخچه API حاوی پیامهای لازم برای ارزیابی آن فیلترها را منتقل میکند: فیلتر کردن تضمین نمیکند که پیامهای انتخابنشده هرگز وارد حافظه پردازش نشوند. سایر مشاهدات جاری در فضای کاری دارای دامنه و تنظیمات نگهداری خاص خود هستند.
تاریخچه عکس پروفایل و استوریها بهصورت پیشفرض انتخاب نمیشوند. همچنین وقتی پرونده تنها به پیامها نیاز دارد، پروفایل و مخاطبین را غیرفعال کنید. اگر پیوستها یا متادیتا غیرضروری هستند، حذف آنها در حین جمعآوری از نگهداری یک نسخه خصوصی دیگر در این خروجی جلوگیری میکند.
حملههای تصویری از نوع تصویر ثابت شناساییشده در متادیتا و هش مانیفستهای خود استفاده میکنند، از جمله عکسهایی با نوع آواتار متحرک. آن انیمیشن جایگزین تصویر ثابت انتخابشده نمیشود. یک حملهی کوتاهتر یا بلندتر از اندازه مشاهدهشده بهعنوان یک پیوست ناموفق ثبت میشود و نمایش تغییریافته در هنگام تمدید ارجاع فایل رد میگردد. این خطاها آرشیو را ناقص باقی میگذارند، در حالی که سوابق پیامها را حفظ میکنند. تأیید مستقل همچنین پیوستهای ذخیرهشدهای را که طول امضا شدهشان با اندازه یا نمایش مشاهدهشدهشان تناقض دارد، رد میکند، حتی در آرشیوهای قدیمیتر.
خلاصه، پوشش و تأیید#
هر کار، گزینهها و هویت حساب کاربری خود را منجمد میکند. موجودی و صفحات ضبطشده امضا میشوند؛ رسیدهای صفحات، هشها، مکاننماها، زمانها، نتایج پیوستها و رسید قبلی آنها را ثبت میکنند. تنها صفحات ارسالشده پیشرفت را جلو میبرند. عملیات ازسرگیری/ادامه، پیش از ادامه، آن سوابق را بررسی میکند. حساب تغییریافته، صفحه امضاشده تغییریافته یا زنجیره رسید ناسازگار رد میشوند. گزینهها را نمیتوان در میانه یک عملیات ضبط ویرایش کرد: برای دامنه دیگر، کار دیگری را آغاز کنید.
توقف، عملیات حساب در حال اجرا را متوقف میکند. راهاندازی مجدد برنامه، کارهای ناتمام را برای از سرگیری صریح در دسترس قرار میدهد. یک جلسه Takeout منقضیشده نیازمند از سرگیری صریح است؛ تغییر بازههای تقسیمشده تلگرام ممکن است نیازمند یک اکتساب جدید باشد. از سرگیری، مشاهدات قبلی را حفظ میکند، بنابراین یک خروجیگیری طولانیمدت یک نمای کلی اتمی نیست. سایر عملیاتهای تغییر حساب و خروجیگیریهای متضاد در حین اکتساب مسدود میشوند. پیش از حذف یک فضای کاری، منتظر اتمام بستهبندی باشید.
Resume پیش از ادامه، محتوای قبلاً ضبطشده را تأیید میکند. آرشیوهای بزرگ روی حافظهٔ کند ممکن است از زمان پیکربندیشده برای بررسی یکپارچگی (پارامترها → انقضای زمان اقدام پنل) (بهطور پیشفرض ۱۲۰ ثانیه) فراتر روند. پیش از تلاش مجدد، آن تنظیم را افزایش دهید؛ لغو یا قطع ذخیرهسازی، کار را در حالت مکث باقی میگذارد و بررسیهای یکپارچگی ناموفق، کار را با توضیحی ناموفق اعلام میکنند. بررسی باید بهطور ایمن پایان یابد یا متوقف شود تا فایلهای آن بسته شوند. هیچ ادعایی دربارهٔ توان عملیاتی حسابهای بزرگ توسط بررسیهای مصنوعی تأیید نشده است.
پنل بین یک دامنهٔ انتخابی تکمیلشده و یک آرشیو جزئی تمایز قائل میشود و حذفها و خوانشهای ناموفق را ثبت میکند. فایلهای عمداً حذفشده با فایلهای ناموفق یا در دسترس نبوده متفاوتاند. پوشش را حتی زمانی که تأیید یکپارچگی موفق است بررسی کنید. هیچ خوانندهٔ محلی نمیتواند اثبات کند که تلگرام همهٔ پیامهایی را که تاکنون وجود داشتهاند بازگردانده است.
ZIPهای تکمیلشده همچنان برای دانلودهای مکرر و دانلود با محدوده HTTP در دسترس هستند. یک آرشیو حساب شامل manifest.json, manifest.sig، امضا شده job.json, inventory.json, receipts/، معتبر data/*.jsonl، انتخابشده media/، قابل خواندن HTML و یک اعتبارسنج. اثر انگشت گردآورنده را از طریق یک کانال مستقل پین کنید، سپس با استفاده از یک نصب مورد اعتماد تأیید کنید:
python -m tgwitness.verify account-export.zip --fingerprint TRUSTED_SHA256
برای آرشیوهایی که محتوای توسعهیافتهٔ آنها از ۴ گیگابایت فراتر میرود، یک مقدار صریح و کافی تنظیم کنید --max-gib. این پنل آرشیوهای محلی احراز هویتشده و تکمیلشده را با استفاده از اندازه توسعهیافته اعلامشده و هَش منتشرشدهٔ ZIP آنها تأیید میکند؛ CLI خارجی محدودیت اندازه مستقل خود را حفظ میکند. پیش از باز کردن HTML قابلخواندن، آن را تأیید کنید. اعتبارسنج همراه آرشیو مناسب است، اما استفاده از یک اعتبارسنج مستقل، از اعتماد به کد اجرایی ارائهشده همراه با مدرک جلوگیری میکند.
امضای Ed25519 و هشهای SHA-256 تغییرات را پس از اینکه گردآورنده بایتهای مربوطه را ثبت کرد، تشخیص میدهند. این هشهانه اثبات میکنند که تلگرام آن پیامها را امضا کرده است، اپراتور گردآورنده صادق بوده است، تاریخچه حساب کامل است، یا دادگاه این مواد را خواهد پذیرفت. زمانهای ضبط بر اساس ساعت گردآورنده هستند. مهرهای زمانی مستقل و منشأ مستقل اکتساب باید بهطور جداگانه ارزیابی شوند.
یک افشا را برای یک وکیل یا گیرندهٔ دیگر آماده کنید#
پس از دانلود یک خروجی نهایی، ZIP اصلی را نگه دارید و باز کنید index.html
را از یک نسخه استخراجشده باز کنید. این گزارش، دامنه، پوشش موجود و محدودیتهای خود را توضیح میدهد. ارجاعات سوابق آن، مرجع آرشیو، مسیر سند و شماره سوابق را ترکیب میکنند، تا دریافتکننده بتواند همان مورد را در HTML یا نسخه چاپی پیدا کند.
برای یک مثال کاربردی، به گزارش خیالی را باز کنید مراجعه کنید.
از خروجی حساب آماده، گزینه «آمادهسازی یک نسخه اشتراکی» را انتخاب کنید. این کار یک مشتق امضاشدهٔ جداگانه ایجاد میکند. منبع ZIP بدون تغییر و خصوصی باقی میماند؛ آن را همراه با مشتق فشردهشده ارسال نکنید مگر اینکه گیرنده مجاز به دریافت کل محتویات آن باشد. زبان گزارش آن را بهطور جداگانه انتخاب کنید. تغییر زبان یا هر تنظیم انتخابی نیازمند پیشنمایش دیگری پیش از ایجاد است.
- هدف افشا را وارد کنید و تاریخها، شناسه فرستنده و معیارهای متن دقیق را انتخاب کنید.
- انتخاب کنید که آیا هویتها را حفظ کنید، فقط شرکتکنندگان فهرستشده را نمایش دهید یا همه را مستعار کنید. در حالت مستعارسازی، شناسه/عنوان چتها و شناسه پیامها نیز جایگزین میشوند. مستعارنامهها در داخل یک افشا ثابت هستند و بین افشاهای مستقل تهیه شده تغییر میکنند.
- متن پیام را حفظ کنید، آن را بهطور کامل حذف کنید یا نامها/عبارتهای واقعی را برای مخفیسازی اضافه کنید. در حالتهای خصوصی، ابزار همچنین نامهای فرستندهی شناختهشدهی پنهان، نامهای کاربری جایگزین، شناسههای فرستنده با توکن کامل، نامهای چت مستقیم، لینکها، آدرسهای ایمیل و رشتههای شبیه شماره تلفن را مخفی میکند. تطبیق نام شناختهشده، تا حد امکان به همت Unicode در تبدیل حروف بزرگ و کوچک عمل میکند، از جمله
Straße/STRASSE. عناوین عمومی گروهها/کانالها به طور خودکار از متن پیام حذف نمیشوند. اگر محدودیت ماسکگذاری هویتهای شناختهشده فراتر رود، خروجی منبع را محدودتر کنید یا متن را حذف کنید؛ این ابزار از پرش بیصدا روی نامهای بعدی خودداری میکند. اینها قوانین مبتنی بر بهترین تلاش هستند، نه ناشناسسازی عمومی. - فایلها را حذف کنید مگر اینکه گیرنده به آنها نیاز داشته باشد. نسخههای اصلی ضمیمهشده پیکسلها، صدا، متن و متادیتای خود را حفظ میکنند. آنها توسط ابزار بهصورت نه ناشناسسازی میشوند.
- پیشنمایش شمارشها، هشدارها و نمونههای پیامهای تبدیلشده را مشاهده کنید، سپس صراحتاً ایجاد را تأیید کنید. هر نمونه محدود به ۱۲ پیام و ۲۰۰۰ کاراکتر متن است. این یک نمونه است، نه بررسی کامل نتیجه. تغییر تنظیمات نیاز به پیشنمایش دیگری دارد. پیشنمایش پس از ۱۵ دقیقه منقضی میشود و به آن جلسه مدیر و دقیقاً همان ZIP اصلی محدود است؛ پس از ایجاد قابل استفاده مجدد نیست. پیشنمایش جدید، پیشنمایش قبلی را برای همان کار و جلسه باطل میکند.
- نتایج کامل را بررسی کنید
index.htmlوmessages.jsonlمحلی را قبل از تحویل بررسی کنید. اگر اطلاعات غیرضروری را فاش کرد، یک افشاگری جدید با استثناهای قویتر ایجاد کنید. ZIP امضا شده را در محل ویرایش نکنید.
پیامهایی که با انتخاب حذف شدهاند#
پیشنمایش. افشا وقتی کامل به نظر نمیرسد که کامل نباشد. در هر چتی که حداقل یک پیام افشا شده دارد، پیامهایی که از انتخاب حذف شدهاند به صورت نشانگر ظاهر میشوند، [withheld by selection — rule: sender] (یا text, period). پیامهای خارجشده از انتخاب را انتخاب کنید: یک نشانگر برای هر گروه متوالی از پیامهای پنهانشده (پیشفرض) یا یک نشانگر برای هر پیام. نشانگرها فقط شامل قانون و یک شمارش هستند، هرگز متن، فرستنده، تاریخ یا فایلها را در بر نمیگیرند. چتهایی که هیچ پیامی در آنها فاش نشده است، به طور کامل حذف میشوند، بنابراین این بسته وجود آنها را فاش نمیکند.
پاسخهای افشا شده میگویند به چه چیزی پاسخ میدهند: پیامی که در این نسخه گنجانده شده، پیامی که توسط انتخاب پنهان شده، یا پیامی که در خروجی منبع وجود ندارد (پیش از صدور حذف شده یا هرگز صادر نشده؛ خروجی نمیتواند تشخیص دهد کدام یک). پیامی که پنهان شده و یک پاسخ افشا شده به آن پاسخ میدهد، همیشه نشانگر مخصوص به خود را دریافت میکند، بنابراین پاسخ به سندی اشاره میکند که توضیح میدهد چرا خالی است. این سه وضعیت با حذفها و فواصل جمعآوری که به خروجی منبع تعلق دارند، متفاوت هستند.
در messages.jsonl (قالب tgwitness-account-disclosure-v2) هر پیام دارای state: disclosed، یا withheld با rules و count. یک پاسخ افشا شده دارای reply_to با هدف id و state (disclosed, withheld, not_in_source). منیفست پیامهای افشا شده، چتها، رسانهها و withheld پیامها. verify.py یک نشانگر حاوی محتوا و پاسخی که به رکوردی اشاره میکند که در بسته وجود ندارد را رد میکند؛ بستههای نسخه 1 همانند قبل اعتبارسنجی میشوند.
قالب فشردهشده پروفایلهای ساختاریافته حساب، مخاطبین، آواتارها، جلسات، استوریها، اشیاء خام تلگرام، سربرگهای فوروارد، نقلقولهای پاسخ، کارتهای تماس و متادیتای موقعیت را حذف میکند. این قالب فایلهای اصلی JSONL، تنظیمات فیلتر خصوصی، کلید نام مستعار و نقشه هویت را شامل نمیشود. متنهای انتخابشده، هویتهای صراحتاً نگهداشتهشده و فایلهای گنجاندهشده همچنان میتوانند حاوی همان نامها، شناسهها یا عبارات بهکاررفته در آن فیلترها باشند؛ این موارد نیازمند بررسی جداگانهاند. سیاست خصوصی و کلید مستعار در گاوصندوق محلی برای این کار بهصورت رمزگذاریشده نگهداری میشوند؛ حذف این کار، سوابق افشای خصوصی مرتبط با آن را پاک میکند. سوابق سیاست عمومی به جای مقادیر فیلتر، تعداد فیلترها را ثبت میکنند. هدف اعلامشده در مانیفست و HTML عمومی است: معیارهای خصوصی صریح و در حالتهای مستعار، هویتهای پنهان شناختهشده نیز در آنجا ماسک میشوند، حتی زمانی که متن پیام حذف شده باشد. هدف را از جزئیات شخصی غیرضروری عاری نگه دارید؛ زمینه شناسایی ناشناخته میتواند باقی بماند.
بیانیهٔ آن فایلهای مشتق، سیاست عمومی و هش نسخهٔ اصلی ZIP را پیوند میدهد. تأیید میتواند یکپارچگی را برقرار کند و در صورتی که منبع بهصورت محلی ارائه شود، پیوند تطبیقی منبع را نیز برقرار سازد:
python -m tgwitness.verify minimized-disclosure.zip --fingerprint TRUSTED_SHA256
python -m tgwitness.verify minimized-disclosure.zip --fingerprint TRUSTED_SHA256 --evidence account-export.zip
ارتباط با منبع بهطور مستقل اثبات نمیکند که تبدیل، هر مورد لازم را انتخاب یا هر جزئیات شناساییکننده را حذف کرده باشد. متن اصلی بهصورت مدرک ضمیمه نشده است. برای آن قضاوت، بازبینی تازهای لازم است.
اشتراکگذاری و ضبط میزبانیشده#
پیامها و فایلهای مورد نیاز دریافتکننده را انتخاب کنید، نسخهٔ کامل اشتراکگذاری را بازبینی کنید و منبع را بهطور جداگانه نگهداری کنید. هش فایلهای ZIP ارسالشده را ثبت کنید تا دریافتکننده بتواند آن نسخهٔ دقیق را شناسایی و تأیید کند. مستعارسازی، شناسههای منتخب را جایگزین میکند؛ متن و فایلهای اصلی همچنان بخشی از بازبینی باقی میمانند.
GitHub Actions از طریق Takeout یا API معمولی، از خروجیگیری کل حساب و چتهای منتخب، و همچنین یک دفتر وقایع یکچت پشتیبانی میکند. راهنمای ضبط میزبانیشده تأیید تنظیمات و ... را توضیح میدهد. 120محدودیت - دقیقهای. برای تأیید یک نسخه اشتراکگذاریشده مشتقشده از ضبط میزبانیشده، هش منبع آن را با آرشیو اصلی مطابقت دهید و تأییدیه آن آرشیو را با بررسیهای مخصوص هر حالت تأیید کنید. بررسیهای ویژهٔ حالت.