# תכונות ומגבלות

Canonical page: https://phishdestroy.github.io/TgWitness/he/docs/reference/features/

מה TgWitness מיישם כיום, מה מגבילה פלטפורמת טלגרם ומה נותר לעבודה עתידית.

התייחסות לעיצוב: 26 באוקטובר 2026. מקרה השימוש העיקרי הוא קבוצות וערוצים פרטיים ב-Telegram הנגישים לחשבונות המחוברים. מסמך זה מבחין בין התנהגות מיושמת, מגבלות הפלטפורמה ועבודה עתידית. פריט בארכיטקטורה היעד אינו מהווה טענה כי התכונה כבר קיימת.

## יישום עצמאי

ל-TgWitness יש תהליך התקנה, ספריית נתונים ומחזור חיים משלו. ממשק האינטרנט המצורף מטפל בהגדרה ובבדיקה; ניתן להשתמש ברשומות המיוצאות באופן עצמאי.

המשתמש מחבר את חשבונותיו, בוחר את המקורות הנראים לכל אחד מהם, ומקבל יומן תצפיות שמור. הלוח מציג את התוכן, השינויים שנשמרו, מקור התצפיות והפערים הידועים. חוקר אחר יכול לאמת את החומר שיוצא.

יש ארבעה מצבים מובחנים בעלי חשיבות: אימות חשבון, גישה למקור, אוסף פעיל, והמידה שבה נקבעת שלמות המסירה. אף אחד משלושת הראשונים אינו מוכיח באופן אוטומטי את הרביעי. קבוצה שקטה אינה בהכרח אוסף כושל.

## חקירות משותפות

