1. 개요

정보보안기사 시험 치는데 S/MIME 문제가 나왔다. 처음 보는 단어이기에 단어 자체의 의미를 부여하다 보니 S는 Secure MIME는 간간이 실무를 하다가 만난 단어로 파일 타입으로 이해하고 있었다. 결국 파일의 보안을 의미하는 것으로 해석하여 공개키 암호화와 관련 있는 보기를 선택했다. 하지만 문득 생각나서 찾아보니 틀린 것 같다.

2. MIME란?

MIME는 Multipurpose Internet Mail Extensions로 굳이 한국어로 표현하자면 다목적 인터넷 메일 확장이라는 의미를 가진다. 이메일을 사용할 때 7비트 ASCII로 전송되기 때문에 8비트 이상의 코드나 문자, 이진 파일들은 MIME 포맷으로 변환되어 SMTP로 전송된다. MIME는 IETF에서 RFC 1521 MIME에 관한 정의로 시작한다.

MIME는 다양한 파일 형태를 정의하고 사용하는데, 그 형태는 이 사이트에서 만나볼 수 있다.

3. S/MIME란?

앞에 S가 붙게 됨으로써 기존의 MIME를 안전하게 만들어주는 것이 S/MIME이다. 1995년에 개발되었으며, 메시지 보안의 한 요소로 자리 잡았다. 유사하게 메시지 보안을 위해 사용되는 다른 형태로 PGP(Pretty Good Privacy)가 있다. S/MIME의 형태는 여러 기업들이 자체적으로 구축하여 사용하는 경우가 대부분이었으나 1998년 버전 2부터는 IETF에서 개발하여 인터넷 표준으로 자리 잡았다.

1999년 IETF는 S/MIME의 기능을 강화하기 위해 버전 2 였던 RFC 2311 기반으로 버전 3을 제안했다. RFC 2632RFC 2312를 기반으로 확장하여 S/MIME 인증 처리 부분을 향상하였고, RFC 2311에서 확장한 RFC 2633은 메시지 처리 부분을 향상하였다. RFC 2634는 보안 확인 메일, 삼중 래핑, 보안 레이블 등 서비스를 추가했다. 2004년 S/MIME는 버전 3.1 RFC 3851으로 업그레이드되었고, 가장 최근 버전은 2010년 버전 3.2 RFC 5751이다.

S/MIME은 크게 디지털 서명과 메시지 암호화 기능으로 구분할 수 있다.

3.1. 디지털 서명

이메일을 보낸 사람이 이메일을 보낸 사실과 일치하는지 확인하기 위해 디지털 서명을 사용한다.

  • MIME 데이터 서명
  • 인증 (x.509)
  • 부인방지

3.2. 메시지 암호화

