Sealway
Créations · logiciel et code source

Code source : documentez l’antériorité d’une version.

Une archive de votre projet ou d’une release, une preuve Sealway, et vous pouvez établir des mois plus tard que cette version exacte existait déjà à cette date : avant une livraison, une collaboration, une sortie. Sealway ne dit pas qui a écrit le code, ni à qui il appartient, ni s’il est original ; il fixe un contenu et une date.

Conçu pour

  • Développeurs indépendants
  • Studios, agences, ESN
  • Éditeurs de logiciels et start-up
  • Équipes R&D et laboratoires
  • Directions juridiques
  • Clients qui commandent un développement

Six mois plus tard : quelle version du code existait avant cette date ?

Un développeur indépendant construit une librairie. Il en envoie une première version à un client, puis la fait évoluer avec lui pendant plusieurs mois. Un désaccord apparaît ensuite sur l’origine de certaines fonctions : existaient-elles avant la collaboration, ou ont-elles été écrites pour le client ?

Les affirmations se contredisent, et chacun produit ce qu’il a : des captures d’écran, un dépôt Git dont l’historique montre des dates, des emails. Or les dates d’un historique Git sont écrites par la machine de celui qui commet et peuvent être réécrites ; un dépôt hébergé montre ce que l’hébergeur affiche, pas une constatation indépendante ; une archive retrouvée sur un disque porte la date que le système lui donne. Rien de tout cela ne fixe, de façon vérifiable par un tiers, qu’une version précise existait à une date précise.

Une preuve Sealway créée le jour où la version existait répond à cette question, et à elle seule : cette archive, avec ce contenu exact, existait au plus tard à cette date. Qui en est l’auteur, à qui appartiennent les droits, si le code est original ou s’il reprend du code tiers restent des questions de droit et de contrat, que la preuve n’absorbe pas.

Historique Git, archive, horodatage indépendant : ce que chacun apporte.

L’historique de votre dépôt raconte le travail : qui a commis quoi, dans quel ordre, avec quels messages. C’est une chronologie précieuse, mais produite par vous, sur des machines que vous contrôlez, et modifiable. L’archive d’une version fige le contenu exact d’une étape : ce que contenait le projet à ce moment-là, sans dépendre de l’outil.

Sealway ajoute la couche qui manque aux deux : une date fixée par un tiers qualifié et une empreinte qui permet de vérifier, plus tard, que l’archive produite est bien celle de l’époque. L’historique reste utile pour expliquer ; l’archive et sa preuve servent à établir.

Historique Git : la chronologie de travail, réécrivable Archive de version : le contenu exact d’une étape Sealway : date et intégrité de l’archive

Aucun connecteur, rien à installer : le parcours fonctionne avec n’importe quel outil, dépôt ou forge, puisqu’il part d’une archive.

Ce que le droit protège dans un logiciel, et ce qu’il laisse à prouver.

Le logiciel est protégé par le droit d’auteur, sans formalité, s’il est original. Trois questions distinctes se posent en cas de litige : le code existait-il à cette date, est-il original, à qui appartiennent les droits ? Sealway ne répond qu’à la première.

Code de la propriété intellectuelle, art. L. 112-2, 13° ; directive 2009/24/CE, art. 1

Le logiciel est une œuvre protégée

Sont considérés comme œuvres de l’esprit « les logiciels, y compris le matériel de conception préparatoire ». Dans l’Union européenne, les programmes d’ordinateur sont protégés par le droit d’auteur en tant qu’œuvres littéraires ; la protection s’applique à toute forme d’expression du programme, et non aux idées et principes qui sont à sa base.

Code de la propriété intellectuelle, art. L. 111-1 et L. 111-2

Sans formalité, même inachevé

L’auteur jouit de son droit du seul fait de la création, et l’œuvre est réputée créée, indépendamment de toute divulgation, du seul fait de la réalisation, même inachevée, de la conception de l’auteur. Un prototype, une branche de travail, un module isolé relèvent déjà du droit d’auteur s’ils sont originaux. Aucun dépôt ne crée le droit ; encore faut-il pouvoir montrer ce qui existait, et quand.

