"암호화"의 두 판 사이의 차이

해시넷
이동: 둘러보기, 검색
(일방향(해시함수) 암호화)
8번째 줄: 8번째 줄:
 
===일방향 암호화===
 
===일방향 암호화===
 
일방향(해시함수) 암호화 방식은 해시함수를 이용하여 암호화된 값을 생성하며 복호화 되지 않는 방식이다. 해시함수는 임의의 길이를 갖는 메시지를 입력으로 하여 고정된 길이의 해시값 또는 해시 코드라 불리는 값을 생성하며, 동일한 입력 메시지에 대해 항상 동일한 값을 생성하지만 해시값만으로 입력 메시지를 유추할 수 없어 비밀번호와 같이 복호화 없이 입력 값의 정확성 검증이 필요한 경우 등에 사용되고 있다. 대표적인 해시함수로는 국외의 SHA-2(224/256/384/512), SHA-3, RIPEMD-160, Whirlpool 등이 있다.
 
일방향(해시함수) 암호화 방식은 해시함수를 이용하여 암호화된 값을 생성하며 복호화 되지 않는 방식이다. 해시함수는 임의의 길이를 갖는 메시지를 입력으로 하여 고정된 길이의 해시값 또는 해시 코드라 불리는 값을 생성하며, 동일한 입력 메시지에 대해 항상 동일한 값을 생성하지만 해시값만으로 입력 메시지를 유추할 수 없어 비밀번호와 같이 복호화 없이 입력 값의 정확성 검증이 필요한 경우 등에 사용되고 있다. 대표적인 해시함수로는 국외의 SHA-2(224/256/384/512), SHA-3, RIPEMD-160, Whirlpool 등이 있다.
 
==구현==
 
===전송시 암호화===
 
====웹서버와 클라이언트====
 
웹브라우저에 기본적으로 내장된 SSL/TLS 프로토콜로 접속하는 SSL 방식과 웹브라우저에 보안 프로그램을 설치하여 접속하는 응용프로그램 방식으로 구분할 수 있다. SSL 방식은 웹페이지 전체를 암호화(웹페이지 내 이미지 포함)하며 응용프로그램 방식은 특정 데이터만을 선택적으로 암호화할 수 있지만, 웹브라우저 등에 부가적인 프로그램을 설치해야 한다. 공공기관에서는 국가정보원이 안전성을 확인한 암호모듈 또는 제품을 적용해야 한다.
 
 
* '''SSL 방식'''
 
: SSL 방식은 전송 계층(Transport Layer)을 기반으로 한 응용 계층(Application Layer)에서 암호화를 수행한다. 암호키 교환은 비대칭키 암호 알고리즘을 이용하고, 기밀성을 위한 암호화는 대칭키 암호 알고리즘을 이용하며 메시지의 무결성은 메시지 인증 코드(해시함수)를 이용하여 보장한다.
 
 
: 인터넷 쇼핑이나 인터넷 뱅킹 시 계좌정보, 주민등록번호 등과 같은 중요한 정보를 입력할 때, 거래당사자의 신원 및 거래내용의 위·변조 여부를 확인하고 중요 정보가 제3자에게 유출되는 것을 막기 위해 SSL/TLS와 같은 통신 암호기술을 이용할 수 있다.
 
 
: 사용자가 웹서버에 처음 접속하면 인증서 및 통신 암호화에 이용할 암호키를 생성하기 위한 정보를 공유하고, 이후 공유된 정보를 통해 생성된 암호키를 이용하여 데이터를 암호화하여 전송한다. SSL/TLS 통신을 하는 경우에는 로그인 페이지 등 보안이 필요한 웹페이지에 접속하면 웹브라우저 하단 상태 표시줄에 자물쇠 모양의 표시를 확인할 수 있다.
 
 
* '''응용프로그램 방식'''
 
