비컨 길이 선택 - AWS 데이터베이스 암호화 SDK

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

비컨 길이 선택

클라이언트 측 암호화 라이브러리의 이름이 AWS Database Encryption SDK로 변경되었습니다. 이 개발자 안내서는 여전히 DynamoDB Encryption Client에 대한 정보를 제공합니다.

검색 가능한 암호화를 위해 구성된 암호화된 필드에 새 값을 쓰면 AWS Database Encryption SDK는 일반 텍스트 값에 대해 HMAC를 계산합니다. 이 HMAC 출력은 해당 필드의 일반 텍스트 값과 일대일(1:1) 일치합니다. 여러 개의 고유한 일반 텍스트 값이 잘린 동일한 HMAC 태그에 매핑되도록 HMAC 출력이 잘립니다. 이러한 충돌 또는 오탐은 일반 텍스트 값에 대한 구별 정보를 식별하는 권한이 없는 사용자의 능력을 제한합니다.

각 비컨에 대해 생성된 평균 오탐 수는 잘린 후 남은 비컨 길이에 따라 결정됩니다. 표준 비컨을 구성할 때 비컨 길이만 정의하면 됩니다. 복합 비컨은 구성된 표준 비컨의 비컨 길이를 사용합니다.

비컨은 필드의 암호화된 상태를 변경하지 않습니다. 그러나 비컨을 사용할 때 쿼리의 효율성과 데이터 분포에 대해 공개되는 정보의 양 사이에는 본질적인 균형이 있습니다.

검색 가능한 암호화의 목표는 비컨을 사용하여 암호화된 데이터에 대한 쿼리를 수행함으로써 클라이언트 측 암호화된 데이터베이스와 관련된 성능 비용을 줄이는 것입니다. 비컨은 비컨이 계산되는 암호화된 필드와 함께 저장됩니다. 이는 데이터 세트의 분포에 대한 구별되는 정보를 공개할 수 있음을 의미합니다. 극단적인 경우 권한이 없는 사용자가 배포에 대해 공개된 정보를 분석하고 이를 사용하여 필드의 일반 텍스트 값을 식별할 수 있습니다. 올바른 비컨 길이를 선택하면 이러한 위험을 완화하고 배포의 기밀성을 유지하는 데 도움이 될 수 있습니다.

위협 모델을 검토하여 필요한 보안 수준을 결정합니다. 예를 들어, 데이터베이스에 액세스할 수 있지만 일반 텍스트 데이터에 액세스할 수 없는 개인이 많을수록 데이터 세트 배포의 기밀성을 더 많이 보호해야 할 수 있습니다. 기밀성을 높이려면 비컨이 더 많은 오탐을 생성해야 합니다. 기밀성이 높아지면 쿼리 성능이 저하됩니다.

보안과 성능 비교
  • 비컨 길이가 너무 길면 오탐이 너무 적어 데이터 세트 분포에 대한 구별 정보가 공개될 수 있습니다.

  • 비컨 길이가 너무 짧으면 오탐이 너무 많이 발생하고 데이터베이스를 더 광범위하게 검색해야 하므로 쿼리 성능 비용이 증가합니다.

솔루션에 적합한 비컨 길이를 결정할 때 꼭 필요한 것 이상으로 쿼리 성능에 영향을 주지 않고 데이터 보안을 적절하게 유지하는 길이를 찾아야 합니다. 비컨에 의해 유지되는 보안 수준은 데이터 세트의 분포와 비컨이 구성된 필드의 상관 관계에 따라 달라집니다. 다음 주제에서는 비컨이 균일하게 분포되어 있고 상관된 데이터를 포함하지 않는다고 가정합니다.

비컨 길이 계산

비컨 길이는 비트 단위로 정의되며 잘린 후에도 유지되는 HMAC 태그의 비트 수를 나타냅니다. 권장되는 비컨 길이는 데이터 세트 분포, 상관 값의 존재, 특정 보안 및 성능 요구 사항에 따라 다릅니다. 데이터 세트가 균일하게 분포된 경우 다음 방정식과 절차를 사용하여 구현에 가장 적합한 비컨 길이를 식별하는 데 도움이 될 수 있습니다. 이러한 방정식은 비컨이 생성할 평균 오탐 수만 추정할 뿐 데이터 세트의 모든 고유 값이 특정 개수의 오탐을 생성한다고 보장하지는 않습니다.

참고

이러한 방정식의 효율성은 데이터 세트의 분포에 따라 달라집니다. 데이터세트가 균일하게 분포되지 않은 경우 비컨이 내 데이터 세트에 적합한가? 섹션을 참조하세요.

