|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jul 2005
Messaggi: 66
|
Sconvolto dalla facilità di decompilazione di .net
Sono un giovane amante della programmazione e il mio primo studio di linguaggio si concentrava tutto sul visual basic .net, stasera però ho avuto un shock tremendo: ho trovato un software online che penso conoscano tutti quelli del reverse engineering... e mi è caduto il mito del .NET per la facilità di decompilazione... Avevo progettato una classe per criptare i testi ma è inutile... con questo programma si vede praticamente tutto allora mi chiedo una sola cosa... vi prego ditemi che si posso criptare le classi o qualcosa del genere perchè altrimenti è inutile programmare in .net... secondo me
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
In genere è quello che succede anche con Java e con linguaggi simili. Fai una ricerca su .Net obfuscator e troverai diverse utility che ti permettono di mascherare il codice.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Per entrambe le piattaforme comunque esistono degli appositi offuscatori, che, nota bene, non impediscono la decompilazione ma rendono più difficile la comprensione (da parte di una persona, ovviamente) del sorgente ricavato dalla decompilazione. L'argomento del reverse-engineering è complesso e comunque poco tollerato sul forum. Prima di terminare, una considerazione: se hai paura che qualcuno possa vedere/capire il codice di una tua classe che (de)cripta qualcosa, allora il problema è il tuo codice. La sicurezza e l'affidabilità di una cifratura non sta nella segretezza del codice (algoritmo), ma nella segretezza delle chiavi o password usate.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: May 2005
Città: Napoli - Fuorigrotta
Messaggi: 471
|
Parole sante!
__________________
Acquisti sul mercatino: grabrihc, LucaXbox360, Yarsha,micanto1,American horizo,Fnac,schumyFast,STECCO,Ezechiele25,17 Vendite sul mercatino: musodatopo,alexbands,mspr,anto.wajo |
|
|
|
|
|
#5 | |
|
Messaggi: n/a
|
Quote:
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Jul 2006
Messaggi: 1568
|
Quote:
|
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Probabilmente ci vuole un pò di perizia a nasconderle, io non ci riesco, le chiavi sono sempre riconoscibilissime anche in un programma C++, basta un qualunque programma che analizzi il formato PE di windows che le costanti sono ben evidenti. Ci devono essere delle tecniche ben precise per offuscare delle costanti, ma non ho mai trovato niente a riguardo.
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Nel primo caso non ci sono problemi (come ho detto non è importante la segretezza dell'algoritmo). Nel secondo caso la risposta è: no, non è da fare. Quindi se ti balza anche solo l'idea di memorizzare in un eseguibile una qualunque password o chiave "sensibile" .... beh, cambia velocemente idea.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Quote:
[GENERICO] E' possibile decompilare 1 programma? Tu cosa hai usato per decompilare?
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. |
|
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Infatti non ho trovato la soluzione corretta al problema, forse bisognerebbe affidarsi a qualche servizio dell'OS o fare in modo che venga ricalcolata a runtime in modo da nascondere la chiave nel codice. |
|
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
E' l'algoritmo che deve essere in chiaro (per non incappare nella cd security through obscurity). I dati necessari al funzionamento dell'algoritmo possono benissimo essere "oscurati": nel senso che una il funzionamento del prodocollo di sicurezza basato su quel sistema di cifratura può essere (e, per quanto ne so, è sempre) condizionato alla conoscenza di uno o più dati da parte di un gruppo ristretto di soggetti (al limite uno solo, come nel caso degli algoritmi a doppia chiave).
Puoi scrivere la password in chiaro nel sorgente del programma? Certamente sì. In quel caso, tuttavia, la segretezza (o disponibilità esclusiva) si estende a tutto il programma e a tutto il PC su cui il programma gira. Aggiungo: algoritmo in chiaro non significa che il codice che lo realizza debba essere a sua volta in chiaro.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#13 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
|
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
E' interessante. Non so se sia possibile. Se il programma deve usare un valore quel valore, prima o poi, apparirà in chiaro.
Intendo per valore in chiaro sia il valore scritto com'è nel sorgente, sia il valore cifrato nel sorgente o in un file o quant'altro. Prima o poi finirà nella memoria del calcolatore: a quel punto l'utente farà un dump. Ci perderà tre diottrie ma alla fine troverà la chiave. Possiamo cifrare la memoria ma non è una soluzione: sposta il problema dalla chiave alla chiave della chiave. Do un'occhiata alla schneier perchè questa faccenda mi ricorda il protocollo in cui una delle due parti non è fidata.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#15 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Lasciamo perdere il fatto che sono stati crackati entrambi, per gli HD pare che il bug nel software sia stato risolto e le chiavi sostituite. Mi chiedo come tengano le chiavi sul software. |
|
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Ho fatto una breve ricerca per vedere un po' come facciano a craccare 'sti sistemi. Per i DVD il protocollo di sicurezza si chiama CSS. Per gli HD-DVD si chiama AACS.
Sembra che le chiavi di decifrazione siano immagazzinate nell'hardware o nel software. Secondo quanto riportato qui: http://www.engadget.com/2007/02/24/a...dvd-key-found/ Nel caso di WinDVD una chiave è stata recuperata proprio con l'analisi di una copia della memoria del programma. Nel caso di chiavi software, quindi, si tratta proprio di "security through obscurity". E non regge agli attacchi del brufoloso (lo dico amorevolmente) di turno. Sullo schneier leggo che la conservazione sicura di queste chiavi è realizzata attraverso chip tamper proof, cioè a prova di forzatura.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#17 |
|
Member
Iscritto dal: Jul 2006
Città: Padova
Messaggi: 62
|
Dunque in visual studio 6.0 (e dovrebbe esserci anche nel .net) c'era la possibilità di realizzare un eseguibile che riunisse in tutt'uno quello che serviva, in pratica non avevi librerie o altro esterne per farlo funzionare, scusa la poca competenza in materia
|
|
|
|
|
|
#18 | |||
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Solo che risolto un problema rimane aperto quello di fondo, ovvero tenere oscurata la chiave che consente al programma di andare a leggere le chiavi sul supporto che servono a decodificare il supporto stesso. Questa purtroppo da qualche parte la devono mettere e già mi chiedo come siano riusciti ad oscurarla nei binari. Direi che non c'è modo di tenere al sicuro una costante. Quote:
Quote:
|
|||
|
|
|
|
|
#19 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
C'è sempre una parte nascosta. Il fatto è che non è necessario che quella parte sia nota ad entrambi i soggetti per poter garantire un fatto. Prendi ad esempio gli algoritmi a doppia chiave, pubblica e privata. Io posso spedire un messaggio a Ciccio avendo la garanzia che nessuno oltre a Ciccio sarà in grado di leggerlo semplicemente disponendo di un "numero" noto a tutti (la chiave pubblica di Ciccio).
Penso sia un meccanismo simile a questo quello che ci dovrebbe interessare nel caso in questione. Anzichè nascondere la chiave, è possibile fare in modo che la conoscenza della chiave sia irrilevante? Mi sono arrovellato un po' sulla questione ma non sono arrivato a nulla. Fortunatamente questo non significa niente perchè io non sono un esperto di sicurezza.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:12.




















