S/MIME 이해

 

마지막으로 수정된 항목: 2006-08-16

S/MIME이 도입되기 이전에 관리자는 널리 사용되는 전자 메일 프로토콜로서 기본적으로 안전하지 않은 SMTP(Simple Mail Transfer Protocol)를 사용하거나 좀 더 안전하지만 사적인 솔루션을 사용했습니다. 즉 보안 또는 연결성 중 어느 한 쪽에 치우친 솔루션을 선택했습니다. 이제 S/MIME이 출현하면서 좀 더 안전하면서도 널리 사용되는 전자 메일을 선택할 수 있게 되었습니다. S/MIME은 SMTP를 한 단계 끌어올려 보안을 저해하지 않고도 광범위한 전자 메일 연결이 가능하게 하므로 SMTP만큼 중요한 표준이 되었습니다.

S/MIME의 유래

S/MIME의 유래를 알면 S/MIME을 이해하는 데 도움이 됩니다. S/MIME 첫 버전은 다수의 보안 공급업체에 의해 1995년에 개발되었으며 메시지 보안의 여러 사양 중 하나였습니다. 메시지 보안의 다른 사양의 예로는 PGP(Pretty Good Privacy)가 있습니다. S/MIME 버전 1이 나올 무렵에는 안전한 메시지를 위한 공식적인 단일 표준이 없었고 여러 개의 표준이 서로 경쟁하고 있었습니다.