מנהל מערכת יכול להנפיק [אסימוני גישה](https://phishdestroy.github.io/TgWitness/he/docs/reference/access/) המותאמים לסביבות עבודה ול צ'אטים אישיים, עם שבע רמות הרשאה, הגבלות IP, תוקף, מגבלות כניסה ובקרת הפעלה. בודק בעל גישה לקריאה בלבד יכול לבחון מקרה מבלי לקבל אישור מ-Telegram או את מפתח לוח הבקרה הראשי. הגישה המוגבלת לצ'אטים נשארת נפרדת מההגדרות ברמת החשבון ומהיצוא המלא של היומן.

MTProxy האוטומטי מתחזק נתיבי טלגרם פעילים מארבעה מקורות ציבוריים או מקטלוג מפעילים. [מצבי ה-IP](https://phishdestroy.github.io/TgWitness/he/docs/reference/connection/#ip-modes) קובעים האם במקרה של כשל יש להמתין לפרוקסי אחר או שניתן להשתמש בנתיב ישיר המותר במפורש. לבקשות HTTP חיצוניות יש נתיב נפרד ומתג כיבוי.

## כלי ארכיון

הגרסה הנוכחית, `main`, מוסיפה [איסוף היסטוריה](https://phishdestroy.github.io/TgWitness/he/docs/reference/history/), [חיפוש וניתוח בארכיון](https://phishdestroy.github.io/TgWitness/he/docs/reference/analysis/), [MCP לקריאה בלבד](https://phishdestroy.github.io/TgWitness/he/docs/reference/mcp/), [OCR/תמלול מקומי](https://phishdestroy.github.io/TgWitness/he/docs/reference/media-analysis/) ו- [webhooks יוצאים](https://phishdestroy.github.io/TgWitness/he/docs/reference/webhooks/). אלו הן תכונות מבדיקת הקוד המקור, שנוספו לאחר תצוגה מקדימה של גרסה 0.7.0 הניידת. דוחות אנליטיים וטקסט מזוהה נשארים נפרדים מהאירועים שנלכדו.

## תוספות אופציונליות

ההגדרה היומית היא: חשבון → מקורות → תצפית. **"תוספות"** הוא יעד נפרד הכולל בוט עדות של טלגרם ותצוגה מקדימה של תפיסת נתונים ב-GitHub. כל אחד מהם מציין את זמינותו ודרישותיו לפני הצגת ההגדרות. בחירת כרטיס פותחת הוראות; היא אינה מבצעת הרשמה או מפעילה שירות.

הגדרת הבוט כוללת שלושה שלבים: יצירת גישה לקריאה בלבד, בחירת הגדרות פרסום, ו הפעלה במארח ה-Witness. אפשרויות רשת ופרסום, חיבורים קיימים ו פקודות אימות נחשפות לפי דרישה. תצורה שהורדה נבדלת מ-Witness פועל. מעבר בין תוספות שומר את הטיוטה; שינויים בחשבון ונעילה מנקיים את האסימון הזמני ואת הטופס. המדריך המובנה כולל הוראות הפעלה. [GitHub Actions capture](https://github.com/phishdestroy/TgWitness/blob/main/docs/SEALED-ACTIONS.md) מפעיל אספן מוצמד מה-fork שלך, לוכד צ'אט אחד ומייצר העברה מוצפנת עם מקור זרימת העבודה.

## פרוטוקול ומקורות פרטיים

**MTProto הוא הפרוטוקול של טלגרם; Telethon היא ספריית Python ש-TgWitness משתמשת בה כדי לתקשר ב-MTProto.** אין מדובר בשיטות חיבור חלופיות. האיסוף משתמש ב-MTProto; ה-witness האופציונלי מפרסם בדיקות חתומות באמצעות ה-Bot API.

לכל סביבת עבודה יש לקוח מורשה משלה וזרם עדכונים משלה לחשבון. TgWitness בוחר תצפיות ממקורות שהוגדרו ומבצע בקשות מפורשות ונפרדות לפונקציות כגון צילומי מצב של ההיסטוריה והורדת קבצי מדיה.

מקור פרטי אינו זקוק לשם משתמש ציבורי. סוג העמית ב-Telegram והמזהה המספרי הם המזהים; כותרות ושמות משתמש עשויים להשתנות. הגישה תלויה בחברות ובהרשאות קיימות. TgWitness אינו מצטרף אוטומטית למקורות ואינו עוקף את אישור ההצטרפות. חתימת גישה מחשבון אחר אינה מהווה אסימון גישה אוניברסלי.

מודל האיסוף חייב לקחת בחשבון היסטוריה נסתרת מלפני ההצטרפות, תפקידי משתתפים/מנהלים, ביטול הפעלה, הסרה או שינוי הרשאות, מעבר מקבוצה לסופר-קבוצה, נושאים/פורומים, דיונים מקושרים, זהויות ערוצים וקבצים מצורפים שאינם זמינים. לא כל השילובים נבדקו בפועל.

נראות המקור נבדקת בעת הפעלת האספן. היעדר מקור מתוצאת הדיאלוג המוגבלת משמעותו **גישה לא מאושרת**, ולא מחיקה מוכחת. מקור אחד שאינו זמין אינו מונע מעקב אחר מקורות נגישים אחרים. לעולם אין לפרסם קישורי הזמנה או הפעלות אמיתיות בפלטפורמות ציבוריות.

## חשבונות מרובים

הלוח תומך במספר בלתי מוגבל של **סביבות עבודה**, שלכל אחת מהן:

- אישור, כספת מוצפנת ונתיב חיבור.
- יומן SQLite וזהות חתימה Ed25519.
- מקורות נבחרים, תור מדיה והגדרות לכידה.
- מצב הניטור, שגיאות, נקודות בקרה וייצוא נתונים.

החלפת סביבת העבודה המוצגת אינה עוצרת אספן אחר. אישור חשבון כפול בין סביבות עבודה נדחה. יומן שכבר מקושר לחשבון Telegram אחד לא ניתן להקצות מחדש לחשבון אחר; מותר לחבר מחדש את אותו החשבון. כך נשמרים זהות החשבון והיקף מזהי ההודעות הרלוונטיים.

אין מספר קבוע ואין ערבות לתפוקה נמדדת. סביבות העבודה חולקות תהליך Python ולולאת אירועים. עובדים נפרדים לחשבונות הם נושא לעבודה עתידית. לצורך בידוד תהליכים כרגע, יש להשתמש בהתקנות, יציאות וספריות נתונים נפרדות.

הקצו לכל חשבון את המקורות אליהם הוא יכול לגשת. חשבונות שונים עשויים לעקוב אחר אותה קבוצה, אך התצפיות שלהם נותרות נפרדות ושומרות על מקורן. שני חשבונות על מחשב אחד הנשלט על ידי מפעיל אחד אינם נחשבים לשני עדים בלתי תלויים. הייצוא מתבצע לפי סביבת עבודה; לא מיושמת אפשרות ליצירת חבילת תיק מאוחדת או ציר זמן גלובלי של טלגרם.

## תיעוד וייחוס

המקורות מספקים מתגים לכל חשבון עבור הודעות חדשות, עריכות, מחיקות, תגובות וחברות. הגדרות קבועות מראש שומרות על כל הקטגוריות או על הודעות/עריכות/מחיקות. המדיניות חלה על הקבוצות הנבחרות בסביבת העבודה, נשמרת גם לאחר הפעלה מחדש, וחתומה עם שינויים לפני ואחרי. ברירות המחדל שומרות על כל הקטגוריות. כיבוי קטגוריה אינו מסיר רשומות ישנות; הפעלתה מחדש אינה משחזרת אירועים שהוחמצו. רשומות תפעוליות, אירועי שירות קבוצתיים אחרים ותמונות מצב מפורשות של ההיסטוריה הן נפרדות. אובייקטים שנתפסו ב-Telegram עשויים לשמור על מטא-נתונים מוטמעים ללא תלות בהגדרות העדכון הנפרדות. אין עדיין אפשרויות לעקיפת קטגוריות לכל קבוצה בנפרד.

| חומר | נלכד כעת | גבולות |
| --- | --- | --- |
| הודעה | טקסט, מזהי עמיתים/הודעות, מטא-נתונים של השולח, תשובות ומעטפת העדכון המקורית | אין חתימת טלגרם הניתנת לאימות פומבי עבור ההודעה |
| ערוך | הגרסה החדשה שנצפתה וכל הגרסאות שנשמרו בעבר | עריכות ביניים שבוצעו במהלך זמן השבתה עלולות ללכת לאיבוד; השולח אינו בהכרח העורך |
| מחיקה | הודעות ותוכן שנלכד בעבר, אם קיים | בדרך כלל ללא ציון המחיקות או זמן הפעולה המדויק |
| מחיקה ללא הגדרת היקף | הודעה מקורית ברמת החשבון, ללא ניחושים לגבי הצד השני | התאמה מדויקת למזהים שהושמרו בעבר ברמת החשבון היא משימה לעתיד |
| תגובה | מספר הצפיות והזהויות האחרונות הנראות לעין | רשימה מלאה של ה-Reactors הזמינים דורשת שאילתות נפרדות; ערוצים עשויים להסתיר זהויות |
| חברות | הודעות שירות ועדכונים שנשלחו למשתתפים | הנראות תלויה בתפקיד ובסוג הצ'אט; אירועים חסרים אינם מעידים על היעדרות |
| פעולות מנהל | רק עדכונים רלוונטיים שנמסרו | סקר נפרד של יומן הניהול אינו מיושם |
| קובץ מצורף | תיאור הגרסה המקורית, בייטים שהורדו/SHA-256 ותוצאות הניסיונות | קובץ שנמחק עשוי להיות בלתי ניתן לשחזור; הגרסה האחרונה אינה מוחלפת |
| היסטוריה | תמונת מצב מפורשת של ההודעות הגלויות כרגע | אינו משחזר את כל העריכות או התכנים שנמחקו |
| תהליך האיסוף | הפעלה/כיבוי, פעימות, שגיאות, הגדרות, היקף וקבלת תוכניות | דיווח עצמי, לא אישור תהליך בלתי תלוי |

פעולה מיוחסת לאדם רק אם המקור מציין במפורש את אותו אדם. בכל מקרה אחר, הממשק מדווח על היעדר ייחוס. שמות משתמש ושמות הם מאפיינים שנצפו, ולא הוכחה לזהות בעולם האמיתי.

## קיבולת ומגבלות טלגרם

אין מספר אחיד של צ'אטים שניתן לפקח עליהם באיכות מובטחת. הקיבולת תלויה במספר האירועים בשיא לשנייה, בנפח ובגודל הקבצים המצורפים, ב-RPCs נוספים, בחשבונות פעילים, בחביון הדיסק/במקום הפנוי, בתנאי הרשת, במגבלות טלגרם, בפיגור מקובל ובעומק התור.

Telegram מבחין בין מסירה פסיבית לסקר קצר אקטיבי. התיעוד המעודכן שלו מתאר קריאות `updates.getChannelDifference` נוספות עבור ערוצים פתוחים/קבוצות-על וממליץ על **עשרה מקורות** לכל היותר **הנסקרים בו-זמנית בסקר קצר**. אין מדובר במגבלה של עשר קבוצות נבחרות או בערבות לשלמות.

| מצב | מטרה | סטטוס |
| --- | --- | --- |
| הערה סטנדרטית | תיעוד עדכונים שהתקבלו ממקורות נבחרים | יושם |
| הערה בעדיפות | בדיקות הבדלים נוספות עבור קבוצת מקורות מוגבלת | לא מיושם במצב משתמש |

סקר תדירות גבוהה שרירותי, התעלמות מ-FloodWait או הנחה של קיבולת ליניארית מחשבונות נוספים אינם מהווים מודל תמחור תקף. המגבלות המוגדרות כברירת מחדל הן 1,000 השיחות הראשונות ברשימה, עד 500 הודעות לכל תמונת מצב של ההיסטוריה, 1–2,000 MiB לכל קובץ שנאסף לפי סוג, ו-4 GiB של תוכן ZIP חתום ולא דחוס; כל אחד מהערכים הללו ניתן לשינוי עבור כל סביבת עבודה תחת **"פרמטרים"**. לייצוא אין מגבלה קבועה על מספר האירועים. הגיבוי בדפדפן מוגבל ל-128 MiB כברירת מחדל; ל-CLI הזרמתי יש מגבלת העברה הניתנת להגדרה, 5 GiB כברירת מחדל.

`tools/check_capacity.py` מודד קליטה וייצוא סינתטיים מקומיים. תוצאותיו אינן מדידות של מסירת הודעות ב-Telegram או ספירה מובטחת של צ'אטים אמיתיים. ראו [VERIFICATION.md](https://phishdestroy.github.io/TgWitness/he/docs/reference/verification/) לקבלת הגרסה הנמדדת ועומס העבודה.

## אמינות ושחזור

ההתנהגויות המיושמות כוללות WAL של SQLite/עסקאות סינכרוניות; כתיבה אטומית של הודעות ומשימות מדיה; משימות מתמשכות ועיכובים בניסיונות חוזרים; תיאורי גרסה מקורית; ניסיונות חוזרים מוגבלים; FloodWait מתמשך למדיה; הורדות מדיה מחוץ ל- המתנה ברשת של אירוע הטקסט; ייצוא עם קידומת יציבה בזמן שכתיבות מאוחרות יותר נמשכות; הגדרות אטומיות ו רשומות ביקורת; שימור הרשאת העבודה לאחר כשל בכניסה חלופית; בידוד של סביבת עבודה נוספת שנפגעה; ניסיונות חיבור מחדש מפורשים; דיווח מובחן על אובדן הרשאות; וזיהוי שינויים בזמן אמת באמצעות שעון מונוטוני.

נקודות התחלה/סיום/רצף (pts/qts/seq) של חשבונות וערוצים נשמרות ומחודשות לאחר הפעלה מחדש, והצ'אטים הנצפים נבדקים מחדש מעת לעת; ראו [פורמט הראיות](https://phishdestroy.github.io/TgWitness/he/docs/reference/evidence/#durable-collection-and-process-receipts-02). שמירת המיקום מעת לעת אינה מהווה אישור אטומי וללא אובדן נתונים של קבלת היומן.

כל תחילת תהליך מתעדת את הראש הקודם ואת גבול המצב הלא מקוון. ההיסטוריה הנוכחית אינה מטופלת כתיקון פערים. יכולת שמירת ההבדלים של טלגרם היא מוגבלת; `differenceTooLong` אינו יכול לשחזר את כל התוכן שנעלם. פערים בלתי ניתנים לשחזור חייבים להישאר מפורשים גם אם תמונת מצב מאוחרת יותר של ההיסטוריה תצליח.

## מודל הראיות

כל אירוע מתעד את הרצף, זמן התצפית המקומי ב-UTC, זמן המקור (כאשר הוא מסופק), סוג, מקור, מבצע (כאשר הוא מסופק), תוכן מקורי, חתימת hash קודמת וחתימה. תצפיות על הודעות שומרות גם את חשבון האספן/הקשר ההפעלה.

אישור התהליך החתום מכיל מזהה ריצה אקראי; גרסאות התלות של TgWitness/Python/OS; ערכי SHA-256 של קבצי המקור וטביעת אצבע מצטברת; חשבון ראשוני, היקף והגדרות; קריאות UTC/מונוטוניות; וכותרת היומן הקודמת. שינויי הגדרות, הפעלה/כיבוי ושגיאות נרשמים באותו יומן. נקודות ביקורת נשמרות בעת ההפעלה, כל חמש דקות במהלך הניטור (ניתן לשינוי), ובסיום מסודר. נקודת ביקורת מקומית שנשמרה יכולה לזהות חזרה לקידומת יומן קודמת.

| מנגנון | מה הוא קובע |
| --- | --- |
| קובץ SHA-256 | הבייטים תואמים לדיגסט ידוע |
| שרשרת חשישים של אירועים | תיעוד סדר/קישור ביחס לגבול ידוע |
| Ed25519 | חתימה תחת מפתח מסוים |
| נקודת ביקורת המנוהלת באופן עצמאי | החומר המאוחר יותר תואם את הגבול שנשמר |
| מדידת קובץ התוכנית | דיווח עצמי של האספן אודות הקבצים שנמדדו |
| תגובה עצמאית תקפה מטעם ה-TSA | קיומם של ביטים ספציפיים לפי זמן ה-TSA תחת הנחות אמון מפורשות |

הכנת בקשות לפי RFC 3161 ואימות תגובות באמצעות OpenSSL מיושמים. שליחה אוטומטית אינה מיושמת. בקשה או חתימה מקומית הנושאת את זמן המחשב אינה מהווה חותמת זמן עצמאית. ראו [TIMESTAMP.md](https://phishdestroy.github.io/TgWitness/he/docs/reference/timestamp/).

מפעיל השולט באספן ובמפתח החתימה יכול לזייף תצפיות חתומות חדשות. החתימות אינן קובעות את מקורן של הודעות טלגרם, את אמיתותן או את קבילותן המשפטית האוטומטית. שמירה חזקה יותר דורשת נקודת ביקורת עצמאית/אחסון לפי זמן, בקרות גישה למפתחות, רישומי העברה ואימות באמצעות תוכנה אמינה.

## ייצוא, פריסה והעברה

קובץ ZIP חתום מכיל קבצי JSONL, CSV ו-HTML מקוריים, קבצים מצורפים משומרים, חתימות hash, מניפסט חתום וכלי אימות נוח לשימוש. הוא מכסה סביבת עבודה אחת וקידומת יומן מלאה קבועה. מסנני החיפוש בלוח הבקרה אינם מסירים רשומות באופן סמוי. מפתחות סודיים, אסימונים והפעלות טלגרם אינם נכללים; התצפיות המקוריות עשויות עדיין להכיל מידע אישי ומטא-נתונים של טלגרם.

יש לשמור בנפרד את תקציר ה-ZIP, טביעת האצבע המהימנה, נקודת הבדיקה, אישור התהליך ותיעוד המסירה. יש להשתמש במאמת מתוך התקנה מהימנה, במקום להסתמך על קוד הניתן להפעלה אך ורק משום שהוא מופיע בקובץ ה-ZIP הנבדק.

ממשק הדפדפן מותקן באופן מקומי ללא Node.js, CDN או גופנים חיצוניים. אסימון מפעיל אחד שולט בהתקנה. גישה מרחוק דורשת HTTPS או מנהרת SSH. מסופקים הגדרות מקוריות ב-Python ובקונטיינרים, עם דוגמאות לשירותים בתיקיית [deploy/](https://github.com/phishdestroy/TgWitness/blob/main/deploy/README.md); בדיקות הפלטפורמה שבוצעו מפורטות בנפרד.

סביבת העבודה המוגדרת כברירת מחדל משתמשת בשורש הנתונים; סביבות עבודה נוספות משתמשות ב-`profiles/<id>/`. הגיבוי מחייב תהליך מושעה ואת מערך הנתונים/המפתחות המלא. קבצי ZIP של ראיות אינם גיבויים של היישום. Secrets יכול להשתמש במפתח ראשי חיצוני עבור ספריית נתונים חדשה; הצפנת היומן/המדיה מסופקת על ידי הדיסק/נפח של המפעיל. ראו [CONNECTION-SECURITY.md](https://phishdestroy.github.io/TgWitness/he/docs/reference/connection/) [ו-OPERATIONS.md](https://phishdestroy.github.io/TgWitness/he/docs/reference/operations/).

## קריטריונים לגרסה יציבה

לפני שחרור גרסה יציבה, יש לציין:

1. קבוצות פרטיות אמיתיות, סופר-קבוצות, פורומים וערוצים עם תפקידי חברים/מנהלים ו היסטוריית פעילות נסתרת/גלויה, כולל כניסה/אימות דו-שלבי (2FA), ביטול הרשאות ואובדן גישה.
2. עריכות, מחיקות, תגובות, חברות ותכנים מדיה מבוקרים מול פעולות ידועות.
3. תקלות בתהליך/בשרת, תקלות בדיסק/דיסק מלא, הפניות לקבצים שפג תוקפם, FloodWait, אובדן חיבור לרשת, קבצים פגומים והחזרת מסד הנתונים למצב קודם.
4. שימוש מתמשך במספר חשבונות עם עיכוב מדוד, תורים, זיכרון ודיסק, כולל מקורות שקטים ורועשים יחד.
5. פער בין התקדמות מצב ה-MTProto לבין קבלת היומן.
6. התקנה נקייה במטריצת מערכת ההפעלה/קונטיינר המיועדת ושחזור גיבוי מאומת.
7. סקירה עצמאית של אבטחה, חתימות וטענות בנוגע לייחוס/ראיות.

סריקת יומני מנהל, רשימות ריאקטורים נוספות, סריקה לפי עדיפות, עובדים נפרדים, והצפנה ברמת היישום כולה נותרו משימות לעתיד. גישה לפאנלים מוגבלת מתוארת בפרק ["גישה והרשאות](https://phishdestroy.github.io/TgWitness/he/docs/reference/access/)". גרסה 0.6 תומכת ב-TData המוגבל לחשבון בודד ובייבוא קבצי חשבונות, כפי שתואר [ב-ACCOUNTS.md](https://phishdestroy.github.io/TgWitness/he/docs/reference/accounts/). יש לעיין בתנאי ה-API של טלגרם לפני הפרסום. מקורות המחקר וממצאי הפלטפורמה נמצאים בקובץ [RESEARCH.md](https://github.com/phishdestroy/TgWitness/blob/main/docs/internal/RESEARCH.md).
