Uova di Pasqua come protezione IP nel software


11

Lavoro nel software incorporato e, per qualche motivo, la direzione vuole nascondere un uovo di Pasqua come mezzo di protezione IP. Lo chiamano filigrana e poiché il nostro software interagisce con il feed di anteprima video (l'immagine visualizzata su uno schermo prima di scattare una foto), vogliono che io attui un trigger che reagirà a qualche input video insolito (un codice konami video come buio - luminoso - buio - luminoso - qualunque cosa). Quando questo trigger si attiva, succede qualcosa di strano (che è al di fuori del normale comportamento del software).

L'obiettivo è verificare se il nostro software è incluso in un dispositivo. Sembra una buona idea? Ho molte discussioni contro questa mossa:

  • Cosa succede se il codice konami è troppo sensibile e l'utente lo attiva?
  • Questo tipo di watermarkvalore legale ha valore?
  • Cosa succede se questa "funzione" viene rilevata dal client?
  • La penalità prestazionale dovrebbe essere molto piccola, dal momento che il soft run su piccoli dispositivi.
  • Sono io a sviluppare questo grilletto. Se le cose vanno male, qual è la mia responsabilità?

Qual è la tua opinione su questo metodo? Non riesco a trovare un link, ma ricordo di aver visto una risposta su questo sito suggerire che mettere le uova di Pasqua a scopo di protezione fosse una buona idea. Qualcuno l'ha provato con buoni risultati?

Risposte:


8

C'è almeno un precedente, come descritto nell'articolo di Wikipedia sulle uova di Pasqua :

L'implementazione del microchip CVAX della CPU MicroVAX conteneva nelle sue incisioni la frase russa nell'alfabeto cirillico "VAX: quando ti prendi abbastanza cura di rubare il meglio" nel tentativo di individuare potenziali produttori di cloni che rubano proprietà intellettuale nel blocco sovietico.

Un po 'più di dettagli su questo, può essere trovato in questo articolo su CVAX (che è il riferimento alla citazione sopra):

Infine, la corsia degli scribi conteneva il motto cirillico "VAX: quando ti preoccupi abbastanza da rubare il meglio". Nel 1983, un'agenzia di intelligence senza nome mi aveva dato la formulazione, dicendo che lo avevano rimosso da un VAX-11/780 rubato che stava eseguendo un complesso missilistico sovietico SS20. Sapendo che alcuni CVAX sarebbero finiti in URSS, il team voleva che i russi sapessero che ci stavamo pensando.

Secondo le vostre domande specifiche:

Cosa succede se il codice konami è troppo sensibile e l'utente lo attiva?

Il codice Konami è troppo noto, quindi la possibilità che un utente lo attivi è maggiore. Se vai avanti con l'uovo di Pasqua, dovresti scegliere una sequenza originale (e più grande). Dal momento che il tuo uovo di Pasqua dovrebbe essere un meccanismo di protezione invece di divertimento insensato, sarebbe meglio se la sequenza non fosse nota al di fuori della tua azienda.

Questo tipo di filigrana ha valore legale? Sono io a sviluppare questo grilletto. Se le cose vanno male, qual è la mia responsabilità?

Consultare un avvocato. Dipende fortemente dalle impostazioni locali e dalle specifiche del contratto. In ogni caso, sarebbe meglio avere delle prove in forma scritta che la direzione ha esplicitamente chiesto l'uovo di Pasqua. Uno scambio di e-mail in cui è dimostrato che hai sollevato alcune preoccupazioni dovrebbe essere sufficiente.

Cosa succede se questa "funzione" viene rilevata dal client?

Dipende dal client. Alcuni potrebbero ridere, altri potrebbero fare causa. La mia opinione è che, poiché l'uovo di Pasqua è incluso come mezzo di protezione IP, il cliente dovrebbe essere informato come per ogni altra caratteristica che costruisci per lui / lei.

La penalità prestazionale dovrebbe essere molto piccola, dal momento che il soft run su piccoli dispositivi.

Sì, ovviamente, dovrebbe. Se scopri che implementare l'uovo di Pasqua ha una penalità misurabile, questo sarebbe il motivo migliore per non farlo.


Non ho alcuna opinione in entrambi i casi. Se consulti un avvocato e copri tutte le tue basi legali, fallo, probabilmente sarà inutile ma non lo saprai mai.


Aggiornamento: l'esempio CVAX è ovviamente un esempio hardware, ma penso che non ci siano altri esempi rilevanti (per software e / o software incorporato) che conosco. Ho basato la risposta principalmente per rispondere alla Has anyone tried itparte della domanda. Ho cercato altri esempi, non ne ho trovato nessuno e ora ho un'opinione:

E ' probabilmente non è una buona idea. (non la parte dell'uovo di Pasqua, la means of IP protectionparte). Poiché l'idea non è né originale né innovativa (i contesti possono essere diversi ma simili), se funzionasse ci sarebbero almeno alcuni esempi là fuori.


