네트워크 보안 – 애플리케이션 계층

이제 클라이언트-서버 애플리케이션을 통해 다양한 비즈니스 서비스가 온라인으로 제공됩니다. 가장 많이 사용되는 양식은 웹 응용 프로그램과 전자 메일입니다. 두 응용 프로그램에서 클라이언트는 지정된 서버와 통신하고 서비스를 얻습니다.

서버 응용 프로그램에서 서비스를 사용하는 동안 클라이언트와 서버는 기본 인트라넷 또는 인터넷에서 많은 정보를 교환합니다. 우리는 이러한 정보 거래가 다양한 공격에 취약하다는 사실을 알고 있습니다.

네트워크 보안은 데이터가 네트워크에서 전송되는 동안 공격으로부터 데이터를 보호하는 것을 수반합니다. 이 목표를 달성하기 위해 많은 실시간 보안 프로토콜이 설계되었습니다. 이러한 프로토콜은 최소한 다음과 같은 주요 목표를 제공해야합니다.

  • 당사자는 대화식으로 협상하여 서로를 인증 할 수 있습니다.
  • 네트워크에서 정보를 교환하기 전에 비밀 세션 키를 설정하십시오.
  • 암호화 된 형식으로 정보를 교환하십시오.

흥미롭게도 이러한 프로토콜은 네트워킹 모델의 여러 계층에서 작동합니다. 예를 들어 S / MIME 프로토콜은 응용 프로그램 계층에서 작동하고 SSL 프로토콜은 전송 계층에서 작동하도록 개발되었으며 IPsec 프로토콜은 네트워크 계층에서 작동합니다.

이 장에서는 전자 메일 통신 및 관련 보안 프로토콜에 대한 보안을 달성하기위한 여러 프로세스에 대해 설명합니다. DNS 보안 방법은 이후에 설명합니다. 이후 장에서는 웹 보안을 달성하기위한 프로토콜에 대해 설명합니다.

이메일 보안

오늘날 전자 메일은 매우 널리 사용되는 네트워크 응용 프로그램이되었습니다. 전자 메일 보안 프로토콜에 대해 알아보기 전에 전자 메일 인프라에 대해 간단히 살펴 보겠습니다.

이메일 인프라

이메일을 보내는 가장 간단한 방법은 보낸 사람의 컴퓨터에서받는 사람의 컴퓨터로 직접 메시지를 보내는 것입니다. 이 경우 두 시스템이 네트워크에서 동시에 실행되어야합니다. 그러나이 설정은 사용자가 때때로 자신의 컴퓨터를 네트워크에 연결할 수 있으므로 비실용적입니다.

따라서 전자 메일 서버 설정 개념이 도래했습니다. 이 설정에서 메일은 네트워크에서 영구적으로 사용할 수있는 메일 서버로 전송됩니다. 수신자의 기기가 네트워크에 연결되면 메일 서버에서 메일을 읽습니다.

일반적으로 이메일 인프라는 메일 서버의 메시로 구성되며 Message Transfer Agents (MTA) 및 UA (사용자 에이전트) 및 로컬 MTA로 구성된 전자 메일 프로그램을 실행하는 클라이언트 컴퓨터.

일반적으로 전자 메일 메시지는 UA에서 전달되고 MTA 메시를 통과하여 최종적으로 수신자 컴퓨터의 UA에 도달합니다.

이메일에 사용되는 프로토콜은 다음과 같습니다.

  • 전자 메일 메시지 전달에 사용되는 SMTP (Simple Mail Transfer Protocol)입니다.

  • POP (Post Office Protocol) 및 IMAP (Internet Message Access Protocol)는 서버에서받는 사람별로 메시지를 검색하는 데 사용됩니다.

몸짓 광대극

기본 인터넷 전자 메일 표준은 1982 년에 작성되었으며 인터넷에서 교환되는 전자 메일 메시지 형식을 설명합니다. 주로 기본 로마자 문자로 작성된 이메일 메시지를 지원합니다.

