사태 개요
SKT 부사장은 "네트워크 쪽은 암호화돼 있지 않은 부분이 많다"며 "데이터 인증을 할 때는 암호화를 하지만, 데이터로 저장된 상태에서는 암호화를 하지 않고 있다"고 2025년 4월 30일 국회 청문회에서 밝히며, SK텔레콤이 유심(USIM) 정보를 암호화하지 않은 상태로 관리했던 사실이 확인되었습니다. 따라서, 민감 정보들이 암호화가 되어있지 않은채 외부에 노출된 상황입니다.
개인정보의 데이터베이스 수준 암호화가 중요한 이유
휴대전화 가입자 정보 등 개인정보는 서비스 이용자의 디지털 신원증명 역할을 하는 민감한 정보입니다. 이러한 정보가 암호화되지 않은 상태로 저장되면 다음과 같은 위험이 발생할 수 있습니다:
- 개인 식별 정보 노출: 사용자를 특정할 수 있는 정보로, 개인정보 유출로 이어질 수 있습니다.
- 통신 도청 및 복제 위험: 인증키가 유출되면 통신 도청이나 유심 복제 등의 2차 피해가 발생할 수 있습니다.
- 법적 책임 발생: 개인정보 보호법 제29조는 개인정보처리자에게 분실, 도난, 유출, 위조, 변조, 훼손 등을 방지하기 위한 기술적, 관리적, 물리적 조치를 취할 것을 명시하고 있습니다. 물론, 개인정보 보호법 상 개인정보에 해당하는지 여부에 대해서는 다툼의 여지가 있지만, 광의적인 의미에서의 개인정보에는 포함된다는 여러 전문가의 의견이 있습니다.
AgensSQL의 TDE(Transparent Data Encryption)를 통한 해결책
AgensSQL은 Transparent Data Encryption(TDE) 기능을 통해 데이터베이스 수준에서 강력한 암호화 솔루션을 제공합니다. TDE는 사용자 데이터를 투명하게 암호화하여 저장함으로써, 데이터 파일이 유출되더라도 내용을 확인할 수 없게 만듭니다.
AgensSQL TDE의 주요 특징
- 포괄적인 암호화 범위: TDE는 테이블, 시퀀스, 인덱스, TOAST 테이블, 시스템 카탈로그를 포함한 데이터 파일과 WAL(Write-Ahead Log), 그리고 다양한 임시 파일을 암호화합니다.
- 강력한 암호화 알고리즘: TDE는 데이터 파일에 AES-128-XTS, WAL에 AES-128-CTR, 임시 파일에 AES-128-XTS 또는 AES-128-CBC 암호화 알고리즘을 사용합니다.
- 사용자 투명성: 암호화는 사용자에게 투명하게 이루어지므로 애플리케이션 코드 변경이나 클라이언트 드라이버 업데이트가 필요 없습니다.
- 백업 및 복제 보호: TDE를 사용하면 기본 백업이 자동으로 암호화되며, WAL 파일이나 스트리밍 복제를 통해 가져온 데이터도 암호화됩니다.
암호화된 데이터의 안전한 저장 방식
AgensSQL의 TDE는 데이터를 암호화된 상태로 디스크에 저장합니다. 예를 들어, 'abc', '123' 값을 가진 테이블 데이터가 암호화되면, 일반 텍스트 검색으로는 해당 데이터를 찾을 수 없으며, 파일을 직접 들여다봐도 암호화된 데이터만 볼 수 있습니다.
$ hexdump -C 16416 | grep abc
$
$ hexdump -C 16416 | tail -5
00001fc0 c8 0f 1d c8 9a 63 3d dc 7d 4e 68 98 b8 f2 5e 0a |.....c=.}Nh...^.|
00001fd0 9a eb 20 1d 59 ad be 94 6e fd d5 6e ed 0a 72 8c |.. .Y...n..n..r.|
00001fe0 7b 14 7f de 5b 63 e3 84 ba 6c e7 b0 a3 86 aa b9 |{...[c...l......|
00001ff0 fe 4f 07 50 06 b7 ef 6a cd f9 84 96 b2 4b 25 12 |.O.P...j.....K%.|
00002000
데이터 암호화 키 보안
AgensSQL TDE는 데이터 암호화 키를 안전하게 보호하기 위한 여러 메커니즘을 제공합니다. 기본적으로 암호화 키는 데이터 디렉토리 내 pg_encryption/key.bin 파일에 저장되지만, 이 키를 추가로 보호하기 위한 방법을 제공합니다:
패스프레이즈 사용(예시):
export PGDATAKEYWRAPCMD='openssl enc -e -aes-128-cbc -pbkdf2 -out "%p"'
export PGDATAKEYUNWRAPCMD='openssl enc -d -aes-128-cbc -pbkdf2 -in "%p"'
클라우드 키 관리 서비스 연동(예시):
# AWS KMS 예시
export PGDATAKEYWRAPCMD='aws kms encrypt --key-id alias/tde-master --plaintext fileb:///dev/stdin --output text --query CiphertextBlob | base64 -d > "%p"'
export PGDATAKEYUNWRAPCMD='aws kms decrypt --ciphertext-blob fileb://"%p" --output text --query Plaintext | base64 -d'
Application Level과 DBMS Level에서의 보안 및 암호화 적용 방안
Application Level 암호화(Agenscrypto)
애플리케이션 레벨에서는 pgcrypto 확장 모듈을 활용하여 컬럼 단위 암호화를 구현할 수 있습니다:
구현 방안:
- 민감 데이터(IMSI, Ki 등)를 저장하기 전 애플리케이션에서 암호화
- AES-256과 같은 강력한 암호화 알고리즘 사용
- 안전한 키 관리 시스템 구축(HSM 활용 가능)
- 암호화된 필드에 대한 검색이 필요한 경우 토큰화 또는 검색 가능 암호화 기법 적용
-- 확장 모듈 설치
CREATE EXTENSION pgcrypto;
-- 암호화된 데이터 저장 예시
INSERT INTO usim_data (subscriber_id, imsi_encrypted, ki_encrypted)
VALUES (
'고객ID',
pgp_sym_encrypt('123456789012345', '암호화키', 'cipher-algo=aes256'),
pgp_sym_encrypt('a1b2c3d4e5f6g7h8', '암호화키', 'cipher-algo=aes256')
);
-- 복호화 예시
SELECT
subscriber_id,
pgp_sym_decrypt(imsi_encrypted, '암호화키') AS imsi,
pgp_sym_decrypt(ki_encrypted, '암호화키') AS ki
FROM usim_data
WHERE subscriber_id = '고객ID';
장점 |
|
단점 |
|
DBMS Level 암호화 (AgensSQL TDE)
DBMS 레벨에서는 TDE를 활성화하여 전체 데이터베이스를 투명하게 암호화합니다:
구현 방안:
- initdb 명령어를 통해 TDE 활성화
- 환경 변수를 통한 키 랩핑/언랩핑 명령 설정
- postgresql.conf 파일에서 암호화 키 관련 파라미터 설정
# TDE 활성화 및 키 관리 설정
initdb -D /path/to/data --data-encryption \
--key-wrap-command='openssl enc -e -aes-256-cbc -pbkdf2 -iter 10000 -salt -out "%p"' \
--key-unwrap-command='openssl enc -d -aes-256-cbc -pbkdf2 -iter 10000 -salt -in "%p"'
# postgresql.conf에 키 언랩 명령 설정 확인
grep data_encryption_key_unwrap_command /path/to/data/postgresql.conf
장점
- 애플리케이션 코드 수정 불필요
- 사용자에게 투명한 암호화 제공
- 데이터베이스 백업 및 WAL 파일도 자동 암호화
- 쿼리 성능에 미치는 영향 최소화
단점
- 데이터베이스 관리자가 암호화된 데이터에 접근 가능
- 데이터베이스 자체가 침해되면 보호 효과 약화
- 특정 메타데이터는 암호화되지 않음
SKT 사례에 적용할 경우 이점
SK텔레콤과 같은 대규모 통신사가 AgensSQL TDE와 애플리케이션 레벨 암호화를 결합한 다층 보안 아키텍처를 구현했다면 다음과 같은 효과를 기대할 수 있었을 것입니다:
- 데이터 유출 위험 최소화: 외부 공격자가 서버에 침투하더라도 데이터베이스 파일은 암호화되어 있어 유의미한 정보를 추출할 수 없었을 것입니다.
- 다층적 보안: 애플리케이션 레벨과 DBMS 레벨 암호화를 동시에 적용함으로써 단일 계층의 취약점을 보완하는 심층 방어 전략을 구현할 수 있었을 것입니다.
- 규제 준수: 개인정보 보호법 제29조의 안전성 확보조치 요구사항을 충족하여 법적 책임을 줄이고 정보주체의 권리를 보호할 수 있었을 것입니다.
- 키 관리 강화: 외부 키 관리 서비스(AWS KMS 등)와의 통합을 통해 암호화 키를 안전하게 관리하고 주기적인 키 로테이션을 자동화할 수 있었을 것입니다.
- 감사 및 모니터링: 비정상적인 데이터 접근 패턴을 실시간으로 모니터링하고 대응함으로써 내부자 위협과 외부 공격을 조기에 탐지할 수 있었을 것입니다.
- 비즈니스 연속성: 강력한 암호화와 재해 복구 계획을 통해 서비스 중단과 데이터 손실 위험을 최소화할 수 있었을 것입니다.
AgensSQL TDE는 데이터베이스 수준의 암호화를 애플리케이션 변경 없이 구현할 수 있는 효과적인 솔루션으로, 특히 기존 대규모 시스템의 보안 강화에 적합합니다.
결론
USIM 정보와 같은 민감한 개인정보는 법적 의무 여부를 떠나 기본적인 보안 엔지니어링 원칙에 따라 반드시 암호화되어야 합니다. AgensSQL의 TDE는 애플리케이션 변경 없이 데이터베이스 수준에서 강력한 암호화를 제공하여 이러한 요구사항을 충족시킬 수 있는 효과적인 솔루션입니다.
통신사와 같이 대규모 개인정보를 처리하는 기업은 Application Level과 DBMS Level의 암호화를 적절히 조합하여 다층적 보안 체계를 구축하는 것이 중요합니다. 이를 통해 내부자 위협과 외부 해킹 모두에 효과적으로 대응할 수 있습니다.
출처:
- AgensSQL - TDE 메뉴얼 및 기술자료
- Agenscrypto 메뉴얼
- SKT, 유심 정보 '암호화' 미비…'유심 해킹 피해 귀책사유' 될까 (뉴스핌, 2025.05.08)
https://www.newspim.com/news/view/20250507000964
'RESEARCH & REPORT > IT 트렌드' 카테고리의 다른 글
[이슈분석]AgensSQL 보안 기능 심층 분석: 암호화, 감사, 관리 요소를 중심으로 (0) | 2025.05.20 |
---|---|
[기술 보고서]팔란티어 AIP 분석 보고서 (0) | 2025.04.25 |
관세청, 정보화 기술개발에 100억 투입…관세행정 혁신 이끈다 (0) | 2020.12.03 |
코로나19가 우리 삶에 가져온 변화, ‘언택트’와 ‘온택트’ (0) | 2020.09.16 |
피도 눈물도 없는 AI 면접? 핵심은 데이터 기반 HR 애널리틱스 (0) | 2020.08.19 |