[보안뉴스 원병철 기자] K-익명성이란 공개된 정보를 연결해서 민감한 정보를 알아내는 방법(연결 공격 : Linkage Attack)을 막기 위한 프라이버시 보호 모델 중 하나입니다. 연결 공격을 예로 들면, 미국에서 공개되고 있는 주 선거인 명부와 의료 관련 기관에서 공개된 의료 데이터와 비교해서 나이, 거주 지역, 성별과 같은 준식별자를 통해 선거인 명부에 공개된 이름(식별자)과 의료 데이터의 질병명(민감정보)이 연결되어 누가 어떤 질병을 가졌는지 알 수 있었습니다.
K-익명성이란 공개된 데이터 집합에서 나이, 거주 지역과 같은 준식별자 속성값들이 동일한 레코드가 적어도 k개 존재해야 하는 것으로 정의가 되며, 비식별화된 개인정보의 재식별을 방지하기 위하여 K-익명성이 요구되고 있습니다.
[장진섭 한국정보보호심사원협회 이사(goldseed@naver.com)]
개인정보 비식별화란 빅데이터 활용을 위해 개인정보가 포함된 데이터에서 개인정보의 일부 또는 전부를 삭제하거나 대체함으로써 다른 정보와 쉽게 결합해도 특정인을 식별하기 어렵도록 하는 조치를 의미합니다. 개인정보 비식별화 기술수준이란 빅데이터 활용을 위해 개인정보가 포함된 데이터를 비식별하는 ①개인정보 비식별화 기술의 인지여부 ②비식별화 기법의 인지 또는 이용여부 ③프라이버시 모델의 인지 또는 이용여부에 대한 설문자의 기술 이해 및 이용 수준을 의미합니다.
[1레벨] 개인정보 비식별화 및 해당기술을 모르는 상태
[2레벨] 개인정보 비식별화 기술로 전통적인 비식별화 기법(데이터값 삭제, 가명처리, 총계처리, 범주화, 데이터 마스킹 등)을 알거나 이용해본 상태
[3레벨] 프라이버시 모델(k-익명성, l-다양성 등)을 알거나 이용해본 상태
· K-익명성(k-anonymity) : 배포할 데이터 집합에서 준식별자 조합의 동일레코드를 k개 만큼 존재하게 하여 재식별 공격을 방어(L.Sweeney, 2002)
· l-다양성(l-diversity) : 데이터 집합에서 익명화 레코드들은 다른 민감정보(l개)를 가져 동질성 공격을 방어(A.Machanavajjhala, 2006)
(예시) 비식별화 대상이 되는 필드(연령, 주소, 성별, 날짜 등)에 대해 계층형 범주트리 적용, 데이터 일반화, 정보손실 측정 등을 이용하여 비식별화를 적용
[이준택 중앙대학교 교수(joontaiklee@gmail.com)]
비식별화는 일반적으로 활용하는 데이터 중에서 이름, 주민등록번호 등과 같이 개인을 직접 식별할 수 있는 데이터를 다른 코드 값으로 처리하는 등의 조치를 하는 것을 말합니다. 그런데 만약 비식별화 처리를 한 데이터들이 유일한 값을 갖는다면 다른 공개되어 있는 정보 등과 결합하여 해당 데이터에 대한 정보주체가 누구인지 추정하기가 쉬울 수 있습니다. 이를 다른 공개되어 있는 정보 등과 결합하여 개인을 식별하는 연결공격이라고 합니다.
따라서 K-익명성은 비식별화할 때 주어진 데이터 집합에서 같은 값이 적어도 k개 이상 존재하도록 하여 쉽게 다른 정보로 결합할 수 없도록 하는 조치를 말합니다. 예를 들어 아래 표에서 지역코드, 연령이 동일한 사람이 4명이기 때문에, 다른 정보와 결합해서도 해당하는 개인이 누구인지 그 사람이 어떤 질병을 갖고 있는지 구별하기가 어렵습니다.
▲ 표 1. 공개된 자료 데이터
만약 1번 레코드(행)만 존재한다면, 다른 정보를 활용하여 해당 지역에 살고, 연령이 30세 미만인 사람은 그 사람이 누구인지를 알아낼 수도 있고, 그 사람이 갖고 있는 질병(전립선염)도 바로 알아낼 수가 있습니다. 따라서 비식별화 조치하는 데이터는 동일한 값을 갖는 데이터를 k개 이상 같이 만들어 놓는 것이 필요하다는 것입니다.
K-익명성은 데이터에 대한 연결공격 등에 대한 취약점을 방어하기 위해 제안된 프라이버시 보호 모델로 주어진 데이터 집합에서 같은 값을 가지는 레코드가 적어도 k개 이상 존재하도록 하여 특정 개인을 식별할 수 없게 하는 방법입니다.
▲ 표 2. K-익명성 모델에 의해 비식별된 의료 데이터
▲ 표 3. 선거인 명부 데이터
표 2의 의료 데이터의 속성자(지역코드, 연령, 성별)가 ‘데이터 범주화’, ‘데이터 마스킹’과 같은 기법을 이용하여 비식별 조치된 결과가 표 2에서는 1~4, 5~8, 9~12 레코드는 서로 구별되지 않게 처리된 것으로 K-익명성에서 k=4를 만족하는 예라고 설명했습니다. 만약 공격자가 표 2의 비식별된 의료 데이터와 표 3 선거인명부 데이터를 결합해 개인의 민감한 정보(질병정보)를 알아내려고 시도할 경우, 공격자는 정확히 어떤 데이터가 공격 대상인지 알아낼 수 없게 되고, 이 비식별화된 데이터에서 특정 개인을 식별할 확률은 1/4이 됩니다.
즉, 공격자는 표 3의 개인정보와 표 1의 정보를 결합해 김민준이 전립선염임을 알 수 있지만, 표 2에서는 레코드 1~4중 한명으로 정확히 개인을 식별할 수 없어 정확한 질병정보를 알 수 없게 됩니다.
개인정보 비식별화 가이드라인에서는 ‘가명처리’, ‘총계처리’, ‘데이터 삭제’, ‘데이터 범주화’, ‘데이터 마스킹’과 같은 비식별화 기법을 활용하여 개인을 알아볼 수 없도록 비식별 조치한 데이터에 대해 k-익명성을 활용, 비식별 조치 적정성 평가를 하여 적정하다고 판단된 데이터만 활용이 가능하게 명시하고 있습니다.
[김기태 파수닷컴 전략사업본부 부장(kkt7004@fasoo.com)]
K-익명성이란 주어진 데이터 집합에서 준식별자 속성값들이 동일한 레코드가 적어도 K개 존재하도록 하는 연결공격 방어형 프라이버시 보호 모델입니다. 즉, 동일한 값을 가진 레코드를 k개 이상으로 해 특정 개인을 추론하기 어렵도록 하는 것입니다.
[김준환 더보안 대리(jounhwan@theboan.com)]
비식별화는 민감정보 포함하는 빅데이터에 통계적 익명성을 제공하여 개인의 사생활 침해 위험을 줄이고자하는 프라이버시 보호기술입니다. 통계적 익명성을 제공하기 위해서는 우선적으로 데이터에 포함되어 있는 개인 식별자(이름 등)나 준식별자(우편번호 등)를 찾아서 가명처리, 총계처리, 삭제, 범주화, 마스킹 등 다양한 통계적 처리 기법을 적용하여 개인 식별 요소를 제거합니다.
여기서 제거한다는 것은 식별 요소의 값이 갖는 통계적 의미나 특성을 모호하게 만드는 것입니다. 예를 들면, ‘홍길동, 35세, 신성동거주, 한국대 재학’을 ‘***, 30대, 대전시거주, **대학 재학’으로 익명화 처리해 공개하는 것입니다.
그런데 문제는 이렇게 비식별화해서 공개했음에도 불구하고 외부에 공개된 다른 데이터들과 결합하여 개인 실명을 유추하는 재식별 공격 사고 사례(예: Netflix, AOL 등)가 존재한다는데 그 한계가 있습니다.
따라서 이러한 환경에서 재식별 위험을 줄이는 방법으로 K-익명화 방식이 제안되었습니다. 여기서 ‘K’의 의미는 동일한 값으로 비식별화된 개인 식별 데이터 레코드의 수가 K개가 되도록 익명화한다는 것을 의미합니다. K-익명화 방법에서 K가 1인 경우, 즉 1-익명화는 그냥 데이터로부터 민감정보만을 비식별화해 공개하는 것과 같습니다.
반면에 K-익명화는 동일하게 비식별화된 데이터 레코드 수가 K개 존재하는 조건에서만 공개됩니다. 이렇게 함으로써 익명화 효과를 K배로 높이거나 재식별 위험성을 K배 수준으로 낮추는 효과를 기대하게 됩니다.
마지막으로 익명화 성능관점에서 살펴보면, K-익명성 문제는 크기가 매우 큰 N개의 빅데이터에서 데이터를 K개로 분할(클러스터링)하는 최적화 문제로 볼 수 있습니다. 레코드 크기 N이 가변적이고, 개인 식별 요소가 다차원인 빅데이터 환경에서 최적의 K-익명화 솔루션을 찾는 문제는 풀기 쉽지 않으나 연구대상입니다.
[정병호 한국전자통신연구원(cbh@etri.re.kr)]
K-익명성(K-Anonymity)의 K는 익명성의 수준을 의미하는 계수이며, K-익명성은 K의 수치만큼 익명성을 가진다는 의미입니다. 즉, 데이터 집합에서 구별되지 않은 레코드가 최소 K개 이상 있어야 익명성이 보장된다는 의미입니다.
[김세정 이지서티 선임연구원/김가영 이지서티 전임연구원]
[원병철 기자(boanone@boannews.com)]
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>