Directive 2009/24/CE, art. 1, § 3 ; Cass. 1re civ., 17 octobre 2012

L’originalité se démontre, elle ne se présume pas

Un programme est protégé s’il est original, « en ce sens qu’il est la création intellectuelle propre à son auteur ». La Cour de cassation exige que soit recherché en quoi les choix opérés témoignent d’un apport intellectuel propre et d’un effort personnalisé ; apporter « une solution particulière » à un problème ne suffit pas. Une preuve d’existence n’établit pas l’originalité.

CJUE, 2 mai 2012, C-406/10, SAS Institute

Fonctionnalités, langage, formats : hors du champ

Ni la fonctionnalité d’un programme, ni le langage de programmation, ni le format des fichiers de données utilisés pour exploiter certaines de ses fonctions ne constituent une forme d’expression du programme protégée par le droit d’auteur. Ce que l’on date est un code, pas une idée ni une fonction.

Code de la propriété intellectuelle, art. L. 113-1 et L. 113-9

Auteur présumé, droits parfois dévolus

La qualité d’auteur appartient, sauf preuve contraire, à celui sous le nom de qui l’œuvre est divulguée. Pour les logiciels créés par des employés dans l’exercice de leurs fonctions ou d’après les instructions de l’employeur, les droits patrimoniaux sont dévolus à l’employeur, sauf dispositions statutaires ou stipulations contraires. Un indépendant conserve ses droits sauf cession prévue au contrat. Une date ne tranche aucune de ces questions.

INPI, e-Soleau et entiercement ; APP

Dater, déposer, séquestrer : trois besoins différents

Trois besoins se distinguent : dater une version (e-Soleau de l’INPI, Sealway), l’archiver à titre probatoire auprès d’un organisme (Agence pour la protection des programmes) ou la placer sous séquestre au profit d’un client (entiercement de l’INPI). Le tableau ci-dessous compare ce que chacun établit. Sealway répond au premier besoin, par un horodatage qualifié vérifiable sans lui ; il n’est ni un dépôt, ni un séquestre.

Cour de cassation · 1re chambre civile · 17 octobre 2012

Cass. 1re civ., 17 octobre 2012, n° 11-21.641

Cassation · décision attaquée : cour d’appel d’Aix-en-Provence, 11 mai 2011

Un éditeur poursuit un concurrent en contrefaçon d’un logiciel de gestion d’études d’huissiers. La cour d’appel retient l’originalité du logiciel au motif qu’il apporte « une solution particulière » à cette gestion. La Cour de cassation casse l’arrêt.

En se déterminant ainsi, sans rechercher en quoi les choix opérés témoignaient d’un apport intellectuel propre et d’un effort personnalisé de celui qui avait élaboré le logiciel litigieux, seuls de nature à lui conférer le caractère d’une œuvre originale protégée, comme telle, par le droit d’auteur, la cour d’appel n’a pas donné de base légale à sa décision.

Cass. 1re civ., 17 octobre 2012, n° 11-21.641

Ce que Sealway en retient

Exister à une date et être protégé sont deux choses. La preuve Sealway fixe la première ; l’originalité, elle, se démontre par les choix de conception du code, et c’est une autre discussion. Produire une archive datée ne dispense pas de la mener, mais évite qu’elle ne bute d’abord sur « quelle version existait quand ».

Lire la décision sur Légifrance →

La méthode : une archive de version, une preuve.

Le parcours est manuel et tient en quelques minutes : générer l’archive d’une version, la vérifier, créer la preuve, conserver l’archive. Il fonctionne avec n’importe quel outil de versionnement, ou sans.

