Nuovi comandi 4D per lavorare con i dati crittografati

Tradotto automaticamente da Deepl

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.

Avatar
- Product Owner - Marie-Sophie Landrieu-Yvert è entrata a far parte del team 4D Product come Product Owner nel 2017. In qualità di Product Owner, è incaricata di scrivere le storie degli utenti e di tradurle in specifiche funzionali. Il suo ruolo è anche quello di assicurarsi che l'implementazione della funzionalità fornita soddisfi le esigenze del cliente.Marie-Sophie si è laureata presso la scuola di ingegneria ESIGELEC e ha iniziato la sua carriera come ingegnere presso IBM nel 1995. Ha partecipato a vari progetti (di manutenzione o di costruzione) e ha lavorato come sviluppatrice Cobol. In seguito ha lavorato come progettista UML e sviluppatore Java. Ultimamente i suoi ruoli principali erano l'analisi e la scrittura dei requisiti funzionali, il coordinamento dei team di business e di sviluppo.