KompatibilitasAWS Encryption SDK for JavaScript - AWS Encryption SDK

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

KompatibilitasAWS Encryption SDK for JavaScript

ParameterAWS Encryption SDK for JavaScriptdirancang untuk interoperable dengan implementasi bahasa lain dariAWS Encryption SDK. Dalam kebanyakan kasus, Anda dapat mengenkripsi data denganAWS Encryption SDK for JavaScriptdan mendekripsi dengan implementasi bahasa lain, termasukAWS Encryption SDKAntarmuka Baris Perintah. Dan Anda dapat menggunakanAWS Encryption SDK for JavaScriptdekripsipesan terenkripsidiproduksi oleh implementasi bahasa lain dariAWS Encryption SDK.

Namun, ketika Anda menggunakanAWS Encryption SDK for JavaScript, Anda perlu memahami beberapa masalah kompatibilitas diJavaScriptimplementasi bahasa dan di browser web.

Juga, ketika menggunakan implementasi bahasa yang berbeda, pastikan untuk mengkonfigurasi penyedia kunci master yang kompatibel, kunci master, dan keyrings. Untuk detailnya, lihat Kompatibilitas keyring.

AWS Encryption SDK for JavaScriptkesesuaian

ParameterJavaScriptimplementasiAWS Encryption SDKberbeda dari implementasi bahasa lain dengan cara berikut:

  • Operasi enkripsiAWS Encryption SDK for JavaScripttidak mengembalikan ciphertext nonframed. Namun,AWS Encryption SDK for JavaScriptakan mendekripsi ciphertext dibingkai dan nonframed dikembalikan oleh implementasi bahasa lain dariAWS Encryption SDK.

  • Dimulai di Node.js versi 12.9.0, Node.js mendukung opsi pembungkus kunci RSA berikut:

    • OAEP dengan SHA1, SHA512

    • OAEP dengan SHA1 dan MGF1 dengan SHA1

    • PKCS1v15

  • Sebelum versi 12.9.0, Node.js hanya mendukung opsi pembungkus kunci RSA berikut:

    • OAEP dengan SHA1 dan MGF1 dengan SHA1

    • PKCS1v15

Kompabilitas peramban

Beberapa browser web tidak mendukung operasi kriptografi dasar yangAWS Encryption SDK for JavaScriptmembutuhkan. Anda dapat mengkompensasi beberapa operasi yang hilang dengan mengkonfigurasi fallback untukWebCryptoAPI yang diimplementasikan browser.

Keterbatasan browser web

Batasan-batasan berikut umum untuk semua browser web:

  • ParameterWebCryptoAPI tidak mendukung pembungkus kunci PKCS1v15.

  • Browser tidak mendukung tombol 192-bit.

Operasi kriptografi yang diperlukan

ParameterAWS Encryption SDK for JavaScriptmemerlukan operasi berikut di browser web. Jika browser tidak mendukung operasi ini, itu tidak kompatibel denganAWS Encryption SDK for JavaScript.

  • Browser harus menyertakancrypto.getRandomValues(), yang merupakan metode untuk menghasilkan nilai acak kriptografi. Untuk informasi tentang versi browser web yang mendukungcrypto.getRandomValues(), lihatDapatkah saya Gunakan kripto.getRandomValues()?.

Diperlukan

ParameterAWS Encryption SDK for JavaScriptmembutuhkan perpustakaan dan operasi berikut di browser web. Jika Anda mendukung browser web yang tidak memenuhi persyaratan ini, Anda harus mengkonfigurasi fallback. Jika tidak, upaya untuk menggunakanAWS Encryption SDK for JavaScriptdengan browser akan gagal.

  • ParameterWebCryptoAPI, yang melakukan operasi kriptografi dasar dalam aplikasi web, tidak tersedia untuk semua browser. Untuk informasi tentang versi browser web yang mendukung kriptografi web, lihatDapatkah saya menggunakan Kriptografi Web?.

  • Versi modern browser web Safari tidak mendukung enkripsi AES-GCM dari nol byte, yangAWS Encryption SDKmembutuhkan. Jika browser mengimplementasikanWebCryptoAPI, tetapi tidak dapat menggunakan AES-GCM untuk mengenkripsi nol byte,AWS Encryption SDK for JavaScriptmenggunakan library fallback hanya untuk enkripsi zero-byte. MenggunakanWebCryptoAPI untuk semua operasi lainnya.

Untuk mengonfigurasi fallback untuk batasan, tambahkan pernyataan berikut ke kode Anda. DiconfigureFallbackfungsi, tentukan pustaka yang mendukung fitur yang hilang. Contoh berikut menggunakan Microsoft ResearchJavaScriptPerpustakaan Kriptografi (msrcrypto), tetapi Anda dapat menggantinya dengan perpustakaan yang kompatibel. Untuk contoh lengkap, lihatfallback.ts.

import { configureFallback } from '@aws-crypto/client-browser' configureFallback(msrCrypto)