: 응용프로그램 방식은 별도의 모듈을 서버와 클라이언트에 설치해야 하며 필요한 데이터만 암호화하여 전달할 수 있다. 이를 위해 웹서버 프로그램에 대한 수정작업이 필요하며, 응용프로그램 방식을 제공하는 솔루션에 따라 수정작업의 범위가 달라질 수 있다.
 
 
: 사용자가 해당 웹서버에 접속하면 사용자 컴퓨터에 자동으로 SSL을 구현한 보안 응용프로그램이 설치되고 이를 통해 개인정보를 암호화하여 통신이 이루어진다. 웹브라우저의 확장기능인 플러그인 형태로 구현되며 웹사이트 접속 시 초기화면이나 로그인 후 원도우 화면 오른쪽 하단 작업 표시줄 알림영역을 확인하여 프로그램이 실행되고 있음을 알 수 있다.
 
 
====개인정보처리시스템====
 
개인정보처리시스템 간에 개인정보를 전송할 때 암호화를 지원하기 위하여 공중망을 이용한 가상사설망(VPN : Virtual Private Network)을 구축할 수 있다. VPN은 기반이 되는 보안 프로토콜의 종류에 따라 IPsec VPN 방식, SSL VPN 방식, SSH VPN 방식 등으로 구분할 수 있다.
 
 
VPN은 공중망을 통해 데이터를 송신하기 전에 데이터를 암호화하고 수신측에서 이를 복호화 하는 방식으로 송·수신 정보에 대한 기밀성 및 무결성을 보장하며, 그 외에도 데이터 출처 인증, 재전송 방지, 접근제어 등 다양한 보안 기능을 제공한다.
 
 
* '''IPsec VPN 방식'''
 
: IPsec VPN 방식은 응용프로그램을 수정할 필요가 없으나 IPsec 패킷의 IP 주소를 변경해야 하는 NAT와 같이 사용하기 어려운 점이 있다. 사용자 인증이 필요 없으므로 VPN 장비 간 서로 인증이 된 경우, 사용자는 다른 인증절차를 거치지 않아도 된다.
 
 
: IPsec VPN 방식의 구조는 게이트웨이 대 게이트웨이, 호스트 대 게이트웨이, 호스트 대 호스트로 구분할 수 있다. 게이트웨이 대 게이트웨이는 네트워크 간의 암호화 통신, 호스트 대 게이트웨이는 개인정보처리시스템과 네트워크 간의 암호화 통신, 호스트 대 호스트는 개인정보처리시스템 간의 암호화 통신을 설정할 수 있는 방식이다.
 
 
* '''SSL VPN 방식'''
 
: SSL VPN 방식은 응용프로그램 수준에서 SSL/TLS을 구현하는 것이 일반적이며 NAT를 사용할 수 있다. SSL/TLS는 메모리 소비가 많으므로 동시 접속이 많은 대용량 처리에서 성능 저하가 발생할 수 있다. 하지만 개별 사용자 인증이 필요한 경우 SSL VPN 방식이 좋은 선택이 될 수 있다.
 
 
: SSL VPN 방식의 구조는 외부망이 개인정보거래시스템과 내부의 SSL VPN 서버 간 인터넷을 통한 통신에서 암호화 통신을 제공한다. 방화벽 후단의 SSL VPN 서버 없이 내부망의 개인정보처리시스템에 SSL VPN 기능을 구현하여 외부망의 개인정보처리시스템과 암호화 통신을 제공할 수도 있다.
 
 
* '''SSH VPN 방식'''
 
: SSH VPN 방식은 응용계층의 VPN 기술로서 원격 단말기에서 접속하는 경우에 주로 이용되며 SSH를 이용한 파일 전송 및 파일 복사 프로토콜을 이용할 수 있다. 오픈소스 SSH의 일종인 OpenSSH의 경우 프락시 방식의 VPN 서버로 구성할 수도 있다. 각 개인은 정보처리시스템에 설치된 SSH 기능을 사용하여 VPN을 구성할 수 있다.
 
 
====개인정보취급자====
 