1992 년까지이를 개선 할 필요성이 느껴졌습니다. 따라서 추가 표준 MIME ( Multipurpose Internet Mail Extensions )가 정의되었습니다. 기본 인터넷 전자 메일 표준에 대한 확장 집합입니다. MIME는 키릴 자모 (러시아어로 사용됨), 그리스 자모 또는 중국어 표의 문자와 같은 기본 로마 자모 이외의 문자를 사용하여 전자 메일을 보내는 기능을 제공합니다.

MIME에 의해 충족되는 또 다른 요구는 이미지 나 비디오 클립과 같은 텍스트가 아닌 콘텐츠를 보내는 것입니다. 이 기능으로 인해 MIME 표준은 전자 메일 통신을 위해 SMTP에 널리 채택되었습니다.

이메일 보안 서비스

중요하고 중요한 거래를위한 이메일 통신 사용이 증가함에 따라 다음과 같은 특정 기본 보안 서비스를 제공해야합니다.

  • Confidentiality − 이메일 메시지는 의도 된 수신자가 아닌 다른 사람이 읽을 수 없습니다.

  • Authentication − 이메일 수신자는 발신자의 신원을 확인할 수 있습니다.

  • Integrity − 이메일 메시지가 발신자에 의해 전송 된 이후 변경되지 않았 음을 수신자에게 보장합니다.

  • Non-repudiation − 이메일 수신자는 보낸 사람이 실제로 메시지를 보냈다는 것을 제 3 자에게 증명할 수 있습니다.

  • Proof of submission − 이메일 발신자는 메시지가 메일 전달 시스템으로 전달되었다는 확인을받습니다.

  • Proof of delivery − 발신자는 수신자가 메시지를 수신했다는 확인을받습니다.

개인 정보 보호, 인증, 메시지 무결성 및 부인 방지와 같은 보안 서비스는 일반적으로 공개 키 암호화를 사용하여 제공됩니다.

일반적으로 전자 메일 통신에는 세 가지 시나리오가 있습니다. 이러한 시나리오에서 위의 보안 서비스를 달성하는 방법에 대해 설명합니다.

일대일 이메일

이 시나리오에서 보낸 사람은 한 명의받는 사람에게만 전자 메일 메시지를 보냅니다. 일반적으로 두 개 이상의 MTA가 통신에 포함됩니다.

보낸 사람이받는 사람에게 기밀 전자 메일을 보내려고한다고 가정 해 보겠습니다. 이 경우 프라이버시 제공은 다음과 같이 달성됩니다.

  • 발신자와 수신자는 각각 (S PVT , S PUB ) 및 (R PVT , R PUB ) 로 개인-공개 키를 갖습니다 .

  • 발신자는 암호화를 위해 비밀 대칭 키 K S 를 생성합니다 . 발신자는 암호화에 R PUB 를 사용할 수 있었지만 더 빠른 암호화 및 암호 해독을 위해 대칭 키가 사용됩니다.

  • 발신자는 K S 키로 메시지를 암호화 하고 수신자 R PUB 의 공개 키로 K S 를 암호화합니다 .

  • 발신자는 암호화 된 메시지와 암호화 된 K S 를 수신자 에게 보냅니다 .

  • 수신자는 먼저 자신의 개인 키 R PVT를 사용하여 인코딩 된 K S 를 해독 하여 K S 를 얻습니다 .

  • 그런 다음 수신자는 대칭 키 K S를 사용하여 메시지를 해독합니다 .

이 시나리오에서 메시지 무결성, 인증 및 부인 방지 서비스도 필요한 경우 위의 프로세스에 다음 단계가 추가됩니다.

  • 발신자는 메시지 해시를 생성하고 개인 키 S PVT를 사용 하여이 해시에 디지털 서명합니다 .

  • 보낸 사람은이 서명 된 해시를 다른 구성 요소와 함께받는 사람에게 보냅니다.

  • 수신자는 공개 키 S PUB를 사용 하여 보낸 사람의 서명으로받은 해시를 추출합니다.

  • 그런 다음 수신자는 해독 된 메시지를 해시하고 이제 두 해시 값을 비교합니다. 일치하면 메시지 무결성이 달성 된 것으로 간주됩니다.

  • 또한 수신자는 보낸 사람이 메시지를 보냈는지 확인합니다 (인증). 마지막으로 보낸 사람은 자신이 메시지를 보내지 않았다는 사실을 부인할 수 없습니다 (거부 금지).

