Oeufs de Pâques comme protection IP dans le logiciel

11

Je travaille dans des logiciels embarqués, et pour une raison quelconque, la direction veut cacher un œuf de Pâques comme moyen de protection IP. Ils l'appellent un filigrane, et puisque notre logiciel interagit avec le flux de prévisualisation vidéo (l'image affichée sur un écran avant de prendre une photo), ils veulent que j'implémente un déclencheur qui réagira à une entrée vidéo inhabituelle (un code vidéo konami comme sombre - brillant - sombre - brillant - peu importe). Lorsque ce déclencheur se déclenche, quelque chose d'étrange se produit (qui est en dehors du comportement normal du logiciel).

L'objectif est de vérifier si notre logiciel est inclus dans un appareil. Cela vous semble-t-il une bonne idée? J'ai de nombreux arguments contre cette décision:

  • Que faire si le code konami est trop sensible et que l'utilisateur le déclenche?
  • Ce type a-t-il watermarkune valeur juridique?
  • Que faire si cette "fonctionnalité" est découverte par le client?
  • La pénalité de performance devrait être très faible, car le soft run sur les petits appareils.
  • Je suis celui qui développe ce déclencheur. Si les choses tournent mal, quelle est ma responsabilité?

Quelle est votre opinion sur cette méthode? Je ne trouve pas de lien, mais je me souviens avoir vu une réponse sur ce site suggérant que mettre des œufs de Pâques à des fins de protection était une bonne idée. Quelqu'un l'a-t-il essayé avec de bons résultats?

Simon Bergot
la source

Réponses:

8

Il existe au moins un précédent, comme décrit dans l'article Wikipedia sur les œufs de Pâques :

La mise en œuvre de la puce CVAX du processeur MicroVAX contenait dans ses gravures la phrase russe de l'alphabet cyrillique "VAX: Quand vous vous souciez suffisamment de voler le meilleur" dans le but d'attirer les fabricants potentiels de clones voleurs de propriété intellectuelle dans le bloc soviétique.

Un peu plus de détails à ce sujet, peuvent être trouvés sur cet article sur CVAX (qui est la référence à la citation ci-dessus):

Enfin, la piste du scribe contenait la devise cyrillique "VAX: Quand vous vous souciez suffisamment de voler le meilleur". En 1983, une agence de renseignement sans nom m'avait donné le libellé, disant qu'ils l'avaient retiré d'un VAX-11/780 volé qui dirigeait un complexe de missiles soviétiques SS20. Sachant que certains CVAX finiraient en URSS, l'équipe voulait que les Russes sachent que nous pensions à eux.

Selon vos questions spécifiques:

Que faire si le code konami est trop sensible et que l'utilisateur le déclenche?

Le code Konami est trop bien connu, d'où la possibilité qu'un utilisateur le déclenche est plus grand. Si vous passez par l'oeuf de Pâques, vous devez choisir une séquence originale (et plus grande). Étant donné que votre œuf de Pâques est censé être un mécanisme de protection au lieu d'un plaisir insensé, il serait préférable que la séquence ne soit pas connue en dehors de votre entreprise.

Ce type de filigrane a-t-il une valeur légale? Je suis celui qui développe ce déclencheur. Si les choses tournent mal, quelle est ma responsabilité?

Consultez un avocat. Cela dépend fortement de votre région et des spécificités de votre contrat. Dans tous les cas, il serait préférable d'avoir une preuve écrite que la direction a explicitement demandé l'oeuf de Pâques. Un échange de courriels où il est démontré que vous avez soulevé certaines préoccupations devrait suffire.

Que faire si cette "fonctionnalité" est découverte par le client?

Dépend du client. Certains pourraient rire, certains pourraient poursuivre. Mon avis est que puisque l'œuf de Pâques est inclus comme moyen de protection IP, le client doit être informé comme pour toutes les autres fonctionnalités que vous créez pour lui / elle.

La pénalité de performance devrait être très faible, car le soft run sur les petits appareils.

Oui, bien sûr. Si vous découvrez que la mise en œuvre de l'oeuf de Pâques a une pénalité de performance mesurable, ce serait la meilleure raison de ne pas le faire.


Je n'ai aucune opinion de toute façon. Si vous consultez un avocat et couvrez toutes vos bases juridiques, foncez, ce sera probablement inutile mais on ne sait jamais.