메시지를 수신받는 사용자가 읽기 전까지 정보를 읽거나 이해할 수 없도록 암호화되어야 한다. 따라서 기밀성이 유지되며, 외부 공격자로부터 이메일을 보호할 수 있다.

  • 공개키 암호화 (PKCS#7)
  • 메시지 무결성
  • 개인 정보 보호
  • 데이터 보안

3.3. 동작 원리

동작 원리는 송신자(Alice)가 자기 자신임을 인증하고 메시지를 보냈음을 부인 방지하기 위해 개인 키를 암호화하여 수신자(Bob)에게 전송한다. 수신자는 송신자의 공개 키를 이용하여 개인 키를 추출하여 송신자임을 확인한다. 이 과정을 디지털 서명이라 부른다.

파일과 메시지를 암호화하는데 속도적인 측면을 고려하여 대칭키 암호화를 사용하여 암호화를 진행하고, 대칭키 암호화하는 과정에 사용된 비밀 키는 공개키 기반의 암호를 통해 암호화되어 수신자에게 전송한다. 이때 비밀키의 암호화에 사용되는 키는 수신자의 공개 키다. 자신의 공개키로 암호화되어 전달받은 비밀 키를 자신의 개인 키로 암호를 해제한 다음 추출된 비밀키로 암호화된 메시지나 파일을 복호화한다.

4. 결론

결론적으로 이메일이란 네트워크를 이용하여 문자나 파일을 전송하는 것이고, 이 파일들을 안전하게 암호화하는 부분과 전송 과정의 도청 방지를 위해 암호화하는 두 가지 요소를 모두 사용하기에 하이브리드 암호화 시스템을 운영하여 공개키 구조, 대칭키 구조 둘 다 답이었다.

5. 참조

  • 이미지 - http://windowsitpro.com/site-files/windowsitpro.com/files/archive/windowsitpro.com/content/content/49878/figure_01.jpg
  • 이해 1 - https://technet.microsoft.com/ko-kr/library/aa995740(v=exchg.65).aspx
  • 이해 2 - https://technet.microsoft.com/library/aa995740(v=exchg.65).aspx
  • 이해 3 - https://en.wikipedia.org/wiki/S/MIME


'Information Security > Cryptography' 카테고리의 다른 글

S/MIME (Secure for Multipurpose Internet Mail Extensions)  (0) 2016.04.04
Authentihash  (0) 2015.04.14

1. 개요

바이러스토탈을 통해 악성코드를 검사하고 그 결과를 확인하는 과정에서 Authentihash 라는 단어를 만나게 되었다. 해당 단어 옆 아이콘을 클릭하면 Authenticode에 대한 기술서를 볼 수 있고, 내용을 읽어보면 해당 인증 기술을 이용하여 해시값을 만들 수 있음을 알 수 있다.

2. 내용

Authenticode는 소프트웨어 바이너리의 출처 및 무결성을 확인하는데 사용되는 디지털 서명 형식이다. 공개 키 암호화 표준(PKCS) #7의 서명된 데이터로 소프트웨어 게시자의 신원을 확인하기 위해 X.509 v3 인증서를 사용하여 Authenticode 서명 파일을 결합한 것이다. 이 서명은 "특정 소프트웨어 게시자를 증명", "서명 된 이후 파일이 변경되지 않음" 을 의미하고 "소프트웨어의 품질" 또는 "소프트웨어에 대한 정보 전달" 목적에 의해 운영되지 않는다.

PKCS #7 은 암호 메시지 문법 표준(Cryptographic Message Syntax Standard)로 암호화한 데이터를 표현하는 방식에 대한 표준이다.

Authenticode 시그니처의 사용에 있어 중요한 점은 이 디지털 인증은 .exe .dll 그리고 .sys 파일과 같은 Portable Executable(PE)에만 가능하다. 또한 다음과 같은 윈도우 버전에서만 확인 가능하다.

  • Windows Server 2008
  • Windows Vista®
  • Windows Server® 2003
  • Windows® XP
  • Windows 2000

PE 파일에서 Authenticode 서명은 PKCS #7 SignedData 구조에 있다. 이 구조는 PE 파일 구조상 옵션 헤더(Optional Header)의 데이터 디렉토리(Data Directories)에서 인증 테이블(Certificate Table)에 포함되어 있다.

PKCS #7 SignedData 구조는 PE 파일의 해시 값, 시그니처를 생성한 소프트웨어 게시자의 개인 키 그리고 법인 소프트웨어 게시자의 서명 키를 결합한 X.509 v3 인증서가 필수적으로 포함된다. 그리고 소프트웨어 게시자의 설명, URL 그리고 Authenticode 타임 스탬프는 선택적으로 포함 가능하다.

타임 스탬프는 TSA(TimeStamping Authority)에 의해 생성된 시그니처를 포함하며 협정세계시(UTC, Universal Time Coordinated) 기준을 따른다. 타임 스탬프에 지정된 시간 이전에 게시자의 서명된 인증서를 참조할 수 있다. 또한 서명된 인증서가 만료되거나 철회 된 이후에도 타임 스탬프에 의해 서명에 대한 참조 기간이 연장된다.

배경색이 있는 부분은 Authentihash 값 생성 시 제외되는 항목, 굵은 글씨체는 Authenticode와 관련된 데이터의 위치를 가리킴

Authentihash의 연산 과정에서 주요 기능은 원래 파일 해시 값과 Authenticode에 등록된 해시 값을 산출 해 비교한다. 두 해시 값이 일치하지 않으면, 서명 된 이후 파일이 수정되었다고 간주된다. Authenticode 해시 생성 방법은 다음과 같다.

  1. 파일의 체크섬과 옵션 헤더 데이터 디렉토리(Optional Header Data Directories)의 인증서 테이블(Certificate Table) 항목을 생략하고 PE 헤더를 해싱한다.
  2. PE 세션은 정렬하고 해싱한다.
  3. 해시 계산에서 속성 인증서 테이블(Attribute Certificate Table)를 생략하고 나머지 데이터를 해싱한다.

3. 참조

'Information Security > Cryptography' 카테고리의 다른 글

S/MIME (Secure for Multipurpose Internet Mail Extensions)  (0) 2016.04.04
Authentihash  (0) 2015.04.14

+ Recent posts