Acquérez depuis toute source, en sécurité.

Bientôt disponible

Soumettez un lien ou appelez l’API. Corvidint résout la source, cartographie chaque fichier et acquiert ce que votre politique sélectionne, vérifié et consigné.

Sources

  • Liens directshttps://archive.example.org/…
  • Index webIndex of /pub/2026/
  • Services onion….onion
  • Essaims pair à pairmagnet:?xt=urn:btih:…

Publiés, les plus récents d’abord

  1. attachments/samples.zip1,4 GiBSomme de contrôle de la source vérifiée
  2. attachments/bulletins/bulletin-2026-07.pdf16,9 MiBSomme de contrôle calculée à l’arrivée
  3. captures/listing-0001.html428 KiBSomme de contrôle calculée à l’arrivée
  4. attachments/indicators-0417.json2,3 MiBVérifié par le protocole de transfert
  5. screens/page-0001.png717 KiBSomme de contrôle calculée à l’arrivée
  6. attachments/bulletins/bulletin-2026-06.pdf14,2 MiBSomme de contrôle de la source vérifiée
  7. shared/case-0417/notes.txt6,2 KiBSomme de contrôle de la source vérifiée

Tout ce qu’un lien peut révéler.

Un seul flux générique résout chaque source, connue ou non. Standards, recettes validées et connecteurs versionnés l’élargissent sans nouveau code dans le cœur.

Uniquement des sources que vous êtes autorisé à collecter. Un accès manquant devient une demande d’action, jamais un contournement.

  1. Liens directs

    Atteint viaTunnels VPNPool Tor

    Liens directs, partagés et temporaires, redirections et pages intermédiaires entre eux.

    • https://
    • http://
    • 302 Found
    • ?expires=…
  2. Index web

    Atteint viaTunnels VPNPool Tor

    Index de serveur, catalogues, tableaux, pages de détail, galeries, flux et listes JSON paginées.

    • Index of /
    • ?page=2
    • <enclosure>
    • next_cursor
  3. Serveurs de fichiers

    Atteint viaTunnels VPN

    FTP et FTPS, SFTP avec clés d’hôte épinglées, et collections WebDAV, dossier par dossier.

    • ftp://
    • ftps://
    • sftp://
    • PROPFIND
  4. Stockage cloud

    Atteint viaTunnels VPN

    Stockages distants configurés et dossiers partagés, listés via leurs propres interfaces.

    • remote:bucket/
    • /shared/
    • next_page_token
  5. Hébergeurs de fichiers

    Atteint viaTunnels VPN

    Services d’hébergement aux formats de lien propres, résolus par des adaptateurs dédiés et des moteurs isolés.

    • /file/…
    • /folder/…
    • #key
  6. Pages dynamiques

    Atteint viaTunnels VPNPool Tor

    Les liens que seul un script construit sont trouvés par un navigateur isolé, avec des budgets stricts.

    • <script>
    • fetch()
    • subresources
  7. Services onion

    Atteint viaPool Tor

    Les adresses onion vont uniquement vers le pool Tor isolé et ne touchent jamais le DNS ordinaire.

    • .onion
    • client auth
  8. Essaims pair à pair

    Atteint viaSessions pair à pair

    Les liens magnet et fichiers torrent s’exécutent dans des sessions tunnelisées dédiées, jamais via Tor, sans partage ensuite.

    • magnet:?xt=
    • .torrent
    • info-hash
  9. Archives et lots

    Atteint viaTout réseau

    Les archives sont listées élément par élément, et les parties d’un lot multipartite sont choisies d’un seul bloc.

    • .zip
    • .tar.gz
    • .7z
    • .rar
    • .iso
    • .part1
  10. Accès autorisé

    Atteint viaTunnels VPNPool Tor

    Mots de passe, jetons, clés et clés client onion sont envoyés une fois, conservés comme références et jamais réaffichés.

    • username_password
    • token
    • ssh_key
    • onion_client_auth

Un lien devient un inventaire complet.

La résolution rassemble des preuves avant de croire quoi que ce soit. Une taille reste inconnue tant qu’elle n’est pas prouvée, et un listing n’est complet que lorsque chaque branche est fermée.

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

Tunnel VPN