Ce qu’une archive de version devrait contenir

  • l’intégralité des sources de la version, pas un extrait ;
  • les fichiers de configuration et de construction : manifeste des dépendances, scripts de build ;
  • les notes de version ou le journal des modifications, qui disent ce que contient cette étape ;
  • un fichier qui nomme la version : numéro, tag, identifiant du commit ;
  • les licences des composants tiers et la vôtre ;
  • la documentation et, s’ils existent, les jeux de tests ;
  • aucun secret : clés, jetons, mots de passe, fichiers .env restent hors de l’archive ;
  • un nom de fichier qui porte la version : project-v1.4.0.zip.
  1. 1

    Choisir l’étape

    Une version qui va quitter vos mains ou changer de nature : envoi à un client, livraison contractuelle, release, refonte. Pas chaque commit.

  2. 2

    Générer l’archive

    Export ou archive de la version depuis votre outil (une archive Git d’un tag, par exemple), en ZIP ou TAR. Avec ou sans le répertoire .git : s’il est inclus, son historique fait partie du contenu daté, sans que ses dates internes soient certifiées pour autant.

  3. 3

    Vérifier l’archive

    Ouvrez-la : elle contient bien les sources complètes, les notes de version, aucun secret. C’est cette archive exacte que vous produirez plus tard ; une archive régénérée ensuite aura une autre empreinte.

  4. 4

    Créer la preuve

    Depuis l’application, importez l’archive et, si utile, les notes de version ou un README à part. Donnez à la preuve un titre explicite, « lib-x v1.4.0 », et notez dans la description le tag et l’identifiant du commit : ce sont des repères pour vous, modifiables, hors de ce qui est horodaté.

  5. 5

    Conserver l’archive

    Gardez l’archive telle quelle, dans un stockage à vous, avec le dossier de preuve : sans offre de stockage, Sealway conserve l’original 7 jours. Le dossier de preuve téléchargé reste vérifiable sans limite de durée, mais il ne vaut que face à l’archive.

  6. 6

    Recommencer aux étapes clés

    Une preuve par version qui compte, dans un dossier au nom du projet : la chronologie des versions se lit dans le dossier, et chaque preuve se vérifie séparément.

project-v1.4.0.zip Sealway SHA-512 Horodatage électronique qualifié Dossier de preuve

Jusqu’à 10 fichiers et 250 Mo par preuve. Une archive dépasse rarement cela ; un projet plus volumineux se découpe en plusieurs archives, dans une même preuve ou dans un même dossier Sealway.

Une preuve par étape, pas par commit.

Il n’est pas nécessaire de créer une preuve à chaque commit. Il est plus pertinent de documenter les étapes importantes : release, livraison, transfert à un tiers, changement majeur.

  1. v0.1.0

    Prototype

    Première archive du projet, avant tout envoi. Preuve « v0.1.0 ».

  2. v0.8.0

    Première version client

    La version présentée puis livrée au client. Preuve créée le jour de l’envoi.

  3. v1.0.0

    Release

    La version publiée ou mise en production. Preuve « v1.0.0 » avec les notes de version.

  4. v2.0.0

    Refonte majeure

    Nouvelle architecture, nouveaux composants : une preuve qui marque le changement.

Chaque preuve fixe une version et une date. Mises bout à bout dans le dossier du projet, elles racontent ce qui existait avant chaque étape, sans dépendre de l’historique de votre outil.

Archive .git, dépôt distant, release signée, CI : ce que chacun montre.

Une archive contenant .git

Sealway prouve l’existence de cette archive, historique compris, à la date de la preuve. Les dates des commits qu’elle contient existaient donc à cette date ; elles ne deviennent pas des faits certifiés.

Un dépôt GitHub ou GitLab

L’hébergeur affiche des dates et des auteurs ; c’est une trace chez un tiers, utile, mais qui dépend de ses règles, de sa conservation et d’un historique qui peut être forcé. Ce n’est pas un horodatage qualifié.

Une release ou un tag signé

Une signature établit que le contenu vient d’une clé donnée et n’a pas changé depuis la signature. Elle n’établit pas la date à laquelle elle a été apposée autrement que par déclaration.

Les journaux de CI

Ils montrent qu’une construction a été lancée sur un contenu donné ; ce sont des traces d’exploitation, conservées un temps, sur une infrastructure que vous ou votre hébergeur contrôlez.

Salarié, indépendant, client : qui détient quoi.

Une preuve datée sert quel que soit le régime, mais elle ne le change pas.