일반적으로 데이터 세트가 균일한 분포에서 멀어질수록 비컨 길이를 더 줄여야 합니다.

  1. 모집단 추정

    모집단은 표준 비컨을 구성하는 필드의 예상 고유 값 수이며, 필드에 저장된 총 예상 값 수가 아닙니다. 예를 들어 직원 회의 위치를 식별하는 암호화된 Room 필드를 고려하세요. Room 필드에는 총 100,000개의 값이 저장될 것으로 예상되지만 직원이 회의를 위해 예약할 수 있는 공간은 50개뿐입니다. 즉, Room 필드에 저장할 수 있는 고유 값은 50개뿐이므로 모집단은 50개입니다.

    참고

    표준 비컨이 가상 필드에서 구성된 경우 비컨 길이를 계산하는 데 사용되는 인구는 가상 필드에서 생성된 고유 조합의 수입니다.

    모집단을 추정할 때 데이터 세트의 예상 증가를 고려해야 합니다. 비컨으로 새 레코드를 작성한 후에는 비컨 길이를 업데이트할 수 없습니다. 위협 모델과 기존 데이터베이스 솔루션을 검토하여 향후 5년 동안 이 필드에 저장할 것으로 예상되는 고유 값의 수에 대한 추정치를 생성합니다.

    모집단은 정확할 필요는 없습니다. 먼저, 현재 데이터베이스의 고유 값 수를 식별하거나 첫 해에 저장할 것으로 예상되는 고유 값 수를 추정합니다. 다음으로, 다음 질문을 사용하여 향후 5년 동안 고유한 가치의 예상 성장을 결정하는 데 도움을 받으세요.

    • 고유한 값에 10이 곱해질 것이라고 예상하시나요?

    • 고유한 값에 100이 곱해질 것이라고 예상하시나요?

    • 고유한 값에 1000이 곱해질 것이라고 예상하시나요?

    50,000개와 60,000개의 고유 값 사이의 차이는 중요하지 않으며 둘 다 동일한 권장 비컨 길이가 됩니다. 그러나 50,000과 500,000의 고유 값 사이의 차이는 권장 비컨 길이에 큰 영향을 미칩니다.

    우편번호나 성 등 일반적인 데이터 유형의 빈도에 대한 공개 데이터를 검토하는 것이 좋습니다. 예를 들어, 미국에는 41,707개의 우편번호가 있습니다. 사용하는 모집단은 자신의 데이터베이스에 비례해야 합니다. 데이터베이스의 ZIPCode 필드에 미국 전역의 데이터가 포함되어 있는 경우 ZIPCode 필드에 현재 41,707개의 고유 값이 없더라도 모집단을 41,707로 정의할 수 있습니다. 데이터베이스의 ZIPCode 필드에 단일 주의 데이터만 포함되고 향후에도 단일 주의 데이터만을 포함하는 경우 모집단을 41,704가 아닌 해당 주의 총 우편 번호 수로 정의할 수 있습니다.

  2. 예상 충돌 횟수에 대한 권장 범위 계산

    특정 필드에 대한 적절한 비컨 길이를 결정하려면 먼저 예상되는 충돌 횟수에 대한 적절한 범위를 식별해야 합니다. 예상 충돌 수는 특정 HMAC 태그에 매핑되는 고유 일반 텍스트 값의 평균 예상 수를 나타냅니다. 하나의 고유한 일반 텍스트 값에 대해 예상되는 오탐 수는 예상되는 충돌 수보다 1이 적습니다.

    예상되는 충돌 횟수는 2보다 크거나 같고 인구의 제곱근보다 작은 것이 좋습니다. 다음 방정식은 모집단에 16개 이상의 고유 값이 있는 경우에만 작동합니다.

    2 ≤ number of collisions < √(Population)

    충돌 횟수가 2회 미만이면 비컨은 너무 적은 양의 오탐을 생성합니다. 평균적으로 필드의 모든 고유 값이 하나의 다른 고유 값에 매핑되어 최소한 하나의 오탐을 생성한다는 의미이므로 예상되는 최소 충돌 수로 2를 권장합니다.

  3. 비컨 길이에 대한 권장 범위 계산

    예상되는 충돌의 최소 및 최대 횟수를 식별한 후 다음 방정식을 사용하여 적절한 비컨 길이의 범위를 식별합니다.

    number of collisions = Population * 2-(beacon length)

    먼저, 예상 충돌 횟수가 2(예상 충돌의 최소 권장 횟수)인 비컨 길이를 구합니다.

    2 = Population * 2-(beacon length)

    그런 다음 예상되는 충돌 횟수가 모집단의 제곱근(예상되는 최대 권장 충돌 횟수)과 동일한 비컨 길이를 구합니다.

    √(Population) = Population * 2-(beacon length)

    이 방정식으로 생성된 출력을 더 짧은 비컨 길이로 반내림하는 것이 좋습니다. 예를 들어 방정식이 15.6의 비컨 길이를 생성하는 경우 해당 값을 16비트로 반올림하는 대신 15비트로 반내림하는 것이 좋습니다.

  4. 비컨 길이 선택

    이 방정식은 해당 분야에 권장되는 비컨 길이 범위만 식별합니다. 가능하면 데이터 세트의 보안을 유지하기 위해 더 짧은 비컨 길이를 사용하는 것이 좋습니다. 그러나 실제로 사용하는 비컨 길이는 위협 모델에 따라 결정됩니다. 해당 분야에 가장 적합한 비컨 길이를 결정하기 위해 위협 모델을 검토할 때 성능 요구 사항을 고려하세요.

    더 짧은 비컨 길이를 사용하면 쿼리 성능이 저하되고, 더 긴 비컨 길이를 사용하면 보안이 저하됩니다. 일반적으로 데이터 세트가 고르지 않게 분포되어 있거나 상관된 필드에서 별도의 비컨을 구성하는 경우 더 짧은 비컨 길이를 사용하여 데이터 세트 분포에 대해 공개되는 정보의 양을 최소화해야 합니다.

    위협 모델을 검토하고 필드 분포에 대해 밝혀진 구별 정보가 전체 보안에 위협이 되지 않는다고 판단하는 경우 계산한 권장 범위보다 긴 비컨 길이를 사용하도록 선택할 수 있습니다. 예를 들어, 필드에 대한 권장 비컨 길이 범위를 9~16비트로 계산한 경우 성능 손실을 방지하기 위해 24비트의 비컨 길이를 사용하도록 선택할 수 있습니다.

    비컨 길이를 신중하게 선택하세요. 비컨으로 새 레코드를 작성한 후에는 비컨 길이를 업데이트할 수 없습니다.

