적용 계층 암호화

Chargeback Alert API는 적용 계층 암호화를 위해 PGP 또는 JWE를 지원합니다.

PGP 암호화

PGP는 암호화 개인정보 보호 및 인증을 제공하는 표준 암호화, 복호화, 서명 알고리즘 집합입니다.

PGP를 사용하여 페이로드를 암호화할 때 파트너는 다음을 지원해야 합니다.

  • 여러 PGP 키를 사용하여 페이로드 암호화 및 복호화
  • 여러 PGP 키로 페이로드 서명
  • 여러 서명으로 페이로드 확인. Google에서 제공하는 키를 사용한 서명도 가능합니다.
  • 웹 보안 base64로 인코딩된 페이로드 복호화

Google에 제공하는 PGP 공개 키에는 암호화에 사용되는 하위 키가 있어야 합니다. 하위 키를 사용하면 마스터 키와 독립적으로 순환할 수 있습니다. 마스터 키는 ID 확인에 사용됩니다. 비공개 키는 1년 이내에 만료되며 최대 수명이 2년인 2,048비트(또는 그 이상) RSA 키여야 합니다.

개발을 시작하기 전에 PGP 키를 Google과 교환해야 합니다. 이 단계에서는 PGP 공개 키/비공개 키 쌍을 생성하고, Google에 공개 키를 제공하고, Google에서 공개 키를 다시 수신합니다. 개발 중에는 프로덕션 외부에서 개발 및 테스트에 사용되는 샌드박스 키만 교환하면 됩니다. 프로덕션 테스트 및 출시 전에 프로덕션 키 교환을 한 번 더 수행해야 합니다.

새 PGP 키 생성

시스템 경로에 GPG 바이너리가 있다고 가정하고 다음 POSIX 명령어를 사용하여 새 키 쌍을 만들 수 있습니다.

$ gpg --full-generate-key

메시지가 표시되면 2048비트 이상의 엔트로피와 1-2년의 만료 시간이 있는 RSA 키를 선택합니다. 이 명령어는 마스터 키 ('S'igning and 'C'ertificate generation을 의미하는 SC라는 라벨이 지정됨) 및 하위 키 ('E'ncryption을 의미하는 E라는 라벨이 지정됨)를 생성합니다.

JWE 암호화

JSON 웹 암호화(JWE)는 애플리케이션 수준에서 콘텐츠를 암호화하기 위해 rfc7516으로 정의된 표준입니다.

JWE를 사용하여 페이로드를 암호화할 때 파트너는 다음 옵션을 지원해야 합니다.

  • 여러 JWE 키 중 하나에서 페이로드 복호화
  • 압축 직렬화
  • JWE 압축(예: zip='DEF')
  • 키 관리를 위한 RSAES-PKCS1-V1_5 알고리즘입니다.
  • 콘텐츠 암호화를 위한 AES-CBC + HMAC-SHA2 알고리즘입니다.

비공개 키는 1년 이내에 만료되며 최대 수명이 2년인 RSA 키여야 합니다. 모든 비공개 키 ID는 항상 파트너의 서버에 있어야 하며 모든 서명 값은 파트너의 서버에서 계산되어야 합니다.

클라이언트와 서버는 JSON 웹 암호화(JWE) 사양에 따라 JSON 본문을 암호화합니다. POST 또는 응답의 전체 본문은 JWE의 '압축 직렬화' 옵션을 사용하는 JWE 토큰입니다.

개발을 시작하기 전에 JWE 키를 Google과 교환해야 합니다. 이 단계에서는 공개 키/비공개 키 쌍을 생성하고, Google에 공개 키를 제공하고, Google에서 공개 키를 다시 수신합니다. 개발 중에는 프로덕션 외부에서 개발 및 테스트에 사용되는 샌드박스 키만 교환하면 됩니다. 프로덕션 테스트 및 출시 전에 프로덕션 키 교환을 한 번 더 수행해야 합니다.

파트너는 JWE 압축(예: zip='DEF')을 사용하여 메시지 주고받기를 지원해야 합니다. 요청 및 응답은 상호 교환한 JWE 키를 사용하여 비대칭(공개 키) 암호화를 사용하여 암호화됩니다. 또한 암호화 전에 콘텐츠를 서명하고 복호화 후에 확인하는 JWE와 함께 JWS 서명 인증을 사용할 수 있습니다. JWS는 또한 비대칭 키(서명에는 비공개 키, 확인을 위해서는 공개 키)를 사용합니다.