Aus jeder Quelle beschaffen, sicher.

Demnächst

Reichen Sie einen Link ein oder rufen Sie die API auf. Corvidint löst die Quelle auf, kartiert jede Datei und beschafft, was Ihre Richtlinie auswählt, verifiziert und protokolliert.

Quellen

  • Direkte Linkshttps://archive.example.org/…
  • Web-ListingsIndex of /pub/2026/
  • Onion-Dienste….onion
  • Peer-to-Peer-Schwärmemagnet:?xt=urn:btih:…

Veröffentlicht, neueste zuerst

  1. attachments/samples.zip1,4 GiBPrüfsumme der Quelle verifiziert
  2. attachments/bulletins/bulletin-2026-07.pdf16,9 MiBPrüfsumme bei Ankunft berechnet
  3. captures/listing-0001.html428 KiBPrüfsumme bei Ankunft berechnet
  4. attachments/indicators-0417.json2,3 MiBVom Transferprotokoll verifiziert
  5. screens/page-0001.png717 KiBPrüfsumme bei Ankunft berechnet
  6. attachments/bulletins/bulletin-2026-06.pdf14,2 MiBPrüfsumme der Quelle verifiziert
  7. shared/case-0417/notes.txt6,2 KiBPrüfsumme der Quelle verifiziert

Alles, wohin ein Link führen kann.

Eine generische Pipeline löst jede Quelle auf, bekannt oder nicht. Standards, geprüfte Rezepte und versionierte Konnektoren erweitern sie, ohne neuen Code im Kern.

Nur Quellen, aus denen Sie sammeln dürfen. Fehlender Zugang wird zur Handlungsaufforderung, nie zur Umgehung.

  1. Direkte Links

    Erreicht überVPN-TunnelTor-Pool

    Direkte, geteilte und temporäre Links, Weiterleitungen und die Zwischenseiten dazwischen.

    • https://
    • http://
    • 302 Found
    • ?expires=…
  2. Web-Listings

    Erreicht überVPN-TunnelTor-Pool

    Server-Indizes, Kataloge, Tabellen, Detailseiten, Galerien, Feeds und paginierte JSON-Listen.

    • Index of /
    • ?page=2
    • <enclosure>
    • next_cursor
  3. Dateiserver

    Erreicht überVPN-Tunnel

    FTP und FTPS, SFTP mit fixierten Host-Schlüsseln und WebDAV-Sammlungen, Ordner für Ordner.

    • ftp://
    • ftps://
    • sftp://
    • PROPFIND
  4. Cloud-Speicher

    Erreicht überVPN-Tunnel

    Konfigurierte Speicher-Remotes und geteilte Ordner, aufgelistet über ihre eigenen Schnittstellen.

    • remote:bucket/
    • /shared/
    • next_page_token
  5. Filehoster

    Erreicht überVPN-Tunnel

    Hosting-Dienste mit eigenen Linkformaten, aufgelöst durch dedizierte Adapter und isolierte Engines.

    • /file/…
    • /folder/…
    • #key
  6. Dynamische Seiten

    Erreicht überVPN-TunnelTor-Pool

    Links, die nur ein Skript erzeugt, findet ein Browser in der Sandbox, innerhalb strikter Budgets.

    • <script>
    • fetch()
    • subresources
  7. Onion-Dienste

    Erreicht überTor-Pool

    Onion-Adressen gehen nur in den isolierten Tor-Pool und berühren nie das gewöhnliche DNS.

    • .onion
    • client auth
  8. Peer-to-Peer-Schwärme

    Erreicht überPeer-Sitzungen

    Magnet-Links und Torrent-Dateien laufen in eigenen getunnelten Sitzungen, nie über Tor, ohne anschließendes Seeding.

    • magnet:?xt=
    • .torrent
    • info-hash
  9. Archive und Sets

    Erreicht überBeliebiges Netz

    Archive werden Mitglied für Mitglied aufgelistet, und die Teile eines mehrteiligen Sets werden als eines gewählt.

    • .zip
    • .tar.gz
    • .7z
    • .rar
    • .iso
    • .part1
  10. Autorisierter Zugang

    Erreicht überVPN-TunnelTor-Pool

    Passwörter, Tokens, Schlüssel und Onion-Client-Schlüssel werden einmal gesendet, als Referenzen gehalten und nie wieder angezeigt.

    • username_password
    • token
    • ssh_key
    • onion_client_auth