1998년 S/MIME 버전 2가 도입되면서 상황은 변화하기 시작했습니다. S/MIME 버전 2는 버전 1과는 달리 IETF(Internet Engineering Task Force)에 제출되어 인터넷 표준으로 고려되었습니다. 가능성 있는 여러 가지 표준 중 하나로 시작한 S/MIME은 이러한 과정을 거치면서 메시지 보안 표준의 선두 주자로 변모했습니다. 두 개의 IETF RFC(Request for Comments), 즉 메시지 표준을 지정한 RFC 2311(http://www.ietf.org/rfc/rfc2311.txt)과 인증서 처리 표준을 지정한 RFC 2312(http://www.ietf.org/rfc/rfc2312.txt)가 S/MIME 버전 2를 구성합니다. 두 가지 RFC가 함께 결합하여 상호 운용 가능한 메시지 보안 솔루션을 전달하기 위해 공급업체가 준수할 최초의 인터넷 기반 프레임워크를 형성했습니다. S/MIME 버전 2가 도입되면서 S/MIME은 메시지 보안의 표준으로 자리잡게 되었습니다.

1999년에 IETF는 S/MIME 기능을 강화하기 위해 S/MIME 버전 3을 제안했습니다. RFC 2632(http://www.ietf.org/rfc/rfc2632.txt)는 RFC 2311의 업적을 기반으로 S/MIME 메시지 표준을 지정했고 RFC 2633(http://www.ietf.org/rfc/rfc2633.txt)은 RFC 2312의 인증서 처리 사양을 향상시켰습니다. RFC 2634(http://www.ietf.org/rfc/rfc2634.txt)는 보안 확인 메일, 삼중 래핑 및 보안 레이블 등의 추가 서비스를 S/MIME에 더하여 전체 기능을 확장했습니다.

S/MIME 버전 3은 메시지 보안의 표준으로서 널리 채택되었습니다. S/MIME 버전 3은 다음 Microsoft 제품에서 지원됩니다.

  • Microsoft Outlook® 2000(SR-1 적용) 이상
  • Microsoft Outlook Express 5.01 이상
  • Microsoft Exchange 5.5 이상

S/MIME의 역할

S/MIME은 다음 두 가지 보안 서비스를 제공합니다.

  • 디지털 서명
  • 메시지 암호화

이 두 가지는 S/MIME 기반 메시지 보안의 핵심 서비스입니다. 메시지 보안에 관련한 다른 모든 개념들이 이 두 가지 서비스를 지원합니다. 메시지 보안의 전체 범위는 복잡해 보일 수 있지만 메시지 보안의 기초가 되는 것은 이 두 서비스입니다. 디지털 서명 및 메시지 암호화에 대한 기본적인 이해를 마치면 이 서비스를 지원하는 다른 개념에 대해서도 알 수 있습니다.

각 서비스가 개별적으로 검토된 다음 두 서비스가 함께 작동하는 방법에 대한 정보가 제공됩니다.

디지털 서명

디지털 서명은 매우 일반적으로 사용되는 S/MIME 서비스입니다. 이름이 시사하듯 디지털 서명은 종이 문서에 법적인 서명을 하는 종래의 방식과 상반되는 디지털 방식입니다. 디지털 서명은 법적 서명처럼 다음과 같이 보안 기능을 제공합니다.

  • 인증 서명은 신원이 올바른지 확인합니다. 해당 엔터티를 다른 모든 대상과 구별하고 엔터티의 고유성을 입증하는 방식으로 "당신은 누구입니까?"에 대한 대답을 확인하는 것입니다. SMTP 전자 메일에는 인증이 없기 때문에 실제로 메시지를 보낸 사람을 알 수 없습니다. 디지털 서명에서 인증은 메시지를 받은 사람이 메시지를 보냈다고 주장하는 사람 또는 조직에서 실제로 메시지를 보냈음을 알 수 있도록 함으로써 이 문제를 해결합니다.
  • 거부할 수 없음 서명의 고유성은 서명 소유자가 서명을 거부하지 못하도록 합니다. 이 기능을 거부할 수 없음이라고 합니다. 따라서 서명이 제공하는 인증은 거부할 수 없음 기능을 강화하는 수단이 됩니다. 거부할 수 없음의 개념은 문서 계약의 상황에서 친숙한 개념입니다. 즉 서명된 계약은 법적 구속력이 있으며 인증된 서명을 거부하는 것이 불가능합니다. 디지털 서명은 동일한 기능을 제공하며 일부 지역에서는 점차 증가하는 추세로 종이 문서에 서명하는 것과 비슷한 법적 구속력이 있는 것으로 인정됩니다. SMTP 전자 메일은 인증 방법을 제공하지 않기 때문에 거부할 수 없음 기능을 제공할 수 없습니다. 보낸 사람은 SMTP 전자 메일 메시지의 소유권을 쉽게 거부할 수 있습니다.
  • 데이터 무결성 디지털 서명이 제공하는 또 다른 보안 서비스는 데이터 무결성입니다. 디지털 서명을 가능하게 만드는 특정 조작의 결과로 데이터 무결성을 구현할 수 있게 되었습니다. 데이터 무결성 서비스가 있음으로써 디지털 서명된 전자 메일 메시지를 받는 사람은 디지털 서명을 확인할 때 받은 전자 메일 메시지가 서명되어 보내졌을 때와 동일하며 전송 중에 변경되지 않았음을 확신할 수 있게 됩니다. 서명 후 전송되는 동안 메시지에 변경 사항이 있다면 그 서명은 무효가 됩니다. 이와 같이 디지털 서명은 종이 문서의 서명으로 제공하지 못하는 보증을 제공할 수 있습니다. 종이 문서는 서명된 후에도 변경될 가능성이 있기 때문입니다.

중요

디지털 서명은 데이터 무결성을 제공하지만 기밀 유지 기능은 제공하지 않습니다. 디지털 서명만으로 된 메시지가 SMTP 메시지와 유사하게 cleartext로 전송되면 다른 사람이 읽을 수 있습니다. 메시지가 불투명하게 서명한 메시지인 경우 그 메시지는 base64로 인코딩되기 때문에 불투명한 수준이 되지만 여전히 cleartext입니다. 전자 메일 메시지의 내용을 보호하려면 메시지 암호화를 사용해야 합니다.

인증, 거부할 수 없음 및 데이터 무결성은 디지털 서명의 핵심 기능입니다. 이 기능들이 서로 결합하여 메시지를 보낸 사람에게서 메시지가 왔으며 받은 메시지는 보낸 사람이 보낸 메시지와 동일한 메시지임을 받는 사람에게 보증합니다.

간단하게 설명하면 다음 그림과 같이 디지털 서명은 메시지를 보낼 때 전자 메일 메시지의 텍스트에서 서명 작업을 수행하고 메시지를 읽을 때 작업을 확인하는 방식으로 작동합니다.

7eb8a3ca-35c8-4101-9dd6-421a6bc7cc79

메시지를 보낼 때 수행되는 서명 작업에는 보낸 사람만이 제공할 수 있는 정보가 필요합니다. 이 서명 작업에 대한 자세한 내용은 공개 키 암호화 이해의 "공개 키 암호화 및 디지털 서명"을 참조하십시오. 이 정보는 전자 메일 메시지를 캡처하고 해당 메시지에서 서명 작업을 수행하여 서명 작업에 사용됩니다. 이 작업으로 실제 디지털 서명이 생성된 다음 전자 메일 메시지에 이 서명이 첨부되고 메시지에 포함되어 보내어집니다. 다음 그림은 메시지의 서명 순서를 보여 줍니다.

b310b679-91bf-40f7-be7f-abbc24515204

  1. 메시지가 캡처됩니다.
  2. 보낸 사람을 고유하게 식별하는 정보가 검색됩니다.
  3. 디지털 서명을 만들기 위해 받는 사람의 고유 정보를 사용하여 메시지에서 서명 작업이 수행됩니다.
  4. 디지털 서명이 메시지에 추가됩니다.
  5. 메시지가 전송됩니다.

이 작업에는 보낸 사람의 고유 정보가 필요하므로 디지털 서명은 인증 및 거부할 수 없음 기능을 제공합니다. 이 고유 정보는 그 메시지가 보낸 사람만이 보낼 수 있는 것임을 입증합니다.

참고

완벽한 보안 메커니즘은 없습니다. 권한이 없는 사용자가 디지털 서명에 사용되는 고유한 정보를 얻고 보낸 사람을 가장하는 것이 가능합니다. 그러나 S/MIME 표준은 이러한 상황을 처리하여 인증되지 않은 서명이 무효 상태로 나타나도록 할 수 있습니다. 자세한 내용은 디지털 인증서 이해를 참조하십시오.

받는 사람이 디지털 서명된 전자 메일 메시지를 열면 디지털 서명에 대한 확인 절차가 수행됩니다. 메시지에 포함된 디지털 서명이 메시지에서 검색됩니다. 원본 메시지도 검색되며 또 다른 디지털 서명을 만드는 서명 작업이 수행됩니다. 메시지에 포함된 디지털 서명이 받는 사람이 생성한 디지털 서명과 비교됩니다. 서명이 일치하면 메시지는 주장된 대로 보낸 사람으로부터 온 것으로 확인됩니다. 서명이 일치하지 않으면 메시지는 무효 상태로 표시됩니다. 다음 그림은 메시지의 확인 순서를 보여 줍니다.

1dc0bde0-fcc9-4c15-9697-a8925781649a

  1. 메시지가 수신됩니다.
  2. 디지털 서명이 메시지로부터 검색됩니다.
  3. 메시지가 검색됩니다.
  4. 보낸 사람을 식별하는 정보가 검색됩니다.
  5. 메시지에서 서명 작업이 수행됩니다.
  6. 메시지에 포함된 디지털 서명이 수신 확인 시 생성된 디지털 서명과 비교됩니다.
  7. 디지털 서명이 일치하면 메시지가 유효한 것입니다.

중요

서명을 확인할 때 사용되는 보낸 사람의 정보는 메시지를 서명할 때 보낸 사람이 제공하는 정보와 다릅니다. 받는 사람이 사용하는 정보는 보낸 사람의 실제 정보를 알지 못한 상태로 그 고유 정보를 확인할 수 있는 방식으로 되어 있으므로 보낸 사람의 정보가 보호됩니다. 보낸 사람과 받는 사람이 정보를 공유하는 방법에 대한 자세한 내용은 공개 키 암호화 이해의 "공개 키 암호화 및 디지털 서명"을 참조하십시오.

디지털 서명 및 디지털 서명 확인 프로세스는 함께 전자 메일 메시지를 보낸 사람을 인증하고 서명된 메시지 안에서 데이터 무결성을 판별합니다. 보낸 사람 인증은 거부할 수 없음이라는 추가 기능을 제공하여 인증된 보낸 사람이 메시지를 보내지 않았다고 주장하는 것을 방지합니다. 디지털 서명은 표준 SMTP 기반 인터넷 전자 메일에서 발생 가능한 가장 및 데이터 변조 문제를 해결합니다.

메시지 암호화

메시지 암호화는 정보 노출 문제를 해결합니다. SMTP 기반 인터넷 전자 메일에는 메시지 보안 기능이 없습니다. 메시지가 이동될 때 메시지를 볼 수 있거나 메시지가 저장된 곳을 볼 수 있는 사람은 누구든지 SMTP 인터넷 전자 메일 메시지를 읽을 수 있습니다. S/MIME에서는 암호화를 사용하여 이 문제를 해결합니다.

암호화는 읽을 수 있고 이해할 수 있는 형식으로 되돌릴 때까지는 읽거나 이해될 수 없도록 정보를 변경하는 방법입니다.

메시지 암호화는 디지털 서명처럼 광범위하게 사용되지는 않지만 많은 사람들이 인터넷 전자 메일의 가장 심각한 취약점으로 인식하는 문제를 해결합니다. 메시지 암호화는 다음과 같이 두 가지 특정 보안 서비스를 제공합니다.

  • 기밀 유지 기능 메시지 암호화는 전자 메일 메시지의 내용을 보호합니다. 받는 사람만이 내용을 읽을 수 있고 그 내용은 기밀이 유지되어 있어서 메시지를 받거나 볼 수 있는 사람 외의 누구도 그 내용을 확인할 수 없습니다. 암호화는 메시지가 전송 및 저장되는 동안 기밀성을 제공합니다.
  • 데이터 무결성 디지털 서명처럼 메시지 암호화는 암호화를 가능하게 하는 특정 작업의 결과로 데이터 무결성 서비스를 제공합니다.

중요

메시지 암호화는 기밀 유지 기능을 제공하지만 어떤 방식으로든 메시지 보낸 사람을 인증하지는 않습니다. 서명되지 않고 암호화된 메시지는 암호화되지 않은 메시지로 보낸 사람을 가장하는 것이 가능합니다. 거부할 수 없음은 인증의 직접적인 결과이므로 메시지 암호화는 거부할 수 없음 기능도 제공하지 않습니다. 암호화가 데이터 무결성을 제공하지만 암호화된 메시지는 보내진 이후 메시지가 변경되지 않았다는 것만 보여 줍니다. 메시지를 보낸 사람에 대한 어떤 정보도 제공되지 않습니다. 보낸 사람의 신원을 입증하려면 메시지에 디지털 서명을 사용해야 합니다.

기밀성 및 데이터 무결성은 메시지 암호화의 핵심 기능입니다. 즉 받는 사람만이 메시지를 볼 수 있으며 받은 메시지가 보내진 메시지임을 보증할 수 있습니다.

메시지 암호화는 메시지가 보내질 때 암호화 작업을 수행하여 메시지의 텍스트를 읽을 수 없는 텍스트로 만듭니다. 다음 그림과 같이 메시지를 받으면 메시지를 읽을 때 암호 해독 작업이 수행되어 텍스트를 다시 읽을 수 있습니다.

70d97fee-7c86-4ab9-b104-56558a5a4102

메시지를 보낼 때 수행되는 암호화 작업으로 전자 메일 메시지가 캡처된 다음 받는 사람의 고유 정보를 사용하여 암호화됩니다. 암호화된 메시지가 원본 메시지를 대체한 후 메시지가 받는 사람에게 보내집니다. 다음 그림은 전자 메일 메시지의 암호화 순서를 보여 줍니다.

7320c72f-dfc4-45c2-b56c-13433dc4360e

  1. 메시지가 캡처됩니다.
  2. 받는 사람을 고유하게 식별하는 정보가 검색됩니다.
  3. 암호화된 메시지를 만들기 위해 받는 사람 정보를 사용하여 메시지에서 암호화 작업이 수행됩니다.
  4. 암호화된 메시지가 메시지의 텍스트를 대체합니다.
  5. 메시지가 전송됩니다.

이 작업에는 받는 사람의 고유 정보가 필요하므로 메시지 암호화는 기밀성을 제공합니다. 받는 사람만이 암호 해독 작업을 수행하기 위한 정보를 보유합니다. 즉 암호화되지 않은 메시지를 보려면 받는 사람의 고유 정보를 제공해야 하므로 받는 사람만이 메시지를 볼 수 있게 됩니다.

중요

메시지를 암호화할 때 사용되는 받는 사람의 정보는 메시지의 암호를 해독할 때 받는 사람이 제공하는 정보와 다릅니다. 보낸 사람이 사용하는 정보는 받는 사람의 실제 정보를 알지 못한 상태로 그 고유 정보를 사용할 수 있는 방식으로 되어 있어 받는 사람의 정보를 보호합니다. 보낸 사람과 받는 사람이 정보를 공유하는 방법에 대한 자세한 내용은 공개 키 암호화 이해의 "공개 키 암호화 및 메시지 암호화"를 참조하십시오.

받는 사람이 암호화된 메시지를 열면 암호화된 메시지에서 암호 해독 작업이 수행됩니다. 암호화된 메시지 및 받는 사람의 고유 정보가 모두 검색됩니다. 그런 다음 받는 사람의 고유 정보가 암호화된 메시지의 암호 해독 작업에 사용됩니다. 이 작업은 암호화되지 않은 메시지를 돌려보내 받는 사람에게 보여 줍니다. 메시지가 전송 중 변경되었다면 암호 해독 작업은 실패합니다. 다음 그림은 전자 메일 메시지의 암호 해독 순서를 보여 줍니다.

5b1ee7e9-35fb-4c55-bd0f-63a2b52a6604

  1. 메시지가 수신됩니다.
  2. 암호화된 메시지가 검색됩니다.
  3. 받는 사람을 고유하게 식별하는 정보가 검색됩니다.
  4. 암호화되지 않은 메시지를 만들기 위해 받는 사람의 고유한 정보를 사용하여 암호화된 메시지에서 암호 해독 작업이 수행됩니다.
  5. 암호화되지 않은 메시지가 받는 사람에게 반환됩니다.

참고

완벽한 보안 메커니즘은 없습니다. 권한이 없는 사용자가 받는 사람의 고유 정보를 얻고 그 정보를 사용하여 암호화된 메시지를 읽을 수 있습니다. 그러나 S/MIME 표준은 이러한 상황을 해결할 수 있습니다. 자세한 내용은 디지털 인증서 이해를 참조하십시오.

메시지 암호화 및 해독 프로세스는 전자 메일 메시지의 기밀성을 제공합니다. 이 프로세스는 누구든지 그 어떤 메시지도 읽을 수 있다는 인터넷 전자 메일의 심각한 취약점을 해결합니다.

디지털 서명과 메시지 암호화

디지털 서명 및 메시지 암호화는 동시에 실행될 수 없는 서비스입니다. 각 서비스는 특정 보안 문제를 처리합니다. 디지털 서명은 인증 및 거부 문제를 해결하고 메시지 암호화는 기밀성 문제를 해결합니다. 각각 서로 다른 문제를 처리하므로 메시지 보안 전략에는 이 두 서비스가 동시에 필요한 경우가 많습니다. 이 두 서비스는 보낸 사람-받는 사람 관계 중 한쪽만 개별적으로 처리하므로 다른 서비스와 함께 사용하도록 디자인되었습니다. 디지털 서명은 보낸 사람 관련 보안 문제를 처리하며 암호화는 주로 받는 사람 관련 문제를 처리합니다.

디지털 서명 및 메시지 암호화가 함께 사용된 경우 사용자는 두 서비스 모두의 혜택을 누릴 수 있습니다. 메시지에서 두 서비스를 모두 사용해도 상대 서비스의 처리 및 프로세스가 변경되지 않습니다. 즉 두 가지는 이 문서의 앞부분 섹션에서 설명한 대로 각각 작동합니다. 다음 그림에서는 전자 메일 메시지의 서명 및 암호화 순서를 통해 디지털 서명 및 메시지 암호화가 함께 처리되는 방식을 보여 줍니다.

3d9893ab-cffa-4783-95d9-fd9d997c1533

  1. 메시지가 캡처됩니다.
  2. 보낸 사람을 고유하게 식별하는 정보가 검색됩니다.
  3. 받는 사람을 고유하게 식별하는 정보가 검색됩니다.
  4. 디지털 서명을 만들기 위해 보낸 사람의 고유한 정보를 사용하여 메시지에서 서명 작업이 수행됩니다.
  5. 디지털 서명이 메시지에 추가됩니다.
  6. 암호화된 메시지를 만들기 위해 받는 사람 정보를 사용하여 메시지에서 암호화 작업이 수행됩니다.
  7. 원본 메시지가 암호화된 메시지로 대체됩니다.
  8. 메시지가 전송됩니다.

다음 그림은 디지털 서명의 암호 해독 및 확인 순서를 보여 줍니다.

deab38d5-da66-4c23-add3-a78722c41cb1

  1. 메시지가 수신됩니다.
  2. 암호화된 메시지가 검색됩니다.
  3. 받는 사람을 고유하게 식별하는 정보가 검색됩니다.
  4. 암호화되지 않은 메시지를 만들기 위해 받는 사람의 고유한 정보를 사용하여 암호화된 메시지에서 암호 해독 작업이 수행됩니다.
  5. 암호화되지 않은 메시지가 되돌아갑니다.
  6. 암호화되지 않은 메시지가 받는 사람에게 반환됩니다.
  7. 암호화되지 않은 메시지에서 디지털 서명이 검색됩니다.
  8. 보낸 사람을 식별하는 정보가 검색됩니다.
  9. 디지털 서명을 만들기 위해 보낸 사람의 정보를 사용하여 암호화되지 않은 메시지에서 서명 작업이 수행됩니다.
  10. 메시지에 포함된 디지털 서명이 수신 확인 시 생성된 디지털 서명과 비교됩니다.
  11. 디지털 서명이 일치하면 메시지가 유효한 것입니다.

세 번 래핑된 메시지

S/MIME 버전 3에서 향상된 기능 중 주목할 만한 것은 “세 번 래핑” 기능입니다. 세 번 래핑된 S/MIME 메시지는 서명 및 암호화된 다음 다시 서명되는 메시지입니다. 이러한 추가 암호화 계층이 추가 보안 계층을 형성하게 됩니다. S/MIME 컨트롤을 사용하는 Outlook Web Access에서 사용자가 메시지를 서명 및 암호화하면 그 메시지는 자동으로 세 번 래핑됩니다. Outlook과 Outlook Express에서는 메시지를 세 번 래핑하지 않지만 읽을 수는 있습니다.

디지털 서명 및 메시지 암호화는 상호 보완적이며 SMTP 기반 인터넷 전자 메일 관련 보안 문제에 대한 포괄적인 솔루션을 제공합니다.

디지털 인증서 및 메시지 암호화는 S/MIME의 핵심 기능입니다. 메시지 보안의 기초가 되는 가장 중요한 개념은 공개 키 암호화입니다. 공개 키 암호화는 S/MIME 실행 상태에서 디지털 서명 및 메시지 암호화를 만듭니다. 공개 키 암호화 이해에서는 공개 키 암호화 및 S/MIME과 공개 키 암호화의 관련성에 대해 설명합니다.