Mise à jour: l'exemple CVAX est bien sûr un exemple matériel, mais je pense qu'il n'y a pas d'exemples plus pertinents (pour les logiciels et / ou les logiciels embarqués) que je connaisse. J'ai basé la réponse autour d'elle principalement pour répondre à la Has anyone tried itpartie de la question. J'ai cherché d'autres exemples, je n'en ai pas trouvé et maintenant j'ai une opinion:

Ce n'est probablement pas une très bonne idée. (pas la partie oeuf de Pâques, la means of IP protectionpartie). L'idée n'étant ni originale ni innovante (les contextes peuvent être différents mais similaires), si elle fonctionnait, il y aurait au moins quelques exemples.

yannis
la source
Merci pour votre réponse. J'avais lu l'histoire de MicroVAX, mais le contexte est un peu différent (produit matériel). J'accepte la nécessité d'informer le client.
Simon Bergot
@Simon Je pensais que vous l'auriez vu, mais j'ai basé ma réponse dessus pour montrer que le précédent le plus connu s'est produit il y a longtemps dans un contexte complètement différent. Si vous ne parvenez pas à trouver des exemples plus récents sur les logiciels, ce serait quelque chose que vous devriez envisager de transmettre à la direction: c'est arrivé il y a longtemps, personne d'autre ne l'a fait depuis lors, probablement parce que c'est une mauvaise idée . D'après mon expérience, lorsque la direction propose de telles idées géniales, leur prouver que leur idée n'est ni originale ni innovante peut être la meilleure excuse pour ne pas la mettre en œuvre.
yannis
La différence est qu'il semble que la devise russe ne faisait pas partie fonctionnelle de la puce et n'a donc pas changé de comportement. Je voudrais être prudent avec tout ce qui pourrait entraîner une sortie imprévisible (pour le client) dans un appareil intégré.
David Thornley
0

Si vous étiez un fournisseur pour un fabricant, je m'attendrais à ce que cela soit divulgué car il est "en dehors du comportement normal du logiciel".

Si votre client est l'utilisateur final, cela dépendra de ce que le logiciel fait lorsque le "code" est entré.

smp7d
la source
Nous vendons le logiciel à un OEM. Nous devons donc être transparents à ce sujet.
Simon Bergot
0

Je ne vois rien de mal à un œuf de Pâques non divulgué tant qu'il est extrêmement improbable qu'un utilisateur le rencontre et s'il est extrêmement subtil. Si quelqu'un devait tomber dessus, il ne devrait pas le voir comme quelque chose de différent d'un bug subtil ou d'un bug trivial cosmétique.

J'ai eu des gestionnaires qui se disputent avec moi pour des fonctionnalités qui sont beaucoup moins éthiques qu'un œuf de Pâques non divulgué, des trucs malveillants à la limite, j'ai donc du mal à voir cela comme un problème.

Dans un projet dont j'ai hérité, j'ai découvert une gigantesque classe C # trompeuse, nommée quelque chose à l'effet, UIDataTableColumnRenderer d'une taille supérieure à 3 Mo. J'ai découvert un mini-jeu entier dans cette classe, des images et tous les base64 encodés en chaînes dans la classe. C'était essentiellement un jeu de tir où le PC était un développeur essayant d'abattre une attaque incessante de bogues et d'exigences mal écrites que les PM et les propriétaires de produits jetaient sur le logiciel. C'était assez drôle en ce sens que cela devenait de plus en plus difficile et que vous ne gagnez jamais, les bugs et les mauvaises exigences finissent par détruire le logiciel et le PC perd son travail.

C'était de loin l'oeuf de Pâques le plus étonnant que j'aie jamais trouvé.

maple_shaft
la source
3
Je ne considérerais pas un œuf de Pâques de 3 Mo sur un appareil intégré comme inoffensif.
yannis
2
@YannisRizos - Ce n'était clairement pas sur un appareil embarqué, et s'il l'était et avait la capacité d'utiliser C #, alors la classe 3MB n'était pas une énorme préoccupation.
Ramhound
@Ramhound Oui, je sais, mais la question se situe dans le contexte des logiciels embarqués.
yannis
0

Je suis celui qui développe ce déclencheur. Si les choses tournent mal, quelle est ma responsabilité?

Ils ne vous demandent pas d'enfreindre la loi. Votre responsabilité incombe uniquement à votre employeur. J'écrirais un e-mail soigneux indiquant toutes vos préoccupations afin qu'elles soient enregistrées. Faites ensuite ce que votre patron vous dit ou quittez.

Jeremy
la source