[정보보호기술] 암호화 구현 및 사례

전송 및 저장시 암호화의 구현과 사례입니다. 오늘 포스팅은 암기노트 같은 포스팅입니다.


이용자로부터 중요정보를 전송받을 때, 그리고 개인정보처리시스템 혹은 각종 저장매체에 개인정보를 저장할 때 암호화가 필요합니다. 


<암호화 적용 기준 요약표>


1. 전송시 암호화


    1.1 웹서버와 클라이언트 간 암호화

웹브라우저에 기본적으로 내장된 SSL/TLS 프로토콜로 접속하는 SSL 방식과 웹브라우저에 보안 프로그램을 설치하여 접속하는 응용프로그램 방식으로 구분할 수 있습니다.


 SSL 방식은 웹페이지 전체를 암호화(웹페이지 내 이미지 포함)하며 응용프로그램 방식은 특정 데이터만을 선택적으로 암호화할 수 있지만, 웹브라우저 등에 부가적인 프로그램을 설치해야 한다. 공공기관에서는 국가정보원이 안전성을 확인한 암호모듈 또는 제품을 적용해야 합니다.

* “SSL(Secure Sockets Layer)”이란 웹 브라우저와 웹 서버간에 데이터를 안전하게 주고받기 위해 암호화 기술이 적용된 보안 프로토콜을 말합니다.


방식

데이터부분암호화

개발비용

SSL 방식

지원하지 않음

낮음

응용프로그램

방식

지원함

높음


        1.1.1 SSL 방식

SSL 방식은 전송 계층(Transport Layer)을 기반으로 한 응용 계층(Application Layer)에서 암호화를 수행합니다. 암호키 교환은 비대칭키 암호 알고리즘을 이용하고, 기밀성을 위한 암호화는 대칭키 암호 알고리즘을 이용하며 메시지의 무결성은 메시지 인증 코드를 이용하여 보장합니다.


 인터넷 쇼핑이나 인터넷 뱅킹 시 계좌정보, 주민등록번호 등과 같은 중요한 정보를 입력할 때, 거래당사자의 신원 및 거래내용의 위·변조 여부를 확인하고 중요 정보가 제3자에게 유출되는 것을 막기 위해 SSL/TLS와 같은 통신 암호기술을 이용할 수 있다.


 아래 그림은 인증기관으로부터 인증서를 발급받은 웹서버와 사용자의 웹브라우저 간 SSL/TLS를 이용한 보안 통신의 개념입니다. 사용자가 웹서버에 처음 접속하면 인증서 및 통신 암호화에 이용할 암호키를 생성하기 위한 정보를 공유하고, 이후 공유된 정보를 통해 생성된 암호키를 이용하여 데이터를 암호화하여 전송합니다.


<웹서버와 웹브라우저 간의 SSL/TLS 통신 구조>


        1.1.2 응용프로그램 방식

응용프로그램 방식은 별도의 모듈을 서버와 클라이언트에 설치해야 하며 필요한 데이터만 암호화하여 전달합니다. 웹서버 프로그램에 대한 수정작업이 필요하며, 응용프로그램 방식을 제공하는 솔루션에 따라 수정작업의 범위가 달라집니다.


사용자가 해당 웹서버에 접속하면 사용자 컴퓨터에 자동으로 SSL을 구현한 보안 응용프로그램이 설치되고 이를 통해 개인정보를 암호화하여 통신합니다. 웹브라우저의 확장기능인 플러그인 형태로 구현되며 웹사이트 접속 시 초기화면이나 로그인 후 윈도우 화면 오른쪽 하단 작업 표시줄 알림영역을 확인하여 프로그램이 실행됨을 확인할 수 있습니다.



    1.2 개인정보처리시스템 간 암호화

개인정보처리시스템 간에 개인정보를 전송할 때 암호화를 지원하기 위하여 공중망을 이용한 가상사설망(VPN: Virtual Private Network)을 구축할 수 있습니다.