Aus einem Link wird ein vollständiges Inventar.

Die Auflösung sammelt Belege, bevor sie etwas glaubt. Eine Größe bleibt unbekannt, bis sie bewiesen ist, und eine Liste ist erst vollständig, wenn jeder Zweig geschlossen ist.

https://archive.example.org/collections/0417/

VPN-Tunnel

Abdeckungläuftvollständig im Umfang

  • archive.example.org/collections/0417/Sammlung
  • attachments/83 Dateien1,9 GiB
  • bulletins/79 Dateien282 MiB
  • indicators-0417.jsonDaten2,3 MiB
  • samples-part2.7zArchivGröße unbekannt286 MiB
  • samples.zipArchiv1,4 GiB
  • readme.txtArchivmitglied
  • docs/overview.pdfArchivmitglied
  • 10 weitere Mitglieder
  • unknown-0042.binunbekannter Typ3,1 MiB
  • captures/148 Dateien46,1 MiB
  • index.htmlZwischenseite48,0 KiB
  • README.txtText2,1 KiB
  • screens/64 Dateien41,1 MiB
  • video/2 Dateien1,5 GiB
  • recording-02.mp4Video1,1 GiB
  • walkthrough.mp4Video412 MiB
  1. ValidierenSchema, Port und Host-Klasse werden geprüft, ohne die Quelle zu kontaktieren.
  2. Netz wählenEin Onion-Name wählt den Tor-Pool, jeder andere Name einen VPN-Tunnel.
  3. Belege sammelnHeader, Signaturen, Listen und Range-Reads, das Günstigste zuerst.
  4. KlassifizierenDatei, Ordner, Sammlung oder Zwischenseite, jeweils mit ihren Belegen.
  5. AufzählenOrdner Seite für Seite, Archive Mitglied für Mitglied, Zyklen gekappt.
  6. Liste schließenVollständig im Umfang, erst wenn kein Zweig offen bleibt.
Ein Knoten dieses Baums, wie ihn die API zurückgibt
{"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"}}}

Neue Sites, ohne neuen Code

Standardprotokolle brauchen nur Konfiguration. Bekannte Seitenlayouts bekommen deklarative Rezepte. Neue Protokolle bekommen einen versionierten Konnektor, nie eine Änderung am Kern.

  • StandardsWeb-Listings, FTP, SFTP, WebDAV und Speicher-Remotes, ab Werk verstanden.
  • RezepteAbrufen, auswählen, extrahieren, ausgeben. Keine Skripte, kein Code, nur Operationen, die die Plattform erlaubt.
  • KonnektorenVersionierte Pakete, die außerhalb des Prozesses laufen und zuerst ein Konformitätsprüfpaket bestehen.

Wie ein Rezept sich seinen Platz verdient

  1. Vorgeschlagen
  2. An Fixtures getestet
  3. Canary auf einem Teil der Arbeit
  4. Per Beleg befördert
  5. Bei Drift zurückgezogen

Ein Modell darf die Schritte eines Rezepts vorschlagen. Menschen prüfen es, und nur Belege befördern es.

Ein Rezeptdokument, in der Rezeptsprache
{"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"}}

Fiktive Werte, Feldnamen genau wie von der API definiert

Nichts wird geladen, bevor die Reihenfolge belegt ist.