일대 다 수신자 이메일

이 시나리오에서 보낸 사람은 둘 이상의받는 사람에게 전자 메일 메시지를 보냅니다. 목록은 보낸 사람의 전자 메일 프로그램 (UA + 로컬 MTA)에서 관리합니다. 모든 수신자가 동일한 메시지를받습니다.

보낸 사람이 많은받는 사람 (예 : R1, R2 및 R3)에게 기밀 전자 메일을 보내려고한다고 가정 해 보겠습니다. 이 경우 프라이버시 제공은 다음과 같이 달성됩니다.

  • 보낸 사람과 모든받는 사람은 자신의 개인-공개 키 쌍을 갖습니다.

  • 송신자는 대칭 비밀 키 K를 생성 과,이 키를 사용하여 메시지를 암호화한다.

  • 송신자는 K 암호화 S R1의 점점 R1, R2 및 R3의 공개 키를 여러 번 PUB (K S ), R2 용 PUB (K S ), 및 R3의 PUB (K S ).

  • 발신자는 암호화 된 메시지와 해당 암호화 된 K S 를 수신자 에게 보냅니다 . 예를 들어, 수신자 (1) (R1)은 메시지의 암호화 및 R1 수신 PUB (K S를 ).

  • 각받는 첫번째 추출 키 K S 로는 K 코드 해독 S를 자신의 개인 키를 사용하여.

  • 그런 다음 각 수신자는 대칭 키 K S를 사용하여 메시지를 해독합니다 .

메시지 무결성, 인증 및 부인 방지를 제공하기 위해 따라야 할 단계는 일대일 전자 메일 시나리오에서 위에서 언급 한 단계와 유사합니다.

일대일 배포 목록 이메일

이 시나리오에서 보낸 사람은 둘 이상의받는 사람에게 전자 메일 메시지를 보내지 만받는 사람 목록은 보낸 사람이 로컬로 관리하지 않습니다. 일반적으로 전자 메일 서버 (MTA)는 메일 링리스트를 유지합니다.

보낸 사람은 메일 링 목록을 관리하는 MTA에 메일을 보낸 다음 MTA에 의해 목록의 모든 수신자에게 메일이 폭발합니다.

이 경우 발신자가 메일 링리스트의 수신자 (예 : R1, R2, R3)에게 기밀 이메일을 보내려고 할 때 개인 정보는 다음과 같이 보장됩니다.

  • 보낸 사람과 모든받는 사람은 자신의 개인 공개 키 쌍을 가지고 있습니다. Exploder Server에는 자신이 관리하는 각 메일 링리스트 (List PUB , List PVT )에 대한 개인-공개 키 쌍이 있습니다.

  • 송신자는 비밀 대칭 키 K를 생성 다음이 키를 사용하여 메시지를 암호화한다.

  • 보낸 후 K 암호화 S를 리스트와 연관된 공개 키를 사용하여,리스트 획득 PUB (K S를 ).

  • 보낸 사람은 암호화 된 메시지 목록 전송 PUB (K S를 ). 익스플로 MTA는 목록 복호화 PUB (K S 에서 사용하여) PVT를 하고 K 취득 S를 .

  • 익스플로 더 는 목록에있는 구성원 수만큼 공개 키를 사용 하여 K S 를 암호화 합니다.

  • Exploder는 수신 된 암호화 된 메시지와 해당 암호화 된 K S 를 목록의 모든 수신자에게 전달합니다. 예를 들면, 폭발이 암호화 된 메시지의 전달 R1 PUB (K S 등 수신자 1) 및.

