Domanda

Mi sembra di offuscamento è un'idea che cade da qualche parte in "security by obscurity" o "falso senso di protezione" camp.Per proteggere la proprietà intellettuale, non c'è diritto d'autore;per prevenire problemi di sicurezza vengano trovati, c'è fissazione di tali problemi.In breve, io la considero una soluzione tecnica ad un problema sociale. I quasi mai il lavoro.

Tuttavia, mi sembra di essere l'unico nel nostro dev team a sentirsi in quel modo, così ho errato, o solo bisogno di argomenti convincenti.Il nostro prodotto utilizza .NET, e una dev suggerito .NET Reattore (che, per inciso, mi è stato suggerito in questo thread COSÌ così).

.NET Reattore completamente ferma ogni decompilazione miscelando puro .NET assembly (scritto in C#, VB.NET, Delphi.NET, J#, MSIL...) con codice macchina nativo.

Quindi, in sostanza, di buttare tutti i vantaggi di bytecode via in un colpo solo?

Ci sono buoni ingegneria vantaggi di offuscamento?

È stato utile?

Soluzione

Ho postato una domanda che potrebbe essere di aiuto a voi in quanto si discute alcune questioni:dovrei essere preoccupato-su-offuscando-mio-net-code

Altri suggerimenti

Hai chiesto per motivi tecnici, in modo che questa non è propriamente una risposta alla domanda.Ma penso che sia un valido chiarimento.

Come dici tu, offuscamento è destinato ad affrontare un problema sociale.E sociale (o business) problemi, a differenza di quelli tecnici, hanno raramente una soluzione completa.Ci sono solo gradi di successo nell'affrontare o minimizzare il problema.

In questo caso, offuscamento saranno alzate le barriere a qualcuno decompilazione e rubare il vostro codice.Sarà scoraggiare casual attacchi e, attraverso inerzia, può rendere la vostra proprietà intellettuale meno probabilità di essere rubato.Per fare un faticoso analogia, un immobiliser non impedisce la vostra auto rubate, ma renderà meno probabile.

Ovviamente c'è un costo, manutenibilità, (forse) in termini di prestazioni e, soprattutto, in che rende più difficile per gli utenti con precisione di inviare segnalazioni di bug.

Come GateKiller detto, offuscamento non impedire una squadra determinata dalla decompilazione, ma (e questo dipende da cosa il vostro prodotto è) come determinato una squadra è probabile che sarà attaccare?

Così, questa non è una soluzione tecnica ad un problema sociale, è una decisione tecnica che aggiunge una influenza di una complessa struttura sociale.

Se un grande team di programmatori che si vuole veramente ottenere il vostro codice sorgente e che ha avuto il tempo, denaro e fatica, poi sarebbe successo.

Offuscamento, pertanto, dovrebbe smettere di persone che non hanno il tempo, denaro e sforzo per ottenere la vostra origine, i passanti si potrebbe chiamare loro.

Se si bastone per puro codice gestito offuscamento, si può radere un po ' di una dimensione di montaggio, e offuscato le classi e i nomi di funzione (compresso di singole lettere) significa più piccolo ingombro di memoria.Questo è quasi sempre trascurabile, ma ha un impatto (e utilizzato), su alcuni cellulari/dispositivi embedded (anche se per lo più in java).

Un potenziale di ingegneria vantaggio è che in alcuni casi di offuscamento può creare piccoli eseguibili o altri manufatti -- es.offuscamento javascript risultati in file più piccoli (perché tutte le variabili sono denominati "a" e "b" invece di "descriptiveNameOne" e di tutti gli spazi è spogliato, ecc).Questo si traduce in tempi di caricamento più veloce delle pagine web che utilizzano javascript offuscato.Ovviamente questo non vale (tanto) nel .NET mondo, ma è un esempio di una situazione in cui c'è un diretto ingegneria beneficio.

Mentre non correlati .net, vorrei prendere in considerazione offuscamento in Javascript, e, eventualmente, altri interpeted lingue.Javascript vantaggi dall'offuscamento, perché si riduce la larghezza di banda necessaria, e il token il parser deve leggere.

Ma offuscamento bytecode compilato davvero non sembra che di utile per me.Voglio dire, che cosa volete cercare e conseguire?Posso solo vedere offuscamento essendo leggermente utile nel codice di verifica delle licenze per evitare di essere aggirato troppo facilmente.

Il motivo principale per utilizzare l'offuscamento è quello di proteggere la proprietà intellettuale come ti ho indicato.Generalmente è molto più conveniente di un business per l'acquisto di un offuscamento prodotto come .NET Reattore piuttosto che provare a valere legalmente i diritti d'autore.

Offuscamento grado di fornire anche altri ulteriori vantaggi accessori, quali il miglioramento delle prestazioni e dell'assemblea di riduzione delle dimensioni.Queste sarebbero le ingegneria i benefici che si sta cercando.

Utilizzare la crittografia per proteggere le informazioni sulla strada.

Utilizzare offuscamento per proteggere le informazioni, mentre il programma offre.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top