Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: Nascondere codice php

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    910

    Nascondere codice php

    Salve devo implementare una funzione in grado di criptare stringhe, con l'utilizzo di una chiave, il server che utilizzo è accessibile anche da altri utenti, non vorrei che il codice di questa funzione sia visibile, non c'è un modo da inserire tipo in una dll(ad esempio), in modo da rendere il codice "invisibile"....
    ad esempio quando viene generato l'hash di una stringa con la funzione md5(), nessuno può risalire al "codice" con cui è stata scritta quella funzione altrimenti che senso avrebbe .....

    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    910
    servono per forza gli offuscatori?

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    910
    nessuno

  4. #4
    Utente di HTML.it L'avatar di fabi080
    Registrato dal
    Mar 2002
    Messaggi
    442
    Veramente le specifiche dell'algoritmo md5 sono pubbliche, così come le spcifiche del maggiori algoritmi di cifratura, la robustezza di tali algoritmi non è data dal nascondere la loro implementazione ma dalla teoria che c'è dietro.
    Per cifrare è andare sul sicurissimo non è necessario nascondere l'implementazione, basta usare un'algoritmo robusto ad esempio rsa, potente e versatile, funziona sia con chiave pubblica/privata sia con chiave simmetrica.

    Prova a partire da qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    910
    Originariamente inviato da fabi080
    Veramente le specifiche dell'algoritmo md5 sono pubbliche, così come le spcifiche del maggiori algoritmi di cifratura, la robustezza di tali algoritmi non è data dal nascondere la loro implementazione ma dalla teoria che c'è dietro.
    Per cifrare è andare sul sicurissimo non è necessario nascondere l'implementazione, basta usare un'algoritmo robusto ad esempio rsa, potente e versatile, funziona sia con chiave pubblica/privata sia con chiave simmetrica.

    Prova a partire da qui
    mmm, specifiche!Ma non il codice completo, altrimenti scusa...un bravo programmatore, capirebbe subito come funziona, no?

  6. #6
    Utente di HTML.it L'avatar di fabi080
    Registrato dal
    Mar 2002
    Messaggi
    442
    Allora, il discorso è il seguente gli algoritmi in questione si basano su teorie matematiche e informatica teorica, di implementazioni ne trovi a bizzeffe, tant'è vero che l'implementazione della funzione md5 di php è liberamente disponibile su internet così come i sorgenti di tutto il php.

    Ciò non toglie che data un'impronta md5 sia pressochè impossibile risalire alla stringa che l'ha generata, infatti con 128 bit ha disposizione si hanno 2^128 possibili output tale numero è pressappoco il numero di atomi presenti sulla terra, quindi un attacco di forza bruta che tenta tutte le possibili combinazioni è irrealizzabile.

    SHA1 crea un digest a 160 bit (cioè circa 4 miliardi di volte il numero di prima di combinazioni) ed è stato commissionato dalla NSA, secondo te è possibile forzarlo??

    L'RSA si basa sulla difficoltà di calcolare la fattorizzazione in numeri primi grandi (circa 300 cifre con una chiave a 1024) altro problema impossibile da risolvere con l'aiuto di un computer.

    Per violare l'RSA a 576 bit ci hanno messo 3 anni con non so quante migliaia di computer in parallelo, quindi tira tu le somme...

    Comunque se vuoi qui c'è la descrizione dell'md5 e qui varie implementazioni liberamente scaricabili, se vuoi provare a violarlo accomodati, se riesci fa un fischio...

    P.S. l'informatica è matematica, non programmazione, se non ti fidi neanche della matematica non so che dirti...

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    910
    si si hai ragione, mah una volta navigando su internet sono entrato in un sito dove venivano affrontati vari metodi/algoritmi per criptare, ho notato che alcuni di questi non sono mai stati "violati", invece quelli da te citati prima, possono essere violati perchè si sa il loro funzionamento ma logicamente ci vogliono 3 vite ,dunque che differenza c'è tra un algoritmo "violato" e uno non violato?!!? Quello non violato non ha i sorgenti aperti?Perchè se adesso per risalire ad una stringa criptata con md5 ci vogliono 50 anni, se non si sapeva neanche il suo funzionamento ci volevano davvero 3 vite, no?
    grazie per la chiarezza...

  8. #8
    Utente di HTML.it L'avatar di fabi080
    Registrato dal
    Mar 2002
    Messaggi
    442
    Il discorso di violare o meno gli algoritmi che ti ho detto non dipende dal fatto che la loro implementazione è pubblica, anzi, questo ne migliora la sicurezza, infatti essendo algoritmi di pubbico dominio la ricerca di debolezze in essi è il passatempo preferito dei maggiori esperti al mondo di crittografia, pertanto se non vengono trovate vuol dire che l'algoritmo è veramente solido.

    Le violazioni all'md5 sono fatte con attacchi di tipo forza bruta, ovvero si generano tutte le possibili combinazioni, e per ognuna di esse si calcola l'md5, fino a trovare una stringa che genera lo stesso hash. Se il numero totale di hash possibili è incredibilmente alto (nell'md5 2^128), le probabilità che due stringhe abbiano lo stesso hash sono quasi nulle. Pertanto per generare un numero esponenziale di combinazioni il tempo necessario sarà incredibilmente alto. Il fatto che l'algoritmo sia pubblico non aiuta in nessun modo perchè in questo tipo di attacco non si utilizza in nessun modo l'hash md5 prodotto dall'algoritmo, se non per confrontarlo con gli output dei vari tentativi.

    Un esempio, le password sui sistemi unix, sono memorizzate cifrate attraverso l'md5, quando uno di queste password viene scoperta non si fa mai un attacco di forza bruta totale, si fa prima un attacco basato su un dizionario di parole comuni (pensa a tutte le tue password, almeno una volta avrai messo una pass scema, tipo il nome del tuo cane o della tua ragazza), poi si provano quelle composte da sole lettere minuscole (circa 400 miliardi), e cosi via. In tutto ciò non viene affatto violato l'md5 semplicemente si fa una ricerca passando dalle possibilità più ovvie a quelle meno ovvie. Una password del tipo 'ciaociao' verrà trovata in poche ore, mentre una password del tipo '£%As9"vj-' non sarà mai trovata.

    Questo per quanto riguarda l'md5, che tra parentesi non è un algoritmo per crittografare, ma è una funzione di hash one-way.

    Per quanto riguarda gli algoritmi a chiave (pubblica o simmetrica che sia), per violarli è necessario individuare la chiave, anche qui si può procedere per tentativi, ma se la chiave è sufficientemente lunga (1024bit o più) i tempi per generare tutte le chiavi possibili sono ancora più alti.

    Algoritmi impossibili da violare non ne conosco, conosco solamente una tecnica chiamata crittografia quantistica che impedisce gli attacchi di tipo forza bruta semplicemente perchè la chiave usata per cifrare il messaggio è lunga quanto il messaggio stesso, pertanto se si manda un messaggio di soli 20kb il tempo necessario per tentare tutte le possibili combinazioni sarebbe miliardi di volte più lungo dell'età dell'universo. Tale tecnica è però ancora in fase di studio, e comunque viene realizzata attraverso apparecchiature hardware che hanno a disposizione solamente in pochissimi laboratori di ricerca.

    Tutte le altre tecniche sono potenzialmente violabili.

    Per quanto riguarda il discorso di non diffondere i sorgenti basta pensare a Microsoft, il codice sorgente di Windows è blindato e nessuno vi ha accesso, eppure vengono scoperte 3-4 nuove vulnerabilità al mese.
    Al contrario Apache, il cui codice è disponibile su internet, ha molte meno vulnerabilità di IIS.

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    910
    ok ok, l'ultima cosa poi non ti rompo più
    da ignorante in materia ma con tanta voglia di imparare dico questa cavolata(sicuramente)...
    Dunque quando viene creato l'hash di una stringa con md5, ci sono 32 caratteri, dunque in questi caratteri bene o male ci sono le informazioni per risalire alla stringa hashata, perchè non prende numeri e lettere a caso, giusto?!?!
    bhe, naturalmente il codice md5 è libero e quindi si può vedere come md5 hash le stringhe, giusto?Se si può vedere il procedimento di esecuzione perchè procedere con tentativi come hai detto tu?

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    910
    altra domanda banale, visto che utilizzo da poco linux...ho una curiosità, hai detto che i sistemi unix utilizzano md5 per le password, ora, se ad esempio un utente del sistema non si ricorda più la sua password, visto che md5 è un sistema one-way la password dell'utente è persa?
    grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.