메시지 무결성, 인증 및 부인 방지를 제공하기 위해 따라야 할 단계는 일대일 전자 메일 시나리오의 경우와 유사합니다.

흥미롭게도 전자 메일 보안을 위해 위의 보안 방법을 사용하는 전자 메일 프로그램은 위에서 설명한 모든 가능한 시나리오에서 작동 할 것으로 예상됩니다. 위의 전자 메일에 대한 대부분의 보안 메커니즘은 PGP (Pretty Good Privacy)와 S / MIME의 두 가지 인기있는 체계에 의해 제공됩니다. 다음 섹션에서 두 가지를 모두 논의합니다.

PGP

Pretty Good Privacy(PGP)는 이메일 암호화 체계입니다. 이는 이메일 통신을위한 보안 서비스를 제공하기위한 사실상의 표준이되었습니다.

위에서 설명한 것처럼 공개 키 암호화, 대칭 키 암호화, 해시 함수 및 디지털 서명을 사용합니다. 그것은 제공합니다-

  • Privacy
  • 발신자 인증
  • 메시지 무결성
  • Non-repudiation

이러한 보안 서비스와 함께 데이터 압축 및 키 관리 지원도 제공합니다. PGP는 새로운 알고리즘을 개발하는 대신 RSA, IDEA, MD5 등과 같은 기존 암호화 알고리즘을 사용합니다.

PGP의 작동

  • 메시지의 해시가 계산됩니다. (MD5 알고리즘)

  • 결과 128 비트 해시는 보낸 사람의 개인 키 (RSA 알고리즘)를 사용하여 서명됩니다.

  • 디지털 서명이 메시지에 연결되고 결과가 압축됩니다.

  • 128 비트 대칭 키 K S 가 생성되어 IDEA로 압축 된 메시지를 암호화하는 데 사용됩니다.

  • K S 는 RSA 알고리즘을 사용하여 수신자의 공개 키를 사용하여 암호화되고 그 결과는 암호화 된 메시지에 추가됩니다.

PGP 메시지의 형식은 다음 다이어그램과 같습니다. ID는 KS를 암호화하는 데 사용되는 키와 해시의 서명을 확인하는 데 사용할 키를 나타냅니다.

PGP 체계에서는 메시지가 서명되고 암호화 된 다음 MIME가 전송 전에 인코딩됩니다.

PGP 인증서

PGP 키 인증서는 일반적으로 신뢰 체인을 통해 설정됩니다. 예를 들어 A의 공개 키는 B가 공개 키를 사용하여 서명하고 B의 공개 키는 C가 공개 키를 사용하여 서명합니다. 이 과정이 진행됨에 따라 신뢰 망이 형성됩니다.

PGP 환경에서는 모든 사용자가 인증 기관의 역할을 할 수 있습니다. 모든 PGP 사용자는 다른 PGP 사용자의 공개 키를 인증 할 수 있습니다. 그러나 이러한 인증서는 사용자가 인증자를 신뢰할 수있는 소개 자로 인식하는 경우에만 다른 사용자에게 유효합니다.

이러한 인증 방법에는 몇 가지 문제가 있습니다. 알려져 있고 신뢰할 수있는 공개 키에서 원하는 키로 이어지는 체인을 찾기가 어려울 수 있습니다. 또한 원하는 사용자에 대해 서로 다른 키로 이어질 수있는 여러 체인이있을 수 있습니다.

PGP는 또한 인증 기관과 함께 PKI 인프라를 사용할 수 있으며 공개 키는 CA (X.509 인증서)에서 인증 할 수 있습니다.

S / MIME

S / MIME는 Secure Multipurpose Internet Mail Extension의 약자입니다. S / MIME는 보안 이메일 표준입니다. MIME라고하는 이전의 비보안 전자 메일 표준을 기반으로합니다.

S / MIME 작동

S / MIME 접근 방식은 PGP와 유사합니다. 또한 공개 키 암호화, 대칭 키 암호화, 해시 함수 및 디지털 서명을 사용합니다. 이메일 통신을위한 PGP와 유사한 보안 서비스를 제공합니다.