VPN은 공중망을 통해 데이터를 송신하기 전에 데이터를 암호화하고 수신측에서 이를 복호화 하는 방식으로 송·수신 정보에 대한 기밀성 및 무결성을 보장하며, 그 외에도 데이터 출처 인증, 재전송 방지, 접근제어 등 다양한 보안 기능을 제공합니다.


방식

VPN 서버부하

NAT 통과

IPSec VPN

낮음

어려움

SSL VPN

다소 높음

쉬움

SSH VPN

다소 높음

쉬움


        1.2.1 IPsec VPN 방식

IPsec VPN 방식은 응용프로그램을 수정할 필요가 없으나 IPsec 패킷의 IP 주소를 변경해야 하는 NAT와 같이 사용하기 어려운 점이 있습니다. 사용자 인증이 필요 없으므로 VPN 장비 간 서로 인증이

된 경우, 사용자는 다른 인증절차를 거치지 않아도 됩니다.


 IPsec VPN 방식의 구조는 게이트웨이 대 게이트웨이, 호스트 대 게이트웨이, 호스트 대 호스트로 구분할 수 있습니다. 게이트웨이 대 게이트웨이는 네트워크 간의 암호화 통신, 호스트 대 게이트웨이는 개인정보처리시스템과 네트워크 간의 암호화 통신, 호스트 대 호스트는 개인정보처리시스템 간의 암호화 통신을 설정할 수 있는 방식입니다.


 아래 그림은 게이트웨이 대 게이트웨이 IPsec VPN 방식을 이용하여 인터넷 구간에서 암호화 통신 구조도입니다.


        1.2.2 SSL VPN 방식

 SSL VPN 방식은 응용프로그램 수준에서 SSL/TLS을 구현하는 것이 일반적이며 NAT를 사용할 수 있습니다. SSL/TLS는 메모리 소비가 많으므로 동시 접속이 많은 대용량 처리에서 성능 저하가 발생할 수 있지만 개별 사용자 인증이 필요한 경우 SSL VPN 방식이 좋은 선택이 될 수 있습니다. 


 아래 그림은 SSL VPN 방식에서 SSL VPN 서버를 거친 개인정보처리시스템간 암호화 통신을 보여줍니다. 이러한 구조는 외부망의 개인정보처리시스템과 내부의 SSL VPN 서버간 인터넷을 통한 통신에서 암호화 통신을 제공한다. 방화벽 후단의 SSL VPN 서버 없이 내부망의 개인정보처리시스템에 SSL VPN 기능을 구현하여 외부망의 개인정보처리시스템과 암호화 통신을 제공할 수도 있습니다.



        1.2.3 SSH VPN 방식

SSH VPN 방식은 응용계층의 VPN 기술로서 원격 단말기에서 접속하는 경우에 주로 이용되며 SSH를 이용한 파일 전송 및 파일 복사 프로토콜 (예: SFTP, SCP)을 이용할 수 있습니다. 오픈소스 SSH의 일종인 OpenSSH의 경우 프락시 방식의 VPN 서버로 구성할 수도 있다.  아래 그림은 SSH VPN 방식에서 개인정보처리시스템 간의 암호화 통신을 보여준다. 각 개인 정보처리시스템에 설치된 SSH 기능을 사용하여 VPN을 구성할 수 있습니다.




    1.3 개인정보취급자 간 암호화

개인정보취급자 간에 개인정보를 전송하기 위해 이메일을 이용할 때, 이메일에 대한 위협으로부터 전송되는 메시지를 보호하기 위해서 PGP 또는 S/MIME을 이용하는 이메일 암호화 방식과 암호화된 파일을 이메일에 첨부하여 전송하는 이메일 첨부문서 암호화 방식이 있습니다.


방식

공인인증서 필요 여부

표준형식

이메일

암호화

PGP

필요하지 않음

PGP 자체정의

S/MIME

필요함

X509, PKCS#7

이메일 첨부문서 암호화

필요하지 않음

없음


        1.3.1 이메일 암호화 방식

이메일 암호화 방식은 송·수신되는 이메일의 내용을 암호화함으로써 메일에 포함된 중요 개인정보의 유출을 방지하는 것이며, 대표적인 이메일 보안 프로토콜로 PGP와 S/MIME이 있습니다. 아래 그림은 이메일 암호화 방식의 처리 과정을 보여줍니다.