unit 필드를 암호화 작업ENCRYPT_AND_SIGN로 표시한 데이터베이스를 고려하세요. unit 필드에 대한 표준 비컨을 구성하려면 unit 필드에 대한 예상 오탐 수와 비컨 길이를 결정해야 합니다.

  1. 모집단 추정

    위협 모델과 현재 데이터베이스 솔루션을 검토한 결과 unit 필드는 결국 100,000개의 고유 값을 갖게 될 것으로 예상됩니다.

    이는 모집단 = 100,000을 의미합니다.

  2. 예상 충돌 횟수에 대한 권장 범위 계산.

    이 예제에서 예상되는 충돌 횟수는 2~316 사이여야 합니다.

    2 ≤ number of collisions < √(Population)
    1. 2 ≤ number of collisions < √(100,000)
    2. 2 ≤ number of collisions < 316
  3. 비컨 길이에 대한 권장 범위를 계산합니다.

    이 예제에서 비컨 길이는 9~16비트 사이여야 합니다.

    number of collisions = Population * 2-(beacon length)
    1. 예상되는 충돌 횟수가 2단계에서 식별된 최소 횟수와 동일한 비컨 길이를 계산합니다.

      2 = 100,000 * 2-(beacon length)

      비컨 길이 = 15.6 또는 15비트

    2. 예상되는 충돌 횟수가 2단계에서 식별된 최대 횟수와 동일한 비컨 길이를 계산합니다.

      316 = 100,000 * 2-(beacon length)

      비컨 길이 = 8.3 또는 8비트

  4. 보안 및 성능 요구 사항에 적합한 비컨 길이를 결정합니다.

    15개 미만의 비트마다 성능 비용과 보안이 두 배로 늘어납니다.

    • 16비트

      • 평균적으로 각 고유 값은 1.5개의 다른 단위에 매핑됩니다.

      • 보안: 잘린 HMAC 태그가 동일한 두 레코드는 동일한 일반 텍스트 값을 가질 가능성이 66%입니다.

      • 성능: 쿼리는 실제로 요청한 레코드 10개마다 레코드 15개를 검색합니다.

    • 14비트

      • 평균적으로 각 고유 값은 6.1개의 다른 단위에 매핑됩니다.

      • 보안: 잘린 HMAC 태그가 동일한 두 레코드는 동일한 일반 텍스트 값을 가질 가능성이 33%입니다.

      • 성능: 쿼리는 실제로 요청한 레코드 30개마다 레코드 10개를 검색합니다.