Odniesienie / Dowody
Jak działa ten rejestr dowodów
Wyjaśnienie pojęć łańcucha skrótów, podpisów, punktów kontrolnych i świadków wraz z dokładnymi wzorami stosowanymi przez weryfikatora.
TgWitness zachowuje dane zebrane przez konto gromadzące, łączy te obserwacje w podpisany dziennik i umożliwia innej osobie weryfikację eksportowanych danych przy użyciu zaufanego klucza oraz wcześniej zachowanego punktu kontrolnego.
Lokalna strona internetowa z dokumentacją zawiera
interaktywne przykłady pod adresem /docs/concepts/ oraz narzędzie do analizy decyzji dotyczących punktów kontrolnych pod adresem
/docs/witness/. Wszystkie przykładowe wiadomości,
liczby i opóźnienia są fikcyjne. Skróty w piaskownicy łańcucha są obliczane za pomocą
algorytmu SHA-256 w przeglądarce. Żadne dane nie są przesyłane do serwisu Telegram.
Wiadomość ulega zmianie; obserwacje się kumulują#
Schemat w formie tekstowej
- Telegram → Collector: Nowa wiadomość: Spotkanie o godz. 10:00
- Collector → Podpisany dziennik: Dodaj wiadomość.new
- Telegram → Collector: Aktualizacja: Spotkanie o godz. 11:00
- Collector → Podpisany dziennik: Dodaj wiadomość.edited
- Telegram → Collector: Powiadomienie o usunięciu
- Collector → Podpisany dziennik: Dodaj wiadomość.usunięto
- Uwaga dotycząca Podpisany dziennik: Zachowane są informacje o treści oryginalnej, edycjach oraz usunięciach
Ta uproszczona sekwencja zakłada, że Telegram dostarczył każdą aktualizację, a wybrane konto miało do niej wgląd. W dzienniku odnotowywane są również zdarzenia operacyjne. Powiadomienie o usunięciu nie podaje osoby dokonującej usunięcia ani dokładnego czasu usunięcia. Powtarzające się dostarczenia są oddzielnymi obserwacjami; nie ma funkcji eliminacji duplikatów w całym dzienniku.
Co obejmuje skrót (hash)#
Proszę zapoznać się z formułą od końca do początku: C przekształca dziewięć pól w konkretne bajty; SHA-256 generuje ich skrót; format szesnastkowy służy do przechowywania tego skrótu. Poprzedni skrót znajduje się już w zdarzeniu. Funkcja unhex przekształca zapisany skrót z powrotem w 32 bajty, które są podpisywane przez algorytm Ed25519.
Niech C(ei) będzie kanonicznym plikiem JSON w formacie UTF-8 zawierającym dziewięć pól zdarzeń. Pierwszy
rekord previous_hash składa się z 64 znaków zerowych. Każdy kolejny rekord zawiera szesnastkowy skrót
poprzedniego rekordu:
Podpis obejmuje 32 bajty surowego skrótu. Dane wejściowe skrótu zawierają dokładnie
seq, observed_at, source_at, kind, chat_id, message_id, actor_id,
payload oraz previous_hash. Klucze obiektów są posortowane; pominięto spacje i znaki ASCII
z symbolami escape; wartości NaN i nieskończoność są odrzucane. Proszę zapoznać się z
dokładnym kodowaniem.
Schemat w formie tekstowej
- 64 znaki zerowe → Wpis 1 / skrót h1
- Wpis 1 / skrót h1 → Zapis nr 2 zawiera nagłówek h1 / hash h2
- Zapis nr 2 zawiera nagłówek h1 / hash h2 → Zapis nr 3 zawiera nagłówek h2 / hash h3
- Zapis nr 3 zawiera nagłówek h2 / hash h3 → Podpisany punkt kontrolny: liczba 3, nagłówek h3 (przechowywać w innym miejscu)
| Zmiana w dostarczonym dzienniku | Co to wykrywa |
|---|---|
| Zmodyfikować rekord nr 2, zachowując jego zapisany skrót | Przeliczony skrót zdarzenia jest inny; jego podpis nie obejmuje już zmienionego zdarzenia |
| Odtworzenie zmienionego zapisu oraz wszystkich późniejszych skrótów | Oryginalne podpisy są nieprawidłowe; zachowany punkt kontrolny na danej granicy również wykazuje rozbieżności |
| Należy usunąć końcówkę, zachowując jednak pozostałą część przedrostka w niezmienionej postaci | Wcześniejszy zapisany punkt kontrolny, wykraczający poza podany prefiks, wskazuje, że eksport jest zbyt krótki |
| Ponowne podpisanie zastępczego dziennika za pomocą innego klucza | Oddzielny, zaufany odcisk klucza odrzuca próbę podmiany tożsamości |
Proszę wypróbować tę logikę na zapisie nr 2: proszę zmienić Meet at 11:00 na Meet at 12:00 w
zapisanym zdarzeniu. Jego ponownie obliczony skrót już się nie zgadza. Ponowne obliczenie późniejszej sekwencji
może naprawić jej ogniwa, ale nie jest w stanie sprawić, by oryginalne podpisy obejmowały nowe skróty.
Natomiast zaobserwowana edycja w Telegramie staje się nowym wpisem w dzienniku.
Same linki do skrótów nie uniemożliwiają komuś ponownego obliczenia łańcucha zastępczego. Zaufanie wynika ze sprawdzania podpisów przy użyciu niezależnego, zaufanego klucza oraz porównywania ich z danymi referencyjnymi przechowywanymi poza systemem gromadzącym dane.
Co wnosi wcześniejszy punkt kontrolny#
Odniesienie pozostaje niezmienne, podczas gdy dziennik się powiększa. Jeśli punkt kontrolny wskazuje „3 rekordy, nagłówek h3”, eksport zawierający cztery rekordy może zostać zaakceptowany poprzez dopasowanie nagłówka h3 w pozycji 3. Najnowszym nagłówkiem jest h4, który zgodnie z oczekiwaniami powinien się różnić. Eksport zawierający tylko dwa rekordy zakończy się niepowodzeniem.
Schemat statycznych punktów kontrolnych
Po zweryfikowaniu podpisu punktu kontrolnego należy:
Eksport może wykraczać poza punkt kontrolny. Musi on być zgodny na zachowanej granicy. Rzeczywisty weryfikator sprawdza również sekwencję każdego zdarzenia, poprzedni link, skrót oraz podpis. Porównanie wyłącznie końcowego, zapisanego nagłówka spowodowałoby pominięcie zmienionego rekordu wewnętrznego, którego zapisany skrót nie został zaktualizowany.
Gdzie należy świadek#
Schemat w formie tekstowej
- Moduł gromadzący / sesja konta / klucz A → Punkt końcowy punktu kontrolnego tylko do odczytu
- Witness / klucz kolektora przypięty / klucz własny B → Oddzielny, podpisany dziennik dowodowy
- Witness / klucz kolektora przypięty / klucz własny B → Punkt końcowy punktu kontrolnego tylko do odczytu (Poproś o weryfikację)
- Punkt końcowy punktu kontrolnego tylko do odczytu → Witness / klucz kolektora przypięty / klucz własny B (Podpisana odpowiedź)
- Witness / klucz kolektora przypięty / klucz własny B → Kanał zawierający podpisane posty TGW1 (API bota / własny token)
Narzędzie Witness rejestruje cofnięcia zmian, odmienne nagłówki przy tej samej liczbie, zmienione klucze, nieprawidłowe odpowiedzi oraz brakujące odpowiedzi. Sama wyższa liczba nie oznacza, że wszystkie wcześniejsze zapisy pozostały niezmienione; proszę porównać eksport z zachowanymi punktami kontrolnymi. Umieszczenie narzędzia Witness na innym serwerze pozwala uniknąć skutków awarii serwera kolektora; oddzielny operator zapewnia dodatkową niezależność.
Świadek potwierdza stan dziennika zgłoszony przez narzędzie zbierające dane. Nie prowadzi on niezależnej obserwacji wszystkich wiadomości z Telegrama. Zobacz konfigurację świadka.
Testowanie działania w oparciu o znane scenariusze#
Należy wykorzystać grupę kontrolną, odrębne konta do gromadzenia danych oraz nowy znacznik. Proszę celowo wysyłać, edytować i usuwać wiadomości, sprawdzając poprawność przechwytywania na poszczególnych etapach. Przed analizą wyników należy zdefiniować oczekiwane działania oraz punkt graniczny.
Liczą się wyłącznie działania zgodne z oczekiwaniami; zduplikowane potwierdzenia nie zwiększają licznika. Mianownik musi być niezerowy. Brakujące potwierdzenie nie ma zmierzonego opóźnienia. Należy odnotować niepewność pomiaru czasu; należy stosować własny, kontrolowany czas działania związanego z usunięciem, ponieważ Telegram nie podaje dokładnego czasu usunięcia. Wynik taki jak 5/6 (83,3%) opisuje działania testowe, a nie kompletność całego ruchu w Telegramie.
Proszę wybrać schemat działania#
Pełny opis przebiegu dochodzenia obejmuje incydent występujący na kanale, w grupie, w botcie oraz w prywatnym czacie:
- Włącz tryb dochodzeniowy obejmujący całe konto i sporządź wykaz wszystkich dostępnych czatów.
- Pobieraj zrzuty ekranu dziennika, pełną historię poszczególnych czatów oraz zachowane załączniki.
- Należy zachować zmiany wprowadzane na bieżąco oraz wszelkie celowe interakcje z panelami wraz z ich potwierdzeniami.
- Proszę śledzić numeryczne identyfikatory nadawców, relacje odpowiedzi, powtarzające się adresy docelowe oraz skróty plików w oparciu o cytowane zapisy i profile użytkowników.
- Odtworzenie osi czasu obejmującej różne czaty, zawierającej zarówno znaczniki czasu, jak i wyraźne luki.
- Porównuj obszary robocze innych kont, zachowując jednocześnie odrębność ich pochodzenia i kluczy.
- Prosimy o zestawienie i weryfikację podpisanych dzienników, profili oraz eksportów historii wraz z notatkami dotyczącymi spraw.
Przewodnik „/docs/cases/” dostępny na stronie zawiera interaktywną mapę spraw oraz warianty
dotyczące sporów z botami, usuniętych wiadomości oraz zmian nazw użytkowników. Notatki dotyczące spraw
oraz analiza między przestrzeniami roboczymi odbywają się zewnętrznie; aplikacja nie generuje automatycznie
globalnego wykresu śledczego ani scalonego archiwum spraw.
Zakończona walidacja i pozostałe zadania · Eksportowanie i weryfikacja · Zacznij od jednego konta