- PGP는 다양한 응용프로그램에 적용하여 문서, 이메일, 파일, 파일시스템, 디스크 등을 암호화할 수 있습니다.

- S/MIME은 인증, 메시지 무결성, 부인방지, 메시지 암호화 등에 사용되며 대부분의 이메일 클라이언트에서 기본적으로 지원합니다. S/MIME을 사용하기 위해서는 공인인증기관이 발행한 공인 인증서가 있어야 합니다.



        1.3.2 이메일 첨부문서 암호화 방식

업무용 컴퓨터에서 주로 사용하는 문서 도구(예: 한글, MS 워드 등)의 자체 암호화 방식, 암호 유틸리티를 이용한 암호화 방식 등을 통해 암호화한 파일을 이메일의 첨부문서로 송·수신할 수 있습니다.  


이메일을 송·수신할 개인정보취급자 간에는 미리 공유된 암호키(또는 비밀번호)를 사용하여 복호화 하며, 이 암호키는 안전하게 공유하여야 합니다.



2. 저장시 암호화


    2.1 개인정보처리시스템 암호화 방식

개인정보를 처리하고 관리하는 개인정보처리시스템은 DB에 저장된 개인정보를 암호화하여 저장함으로써 개인정보의 유출, 위·변조, 훼손 등을 방지해야 합니다.


개인정보처리시스템의 DB를 암호화할 수 있는 방식은 암ㆍ복호화 모듈의 위치와 암ㆍ복호화 모듈의 요청 위치의 조합에 따라 다음과 같이 구분할 수 있습니다.


암호화 방식

암·복호화

모듈 위치

암·복호화

요청 위치

설명

응용

프로그램

자체 암호화

어플리

케이션

서버

응용

프로그램

- 암ㆍ복호화 모듈이 API 라이브러리 형태로 각 어플리케이션 서버에 설치되고, 응용프로그램에서 해당 암ㆍ복호 화 모듈을 호출하는 방식

- DB 서버에 영향을 주지 않아 DB 서버의 성능 저하가 적은 편이지만 구축시 응용프로그램 전체 또는 일부 수정 필요

- 기존 API 방식과 유사

- 암ㆍ복호화 모듈이 DB 서버에 설치되고 DB 서버에서 암ㆍ복호화 모듈을 호출하는 방식

- 구축 시 응용프로그램의 수정을 최소화 할 수 있으나 DB 서버에 부하가 발생하며 DB 스키마의 추가 필요

- 기존 Plug-In 방식과 유사

DB 서버

암호화

DB 서버

응용

프로그램

- DB 서버의 DBMS 커널이 자체적으로 암ㆍ복호화 기능을 수행하는 방식

- 구축 시 응용프로그램 수정이 거의 없으나, DBMS 에서 DB 스키마의 지정 필요

- 기존 커널 방식(TDE)과 유사

DBMS

자체

암호화

DB 서버

DB 서버

- 응용프로그램에서 DB 서버의DBMS 커널이 제공 하는 암ㆍ복호화 API를 호출하는 방식

- 구축 시 암ㆍ복호화 API를 사용하는 응용프로그램의 수정이 필요

- 기존 커널 방식(DBMS 함수 호출)과 유사

DBMS

암호화

기능 호출

DB 서버

응용

프로그램

- OS에서 발생하는 물리적인 입출력(I/O)을 이용한 암ㆍ복호화 방식으로 DBMS의 데이터파일 암호화

- DB 서버의 성능 저하가 상대적으로 적으나 OS, DBMS, 저장장치와의 호환성 검토 필요

- 기존 DB 파일암호화 방식과 유사


        2.1.1 응용프로그램 자체 암호화 방식

응용프로그램 자체 암호화 방식은 암ㆍ복호화 모듈이 API 라이브러리 형태로 각 어플리케이션 서버에 설치되고 응용프로그램에서 암ㆍ복호화 모듈을 호출하는 방식입니다. 