Couvertureen courscomplet dans le périmètre

  • archive.example.org/collections/0417/collection
  • attachments/83 fichiers1,9 GiB
  • bulletins/79 fichiers282 MiB
  • indicators-0417.jsondonnées2,3 MiB
  • samples-part2.7zarchivetaille inconnue286 MiB
  • samples.ziparchive1,4 GiB
  • readme.txtélément d’archive
  • docs/overview.pdfélément d’archive
  • 10 éléments de plus
  • unknown-0042.bintype inconnu3,1 MiB
  • captures/148 fichiers46,1 MiB
  • index.htmlpage intermédiaire48,0 KiB
  • README.txttexte2,1 KiB
  • screens/64 fichiers41,1 MiB
  • video/2 fichiers1,5 GiB
  • recording-02.mp4vidéo1,1 GiB
  • walkthrough.mp4vidéo412 MiB
  1. ValiderSchéma, port et classe d’hôte sont contrôlés sans contacter la source.
  2. Choisir le réseauUn nom onion sélectionne le pool Tor, tout autre nom un tunnel VPN.
  3. Réunir les preuvesEn-têtes, signatures, listings et lectures par plage, du moins coûteux au plus coûteux.
  4. ClasserFichier, dossier, collection ou page intermédiaire, chacun avec ses preuves.
  5. ÉnumérerDossiers page par page, archives élément par élément, cycles coupés.
  6. Clore le listingComplet dans le périmètre uniquement quand aucune branche ne reste ouverte.
Un nœud de cet arbre, tel que l’API le renvoie
{"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"}}}

De nouveaux sites, sans nouveau code

Les protocoles standard ne demandent que de la configuration. Les mises en page connues reçoivent des recettes déclaratives. Les protocoles inédits reçoivent un connecteur versionné, jamais une modification du cœur.

  • StandardsIndex web, FTP, SFTP, WebDAV et stockages distants, compris d’emblée.
  • RecettesRécupérer, sélectionner, extraire, émettre. Ni script ni code, uniquement les opérations que la plateforme autorise.
  • ConnecteursDes paquets versionnés qui s’exécutent hors processus et passent d’abord un kit de conformité.

Comment une recette gagne sa place

  1. Proposée
  2. Testée sur des jeux d’essai
  3. Canari sur une part du travail
  4. Promue sur preuves
  5. Retirée en cas de dérive

Un modèle peut proposer les étapes d’une recette. Des personnes la relisent, et seules les preuves la promeuvent.

Un document de recette, dans le langage des recettes
{"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"}}

Valeurs fictives, noms de champs exactement tels que l’API les définit

Rien ne se télécharge avant que l’ordre soit prouvé.

Des règles décident de ce qui est autorisé, écarté ou mis en quarantaine. La sélection stricte attend un listing clos et des tailles connues, puis classe chaque fichier par taille.

Règles de la politique, priorité la plus haute d’abord

  1. 1exclude-videopriority: 100Les vidéos lisibles sont écartées.
  2. 2inspect-unknownpriority: 50Les types inconnus sont inspectés ; un résultat non concluant mène à la quarantaine.
  3. 3opaque_encrypted_when_acquiredquarantineLes archives chiffrées restent opaques tant que personne ne fournit le mot de passe.
  4. 4default_actionallowTout le reste est autorisé.
RangFichierTailleDécision
1samples.zip1,4 GiBAutorisé
2bulletin-2026-07.pdf16,9 MiBAutorisé
3bulletin-2026-06.pdf14,2 MiBAutorisé
53indicators-0417.json2,3 MiBAutorisé
294README.txt2,1 KiBAutorisé
samples-part2.7z286 MiBAttend un mot de passemot de passe requis
unknown-0042.bin3,1 MiBEn quarantaineidentification inconnue
recording-02.mp41,1 GiBÉcartévidéo écartée
walkthrough.mp4412 MiBÉcartévidéo écartée

Consigné avec la sélection

strict_order_closed_inventory

Chaque fichier de l’inventaire complet a été ordonné par taille avant le téléchargement.

Modes de sélection

  1. 1Chaque fichier, du plus gros au plus petit
  2. 2Le plus gros fichier
  3. 3Le plus gros fichier de chaque dossier
  4. 4Fichiers dans une plage de taille

Le mode strict attend un listing clos et des tailles connues. Le mode progressif démarre plus tôt, et le signale.

Une décision, telle que l’API la renvoie
{"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"}]}

Chaque requête sort par un tunnel.

Sondes, listings et transferts utilisent la même sortie réseau autorisée. Quand un tunnel tombe, les requêtes s’arrêtent : il n’existe aucune route directe de repli.

Sessions de tunnel VPNPool Tor isoléSessions pair à pair

Chaque requête franchit la passerelle de politiques, puis sort par la voie qu’exige sa source.

Le trafic onion emprunte des circuits Tor en couches, dans un pool isolé qui lui est propre.

Les essaims sont rejoints depuis des sessions pair à pair dédiées. Les fragments arrivent, et rien n’est partagé ensuite.