La ringrazio per la risposta. Avevo letto della storia di MicroVAX, ma il contesto è leggermente diverso (prodotto hardware). Sono d'accordo con la necessità di informare il cliente.
Simon Bergot,

@Simon Ho pensato che l'avresti visto, ma basandomi sulla mia risposta per mostrare che il precedente più noto è successo molto tempo fa in un contesto completamente diverso. Se non riesci a trovare esempi più recenti sul software, sarebbe qualcosa che dovresti considerare di passare alla gestione: è successo molto tempo fa, nessun altro l'ha fatto da allora, probabilmente perché è una cattiva idea . Nella mia esperienza, quando il management presenta idee così funky, dimostrare loro che la loro idea non è né originale né innovativa può essere la scusa migliore per non attuarla.
yannis,

La differenza è che sembra che il motto russo non fosse una parte funzionale del chip, e quindi non abbia cambiato il comportamento. Vorrei fare attenzione a tutto ciò che potrebbe causare un output imprevedibile (per il cliente) in un dispositivo incorporato.
David Thornley,

0

Se tu fossi un fornitore per un produttore, mi aspetto che questo venga divulgato in quanto "al di fuori del normale comportamento del software".

Se il tuo cliente è l'utente finale, dipende da cosa fa il software quando viene inserito il "codice".


Vendiamo il software a un OEM. Quindi dovremmo essere trasparenti al riguardo.
Simon Bergot,

0

Non vedo nulla di sbagliato in un uovo di Pasqua non divulgato, purché sia ​​estremamente improbabile che un utente lo incontri e se è estremamente sottile. Se qualcuno dovesse inciampare su di esso, allora non dovrebbero vederlo come qualcosa di diverso da un sottile difetto o un insetto banale cosmetico.

Ho avuto manager che discutono con me per funzionalità che sono molto meno etiche di un uovo di Pasqua non divulgato, roba da malware borderline, quindi ho problemi a vederlo come un problema.

In un progetto che ho ereditato ho scoperto una gigantesca classe C # fuorviante, che ha dato un nome all'effetto, UIDataTableColumnRenderer che era di dimensioni superiori a 3 MB. Ho scoperto un intero mini-gioco all'interno di quella classe, immagini e tutti i base64 codificati in stringhe all'interno della classe. Fondamentalmente era uno sparatutto in cui il PC era uno sviluppatore che cercava di abbattere un implacabile assalto di bug e requisiti scritti male che PM e proprietari di prodotti stavano lanciando contro il software. È stato divertente in quanto ha continuato a diventare sempre più difficile e non hai mai vinto, alla fine i bug e i requisiti scadenti distruggono il software e il PC perde il suo lavoro.

È stato di gran lunga l'uovo di Pasqua più sorprendente che abbia mai trovato.


3
Non considererei innocuo un uovo di Pasqua da 3 MB su un dispositivo incorporato.
yannis,

2
@YannisRizos - Questo chiaramente non era su un dispositivo incorporato, e se lo era e aveva la capacità di usare C #, allora la classe da 3 MB non era una grande preoccupazione.
Ramhound,

@Ramhound Sì, lo so, ma la domanda è nel contesto del software incorporato.
yannis,

0

Sono io a sviluppare questo grilletto. Se le cose vanno male, qual è la mia responsabilità?

Non ti stanno chiedendo di infrangere la legge. La tua responsabilità è solo verso il tuo datore di lavoro. Scriverei un'e-mail attenta indicando eventuali dubbi, quindi quelli sono registrati. Allora fai quello che ti dice il tuo capo o esci.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.