Salarié

Les droits patrimoniaux sur les logiciels créés par des employés dans l’exercice de leurs fonctions ou d’après les instructions de l’employeur sont dévolus à l’employeur, sauf dispositions statutaires ou stipulations contraires (art. L. 113-9). L’employeur a intérêt à dater les versions ; le salarié reste l’auteur.

Indépendant

Le prestataire conserve ses droits sauf cession prévue au contrat. Dater ce qui existait avant la mission distingue le code préexistant du code écrit pour le client ; le contrat dit ce qui est cédé.

Client

Le client qui reçoit une livraison a lui aussi intérêt à dater ce qu’il a reçu, et quand : une preuve de l’archive livrée, à la réception, complète le procès-verbal de recette.

Open source

Une licence libre organise les droits d’utilisation ; elle ne dispense pas de savoir qui a écrit quoi et quand. Dater les versions d’un projet ouvert documente son histoire indépendamment de la forge.

Confidentialité : dater sans divulguer.

L’empreinte ne révèle pas le code

La preuve repose sur l’empreinte SHA-512 de l’archive, qui ne permet pas de la reconstituer. Vérifier la preuve demande l’archive ; la produire reste votre décision.

Les fichiers sont chiffrés

L’archive transite par une connexion chiffrée et est chiffrée côté serveur avant archivage. La page Sécurité détaille le dispositif.

Pas de secrets dans l’archive

Clés, jetons et mots de passe n’ont rien à faire dans une version datée : ils ne prouvent rien et créent un risque. Excluez-les avant de générer l’archive.

Produire seulement ce qu’il faut

En cas de litige, vous choisissez ce que vous produisez : une preuve peut porter sur un module isolé plutôt que sur tout le projet, si c’est lui qui est discuté.

Exemple : une librairie, un client, un composant contesté.

  1. 10 janvier

    Prototype interne

    Le développeur archive la version v0.3.0 de sa librairie, avec ses notes, et crée une preuve. Le composant de synchronisation y figure déjà.

  2. 2 février

    Présentation au client

    Le code est montré au client ; la collaboration commence. Le développeur archive et date la version présentée.

  3. 20 mars

    Première livraison contractuelle

    Livraison de la v1.0.0, archive datée le jour de l’envoi, email de remise avec Sealway en copie cachée.

  4. Six mois plus tard

    Désaccord

    Le client soutient que le composant de synchronisation a été développé pour lui. La preuve du 10 janvier montre qu’une version précise du composant existait avant la collaboration.

La preuve du 10 janvier établit qu’une archive contenant ce composant, sous cette forme, existait à cette date, avant la présentation au client. Elle peut contribuer à montrer que le composant préexistait à la collaboration ; elle ne détermine pas à elle seule qui détient les droits sur la version livrée, ce que le contrat, les cessions éventuelles et, à défaut d’accord, le juge décident.

Historique Git, e-Soleau, dépôt APP, entiercement, Sealway : ce que chacun établit.

Des outils différents pour des besoins différents : travailler, dater, déposer, séquestrer.

Comparaison des moyens de documenter une version de code source
Approche Ce qu’elle apporte Ses limites
Historique Git, dépôt hébergé La chronologie de travail : commits, auteurs, messages, branches ; des traces chez l’hébergeur. Dates déclarées par les machines, historique réécrivable ; pas de constatation indépendante de date.
e-Soleau (INPI) Un récépissé de l’INPI avec la date de dépôt, la liste des pièces et leurs empreintes ; conservation par l’INPI. Ne confère aucun droit ; volume limité par dépôt ; dépôt du contenu auprès d’un organisme.
Dépôt auprès de l’APP Un archivage probatoire d’une version par un organisme spécialisé dans les logiciels, avec des options d’entiercement. Ne confère aucun droit ; procédure et coût propres à l’organisme.
Entiercement (INPI, APP) Un code source mis sous séquestre au profit d’un bénéficiaire, accessible à des conditions convenues : continuité d’exploitation. Répond à un besoin de continuité, pas de datation d’une antériorité.
Sealway Une archive datée par un horodatage électronique qualifié, vérifiable sans Sealway, sans dépôt du contenu auprès d’un organisme. 1,99 € par preuve. Ne confère aucun droit ; n’établit ni l’originalité, ni l’auteur, ni la titularité ; ne certifie pas les dates internes de Git.