S / MIME에서 사용되는 가장 일반적인 대칭 암호는 RC2 및 TripleDES입니다. 일반적인 공개 키 방법은 RSA이고 해싱 알고리즘은 SHA-1 또는 MD5입니다.

S / MIME는 암호화 후 데이터 엔 벨로 핑을 위해 "application / pkcs7-mime"와 같은 추가 MIME 유형을 지정합니다. 전체 MIME 엔터티는 암호화되어 개체에 압축됩니다. S / MIME에는 표준화 된 암호화 메시지 형식 (PGP와 다름)이 있습니다. 실제로 MIME는 메시지에서 암호화 및 / 또는 서명 된 부분을 식별하기 위해 일부 키워드로 확장됩니다.

S / MIME는 공개 키 배포를 위해 X.509 인증서를 사용합니다. 인증 지원을 위해 하향식 계층 PKI가 필요합니다.

S / MIME의 사용 가능성

구현을위한 인증 기관의 인증서 요구 사항으로 인해 일부 사용자는 공개 / 개인 키 쌍으로 메시지를 암호화하기를 원할 수 있으므로 모든 사용자가 S / MIME를 이용할 수있는 것은 아닙니다. 예를 들어, 인증서의 개입이나 관리 오버 헤드가 없습니다.

실제로 대부분의 전자 메일 응용 프로그램이 S / MIME를 구현하지만 인증서 등록 프로세스는 복잡합니다. 대신 PGP 지원은 일반적으로 플러그인을 추가해야하며 해당 플러그인은 키 관리에 필요한 모든 것을 제공합니다. 신뢰의 웹은 실제로 사용되지 않습니다. 사람들은 다른 매체를 통해 공개 키를 교환합니다. 획득 한 후에는 일반적으로 이메일을 교환하는 사람들의 공개 키 사본을 보관합니다.

PGP 및 S / MIME 체계를위한 네트워크 아키텍처의 구현 계층은 다음 이미지에 나와 있습니다. 이 두 스키마는 전자 메일 통신을위한 응용 프로그램 수준 보안을 제공합니다.

환경에 따라 PGP ​​또는 S / MIME 체계 중 하나가 사용됩니다. 캡 티브 네트워크에서 안전한 전자 메일 통신은 PGP를 적용하여 제공 할 수 있습니다. 알 수없는 새로운 사용자와 메일이 자주 교환되는 인터넷을 통한 전자 메일 보안의 경우 S / MIME이 좋은 옵션으로 간주됩니다.

DNS 보안

첫 번째 장에서 공격자가 DNS 캐시 중독을 사용하여 대상 사용자에 대한 공격을 수행 할 수 있다고 언급했습니다. Domain Name System Security Extensions (DNSSEC)는 이러한 공격을 막을 수있는 인터넷 표준입니다.

표준 DNS의 취약성

표준 DNS 체계에서는 사용자가 도메인 이름에 연결하려고 할 때마다 컴퓨터가 DNS 서버에 연결하여 해당 도메인 이름에 대한 관련 IP 주소를 찾습니다. IP 주소를 얻으면 컴퓨터는 해당 IP 주소에 연결합니다.

이 체계에서는 확인 프로세스가 전혀 필요하지 않습니다. 컴퓨터는 DNS 서버에 웹 사이트와 관련된 주소를 요청하고 DNS 서버는 IP 주소로 응답하며 컴퓨터는 의심 할 여지없이이를 합법적 인 응답으로 받아들이고 해당 웹 사이트에 연결합니다.