Regeln entscheiden, was erlaubt, ausgeschlossen oder in Quarantäne gestellt wird. Die strikte Auswahl wartet auf eine geschlossene Liste und bekannte Größen und ordnet dann jede Datei nach Größe.

Richtlinienregeln, höchste Priorität zuerst

  1. 1exclude-videopriority: 100Abspielbare Videos werden ausgelassen.
  2. 2inspect-unknownpriority: 50Unbekannte Typen werden untersucht; unklar heißt Quarantäne.
  3. 3opaque_encrypted_when_acquiredquarantineVerschlüsselte Archive bleiben undurchsichtig, bis jemand das Passwort liefert.
  4. 4default_actionallowAlles andere ist erlaubt.
RangDateiGrößeBeschluss
1samples.zip1,4 GiBErlaubt
2bulletin-2026-07.pdf16,9 MiBErlaubt
3bulletin-2026-06.pdf14,2 MiBErlaubt
53indicators-0417.json2,3 MiBErlaubt
294README.txt2,1 KiBErlaubt
samples-part2.7z286 MiBWartet auf PasswortPasswort erforderlich
unknown-0042.bin3,1 MiBIn QuarantäneIdentifizierung unbekannt
recording-02.mp41,1 GiBAusgelassenVideo ausgelassen
walkthrough.mp4412 MiBAusgelassenVideo ausgelassen

Mit der Auswahl festgehalten

strict_order_closed_inventory

Jede Datei des vollständigen Inventars wurde vor dem Download nach Größe geordnet.

Auswahlmodi

  1. 1Jede Datei, größte zuerst
  2. 2Die größte Datei
  3. 3Die größte Datei jedes Ordners
  4. 4Dateien innerhalb eines Größenbereichs

Der strikte Modus wartet auf eine geschlossene Liste und bekannte Größen. Der progressive Modus startet früh und sagt das auch.

Ein Beschluss, wie ihn die API zurückgibt
{"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"}]}

Jede Anfrage verlässt das Netz durch einen Tunnel.

Probes, Listings und Transfers nutzen gleichermaßen autorisierten Egress. Fällt ein Tunnel aus, stoppen die Anfragen: Es gibt keine direkte Route als Rückfall.

VPN-Tunnel-SitzungenIsolierter Tor-PoolPeer-Sitzungen

Jede Anfrage passiert das Policy-Gate und verlässt das Netz dann über die Spur, die ihre Quelle verlangt.

Onion-Verkehr nimmt mehrschichtige Tor-Circuits, in einem eigenen isolierten Pool.

Schwärmen wird aus eigenen Peer-Sitzungen beigetreten. Teile treffen ein, und anschließend wird nichts geseedet.

Tunnel ausgefallen. Neue Anfragen stoppen, Transfers setzen Checkpoints, und nichts verlässt das Netz direkt.

Tunnel wieder da. Transfers setzen an ihren Checkpoints fort.

  • Private, Loopback- und Metadaten-Adressen werden beim Verbindungsaufbau abgelehnt.
  • Onion-Namen berühren nie das gewöhnliche DNS.
  • Peer-Sitzungen hören auf zu teilen, sobald die angeforderten Dateien vollständig sind.
  • Eine widerrufene Bindung schließt laufende Verbindungen, und das Gateway bestätigt es.
  • Lässt sich ein Stopp nicht bestätigen, bleibt seine Kapazität reserviert, bis er bestätigt ist.
  • Teildateien liegen im Objektspeicher, sodass eine andere Einheit sie fortsetzen kann.

Verifiziert, protokolliert, nie ausgeführt.

Ein unabhängiger Verifizierer hasht jede bereitgestellte Datei. Bytes werden inhaltsadressiert gespeichert, einmal veröffentlicht und nur als Anhänge ausgeliefert.