Ces moyens ne s’excluent pas : un projet peut être daté à chaque version avec Sealway, déposé à une étape clé et mis sous séquestre pour un client. Aucun d’eux ne remplace un contrat clair sur les droits.

Ce que Sealway permet d’établir, et ce qu’il n’établit pas, pour un code source.

Sealway permet d’établir

  • qu’une archive de code déterminée existait au plus tard à la date de l’horodatage ;
  • qu’elle n’a pas été modifiée depuis : l’archive produite plus tard correspond, ou non, à celle de la preuve ;
  • le contenu exact d’une version à cette date : sources, configuration, notes ;
  • une chronologie de versions, lorsqu’une preuve existe à chaque étape ;
  • qu’une version existait avant un envoi, une livraison ou une sortie, lorsque la preuve précède ces moments.

Sealway ne permet pas, à lui seul, d’établir

  • qui a écrit le code, ni qui en détient les droits ;
  • que le code est original, ni qu’il ne reprend pas de code tiers ;
  • que les licences des composants sont respectées, ni l’absence de contrefaçon ;
  • qu’une autre personne n’avait pas déjà le même code avant vous ;
  • que les dates inscrites dans Git sont exactes, ni que l’historique n’a pas été réécrit ;
  • la date réelle de création d’une archive importée, seulement son existence au plus tard à la date de la preuve.

Le contrat, le statut de l’auteur, les licences et, en cas de désaccord, le juge décident du reste. La preuve leur apporte une version et une date qui ne dépendent pas de celui qui les produit.

Ce que l’horodatage qualifié change pour votre code.

Une archive de version est placée dans une preuve Sealway le jour où elle compte. Des mois plus tard, il est possible de vérifier que l’archive produite est bien celle rattachée à l’horodatage créé ce jour-là.

  • Empreinte SHA-512 de chaque fichier : la preuve porte sur cette version exacte ; modifier le fichier change l’empreinte, et l’empreinte ne permet pas de reconstituer le fichier.
  • Horodatage électronique qualifié : présomption d’exactitude de la date et de l’heure et d’intégrité des données (règlement eIDAS, art. 41, § 2). La date ne vient ni de l’appareil, ni de Sealway.
  • Dossier de preuve vérifiable sans Sealway : certificat, manifeste, jeton d’horodatage et empreintes, avec les références d’ancrage sur blockchains publiques.
Le mécanisme en détail : créer une preuve à partir de vos fichiers

Questions fréquentes

Ce que demandent les développeurs, les studios et leurs clients.