개인정보취급자 간에 개인정보를 전송할 때 주로 이메일을 이용하게 된다. 이메일은 네트워크를 통해 전송되는 과정에서 공격자에 의해 유출되거나 위조될 가능성이 있다. 이러한 위협으로부터 이메일로 전송되는 메시지를 보호하기 위해서 PGP 또는 S/MIME을 이용하는 이메일 암호화 방식과 암호화된 파일을 이메일에 첨부하여 전송하는 이메일 첨부문서 암호화 방식이 있다.
 
 
S/MIME은 공개키를 포함한 공인인증서를 발급받고 등록해야 하는 번거로움이 있다. 이에 비해 PGP의 경우 개인 간의 신뢰를 바탕으로 공개키를 등록하거나 안전한 채널로 미리 확보하는 방법을 사용할 수 있다.
 
 
* '''이메일 암호화 방식'''
 
: 이메일 암호화 방식은 송·수신되는 이메일의 내용을 암호화함으로써 메일에 포함된 중요 개인정보의 유출을 방지하는 것이며, 대표적인 이메일 보안 프로토콜로 PGP와 S/MIME이 있다. PGP는 다양한 응용프로그램에 적용하여 문서, 이메일, 파일, 파일시스템, 디스크 등을 암호화할 수 있다.
 
 
: S/MIME은 인증, 메시지 무결성, 부인방지, 메시지 암호화 등에 사용되며 대부분의 이메일 클라이언트에서 기본적으로 지원한다. S/MIME을 사용하기 위해서는 공인인증기관이 발행한 공인인증서가 있어야 한다.
 
 
* '''이메일 첨부문서 암호화 방식'''
 
: 업무용 컴퓨터에서 주로 사용하는 문서 도구의 자체 암호화 방식, 암호 유틸리티를 이용한 암호화 방식 등을 통해 암호화한 파일을 이메일의 첨부문서로 송·수신할 수 있다. 이메일을 송·수신할 개인정보취급자 간에는 미리 공유된 암호키 또는 비밀번호를 사용하여 복호화하며, 이 암호키는 안전하게 공유하여야 한다.
 
 
===저장시 암호화===
 
====개인정보처리시스템====
 
개인정보를 처리하고 관리하는 개인정보처리시스템은 DB에 저장된 개인정보를 암호화하여 저장함으로써 개인정보의 유출, 위·변조, 훼손 등을 방지해야 한다. 개인정보처리시스템의 DB를 암호화할 수 있는 방식은 암·복호화 모듈의 요청 위치의 조합에 따라 구분할 수 있다.
 
 
각 방식의 단점을 보완하기 위하여 두 가지 이상의 방식을 혼합하여 구현하기도 한다. 이 경우 구축 시 많은 비용이 소요되지만 어플리케이션 서버 및 DB 서버의 성능과 보안성을 높일 수 있다. 개인정보처리시스템 암호화 방식마다 성능에 미치는 영향이 다르므로 구축 환경에 따라 암호화 방식의 특성, 장단점 및 제약사항 등을 고려하여 DB 암호화 방식을 선택해야 한다.
 
 
성능이 매우 중요한 요소가 되는 환경에서 DB 서버 암호화 방식을 고려하는 경우에도 반드시 벤치마킹 테스트(BMT) 등을 수행하여, 최적의 솔루션을 선택하는 것이 바람직하다. 공공기관에서는 국가정보원이 안전성을 확인한 암호모듈 또는 제품을 적용해야 한다.
 
 
현재 운영 중이거나 향후 개발 예정인 개인정보처리시스템의 목적 및 환경에 맞게 쉽게 구현이 가능한 암호화 방식을 선택해야 한다. 응용프로그램 및 DB 스키마 수정 등을 최소화하고 개발 환경에 맞게 성능을 최대화할 수 있도록 해야 한다. DB 암호화의 안전성을 확보하기 위해서는 안전한 암호키의 관리가 필요하다. 암호화된 개인정보가 유출되더라도 복호화 할 수 없도록 암호키에 대한 추가적인 보안과 제한된 관리자만 허용하도록 하는 기술을 적용해야 한다.
 
 
* '''응용프로그램 자체 암호화 방식'''
 
