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
- attachments/samples.zip1,4 GiBSomme de contrôle de la source vérifiée
- attachments/bulletins/bulletin-2026-07.pdf16,9 MiBSomme de contrôle calculée à l’arrivée
- captures/listing-0001.html428 KiBSomme de contrôle calculée à l’arrivée
- attachments/indicators-0417.json2,3 MiBVérifié par le protocole de transfert
- screens/page-0001.png717 KiBSomme de contrôle calculée à l’arrivée
- attachments/bulletins/bulletin-2026-06.pdf14,2 MiBSomme de contrôle de la source vérifiée
- 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.
Liens directs
Atteint viaTunnels VPNPool Tor
Liens directs, partagés et temporaires, redirections et pages intermédiaires entre eux.
- https://
- http://
- 302 Found
- ?expires=…
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
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
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
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
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
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
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
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
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.
- archive.example.org/
collections/ collection0417/ - 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
- ValiderSchéma, port et classe d’hôte sont contrôlés sans contacter la source.
- Choisir le réseauUn nom onion sélectionne le pool Tor, tout autre nom un tunnel VPN.
- Réunir les preuvesEn-têtes, signatures, listings et lectures par plage, du moins coûteux au plus coûteux.
- ClasserFichier, dossier, collection ou page intermédiaire, chacun avec ses preuves.
- ÉnumérerDossiers page par page, archives élément par élément, cycles coupés.
- Clore le listingComplet dans le périmètre uniquement quand aucune branche ne reste ouverte.
{"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
- Proposée
- Testée sur des jeux d’essai
- Canari sur une part du travail
- Promue sur preuves
- 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.
{"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
- 1exclude-videoLes vidéos lisibles sont écartées.
- 2inspect-unknownLes types inconnus sont inspectés ; un résultat non concluant mène à la quarantaine.
- 3opaque_
encrypted_ Les archives chiffrées restent opaques tant que personne ne fournit le mot de passe.when_ acquired - 4default_
action Tout le reste est autorisé.
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
- 1Chaque fichier, du plus gros au plus petit
- 2Le plus gros fichier
- 3Le plus gros fichier de chaque dossier
- 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.
{"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.
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.
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.
{"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
- 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"} - 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} - 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}} - 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"} - 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é.
Vous préférez l’e-mail ? Écrivez à [email protected].