Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Compatibilità del SDK di crittografia AWS per JavaScript
SDK di crittografia AWS per JavaScript è progettato per essere interoperabile con altre implementazioni di linguaggio di AWS Encryption SDK. Nella maggior parte dei casi, è possibile crittografare i dati con SDK di crittografia AWS per JavaScript e decrittarli con qualsiasi altra implementazione di linguaggio, inclusa l'interfaccia a riga di comando AWS Encryption SDK. È inoltre possibile utilizzare SDK di crittografia AWS per JavaScript per decrittare i messaggi crittografati prodotti da altre implementazioni linguistiche di AWS Encryption SDK.
Tuttavia, quando si utilizza SDK di crittografia AWS per JavaScript, è necessario essere consapevoli di alcuni problemi di compatibilità nell'implementazione del linguaggio JavaScript e nei browser Web.
Inoltre, quando si utilizzano implementazioni linguistiche diverse, assicurarsi di configurare provider di chiavi master compatibili, le chiavi master e i keyring compatibili. Per dettagli, consultare Compatibilità dei keyring.
Compatibilità SDK di crittografia AWS per JavaScript
L'implementazione JavaScript di AWS Encryption SDK differisce da altre implementazioni di linguaggio nei seguenti modi:
-
L'operazione di crittografia di SDK di crittografia AWS per JavaScript non restituisce testo cifrato non framed. Tuttavia, SDK di crittografia AWS per JavaScript decritterà il testo cifrato framed e non framed restituito da altre implementazioni del linguaggio di AWS Encryption SDK.
-
A partire da Node.js versione 12.9.0, Node.js supporta le seguenti opzioni di wrapping chiave RSA:
-
OAEP con SHA1, SHA256, SHA384 o SHA512
-
OAEP con SHA1 e MGF1 con SHA1
-
PKCS1v15
-
-
Prima della versione 12.9.0, Node.js supporta solo le seguenti opzioni di wrapping della chiave RSA:
-
OAEP con SHA1 e MGF1 con SHA1
-
PKCS1v15
-
Compatibilità browser
Alcuni browser Web non supportano le operazioni di crittografia di base richieste da SDK di crittografia AWS per JavaScript. È possibile compensare alcune delle operazioni mancanti configurando un fallback perWebCryptoAPI implementata dal browser.
Limitazioni del browser Web
Le seguenti limitazioni sono comuni a tutti i browser Web:
-
LaWebCryptoL'API non supporta il wrapping delle chiavi PKCS1v15.
-
I browser non supportano chiavi a 192 bit.
Operazioni crittografiche richieste
SDK di crittografia AWS per JavaScript richiede le seguenti operazioni nei browser Web. Se un browser non supporta queste operazioni, non è compatibile con SDK di crittografia AWS per JavaScript.
-
Il browser deve includere
crypto.getRandomValues()
, che è un metodo per generare valori crittograficamente casuali. Per informazioni sulle versioni del browser Web che supportanocrypto.getRandomValues()
, consultaPosso utilizzare la crittografia.getRandomValues()?.
Fallback richiesto
SDK di crittografia AWS per JavaScript richiede le seguenti librerie e operazioni nei browser Web. Se si supporta un browser Web che non soddisfa questi requisiti, è necessario configurare un fallback. Altrimenti, i tentativi di utilizzare il SDK di crittografia AWS per JavaScript con il browser falliranno.
-
LaWebCryptoL'API, che esegue operazioni di crittografia di base nelle applicazioni Web, non è disponibile per tutti i browser. Per informazioni sulle versioni del browser Web che supportano la crittografia Web, consulta Posso utilizzare la crittografia Web?
. -
Le versioni moderne del browser Web Safari non supportano la crittografia AES-GCM di zero byte, che AWS Encryption SDK richiede. Se il browser implementa ilWebCryptoAPI, ma non può utilizzare AES-GCM per crittografare zero byte,SDK di crittografia AWS per JavaScriptutilizza la libreria di fallback solo per la crittografia a byte zero. Utilizza ilWebCryptoAPI per tutte le altre operazioni.
Per configurare un fallback per entrambe le limitazioni, aggiungere le istruzioni seguenti al codice. Nella funzione configureFallbackmsrcrypto
), ma è possibile sostituirla con una libreria compatibile. Per un esempio completo, consulta fallback.ts
import { configureFallback } from '@aws-crypto/client-browser' configureFallback(
msrCrypto
)