: 응용프로그램 자체 암호화 방식은 암·복호화 모듈이 API 라이브러리 형태로 각 어플리케이션 서버에 설치되고 응용프로그램에서 암·복호화 모듈을 호출하는 방식이다. DB 서버에는 영향을 주지 않지만 어플리케이션 서버에 암·복호화를 위한 추가적인 부하가 발생하며, 구축 시 응용프로그램 전체 또는 일부 수정이 필요하다. 추가적으로 어플리케이션 서버와 DB 서버 간의 통신에서 암호화된 개인 정보의 전송을 보장할 수 있다.
 
 
* '''DB 서버 암호화 방식'''
 
: DB 서버 암호화 방식은 암·복호화 모듈이 DB 서버에 설치되고 DBMS에서 플러그인으로 연결된 암·복호화 모듈을 호출하는 방식이다. 응용프로그램의 수정이 거의 필요하지 않아 구현 용이성이 뛰어나지만, 기존 DB 스키마와 대응하는 뷰를 생성하고 암호화할 테이블을 추가하는 작업이 필요하다. 어플리케이션 서버의 성능에는 영향을 주지 않지만 DBMS에서 DB 서버의 암·복호화 모듈을 플러그인으로 호출할 때 추가적인 부하가 발생하여 성능이 저하될 수 있다.
 
 
* '''DBMS 자체 암호화 방식'''
 
: DBMS 자체 암호화 방식은 DBMS에 내장되어 있는 암호화 기능(TDE : Transparent Data Encryption)을 이용하여 암·복호화 처리를 수행하는 방식이다. DMBS 커널 수준에서 처리되므로 기존 응용프로그램의 수정이나 DB 스키마의 변경이 거의 필요하지 않고 DBMS 엔진에 최적화된 성능을 제공할 수 있다.
 
 
* '''DBMS 암호화 기능 호출 방식'''
 
: DBMS 암호화 기능 호출 방식은 DBMS가 자체적으로 암·복호화 기능을 수행하는 API를 제공하고 해당 함수를 사용하기 위해 응용프로그램에서 호출하는 방식이다. 암·복호화 API를 사용하는 응용프로그램의 수정이 필요하고, DB 서버에 추가적인 부하가 발생할 수 있다.
 
 
* '''운영체제 암호화 방식'''
 
: 운영체제 암호화 방식은 OS에서 발생하는 입출력 시스템 호출을 이용한 암·복호화 방식으로서 DB 파일 자체를 암호화한다. 응용프로그램이나 DB 스키마의 수정이 필요하지 않지만 DB 파일 전체를 암호화 하는데 다른 파일서버 및 DB 서버에 추가적인 부하가 발생할 수 있다.
 
 
====업무용 컴퓨터·보조저장매체====
 
업무용 컴퓨터에서는 하드디스크, 이동식 디스크 또는 보조저장매체(USB 등)에 저장된 개인정보의 보호를 위해 개별 문서 파일 단위 암호화, 디렉터리 단위 암호화, 디스크 암호화 등의 방법을 사용할 수 있다. 파일 암호화는 업무용 컴퓨터의 하드디스크, 이동식 디스크, 보조저장매체에 저장된 개인정보에 대한 보호뿐만 아니라 개인정보취급자 간에 네트워크상으로 파일을 안전하게 전송하기 위한 방식으로도 사용할 수 있다.
 
 
* '''문서 도구 자체 암호화 방식'''
 
: 업무용 컴퓨터에서 주로 사용하는 문서 도구에서는 자체 암호화 기능을 통하여 개인정보 파일을 암호화할 수 있다.
 
 
* '''DRM 방식'''
 