Comment prouver que mon code existait avant une certaine date ?
En créant, à cette date, une preuve Sealway de l’archive de la version : l’empreinte de l’archive est rattachée à un horodatage électronique qualifié, qui établit qu’elle existait au plus tard à cet instant. Conservez l’archive telle quelle ; elle et le dossier de preuve suffisent à le montrer, sans Sealway.
Un dépôt GitHub suffit-il comme preuve ?
C’est une trace utile, pas une preuve indépendante de date : les dates des commits sont déclarées par les machines qui les créent, l’historique peut être réécrit, et le dépôt montre ce que l’hébergeur affiche selon ses règles et sa conservation. Une archive datée par un horodatage qualifié fixe ce qu’un dépôt ne peut pas fixer.
Comment protéger un logiciel avant de le montrer à un client ?
Le droit d’auteur protège le logiciel original sans formalité ; ce qui manque, c’est la preuve de ce qui existait avant. Archivez et datez la version avant la présentation, puis fixez par contrat ce qui est cédé et ce qui reste à vous. Un accord de confidentialité relève du contrat, pas de la preuve.
Faut-il déposer son code source ?
Aucun dépôt n’est nécessaire pour être protégé. Un dépôt (e-Soleau, APP) ou un séquestre (entiercement) répondent à des besoins précis : date certaine auprès d’un organisme, archivage probatoire, continuité pour un client. Sealway répond au besoin de datation par un autre moyen ; les trois peuvent coexister selon l’enjeu.
Peut-on utiliser un horodatage pour un logiciel ?
Oui : un logiciel est un fichier comme un autre pour l’horodatage. L’archive reçoit une empreinte SHA-512, rattachée à un horodatage électronique qualifié. Ce que l’horodatage établit, l’existence et l’intégrité à une date, vaut pour du code comme pour un document.
Sealway prouve-t-il que je suis l’auteur du code ?
Non. Sealway établit qu’une archive existait à une date donnée et n’a pas changé depuis. L’auteur est présumé, sauf preuve contraire, être celui sous le nom de qui l’œuvre est divulguée (art. L. 113-1) ; l’attribution se discute par tout moyen, et la titularité des droits dépend du statut et du contrat.
Sealway certifie-t-il les dates de mes commits ?
Non. Si l’archive contient le répertoire .git, Sealway prouve l’existence de cette archive, historique compris, à la date de la preuve. Les dates inscrites dans les commits restent des déclarations de la machine qui les a créés ; elles ne deviennent pas certifiées.
Dois-je inclure les dépendances et le code tiers ?
Incluez le manifeste des dépendances plutôt que les dépendances elles-mêmes, et les licences des composants tiers. La preuve ne dit pas que ce code tiers est utilisé conformément à sa licence : c’est à vous de le vérifier, et cela reste hors de ce que Sealway établit.
Mon code est-il divulgué en créant une preuve ?
Non. L’empreinte ne permet pas de reconstituer l’archive, et l’archive est chiffrée côté serveur avant archivage. Produire l’archive à un tiers reste votre décision, au moment où vous en avez besoin.
Que se passe-t-il si je régénère l’archive plus tard ?
Une archive régénérée a presque toujours une autre empreinte : ordre des fichiers, métadonnées, compression. La preuve porte sur l’archive exacte du jour ; conservez-la telle quelle, c’est elle que vous produirez.

Références

Textes, décisions et sources officielles cités sur cette page.

  • Code de la propriété intellectuelle, art. L. 111-1 et L. 111-2 (naissance du droit d’auteur) Légifrance →
  • Code de la propriété intellectuelle, art. L. 112-1 et L. 112-2 (œuvres protégées, dont les logiciels) Légifrance →
  • Code de la propriété intellectuelle, art. L. 113-1 et L. 113-9 (qualité d’auteur, logiciels créés par des employés) Légifrance →
  • Code de la propriété intellectuelle, art. L. 122-6 (droit d’exploitation sur un logiciel) Légifrance →
  • Directive 2009/24/CE du 23 avril 2009 concernant la protection juridique des programmes d’ordinateur, art. 1 EUR-Lex →
  • CJUE, 2 mai 2012, SAS Institute, C-406/10 EUR-Lex →
  • Cour de cassation, 1re chambre civile, 17 octobre 2012, n° 11-21.641 Légifrance →
  • INPI, « Se préparer au dépôt d’une e-Soleau » inpi.fr →
  • INPI, « Se préparer au dépôt d’un entiercement » inpi.fr →
  • Agence pour la protection des programmes (APP), dépôt et entiercement de logiciels app.asso.fr →
  • Règlement (UE) n° 910/2014 du 23 juillet 2014 (eIDAS), art. 41 EUR-Lex →

Sealway ne fournit pas de conseil juridique. La protection d’un logiciel, la titularité des droits et le respect des licences dépendent du droit applicable, des contrats et, en cas de désaccord, de l’appréciation du juge.

Datez la prochaine version avant de la livrer.

Une archive, une empreinte SHA-512, un horodatage électronique qualifié au sens d’eIDAS, un dossier de preuve vérifiable par un tiers. Rejoignez la liste d’attente pour être prévenu au lancement.

En vous inscrivant, vous acceptez d’être recontacté·e par Sealway au sujet du lancement. Aucun partage à des tiers.