Come condividere una chiave di crittografia tra diverse applicazioni PHP?

6

Sto lavorando con la libreria di crittografia php per fornire l'integrazione tra due diverse applicazioni. Da un lato, ho un'applicazione corporativa che contiene tutti i dati dagli utenti. Questa applicazione servirà alcuni dati sensibili attraverso un'API.

Dall'altro lato, l'altra applicazione richiederà alcuni dati, consumando l'API. A questo punto, l'API utilizza la crittografia autenticata per proteggere i dati.

La domanda con la libreria di crittografia php è la seguente: la chiave della crittografia è una chiave casuale. Ho bisogno di mantenere quella chiave perché l'altra applicazione deve decifrare i dati.

Esempio:

Per crittografare:

$key = Crypto::createNewRandomKey();

$message = "mymessage";

$ciphertext = Crypto::encrypt($message, $key);

Per decrittografare:

$decrypted = Crypto::decrypt($ciphertext, $key);

Qual è il modo migliore per condividere la chiave o mantenere la stessa chiave tra diverse applicazioni?

    
posta Hugo Dias 10.05.2016 - 21:33
fonte

1 risposta

4

Come raccomandato da @schroeder, dovresti condividere la chiave tra applicazioni / server usando Public Key Infrastructure (PKI). Non è consigliato implementarlo tu stesso.

C'è un grande articolo chiamato Scelta del diritto Libreria di crittografia per il tuo progetto PHP . Vale la pena dare un'occhiata a Raccomanda le seguenti librerie:

  • Halite
  • Libsodium (come raccomandato da @NSSec)
  • Crittografia PHP
  • Phpseclib (solo RSA!)

Altri da considerare:

  • EasyRSA (non PKCS # 1v1.5!)
  • phpseclib

Inoltre, dal momento che sono coinvolte app corporative, avere una strategia per la gestione delle chiavi sui rispettivi server (vale a dire processi e politiche di gestione delle chiavi, utilizzo di un modulo di sicurezza hardware (HSM), ecc.). Puoi anche consultare Guida per la protezione della chiave pubblica infrastrutture .

Buona fortuna per il tuo progetto!

    
risposta data 17.05.2016 - 19:32
fonte

Leggi altre domande sui tag