: DRM은 조직 내부에서 생성되는 전자문서를 암호화하고 해당 문서를 접근 및 사용할 수 있는 권한을 지정함으로써 허가된 사용자만 중요 문서를 사용하게 하는 기술이다. DRM은 중요 문서 외에 다양한 종류의 멀티미디어 콘텐츠에 대한 보안 기능을 제공할 수 있다. DRM으로 암호화된 문서는 DRM 클라이언트가 없는 PC에서는 열람이 불가능하며, 열람 중에도 파일이 복호화 되지 않고 암호화 상태를 유지한다. 또한 암호화 파일의 안전한 외부 전송이 가능하다.
 
 
* '''디스크 암호화 방식'''
 
: 디스크 암호화는 디스크에 데이터를 기록할 때 자동으로 암호화하고, 주기억장치로 읽을 때 자동으로 복호화하는 방식이다. 휴대용 보조기억매체는 개방된 장소에 있기 때문에 적절한 물리적 보안을 제공하기 어려움이 있다. 따라서 휴대용 보조기억매체는 저장된 개인정보의 기밀성을 위해 디스크 암호화 솔루션을 이용하여 암호화하기를 권고한다.
 
 
* '''기타'''
 
: 기타 하드웨어 또는 소프트웨어적인 암호화 도구나 방식 등을 사용하여 암호화를 수행할 수 있다. 다만 이 경우에는 안전한 암호 알고리즘을 사용하는지, 해당 기관에 적용되는 규정·지침 등에 적합한지 등을 확인하여 적용이 필요하다.
 

2019년 5월 24일 (금) 15:38 판

종류

대칭키 암호화

대칭키 암호화 방식은 대칭키 암호 알고리즘을 사용하여 전송하고자 하는 평문을 암호화하고 복호화하는데 동일한 키를 사용하는 방식이다. 대칭키 암호화 방식은 공개키 암호화 방식에 비해 빠른 처리속도를 제공하고, 암호키의 길이가 공개키 암호화 방식보다 상대적으로 작아서 일반적인 정보의 기밀성을 보장하기 위한 용도로 사용되고 있다. 반면에 정보 교환 당사자가 동일한 키를 공유해야 하므로 여러 사람과의 정보 교환 시 많은 키를 유지 및 관리해야 하는 어려움이 있다. 대표적인 대칭키 암호 알고리즘은 국내의 SEED, ARIA, LEA, HIGHT 국외의 AES, Blowfish, Camellia 등이 있다.

공개키 암호화

공개키 암호화 방식은 공개키 암호 알고리즘을 사용하여 암호화하며 공개키와 개인키의 키 쌍이 존재하여 평문을 암·복호화 하는데 서로 다른 키를 사용하는 방식으로 비대칭키 암호화 방식이라고도 불린다. 공개키 암호화 방식은 데이터 암호화 속도가 대칭키 암호화 방식에 비해 느리기 때문에 일반적으로 대칭키 암호화 방식의 키 분배나 전자서명 또는 카드번호와 같은 작은 크기의 데이터 암호화에 많이 사용되고 있다. 대표적인 공개키 암호 알고리즘으로는 국외의 RSA, ELGamal, ECC 등이 있다.

일방향 암호화

일방향(해시함수) 암호화 방식은 해시함수를 이용하여 암호화된 값을 생성하며 복호화 되지 않는 방식이다. 해시함수는 임의의 길이를 갖는 메시지를 입력으로 하여 고정된 길이의 해시값 또는 해시 코드라 불리는 값을 생성하며, 동일한 입력 메시지에 대해 항상 동일한 값을 생성하지만 해시값만으로 입력 메시지를 유추할 수 없어 비밀번호와 같이 복호화 없이 입력 값의 정확성 검증이 필요한 경우 등에 사용되고 있다. 대표적인 해시함수로는 국외의 SHA-2(224/256/384/512), SHA-3, RIPEMD-160, Whirlpool 등이 있다.