2017-11-15 65 views
1

웹 응용 프로그램에서 거래 전자 메일을 보내려는 경우 nodemailermailgun을 사용하고 있습니다. - 서버에 연결할 때 연결이 TLS를 사용하는 경우는 true 보안TLS와 함께 보안 SMTP를 사용하는 경우 전자 메일 헤더가 암호화됩니까?

: 나는 의미되는 SMTP transport를 만들 때 나는 secure=true 설정했습니다. false (기본값)이면 서버가 STARTTLS 확장을 지원하면 TLS가 사용됩니다. 이메일 주소 확인 및 암호가 이메일을 다시 들어 포트 465

에 연결하는 경우 대부분의 경우 단지 (나는 쉽게 테스트 할 수 있도록 X-Email-Token로 이메일 헤더에 토큰을 추가이 값을 true로 수 설정 전자 메일 본문을 구문 분석하는 대신 머리글에서 값을 가져옵니다). 메일 본문을 읽을 수없는 메일 서버가이 헤더 필드를 읽을 수 있습니까?

+0

정답은 모든 메일 서버가 보낸 모든 전자 메일의 본문과 헤더를 읽을 수 있다는 것입니다. 이'secure' 속성은 SMTP 서버 (mailgun)에 대한 SMTP 클라이언트 (nodemailer)의 요청에만 적용됩니다. 거기에서 mailgun은 해당 메일 서버로 전자 메일을 전달합니다. **** GPG 이메일이없는 tl; dr **은 보안 통신 채널이 아니지만 일반적으로 비밀번호 재설정 링크 등의 경우에는 충분합니다. – mwakerman

답변

3

메시지 본문을 읽을 수없는 메일 서버가이 헤더 필드를 읽을 수 있습니까?

오해 경고 다음 secure=true 옵션 및/또는 전용 SMTP 클라이언트와 연결 도청에서 SMTP 서버 사이의 통신을 확보 전자 메일 전송을 확보하기 위해 (폐지) SSL의 사용 또는 TLS 그 특정 연결.

  • 수신 SMTP 서버가 반드시 최종 수신자의 전자 메일 서버는 아닙니다.
  • 수신 SMTP 서버는 TLS를 사용하여없이 다른 SMTP 서버 으로 메시지를 전달할 수 있습니다.
  • 수신 SMTP 서버가 악의적 인 경우 (예 : 누군가가 사기성 DNS MX 레코드를 심었을 경우) 메시지 내용을 읽고 내부에 포함 된 정보로 무언가를 할 수 있습니다.

이 경우 TLS는 "실제"전자 메일 메시지 암호화를 제공하지 않습니다. SMTP는 여전히 봉투가없는 엽서에 메시지를 쓰는 것과 같은 전자 메일입니다.

비유 : SMTP와 함께 TLS를 사용하는 것은 집에서 착취 한 창문이있는 소름 끼치는 밴에서 거리의 발신 사서함으로 집을 운전하는 것과 같지만 우편함에 알몸의 엽서를 둡니다. -service와 beyond는 메시지를 읽을 수는 있지만 적어도 아웃 바운드 사서함으로 이동하는 동안 거리의 아무도 메시지를 읽을 수 없습니다. 헤더와 바디 사이의 구별에 관한

:

(즉, 메일 서버 메일 전송 에이전트)를 MTA 메시지 본문을 메시지 헤더를 읽을 수 있습니다. SMTP에서 그들 사이에는 실제적인 구별이 없으며 TLS는 임의의 바이트 스트림을 보호하는 것에 만 관심이 있기 때문에이 모든 것에 대해 완전히 눈이 멀었습니다.

TLS는 MTA 호스트 사이의 연결 인 인 전송 수준 보안 만 제공합니다. MTA가 전자 메일을 읽는 것을 중지하지 않습니다. 이를 위해서는 PGP 나 S/MIME 및받는 사람의 공개 키와 같은 적절한 메시지 암호화가 필요합니다.

Google과 다른 인터넷 회사들이 웹 보안을 강화하려는 노력의 일환으로 전자 메일 보안에 대한 실질적인 노력은 전혀 놀라운 일이 아닙니다. Office 365, Gmail, Outlook.com 및 기타 같은 주요 전자 메일 제공 업체가 메시지 서명을 제공하는 것은 어렵지 않습니다 (메시지 발신을 제공하면 전자 메일이 자체 발신 SMTP를 통해 전송 됨으로써 고통없이 수행 할 수 있습니다. 서버 및 사용자에게는 2 단계 인증이 있습니다). 같은 회사는 공개 키 배포를위한 좋은 PKI를 설정할 수도 있습니다. 메시지 서명은 하룻밤 사이에 신뢰할 수있는 도메인 이름에서 오는 스팸을 거의 없애므로이 문제가 여전히 남아있는 종은 당황 스럽습니다.

+0

자세한 답변을 보내 주셔서 감사합니다. 머리카락과 몸체에 토큰을 두는 것이 몸에 두는 것보다 덜 안전하다고 생각합니다. 따라서 이것은 전자 메일을 ID를 증명하기위한 안전한 측면 채널로 사용함으로써 대부분의 응용 프로그램이 취하는 위험에 불과합니다. – mwakerman

+1

@mwakerman ** 전자 메일은 신원을 증명하지 않습니다 ** - 특정 주소와 관련된 사서함에 대한 액세스 권한을 증명할 수는 있지만 소유권은 없습니다. 인터넷을 통해 자동으로 ID를 증명하는 것은 매우 어렵습니다. 최선의 접근 방식은 국가별로 인정받는 신원 제공 업체와 함께 PKI 형식을 사용하고 일부 국가는 아이슬란드를 사용하지만 미국과 영국과 같은 국가는 그렇지 않습니다 (편집증 시민 또는 내부 무능력으로 인해).) – Dai

+0

나는 정의의 엄격함을 칭찬하지만 대다수의 응용 프로그램은 계정 주소와 관련된 사서함에 대한 액세스를 ID로 간주합니다. 이상적으로, 당신은 몇 가지 보안 질문이나 좋은 2FA 구현을 던져 버렸지 만 나는 그 단어를 사용할 때 지문과 DNA 식별 수준을 말하는 것이 아닙니다. – mwakerman

1

이것은 생각보다 다른 암호화 유스 케이스입니다. SSL/TLS를 사용하면 사용자와 서버가 모두 헤더 (헤더 포함)를 읽을 수 있지만 사용자와 서버 사이에있는 누군가는 읽을 수 없습니다.

서버에서 메시지를 읽을 수 없도록하려면 대신 GPG와 같은 것을 사용해야하며 올바른 방법으로 헤더를 암호화 할 수 없거나 서버에서 메시지를 읽을 수 없습니다. 메시지를 전달합니다.

+0

네 말이 맞아, 내가 시체도 암호화되었다고 생각하는 것은 착각이었다. 그러나 이것은 웹 응용 프로그램의 암호 재설정 기능이므로 GPG 경로를 따라 가지 않습니다. – mwakerman