DNS 조회는 실제로 여러 단계에서 발생합니다. 예를 들어, 컴퓨터가“www.tutorialspoint.com”을 요청하면 DNS 조회가 여러 단계로 수행됩니다.

  • 컴퓨터는 먼저 로컬 DNS 서버 (ISP 제공)를 요청합니다. ISP가 캐시에이 이름을 가지고있는 경우 ".com"을 찾을 수있는 "루트 영역 디렉터리"로 쿼리를 전달합니다. 및 루트 영역 응답.

  • 응답에 따라 컴퓨터는 "tutorialspoint.com"을 찾을 수있는 ".com"디렉토리를 요청합니다.

  • 수신 된 정보에 따라 컴퓨터는 www를 찾을 수있는 "tutorialspoint.com"을 조회합니다. tutorialspoint.com.

DNSSEC 정의

DNSSEC를 사용하여 수행되는 DNS 조회에는 응답 엔터티의 응답 서명이 포함됩니다. DNSSEC는 공개 키 암호화를 기반으로합니다.

DNSSEC 표준에서 모든 DNS 영역에는 공개 / 개인 키 쌍이 있습니다. DNS 서버에서 보낸 모든 정보는 인증을 보장하기 위해 원래 영역의 개인 키로 서명됩니다. DNS 클라이언트는 서명을 확인하기 위해 영역의 공개 키를 알아야합니다. 클라이언트는 모든 최상위 도메인 또는 루트 DNS의 공개 키로 미리 구성 될 수 있습니다.

DNSSEC를 사용하면 조회 프로세스는 다음과 같습니다.

  • 컴퓨터가 .com을 찾을 수있는 루트 영역을 물으면 루트 영역 서버가 응답에 서명합니다.

  • 컴퓨터는 루트 영역의 서명 키를 확인하고 실제 정보가있는 합법적 인 루트 영역인지 확인합니다.

  • 회신에서 루트 영역은 .com 영역 서버의 서명 키와 해당 위치에 대한 정보를 제공하여 컴퓨터가 .com 디렉터리에 접속할 수 있도록하고 합법적인지 확인합니다.

  • 그런 다음 .com 디렉토리는 tutorialspoint.com에 대한 서명 키와 정보를 제공하여 google.com에 접속하고 그 위에있는 영역에서 확인한대로 실제 tutorialspoint.com에 연결되어 있는지 확인할 수 있습니다.

  • 전송 된 정보는 RRSet (Resource Record Set) 형식입니다. 다음 표에는 최상위 ".com"서버의 "tutorialspoint.com"도메인에 대한 RRSet의 예가 나와 있습니다.

도메인 이름 살 시간 유형
tutorialspoint.com 86400 NS dns.tutorialspoint.com
dns.tutorialspoint.com 86400 36..1.2.3
tutorialspoint.com 86400 3682793A7B73F731029CE2737D ...
tutorialspoint.com 86400 SIG 86947503A8B848F5272E53930C ...
  • KEY 레코드는 "tutorialspoint.com"의 공개 키입니다.

  • SIG 레코드는 인증 여부를 확인하기 위해 NS, A 및 KEY 레코드 필드의 최상위 .com 서버의 서명 된 해시입니다. 값은 Kcom pvt (H (NS, A, KEY))입니다.

따라서 DNSSEC가 완전히 롤아웃되면 사용자의 컴퓨터는 DNS 응답이 합법적이고 사실인지 확인할 수 있고 DNS 캐시 포이즈 닝을 통해 시작된 DNS 공격을 피할 수있는 것으로 간주됩니다.

요약

이메일 보안 프로세스는 통신의 종단 간 보안을 보장합니다. 기밀성, 보낸 사람 인증, 메시지 무결성 및 부인 방지의 보안 서비스를 제공합니다.

전자 메일 보안을 위해 PGP 및 S / MIME의 두 가지 체계가 개발되었습니다. 이 두 방식 모두 비밀 키와 공개 키 암호화를 사용합니다.

표준 DNS 조회는 DNS 스푸핑 / 캐시 감염과 같은 공격에 취약합니다. DNS 조회 보안은 공개 키 암호화를 사용하는 DNSSEC를 사용하여 가능합니다.

이 장에서는 종단 간 통신을위한 네트워크 보안을 제공하기 위해 애플리케이션 계층에서 사용되는 메커니즘에 대해 설명했습니다.