RSA in .Net ""equivalente"" ad RSA delphi?

di il
6 risposte

RSA in .Net ""equivalente"" ad RSA delphi?

Ciao a tutti, stavo pensando di fare un programma che passa una stringa da un eseguibile delphi ad un "eseguibile" .net in modo relativamente sicuro,per fare questo pensavo di usare la crittografia asimmetrica RSA (RSA) ,pensavo quindi di inviare la chiave pubblica al programma delphi il quale con la sua istanza rsa crittografa la stringa da esso contenuta e ripassa il risultato al programma .net il quale usa la chiave privata per risalire alla stringa in chiaro , volevo una vostra opinione,errori? supposizioni errate? ,grazie

6 Risposte

  • Re: RSA in .Net ""equivalente"" ad RSA delphi?

    Di solito gli algoritmi, se implementati correttamente, sono indipendenti dai linguaggi e dai compilatori(*).
    Non è chiaro se hai un problema reale o se stai "studiando", la risposta cambierebbe!
    N

    (*) Escludendo, ovviamente, le prestazioni.
  • Re: RSA in .Net ""equivalente"" ad RSA delphi?

    Grazie della risposta, stò ""studiando"" , in pratica stavo valutando la possibilità di usare un linguaggio compilato come delphi per creare un programma-procedura per difendere i programmi .net windows forms dalla decompilazione ,per fare questo avrei pensato di salvare una password dentro un eseguibile delphi ,questo la passa ad un eseguibile .net che carica un file crittografato che è il programma .net da proteggere ,quest'ultimo esiste quindi solo crittografato su disco oppure in memoria ,come esempio per chiarire (spero ) puoi vedere il post sul mio blog "proteggere-il-codice-sorgente-in-net.html" e la pagina sourcecodesafer.....,chiedo scusa per auto-citare il mio blog ma è solo per tentare di essere il più chiaro possibile
  • Re: RSA in .Net ""equivalente"" ad RSA delphi?

    Permettimi un consiglio: fai un bel diagramma di flusso, anche uno schizzo su carta, che mostri la procedura e cerca i punti deboli.
    Temo che ne troverai
    Hai già provato questo http://www.matcode.com/mpress.ht ?
  • Re: RSA in .Net ""equivalente"" ad RSA delphi?

    @gian82,

    devi tenere SEMPRE presente che DECOMPILARE un eseguibile e' una pratica non particolarmente complicata:

    - e' semplice nel caso di un binario (CL o Java) NON offuscato, perche' il risultato e' perfettamente comprensibile
    - e' semplice nel caso di un binario (CL o Java) offuscato, ma leggermente piu' complesso da analizzare, perche' il nome delle classi, dei metodi sono 'strani'. Ma comunque e' ancora analizzabile, visto che non e' possibile offuscare le classi del JDK e difficilmente uno offusca le classi delle librerie esterne.
    - non e' particolarmente complicato nel caso di binari nativi: NON OTTIENI il sorgente C/Delphi/ecc, ma ottieni un sorgente assembler che e' tranquillamente analizzabile.

    QUINDI se la tua password e' memorizzata in chiara, non serve a nulla.

    Ma poiche' il tuo eseguibile deve chiamare un'altro eseguibile e questo lo fai attraverso le API di windows, che NON PUOI affuscare, ecco che con un po' di pazienza uno puo' intercettare la chiamata (mediante un debugger) e ricuperare la password.

    Ti consiglio di studiarti un po' di crittografia, non tanto gli algoritmi, ma i concetti base ed i protocolli, perche' quello che stai realizzando, per quanto PER TE interessante, non prende in considerazione l'assioma FONDAMENTALE della crittografia:

    LA CHIAVE NON DEVE ESSERE SALVATA DA NESSUNA PARTE.

    Quale chiave?
    LA PRIMA.

    Cioe' quello che si fa di solito e' avere un repository di chiavi, che sono difficili da memorizzare (perche' ad esempio sono dei numeri da 1024 bit), CIFRATO e la CHIAVE di cifratura/decifratura la inserisci SOLO quando necessario, e la devi inserire mediante un sistema che non lasci traccia sul PC:
    - da tastiera,
    - mediante un file memorizzato in una chiavetta esterna
    - mediante qualche sistema biometrico
    - ecc...


    Ricorda: LA FORZA del sistema crittografica sta SOLO ED ESCLUSIVAMENTE nella chiave, che DEVE ESSERE ESTREMAMENTE COMPLICATO ricuperare a meno di non essere quello che la conosce.
  • Re: RSA in .Net ""equivalente"" ad RSA delphi?

    @nicolap : grazie della risposta, in realtà il punto debole mi sembra la relativa facilità(per chi ne ha le competenze) da voi espressa di risalire alla stringa anche se nascosta dentro un eseguibile delphi , se hai individuato delle criticità spero tu possa esprimerle ,grazie

    @migliorabile : grazie delle indicazioni ,alla chiavetta non ci avevo pensato...,aggiungerò questa possibilità al mio "software-procedura",il software winformsprotector non salva mai la password ed un eseguibile chiama un altro non tramite le api di sistema ma sfruttando la "reflection" di .net e la possibilità di caricare un exe passandolo come array di bytes (Assembly assembly1 = Assembly.Load(exe); ) , grazie
  • Re: RSA in .Net ""equivalente"" ad RSA delphi?

    migliorabile ha scritto:


    @gian82,

    devi tenere SEMPRE presente che DECOMPILARE un eseguibile e' una pratica non particolarmente complicata:
    Bhè, adesso, non esageriamo.
    Anzi, direi tendenzialmente per nulla (se parliamo di codice oggetto vero, e non pseudocodice-sticazzi-compilato).
    Con qualche accorgimento può diventare tutt'altro che banale.
Devi accedere o registrarti per scrivere nel forum
6 risposte