In un post precedente abbiamo discusso come iniziare a lavorare con la crittografia dei file di dati. Ora parleremo di un ulteriore modo per lavorare con i file di dati crittografati: I nuovi comandi 4D. Questi comandi sono progettati per supportare la maggior parte dei requisiti di crittografia e consentono di fornire ai clienti una soluzione crittografata.
HDI: Esempio di comandi di crittografia dei dati
Crittografia di un file di dati
Oltre al MSC, è possibile gestire la crittografia con il comando Encrypt data file() :
C_TEXT($folder;$passphrase)
$passphrase :=Request("Immettere la passphrase")
if (OK=1)
$folder :=Encrypt data file("Macintosh HD:Users:structures:myDataBase.4DB";
"Macintosh HD:Users:data:myData.4DD";$passphrase) // myData.4DD is not opened
End if
Fornire la chiave di crittografia dei dati tramite il linguaggio
Oltre al rilevamento automatico della chiave di crittografia dei dati da parte di 4D, il nuovo comando provideDataKey() è disponibile nell’oggetto ds per fornire la chiave di crittografia dei dati a un file di dati aperto. Questo è utile quando si costruisce la propria interfaccia utente per controllare l’accesso ai dati crittografati.
Anche se ds è una caratteristica di ORDA, il comando provideDataKey() è valido sia per ORDA che per il codice 4D classico.
C_OBJECT($keyStatus)
C_TEXT ($passphrase)
$passphrase :=Request("Inserire la passphrase")
if (OK=1)
$keyStatus :=ds.provideDataKey($passphrase)
If ($keyStatus.success)
ALERT ("È stata fornita una chiave di crittografia valida")
Else
ALERT ("È stata fornita una chiave di crittografia non valida. L'accesso ai dati crittografati è negato")
End if
End if
OTTENERE LO STATO DI CRITTOGRAFIA
Il nuovo encryptionStatus() è disponibile anche nell’oggetto ds oggetto. Controlla se il file di dati aperto è criptato o meno e se è stata fornita una chiave di crittografia dei dati valida.
C_OBJECT($status;$provideStatus)
C_TEXT ($passphrase)
$status :=ds.encryptionStatus()
Case of
: (Not($status.isEncrypted))
ALERT("I dati non sono criptati")
: (($status.isEncrypted) & (Not($status.keyProvided)))
ALERT ("I dati sono criptati e non è stata fornita una chiave di crittografia valida. L'accesso ai dati criptati è negato").
: (($status.isEncrypted) & ($status.keyProvided))
ALERT("I dati sono crittografati e la chiave di crittografia è già stata fornita. L'accesso ai dati crittografati è consentito").
End case
ALTRI COMANDI
stato del file DATI non aperto
Il comando Data file encryption status() restituisce lo stato di crittografia di un file di dati specificato e non aperto. In questo modo è possibile verificare lo stato di crittografia di un file di dati prima di aprirlo.
nuova chiave dati()
Il comando New data key() genera una chiave binaria di crittografia dei dati a partire da una determinata passphrase. Poiché 4D cerca automaticamente una chiave di crittografia dei dati valida sui dispositivi collegati quando viene aperto un file di dati, questo comando consente di generare una propria chiave di crittografia binaria dei dati che può essere scritta in un file.
scoprire la chiave dati
Se si dimentica di collegare il dispositivo contenente la chiave di crittografia dei dati prima di aprire un file di dati, è possibile utilizzare il comando Discover data key() per fornire la chiave.
registra chiave dati()
Per evitare di fornire la chiave di crittografia dei dati ogni volta che si apre un file di dati, si può usare il comando Register data key() per aggiungerla al portachiavi 4D.
comandi nelle azioni
L’HDI qui sopra mostra tutti i comandi di questo blog post per fornire una panoramica con esempi concreti su come utilizzarli per i propri database.