Pozyskuj z dowolnego źródła, bezpiecznie.
Wkrótce
Prześlij link lub wywołaj API. Corvidint rozpoznaje źródło, mapuje każdy plik i pozyskuje to, co wybiera Państwa polityka, ze weryfikacją i zapisem.
Źródła
- Linki bezpośredniehttps://archive.example.org/…
- Listingi WWWIndex of /pub/2026/
- Usługi onion….onion
- Roje peer-to-peermagnet:?xt=urn:btih:…
Opublikowane, najnowsze najpierw
- attachments/samples.zip1,4 GiBSuma kontrolna ze źródła zweryfikowana
- attachments/bulletins/bulletin-2026-07.pdf16,9 MiBSuma kontrolna obliczona po dotarciu
- captures/listing-0001.html428 KiBSuma kontrolna obliczona po dotarciu
- attachments/indicators-0417.json2,3 MiBZweryfikowane przez protokół transferu
- screens/page-0001.png717 KiBSuma kontrolna obliczona po dotarciu
- attachments/bulletins/bulletin-2026-06.pdf14,2 MiBSuma kontrolna ze źródła zweryfikowana
- shared/case-0417/notes.txt6,2 KiBSuma kontrolna ze źródła zweryfikowana
Wszystko, do czego prowadzi link.
Jeden ogólny potok rozpoznaje każde źródło, znane lub nie. Standardy, sprawdzone przepisy i wersjonowane konektory rozszerzają go bez nowego kodu w rdzeniu.
Tylko źródła, z których wolno Państwu zbierać dane. Brakujący dostęp staje się prośbą o działanie, nigdy obejściem.
Linki bezpośrednie
Docierane przezTunele VPNPula Tor
Linki bezpośrednie, udostępnione i tymczasowe, przekierowania oraz strony pośrednie między nimi.
- https://
- http://
- 302 Found
- ?expires=…
Listingi WWW
Docierane przezTunele VPNPula Tor
Indeksy serwerów, katalogi, tabele, strony szczegółów, galerie, feedy i stronicowane listingi JSON.
- Index of /
- ?page=2
- <enclosure>
- next_cursor
Serwery plików
Docierane przezTunele VPN
FTP i FTPS, SFTP z przypiętymi kluczami hosta oraz kolekcje WebDAV, folder po folderze.
- ftp://
- ftps://
- sftp://
- PROPFIND
Magazyny w chmurze
Docierane przezTunele VPN
Skonfigurowane zdalne magazyny i foldery współdzielone, wyświetlane przez ich własne interfejsy.
- remote:bucket/
- /shared/
- next_page_token
Hosting plików
Docierane przezTunele VPN
Usługi z własnymi formatami linków, rozpoznawane przez dedykowane adaptery i izolowane silniki.
- /file/…
- /folder/…
- #key
Strony dynamiczne
Docierane przezTunele VPNPula Tor
Linki budowane wyłącznie skryptem znajduje przeglądarka w piaskownicy, w ścisłych budżetach.
- <script>
- fetch()
- subresources
Usługi onion
Docierane przezPula Tor
Adresy onion trafiają wyłącznie do izolowanej puli Tor i nigdy nie dotykają zwykłego DNS.
- .onion
- client auth
Roje peer-to-peer
Docierane przezSesje peer
Linki magnet i pliki torrent działają we własnych sesjach tunelowanych, nigdy przez Tor, bez późniejszego seedowania.
- magnet:?xt=
- .torrent
- info-hash
Archiwa i zestawy
Docierane przezDowolna sieć
Archiwa są wyświetlane element po elemencie, a części zestawu wieloczęściowego wybiera się jako całość.
- .zip
- .tar.gz
- .7z
- .rar
- .iso
- .part1
Autoryzowany dostęp
Docierane przezTunele VPNPula Tor
Hasła, tokeny, klucze i klucze klienta onion są wysyłane raz, zapisywane jako odwołania i nigdy więcej nie pokazywane.
- username_password
- token
- ssh_key
- onion_client_auth
Jeden link staje się pełnym inwentarzem.
Rozpoznawanie zbiera dowody, zanim cokolwiek uzna za prawdę. Rozmiar pozostaje nieznany do czasu potwierdzenia, a listing jest kompletny dopiero, gdy zamkną się wszystkie gałęzie.
- archive.example.org/
collections/ kolekcja0417/ - attachments/
83 pliki1,9 GiB - bulletins/
79 plików282 MiB - indicators-0417.jsondane2,3 MiB
- samples-part2.7zarchiwumrozmiar nieznany286 MiB
- samples.ziparchiwum1,4 GiB
- readme.txtelement archiwum
- docs/
overview.pdf element archiwum - jeszcze 10 elementów
- unknown-0042.binnieznany typ3,1 MiB
- captures/
148 plików46,1 MiB - index.htmlstrona pośrednia48,0 KiB
- README.txttekst2,1 KiB
- screens/
64 pliki41,1 MiB - video/
2 pliki1,5 GiB - recording-02.mp4wideo1,1 GiB
- walkthrough.mp4wideo412 MiB
- WalidacjaSprawdzane są schemat, port i klasa hosta, bez kontaktu ze źródłem.
- Wybór sieciNazwa onion wybiera pulę Tor, każda inna tunel VPN.
- Zbieranie dowodówNagłówki, sygnatury, listingi i odczyty zakresów, od najtańszych.
- KlasyfikacjaPlik, folder, kolekcja lub strona pośrednia, każde z własnymi dowodami.
- WyliczanieFoldery strona po stronie, archiwa element po elemencie, cykle odcinane.
- Zamknięcie listinguKompletny w zakresie dopiero, gdy nie została żadna otwarta gałąź.
{"location_id": "loc_01JAH8K2","name": "samples.zip","depth": 1,"has_children": false,"listing_complete": true,"resource": {"resource_id": "res_01JAH8K2","kind": "file","kind_status": "confirmed","discovery_state": "resolved","size": {"bytes": "1481763717","status": "validated","basis": "representation"},"media": {"category": "archive","identification_status": "confirmed","detected_media_type": "application/zip"}}}Nowe serwisy, bez nowego kodu
Standardowe protokoły wymagają tylko konfiguracji. Znane układy stron dostają deklaratywne przepisy. Nowe protokoły dostają wersjonowany konektor, nigdy zmianę w rdzeniu.
- StandardyListingi WWW, FTP, SFTP, WebDAV i zdalne magazyny, obsługiwane od razu.
- PrzepisyPobierz, wybierz, wyodrębnij, wyemituj. Bez skryptów i kodu, tylko operacje, na które pozwala platforma.
- KonektoryWersjonowane pakiety uruchamiane poza procesem, które najpierw przechodzą zestaw zgodności.
Jak przepis zdobywa swoje miejsce
- Zaproponowany
- Przetestowany na przypadkach testowych
- Kanarek na części pracy
- Awansowany na podstawie dowodów
- Wycofany przy dryfie
Model może zaproponować kroki przepisu. Weryfikują go ludzie, a awansują go wyłącznie dowody.
{"recipe_key": "archive-listing.paged","version": 3,"language_version": "1.0","scope": {"hosts": ["archive.example.org"],"path_patterns": ["/collections/*"]},"steps": [{"op": "fetch","target": "input_url","accept": "html"},{"op": "select","language": "css","expression": "table.listing a.file","as": "links"},{"op": "extract","from": "links","attribute": "href","as": "hrefs"},{"op": "emit","kind": "unknown","native_id_from": "hrefs","relation": "contains"}],"expected_evidence": {"exhaustiveness": "provider_declared"}}Wartości fikcyjne, nazwy pól dokładnie takie, jak definiuje je API
Nic się nie pobiera, zanim kolejność zostanie udowodniona.
Reguły decydują, co jest dozwolone, pominięte lub poddane kwarantannie. Ścisły wybór czeka na zamknięty listing i znane rozmiary, a potem szereguje każdy plik według rozmiaru.
Reguły polityki, od najwyższego priorytetu
- 1exclude-videoOdtwarzalne wideo jest pomijane.
- 2inspect-unknownNieznane typy są badane, a brak rozstrzygnięcia oznacza kwarantannę.
- 3opaque_
encrypted_ Zaszyfrowane archiwa pozostają nieprzezroczyste, dopóki ktoś nie poda hasła.when_ acquired - 4default_
action Cała reszta jest dozwolona.
Zapisane razem z wyborem
strict_order_closed_inventory
Każdy plik pełnego inwentarza został uszeregowany według rozmiaru przed pobraniem.
Tryby wyboru
- 1Każdy plik, od największego
- 2Największy plik
- 3Największy plik z każdego folderu
- 4Pliki w przedziale rozmiaru
Tryb ścisły czeka na zamknięty listing i znane rozmiary. Tryb progresywny startuje wcześniej i mówi o tym wprost.
{"candidate_id": "rep_0008D","display_name": "walkthrough.mp4","candidate_kind": "representation","selection_revision": 2,"action": "exclude","rule_id": "exclude-video","reason_codes": ["video_excluded"],"evidence": [{"mechanism": "format_header","attribute": "kind","status": "confirmed","summary": "video/mp4"}]}Każde żądanie wychodzi przez tunel.
Sondowanie, listingi i transfery korzystają z tego samego autoryzowanego wyjścia. Gdy tunel padnie, żądania się zatrzymują: nie ma bezpośredniej trasy zapasowej.
Każde żądanie przechodzi przez bramę polityki, a potem wychodzi ścieżką wymaganą przez swoje źródło.
Ruch onion biegnie warstwowymi obwodami Tor, w osobnej, izolowanej puli.
Do rojów dołącza się z własnych sesji peer. Fragmenty napływają, a potem nic nie jest udostępniane dalej.
Tunel nie działa. Nowe żądania się zatrzymują, transfery zapisują punkty kontrolne i nic nie wychodzi bezpośrednio.
Tunel wrócił. Transfery wznawiają się od punktów kontrolnych.
- Adresy prywatne, loopback i metadanych są odrzucane w chwili połączenia.
- Nazwy onion nigdy nie dotykają zwykłego DNS.
- Sesje peer przestają udostępniać, gdy tylko żądane pliki są kompletne.
- Unieważnione powiązanie zamyka aktywne połączenia, a brama to potwierdza.
- Gdy zatrzymania nie da się potwierdzić, jego przepustowość pozostaje zarezerwowana, dopóki nie zostanie potwierdzone.
- Części częściowe leżą w magazynie obiektów, więc inna jednostka może je wznowić.
Zweryfikowane, zapisane, nigdy nie uruchamiane.
Niezależny weryfikator liczy hash każdego pliku z poczekalni. Bajty są przechowywane według zawartości, publikowane raz i udostępniane wyłącznie jako załączniki.
Niezgodność trafia do kwarantanny i jest pozyskiwana ponownie, nigdy nie jest publikowana.
Dwie lokalizacje, jeden blob
Identyczne bajty są zapisywane raz, według ich SHA-256. Wszystkie lokalizacje, które na nie wskazywały, są zachowane.
Zachowane jako dowód, nigdy nie uruchamiane
- Nic z pozyskanych danych nie jest otwierane, uruchamiane, instalowane ani montowane.
- Analizatory działają bez sieci, jako osobny użytkownik, z limitami czasu i pamięci.
- Ścieżki w archiwum są sprawdzane, zanim zostanie wypakowany choćby jeden element.
- Pliki wychodzą wyłącznie jako załączniki, krótko żyjącymi linkami z osobnego origin.
{"file_id": "file_0008","logical_path": "attachments/samples.zip","stored_name": "21d80013bfc9266b","size_bytes": "1481763717","sha256": "21d80013bfc9266bc453a3db98d1f3d14a2be4483d5020d74ec194a763336753","integrity_level": "origin_checksum_verified","origin_checksum": {"algorithm": "sha256","value": "21d80013bfc9266bc453a3db98d1f3d14a2be4483d5020d74ec194a763336753"},"source_resource_id": "res_01JAH8K2","published_at": "2026-10-05T08:31:00Z"}Wartości fikcyjne, nazwy pól dokładnie takie, jak definiuje je API
Zbudowany, by go wywoływać, gotowy dla parsera.
Dowolny projekt przesyła zadania przez API i śledzi je przez zdarzenia. Parser pobiera każdy opublikowany plik wraz z jego sumą kontrolną i pochodzeniem.
- Państwa projekt
- Downloader
- Parser
- Państwa projektDownloaderPrzesyła zadanieZadanie z kluczem idempotentności: ponowienie nigdy nie tworzy drugiego zadania.
Zadanie wysyłane przez Państwa projekt {"sources": [{"url": "https://archive.example.org/collections/0417/"},{"url": "https://share.example.net/s/K7q2xWm9"}],"policy_profile": "evidence-default","destination_id": "evidence-store","client_reference": "Archive capture, case 0417"} - DownloaderPaństwa projektPrzyjmuje je po zapisaniuOdpowiedź dopiero po zapisaniu zadania i jego polityki.
Co wraca w odpowiedzi {"job_id": "job_01JAH7Q2M4K8V3","policy_revision": "prv_4","accepted_at": "2026-10-05T08:12:04Z","idempotent_replay": false} - DownloaderParserOgłasza opublikowany plikPodpisane webhooki albo zdarzenia pobierane lub strumieniowane od kursora.
Zdarzenie otrzymywane przez parser {"event_id": "0f6e2a90-41d7-4c0b-9e5a-000000000010","event_type": "file.published","schema_version": "1.0","occurred_at": "2026-10-05T08:31:12Z","job_id": "job_01JAH7Q2M4K8V3","aggregate_type": "file","aggregate_id": "file_0008","aggregate_version": 3,"stream_seq": "10","data": {"file_id": "file_0008","logical_path": "attachments/samples.zip","size_bytes": "1481763717","verification_level": "origin_checksum_verified","selection_revision": 2}} - ParserDownloaderOdczytuje rekord plikuParser sprawdza, że plik jest zatwierdzony, i odczytuje jego SHA-256.
Rekord pliku sprawdzany przez parser {"file_id": "file_0008","job_id": "job_01JAH7Q2M4K8V3","logical_path": "attachments/samples.zip","original_name": "samples.zip","size_bytes": "1481763717","sha256": "21d80013bfc9266bc453a3db98d1f3d14a2be4483d5020d74ec194a763336753","integrity_level": "origin_checksum_verified","state": "committed","detected_media_type": "application/zip"} - ParserDownloaderPobiera go krótko żyjącym linkiemKrótko żyjący link; parser ponownie liczy hash bajtów przed parsowaniem.
Inwentarz, manifest i decyzje można też wyeksportować jako NDJSON.
Wartości fikcyjne, nazwy pól dokładnie takie, jak definiuje je API
Sprawdź to na własnych źródłach.
Prosimy opisać potrzeby. Pokażemy przechwycenie na żywo, od posta po zapieczętowany rekord.
Wolą Państwo e-mail? Prosimy pisać na [email protected].