AWS Encryption SDK for JavaScript 호환성 - AWS Encryption SDK

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS Encryption SDK for JavaScript 호환성

AWS Encryption SDK for JavaScript는 AWS Encryption SDK의 다른 언어 구현과 상호 연동되도록 설계되었습니다. 대부분의 경우 AWS Encryption SDK for JavaScript를 사용하여 데이터를 암호화하고 AWS Encryption SDK 명령줄 인터페이스를 비롯한 다른 언어 구현으로 복호화할 수 있습니다. 또한 AWS Encryption SDK for JavaScript를 사용하여 AWS Encryption SDK의 다른 언어 구현에서 생성된 암호화된 메시지를 복호화할 수 있습니다.

그러나 AWS Encryption SDK for JavaScript를 사용할 때는 JavaScript 언어 구현 및 웹 브라우저에서 일부 호환성 문제를 알고 있어야 합니다.

또한 다른 언어 구현을 사용할 때는 호환 가능한 마스터 키 공급자, 마스터 키 및 키링을 구성해야 합니다. 자세한 내용은 키링 호환성 섹션을 참조하세요.

AWS Encryption SDK for JavaScript 호환성

AWS Encryption SDK의 JavaScript 구현은 다음과 같은 점에서 다른 언어 구현과 다릅니다.

  • AWS Encryption SDK for JavaScript의 암호화 작업은 프레임 처리되지 않은 사이퍼텍스트를 반환하지 않습니다. 그러나 AWS Encryption SDK for JavaScript에서는 AWS Encryption SDK의 다른 언어 구현에서 반환한 프레임 처리되거나 되지 않은 사이퍼텍스트를 복호화합니다.

  • Node.js 버전 12.9.0 이상 Node.js는 다음 RSA 키 래핑 옵션을 지원합니다.

    • OAEP와 SHA1, SHA256, SHA384 또는 SHA512

    • OAEP와 SHA1 및 MGF1과 SHA1

    • PKCS1v15

  • 버전 12.9.0 이전의 Node.js는 다음 RSA 키 래핑 옵션만 지원합니다.

    • OAEP와 SHA1 및 MGF1과 SHA1

    • PKCS1v15

브라우저 호환성

일부 웹 브라우저는 AWS Encryption SDK for JavaScript에 필요한 기본 암호화 작업을 지원하지 않습니다. 브라우저에서 구현하는 WebCrypto API에 대한 폴백을 구성하여 일부 누락된 작업을 보완할 수 있습니다.

웹 브라우저 제한 사항

다음 제한 사항은 모든 웹 브라우저에 공통적으로 적용됩니다.

  • WebCrypto API는 PKCS1v15 키 래핑을 지원하지 않습니다.

  • 브라우저는 192비트 키를 지원하지 않습니다.

필요한 암호화 작업

AWS Encryption SDK for JavaScript를 사용하려면 웹 브라우저에서 다음 작업이 필요합니다. 브라우저가 이러한 작업을 지원하지 않는 경우, AWS Encryption SDK for JavaScript와 호환되지 않습니다.

  • 브라우저는 암호화 방식으로 임의의 값을 생성하는 메서드인 crypto.getRandomValues()를 포함해야 합니다. crypto.getRandomValues()를 지원하는 웹 브라우저 버전에 대한 자세한 내용은 crypto.getRandomValues()를 사용할 수 있나요?를 참조하세요.

필요한 폴백

AWS Encryption SDK for JavaScript를 사용하려면 웹 브라우저에서 다음 라이브러리 및 작업이 필요합니다. 이러한 요구 사항을 충족하지 않는 웹 브라우저를 지원하는 경우 폴백을 구성해야 합니다. 그러지 않으면 브라우저에서 AWS Encryption SDK for JavaScript 사용을 시도할 수 없습니다.

  • 웹 애플리케이션에서 기본 암호화 작업을 수행하는 WebCrypto API는 일부 브라우저에서 사용할 수 없습니다. 웹 암호화를 지원하는 웹 브라우저 버전에 대한 자세한 내용은 웹 암호화를 사용할 수 있나요?를 참조하세요.

  • 최신 버전의 Safari 웹 브라우저는 AWS Encryption SDK에 필요한 0바이트의 AES-GCM 암호화를 지원하지 않습니다. 브라우저가 WebCrypto API를 구현하지만 AES-GCM을 사용하여 0바이트를 암호화할 수 없는 경우 AWS Encryption SDK for JavaScript는 0바이트 암호화에만 폴백 라이브러리를 사용합니다. 다른 모든 작업에는 WebCrypto API를 사용합니다.

두 가지 중 한 제한 사항에 폴백을 구성하려면 코드에 다음 문을 추가합니다. configureFallback 함수에서 누락된 기능을 지원하는 라이브러리를 지정합니다. 다음 예제는 Microsoft Research JavaScript 암호화 라이브러리(msrcrypto)를 사용하지만 호환 가능한 라이브러리로 바꿀 수 있습니다. 전체 예제는 fallback.ts를 참조하세요.

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