Tunnel tombé. Les nouvelles requêtes s’arrêtent, les transferts posent un point de contrôle et rien ne sort en direct.

Tunnel rétabli. Les transferts reprennent à partir de leurs points de contrôle.

  • Les adresses privées, de loopback et de métadonnées sont refusées à la connexion.
  • Les noms onion ne touchent jamais le DNS ordinaire.
  • Les sessions pair à pair cessent de partager dès que les fichiers demandés sont complets.
  • Une liaison révoquée ferme les connexions actives, et la passerelle en accuse réception.
  • Quand un arrêt ne peut pas être confirmé, sa capacité reste réservée jusqu’à confirmation.
  • Les fichiers partiels vivent dans le stockage objet, si bien qu’une autre unité peut les reprendre.

Vérifié, consigné, jamais exécuté.

Un vérificateur indépendant calcule le hash de chaque fichier mis en attente. Les octets sont stockés par contenu, publiés une seule fois et servis uniquement comme pièces jointes.

Fichiers publiés de la tâche fictive et leur niveau d’intégritéSomme de contrôle de la source vérifiéeCorrespond à une somme de contrôle publiée par la source elle-même.Vérifié par le protocole de transfertContrôlé avec les hashes du protocole lui-même, fichier par fichier.Somme de contrôle calculée à l’arrivéeSHA-256 des octets stockés, et étiquetée exactement comme telle.
attachments/samples.zip1,4 GiB21d80013…336753Somme de contrôle de la source vérifiée
attachments/bulletins/bulletin-2026-07.pdf16,9 MiB45fc57dc…6589c6Somme de contrôle calculée à l’arrivée
attachments/bulletins/bulletin-2026-06.pdf14,2 MiBd918bbf1…71f434Somme de contrôle de la source vérifiée
attachments/indicators-0417.json2,3 MiB13e8534b…865223Vérifié par le protocole de transfert
captures/listing-0001.html428 KiBa3651f3c…f7b3e8Somme de contrôle calculée à l’arrivée
screens/page-0001.png717 KiB1a53f598…76d1dbSomme de contrôle calculée à l’arrivée

Une discordance est mise en quarantaine puis acquise de nouveau, jamais publiée.

Deux emplacements, un seul blob

Des octets identiques sont stockés une seule fois, par leur SHA-256. Chaque emplacement qui y pointait est conservé.

Conservé comme preuve, jamais exécuté

  • Rien de ce qui est acquis n’est ouvert, exécuté, installé ni monté.
  • Les analyseurs s’exécutent sans réseau, sous leur propre utilisateur, avec des limites de temps et de mémoire.
  • Les chemins d’une archive sont contrôlés avant l’extraction du moindre élément.
  • Les fichiers ne sortent que comme pièces jointes, via des liens à courte durée de vie sur une origine distincte.
Une entrée de manifeste, telle que l’API la renvoie
{"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"}

Valeurs fictives, noms de champs exactement tels que l’API les définit

Conçu pour être appelé, prêt pour le parser.

N’importe quel projet soumet des tâches par l’API et les suit par événements. Le parser prend chaque fichier publié avec sa somme de contrôle et sa provenance.

  • Votre projet
  • Downloader
  • Parser
  1. Votre projetDownloaderSoumet une tâcheUne tâche avec clé d’idempotence : une nouvelle tentative ne crée jamais une seconde tâche.
    La tâche qu’envoie votre projet
    {"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. DownloaderVotre projetL’accepte une fois stockéeRéponse donnée seulement une fois la tâche et sa politique stockées.
    Ce qui revient
    {"job_id": "job_01JAH7Q2M4K8V3","policy_revision": "prv_4","accepted_at": "2026-10-05T08:12:04Z","idempotent_replay": false}
  3. DownloaderParserAnnonce un fichier publiéWebhooks signés, ou événements que vous interrogez ou recevez en flux depuis un curseur.
    L’événement que reçoit le 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}}
  4. ParserDownloaderLit la fiche du fichierLe parser vérifie que le fichier est validé et lit son SHA-256.
    La fiche de fichier que contrôle le 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"}
  5. ParserDownloaderLe récupère par un lien à courte durée de vieUn lien à courte durée de vie ; le parser recalcule le hash des octets avant de parser.

L’inventaire, le manifeste et les décisions s’exportent aussi en NDJSON.

Valeurs fictives, noms de champs exactement tels que l’API les définit

Voyez-le sur vos propres sources.

Dites-nous ce dont vous avez besoin. Nous vous présenterons une capture en direct, du post jusqu’à l’enregistrement scellé.

Demander un briefing

Vous préférez l’e-mail ? Écrivez à [email protected].