본문 바로가기

블로그

LG CNS 기술블로그 DX Lounge에서 최신 IT 소식을 만나보세요!

보안

[보안동향] SAP DB 암호화?
이것만 기억하세요! 2편

2022.01.13

지난 시간에는 법령으로 규정되는 암호화 항목과 SAP DB의 특성, 고려해야 할 사항을 알아보았습니다. 이번 글에서는 SAP 암호화 방식을 살펴보겠습니다.

SAP 암호화 방식

출처 : ZDNET(https://zdnet.co.kr/view/?no=20150227064038)

SAP DB에 대한 토큰 암호화에는 두 가지 방식이 있습니다. 랜덤토큰 암호화 방식과 형태보존 암호화 방식인데요. 먼저 랜덤토큰 암호화 방식을 알아보겠습니다.

랜덤토큰 암호화 방식

SAP 시스템 내부에서는 실제 데이터 대신에 ‘랜덤 토큰’으로 대체해서 사용하기 때문에 ‘토크나이제이션(Tokenization)’이라 합니다. 중요한 데이터만 따로 안전하게 보관한다는 점에서 편리해 보이는데요. 별도 시스템 사이의 통신이 필수적이어서 전체 시스템의 복잡도가 높아지고, 따라서 성능에 영향을 미친다는 단점이 있습니다. 무엇보다도 데이터와 토큰을 1:1 매칭한 테이블이 존재하고 또 통신구간상 데이터가 오가야 한다는 점에서 근본적인 보안 허점이 있다고 볼 수 있습니다. 그렇다면 형태보존 암호화 방식은 어떨까요?

형태보존(FPE) 암호화 방식

형태보존 암호화 방식은 암호화 장치를 SAP 내부에 탑재해 시스템과 유기적으로 연동하는 방식으로, ‘FPE(Format-Preserving Encryption) 형태보존 암호화’ 방식을 사용합니다.

FPE 방식은 1997년 Brigthwell에 의해 소개됐습니다. FPE는 데이터의 포맷을 변경하지 않는 암호화 방법인데요. 개인정보를 암호문으로 변환할 때 FPE 알고리즘으로 평문과 길이와 형태가 동일한 형태로 암호문을 만들어 대체하는 암호화 기법입니다.

SAP 시스템 내부에서 동작하기 때문에 시스템 성능에 미치는 영향이 거의 없는 반면, SAP 데이터베이스에 있는 토큰 정보가 실제 정보이기 때문에 암호화 알고리즘과 암복호화 키 관리, 사용자 인증 보안 등 일반적 보안성의 유지가 매우 중요합니다. 그래서 시스템 통합 보안 플랫폼 규모의 설계가 가능한 FPE 암호화 전문기업의 제품을 사용할 것을 권장합니다.

토큰 암호화 방식 비교

출처 : SAP DB 암호화에 대한 고찰, 정보보호학회지 제23권 1호, 2013.2

랜덤토큰 방식은 개인정보를 아무런 의미 없는 토큰으로 대체하고 개인정보를 별도의 서버에 암호화해 보관하는 방식입니다. 그렇기 때문에 보안 인프라가 갖춰진 내부망에서 적용하는 것이 적합하죠. 기존의 테이블 구조를 변경하지 않기 때문에 일반 DB 암호화와는 달리 기존의 인덱스를 사용하는데요. 사용자 권한에 따라 개인정보 조회가 필요하지 않은 경우에는 복호화 없이 값을 전달하기 때문에 기존의 성능을 유지할 수 있습니다.

하지만 대량의 암복호화가 발생하는 시스템에서는 다소 성능의 문제가 나타날 수 있습니다. SAP 서버와 토큰서버 간의 인터페이스가 발생하기 때문에 네트워크 통신에 따른 성능 문제가 나타날 수 있습니다.

그에 반해, FPE방식은 암복호화 시 네트워크 통신 없이 일반 DB암호화의 API 방식처럼 해당 SAP 서버에서 바로 개인정보를 동일한 크기의 토큰으로 암호화하기 때문에 빠른 성능을 보장합니다. 하지만 각각의 SAP DB에 있는 토큰정보가 실제 개인정보이기 때문에 암호화키 관리와 알고리즘에 대한 보안이 더 중요하죠. 빠른 성능이 필요하고, 분산된 SAP 시스템을 운영하는 곳이라면 SAP에 대한 보안관리를 강화해 FPE 방식으로 SAP DB 암호화를 적용하는 것을 권장합니다.

SAP DB 암호화 적용 사례

SAP DB 암호화 적용 사례를 알아보겠습니다. 모 프로젝트에서도 SAP DB 암호화 방식을 형태보존(FPE) 암호화 방식의 솔루션을 사용해 암호화 적용했습니다. 그 이유는 SAP DB의 테이블 필드에 대한 변경이 없고 성능 저하(약 3% 이내) 및 SAP 프로그램의 수정, 변경을 최소화할 수 있기 때문인데요. 향후 유지보수 시 기능 및 업데이트 관련 제약사항 등을 고려해서 형태보존(FPE) 암호화 방식을 적용했습니다.

출처 : SAP DB 암호화 구성안, LG CNS 수행사례

SAP DB의 암호화 적용 필드에 대해 기존 컬럼의 Data Type / Size / 자릿수 등의 변경 없이 SAP의 DB에 저장되는데요. Std./CBO 권한의 유무에 따라 원문 혹은 암호문으로 조회되고 암호화를 위해 별도의 컬럼이나 테이블 추가 없이 도메인 변경(Conversion Routine 설정)으로 기본 암복호화 세팅을 완료할 수 있습니다.

출처 : SAP 암호화 수행 방식, Ksign SecureDB For SAP 솔루션 설명서

Domain 방식으로 암호화 수행하려면 암호화 Domain은 암호화 대상 필드의 Data Length별로 정의하고, 암보호화 API는 Domain별로 정의해야 합니다.

암호화 대상 Data Element 및 Domain 정의(샘플)

출처 : 암호화 대상 Data Element 및 Domain 정의(샘플) ,Ksign SecureDB For SAP 암호화 개발 가이드

Domain Conversion Exit API(샘플)

출처 : Domain Conversion Exit API(샘플) , Ksign SecureDB For SAP 암호화 개발 가이드

이처럼 SAP 개발자가 암복호화 API를 활용해 암호화 대상 필드가 포함된 프로그램을 수정 반영해야 합니다.

출처 : 암복호화 API 호출(샘플), Ksign SecureDB For SAP 암호화 개발 가이드

맺음말

개인정보보호법의 시행에 따라 ERP를 사용하는 많은 기업에서 SAP DB 암호화를 적용했고, 이는 현재까지 진행되고 있습니다. SAP DB의 특성 및 성능, 보안성 등을 고려해 형태보전(FPE) 암호화 방식으로 적용하는 것을 생각해 볼만 한데요. SAP DB 암호화 적용 시 Domain 설정 방식으로 하는 것이 시스템 변경을 최소화할 수 있어 향후 유지보수 및 기능 및 버전 업그레이드 시 유리할 것으로 생각됩니다.

[참고]

개인정보의 암호화 조치 안내서 (2021년), 개인정보보호위원회
금융분야 개인정보보호 가이드라인(2020년), 한국인터넷진흥원
SAP DB 암호화에 대한 고찰, 정보보호학회지 제23권 1호, 2013.2
SAP 데이터 암호화의 두 가지 방식 – 지디넷코리아 (https://zdnet.co.kr/view/?no=20150227064038)

글 ㅣ LG CNS 사이버시큐리티팀 김진환 책임

챗봇과 대화를 할 수 있어요