Revisione di un protocollo

0

Mi chiedo se qualcuno potrebbe dare una seconda opinione se il seguente è sicuro o meno.

Ho un sistema che consiste in un dispositivo mobile, un server FTP e un PC. Il dispositivo mobile deve caricare dati sensibili sul server FTP affinché un PC possa scaricarlo ... Dopo il download, i dati sul server FTP vengono cancellati.

Il PC si trova in una rete sicura e può avere i dati sensibili come testo normale. I dati devono essere crittografati con AES-256. Poiché lo scambio di chiavi con le chiavi simmetriche è un problema, vorrei crittografare la chiave simmetrica con la chiave asimmetrica.

Protocollo che pensavo di usare:

1) Il PC genererebbe una coppia di chiavi asimmetriche (chiave pubblica e privata, RSA-2048 o migliore).

2) Utilizzare la chiave privata per creare una firma della chiave pubblica.

3) Carica la chiave pubblica e la sua firma sul server FTP.

4) Il dispositivo mobile scarica la chiave pubblica e la sua firma.

5) Il dispositivo mobile utilizza la chiave pubblica per verificare la firma.

6) Se la firma è verificata, siamo sicuri che la chiave pubblica appartiene alla chiave privata nel PC (e non a un potenziale aggressore).

7) Il dispositivo mobile genera una chiave AES-256 simmetrica (segreta).

8) Il dispositivo mobile esegue la crittografia sensibile con la chiave simmetrica e quindi carica i dati crittografati sul server FTP.

9) Il dispositivo mobile crittografa la chiave simmetrica con la chiave pubblica e la carica sul server FTP.

10) Il dispositivo mobile genera MAC utilizzando la chiave simmetrica crittografata come messaggio e chiave pubblica come chiave MAC, quindi carica il server MAC in FTP. (Questa parte è necessaria?)

11) Il PC scarica quanto segue: dati crittografati, chiave simmetrica crittografata AES-256, MAC della chiave simmetrica crittografata. (Il PC cancella anche i dati sul server FTP dopo il download)

12) Il PC calcola il MAC della chiave simmetrica crittografata scaricata e la confronta con il MAC scaricato. Se entrambi i MAC scaricati e quelli generati dal PC corrispondono, possiamo concludere che la chiave simmetrica crittografata è autentica.

13) Il PC decrittografa la chiave simmetrica crittografata con la chiave privata asimmetrica.

14) Il PC decrittografa i dati sensibili con il tasto simmetrico AES-256.

15) Fatto!

Le chiavi asimmetriche devono essere cambiate per un certo periodo, non superiore a 2 anni. Le chiavi simmetriche sono basate su "sessione", cioè una nuova chiave viene generata per ogni set di dati.

    
posta Rain 19.04.2016 - 01:03
fonte

1 risposta

0

2) Use private key to create a signature of the public key.

3) Upload the public key and its signature to the FTP server.

4) Mobile device downloads the public key and its signature.

5) Mobile device uses the public key to verify the signature.

Perché farlo. Chiunque sia in grado di creare una coppia di chiavi può firmare la chiave pubblica tramite la chiave privata corrispondente. Se sono un utente malintenzionato, mi limiterò a generare la mia propria coppia di chiavi, a firmare la mia chiave pubblica con la mia chiave privata e a caricarla sull'FTP. La firma è valida e non sarai mai più saggia. A questo punto tutto crolla. Posso decifrare qualsiasi messaggio utilizzando la mia chiave privata per ottenere la chiave simmetrica e i dati associati.

    
risposta data 19.04.2016 - 01:41
fonte