Veröffentlichte Dateien des fiktiven Auftrags und ihre IntegritätsstufePrüfsumme der Quelle verifiziertStimmt mit einer Prüfsumme überein, die die Quelle selbst veröffentlicht hat.Vom Transferprotokoll verifiziertGegen die eigenen Hashes des Protokolls geprüft, Datei für Datei.Prüfsumme bei Ankunft berechnetSHA-256 der gespeicherten Bytes, und genau so gekennzeichnet.
attachments/samples.zip1,4 GiB21d80013…336753Prüfsumme der Quelle verifiziert
attachments/bulletins/bulletin-2026-07.pdf16,9 MiB45fc57dc…6589c6Prüfsumme bei Ankunft berechnet
attachments/bulletins/bulletin-2026-06.pdf14,2 MiBd918bbf1…71f434Prüfsumme der Quelle verifiziert
attachments/indicators-0417.json2,3 MiB13e8534b…865223Vom Transferprotokoll verifiziert
captures/listing-0001.html428 KiBa3651f3c…f7b3e8Prüfsumme bei Ankunft berechnet
screens/page-0001.png717 KiB1a53f598…76d1dbPrüfsumme bei Ankunft berechnet

Eine Abweichung kommt in Quarantäne und wird erneut beschafft, nie veröffentlicht.

Zwei Orte, ein Blob

Identische Bytes werden einmal nach ihrem SHA-256 gespeichert. Jeder Ort, der auf sie verwies, bleibt erhalten.

Als Nachweis aufbewahrt, nie ausgeführt

  • Nichts Beschafftes wird geöffnet, ausgeführt, installiert oder eingehängt.
  • Analyzer laufen ohne Netzwerk, als eigener Benutzer, mit Zeit- und Speicherlimits.
  • Archivpfade werden geprüft, bevor ein einziges Mitglied entpackt wird.
  • Dateien verlassen das System nur als Anhänge, über kurzlebige Links auf einer separaten Origin.
Ein Manifest-Eintrag, wie ihn die API zurückgibt
{"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"}

Fiktive Werte, Feldnamen genau wie von der API definiert

Zum Aufrufen gebaut, bereit für den Parser.

Jedes Projekt reicht Aufträge über die API ein und verfolgt sie per Events. Der Parser übernimmt jede veröffentlichte Datei mit ihrer Prüfsumme und Herkunft.

  • Ihr Projekt
  • Downloader
  • Parser
  1. Ihr ProjektDownloaderReicht einen Auftrag einEin Auftrag mit Idempotenzschlüssel: Ein Retry erzeugt nie einen zweiten Auftrag.
    Der Auftrag, den Ihr Projekt sendet
    {"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"}
  2. DownloaderIhr ProjektNimmt ihn an, sobald gespeichertAntwort erst, wenn Auftrag und Richtlinie gespeichert sind.
    Was zurückkommt
    {"job_id": "job_01JAH7Q2M4K8V3","policy_revision": "prv_4","accepted_at": "2026-10-05T08:12:04Z","idempotent_replay": false}
  3. DownloaderParserMeldet eine veröffentlichte DateiSignierte Webhooks oder Events, die Sie per Polling oder als Stream ab einem Cursor beziehen.
    Das Event, das der Parser erhält
    {"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}}
  4. ParserDownloaderLiest den DateidatensatzDer Parser prüft, ob die Datei festgeschrieben ist, und liest ihren SHA-256.
    Der Dateidatensatz, den der Parser prüft
    {"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"}
  5. ParserDownloaderRuft sie über einen kurzlebigen Link abEin kurzlebiger Link; der Parser hasht die Bytes vor dem Parsen erneut.

Inventar, Manifest und Beschlüsse lassen sich auch als NDJSON exportieren.

Fiktive Werte, Feldnamen genau wie von der API definiert

Sehen Sie es an Ihren Quellen.

Sagen Sie uns, was Sie brauchen. Wir führen Sie durch eine Live-Erfassung, vom Beitrag bis zum versiegelten Datensatz.

Briefing anfragen

Lieber per E-Mail? Schreiben Sie an [email protected].