Visualizzazione dei risultati da 1 a 2 su 2

Discussione: GDPR e crittografia

  1. #1
    Utente di HTML.it L'avatar di Salvy95
    Registrato dal
    Jul 2008
    Messaggi
    199

    GDPR e crittografia

    Ciao a tutti!
    Con l'introduzione del GDPR è opportuno iniziare a crittografare i dati sensibili inseriti nel proprio database. All'uopo intendevo attrezzarmi con un paio di funzioni realizzate proprio allo scopo.
    Il dubbio che tuttavia mi assaliva è il seguente: e se un domani, cambiando server o aggiornado il php ad una versione più giornata, gli algoritmi pedissequamente copiati da php.net e ben referenziati da molti utenti dovessero risultare obsoleti e per questo non più supportati? Mi ritroverei con una impressionante mole di dati su un database senza potermene fare nulla.
    Al momento sto adoperando il seguente codice.
    Codice PHP:
    public function secured_encrypt($data){
    $first_key base64_decode($this -> FIRSTKEY);
    $second_key base64_decode($this -> SECONDKEY);   
       
    $method "aes-256-cbc";   
    $iv_length openssl_cipher_iv_length($method);
    $iv openssl_random_pseudo_bytes($iv_length);
           
    $first_encrypted openssl_encrypt($data$method,$first_keyOPENSSL_RAW_DATA ,$iv);   
    $second_encrypted hash_hmac('sha3-512'$first_encrypted$second_keyTRUE);
               
    $output base64_encode($iv.$second_encrypted.$first_encrypted);   
    return 
    $output;       
    }


    public function 
    secured_decrypt($input){
    $first_key base64_decode($this -> FIRSTKEY);
    $second_key base64_decode($this -> SECONDKEY);           
    $mix base64_decode($input);
           
    $method "aes-256-cbc";   
    $iv_length openssl_cipher_iv_length($method);
               
    $iv substr($mix,0,$iv_length);
    $second_encrypted substr($mix,$iv_length,64);
    $first_encrypted substr($mix,$iv_length+64);
               
    $data openssl_decrypt($first_encrypted,$method$first_key,OPENSSL_RAW_DATA$iv);
    $second_encrypted_new hash_hmac('sha3-512'$first_encrypted$second_keyTRUE);
       
    if (
    hash_equals($second_encrypted,$second_encrypted_new))
    return 
    $data;
       
    return 
    false;

    Nel database tutti i campi sono varchar con dimensione 129, in quanto la stringa criptata è di 128 caratteri.
    Pensate che ci siano rischi? Come vi sembra il codice?

    Grazie mille, siete la mia salvezza


    P.S.: finché sono in tempo a modificare il messaggio: personalmente non ho mai approfondito l'argomento crittografia, ma sono abbastanza ferrato in analisi. Non riesco a spiegarmi come una stringa, di dimensione qualunque, possa essere compressa in un'altra stringa di 128 caratteri. Condizione necessaria affinché una funzione sia biettiva, è che nel dominio e nel codomio devono essere presenti lo stesso numero di elementi. Ciò è evidentemente falso per il caso di specie in quanto il dominio è un insieme illimitato superiormente, al contrario, il codominio è, per quanto vasto, limitato sia superiormente che inferiormente. Ne scaturisce che per ogni stringa da 128 bit esistono infinite corrispondenze nel linguaggio ordinaio. Non me lo spiego!
    Ultima modifica di Salvy95; 02-05-2019 a 11:53

  2. #2
    Utente di HTML.it L'avatar di Salvy95
    Registrato dal
    Jul 2008
    Messaggi
    199
    Ho appena riscontrato un altro problema ma non posso modificare il post principale.
    Quando uso più volte la funzione secured_encrypt ottengo ogni volta risultati diversi. Come è possibile?

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 © 2024 vBulletin Solutions, Inc. All rights reserved.