DB 서버에는 영향을 주지 않지만 어플리케이션 서버에 암ㆍ복호화를 위한 추가적인 부하가 발생하며, 구축 시 응용프로그램 전체 또는 일부 수정이 필요합니다. 추가적으로 어플리케이션 서버와 DB 서버 간의 통신에서 암호화된 개인 정보의 전송을 보장할 수 있습니다.



        2.1.2 DB 서버 암호화 방식

암ㆍ복호화 모듈이 DB 서버에 설치되고 DBMS에서 플러그인 (plug-in)으로 연결된 암ㆍ복호화 모듈을 호출하는 방식입니다. 응용프로그램의 수정이 거의 필요하지 않아 구현 용이성이 뛰어나지만, 기존 DB 스키마와 대응하는 뷰(view)를 생성하고 암호화할 테이블을 추가하는 작업이 필요합니다. 어플리케이션 서버의 성능에는 영향을 주지 않지만 DBMS에서 DB 서버의 암·복호화 모듈을 플러그인으로 호출할 때 추가적인 부하가 발생하여 성능이 저하될 수 있습니다.


        2.1.3 DBMS 암호화 방식

DBMS에 내장되어 있는 암호화 기능(TDE : Transparent Data Encryption)을 이용하여 암ㆍ복호화 처리를 수행하는 방식입니다. DBMS 커널 수준에서 처리되므로 기존 응용프로그램의 수정이나 DB 스키마의 변경이 거의 필요하지 않고 DBMS 엔진에 최적화된 성능을 제공할 수 있습니다



        2.1.4 DBMS 암호화 기능 호출 방식

DBMS가 자체적으로 암ㆍ복호화 기능을 수행하는 API를 제공하고 해당 함수를 사용하기 위해 응용프로그램에서 호출하는 방식입니다. 암ㆍ복호화 API를 사용하는 응용프로그램의 수정이 필요하고, DB 서버에 추가적인 부하가 발생할 수 있습니다.



        2.1.5 운영체제 암호화 방식

OS에서 발생하는 입출력 시스템 호출을 이용한 암ㆍ복호화 방식으로서 DB 파일 자체를 암호화합니다. 응용프로그램이나 DB 스키마의 수정이 필요하지 않지만 DB 파일 전체를 암호화 하는데 따른 파일 서버 및 DB 서버에 추가적인 부하가 발생할 수 있습니다.



    2.2 업무용 컴퓨터·보조저장매체 암호화 방식 

업무용 컴퓨터에서는 하드디스크, 이동식 디스크 또는 보조저장매체(USB 등)에 저장된 개인정보의 보호를 위해 개별 문서 파일 단위 암호화, 디렉터리 단위 암호화, 디스크 암호화 등의 방법을 사용할 수 있습니다.


파일 암호화는 업무용 컴퓨터의 하드디스크, 이동식 디스크, 보조저장매체에 저장된 개인정보에 대한 보호뿐만 아니라 개인정보취급자 간에 네트워크상으로 파일을 안전하게 전송하기 위한 방식으로도 사용할 수 있습니다. 업무용 컴퓨터에서 하드디스크, 이동식 디스크, 보조저장매체에 적용 가능한 암호화 방식은 다음과 같이 구분됩니다.  


분류

VPN 서버부하

문서 도구 자체 암호화

업무용 컴퓨터에서 사용하는 문서도구의 자체 암호화 기능을 통하여 개인정보 파일 암호화 

암호 유틸리티를

이용한 암호화

업무용 컴퓨터의 OS에서 제공하는 파일 암호 유틸리티 또는 파일 암호 전용 유틸리티를 이용한 개인정보 파일, 디렉토리의 암호화

DRM

(Digital Right Management)

• DRM을 이용하여 다양한 종류의 파일 및 개인정보 파일의 암호화 

• 암호화 파일의 안전한 외부 전송이 가능함 

디스크 암호화 

• 디스크에 데이터를 기록할 때 자동으로 암호화하고, 읽을때 자동으로 복호화하는 기능을 제공함 

• 디스크 전체 또는 일부 디렉터리를 인가되지 않은 사용자에게 보이지 않게 설정하여 암호화 여부와 관계없이 특정 디렉터리 보호 가능