Clean Rooms에 대한 암호화 컴퓨팅 사용 시 고려 사항 - AWS Clean Rooms

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

Clean Rooms에 대한 암호화 컴퓨팅 사용 시 고려 사항

Clean Rooms에 대한 암호화 컴퓨팅(C3R)은 데이터 보호를 극대화하기 위한 것입니다. 그러나 일부 사용 사례에서는 추가 기능을 제공하는 대신 낮은 수준의 데이터 보호를 통해 혜택을 받을 수 있습니다. 가장 안전한 구성에서 C3R을 수정하여 이러한 특정 절충안을 만들 수 있습니다. 고객은 이러한 장단점을 인지하고 사용 사례에 적합한지 판단해야 합니다. 고려해야 할 중요한 요소는 다음과 같습니다.

이들 파라미터를 설정하는 방법에 대한 자세한 내용은 암호화 컴퓨팅 파라미터 섹션을 참조하세요.

테이블에 혼합 cleartext 및 암호화된 데이터 허용

모든 데이터를 클라이언트 측에서 암호화하면 데이터 보호를 극대화할 수 있습니다. 하지만 이렇게 하면 특정 종류의 쿼리(예: SUM 집계 함수)가 제한됩니다. cleartext 데이터를 허용할 경우 암호화된 테이블에 액세스할 수 있는 모든 사용자가 암호화된 값에 대한 일부 정보를 유추할 수 있다는 위험이 있습니다. 이는 cleartext 및 관련 데이터에 대한 통계 분석을 수행하여 수행할 수 있습니다.

예를 들어, CityState의 열이 있다고 가정해 보겠습니다. City 열은 cleartext이고 State 열은 암호화되어 있습니다. City 열에 Chicago라는 값이 표시되면 StateIllinois일 확률이 높다는 것을 알 수 있습니다. 반대로, 한 열이 City이고 다른 열이 EmailAddress인 경우 cleartext City는 암호화된 EmailAddress에 대해 아무 것도 드러내지 않을 것입니다.

이 창의 파라미터에 대한 자세한 내용은 cleartext 열 허용 매개 변수 섹션을 참조하세요.

fingerprint 열에 반복되는 값 허용

가장 안전한 접근 방식을 위해 모든 fingerprint 열에 정확히 하나의 변수 인스턴스가 포함되어 있다고 가정합니다. 하나의 fingerprint 열에서 어떤 항목도 반복할 수 없습니다. C3R 암호화 클라이언트는 이러한 cleartext 값을 임의 값과 구별할 수 없는 고유한 값으로 매핑합니다. 따라서 이러한 임의 값으로는 cleartext에 대한 정보를 유추할 수 없습니다.

하나의 fingerprint 열에 값이 반복되면 값이 반복되어 무작위로 보이는 값이 반복될 위험이 있습니다. 따라서 암호화된 테이블에 액세스할 수 있는 사람은 이론적으로 fingerprint 열에 대한 통계 분석을 수행하여 cleartext 값에 대한 정보를 확인할 수 있습니다.

다시 말하지만, fingerprint 열이 State이고 테이블의 모든 행이 미국 가정에 해당한다고 가정해 보겠습니다. 빈도 분석을 수행하면 어떤 상태가 California이고 어떤 상태가 Wyoming인지 높은 확률로 추론할 수 있습니다. 이러한 추론이 가능한 이유는 California의 거주자 수가 Wyoming보다 많기 때문입니다. 반대로, fingerprint 열이 세대 식별자에 관한 것이고 수백만 개의 항목이 있는 데이터베이스에서 각 가구가 데이터베이스에 1~4번 나타났다고 가정해 보겠습니다. 빈도 분석을 통해 유용한 정보가 나올 가능성은 거의 없습니다.

이 시나리오의 파라미터에 대한 자세한 내용은 중복 매개 변수 허용 섹션을 참조하세요.

fingerprint 열 이름 지정 방법에 대한 제한 완화

기본적으로 암호화된 fingerprint 열을 사용하여 두 테이블을 조인하면 각 테이블에서 해당 열의 이름이 같다고 가정합니다. 이 결과가 나오는 기술적인 이유는 기본적으로 각 fingerprint 열을 암호화하기 위해 서로 다른 암호화 키를 생성하기 때문입니다. 이 키는 공동 작업을 위한 공유 비밀 키와 열 이름의 조합에서 파생됩니다. 열 이름이 다른 두 열을 조인하려고 하면 다른 키가 파생되고 유효한 조인을 계산할 수 없습니다.

이 문제를 해결하려면 각 열 이름에서 키를 추출하는 기능을 끌 수 있습니다. 그러면 C3R 암호화 클라이언트는 모든 fingerprint 열에 단일 파생 키를 사용합니다. 위험은 정보를 드러낼 수 있는 또 다른 종류의 주파수 분석을 수행할 수 있다는 것입니다.

CityState 예제를 다시 사용해봅시다. 열 이름을 포함하지 않고 각 fingerprint 열에 대해 동일한 임의 값을 도출하는 경우 New YorkCityState 열에 동일한 임의 값을 갖습니다. 뉴욕은 미국에서 City 이름과 같은 State 이름을 가진 몇 안 되는 도시 중 하나입니다. 반대로 데이터 세트의 각 열에 있는 값이 완전히 다른 경우에는 정보가 유출되지 않습니다.

이 시나리오의 파라미터에 대한 자세한 내용은 이름이 다른 열의 JOIN 허용 매개변수 섹션을 참조하세요.

NULL 값 표현 방식 결정

사용할 수 있는 옵션은 다른 값과 마찬가지로 NULL 값을 암호화(암호화 및 HMAC)로 처리할지 여부입니다. 다른 값처럼 NULL 값을 처리하지 않으면 정보가 노출될 수 있습니다.

예를 들어, cleartext의 Middle Name 열에 있는 NULL이 중간 이름이 없는 사람을 나타낸다고 가정해 보겠습니다. 이러한 값을 암호화하지 않으면 암호화된 테이블에서 중간 이름이 없는 사람들이 사용한 행이 유출됩니다. 이 정보는 일부 집단의 일부 사람들을 식별하는 신호가 될 수 있습니다. 그러나 NULL 값을 암호적으로 처리하는 경우 특정 SQL 쿼리는 다르게 작동합니다. 예를 들어 GROUP BY 절은 fingerprint 열의 fingerprint NULL 값을 함께 그룹화하지 않습니다.

이 시나리오의 파라미터에 대한 자세한 내용은 NULL 값 보존(매개변수) 섹션을 참조하세요.