X.509 인증서를 사용하여 XML을 암호화하는 이유는 무엇입니까? 왜 HTTP를 통해 전송하지 않습니까?

StackOverflow https://stackoverflow.com/questions/954337

문제

암호화에 대해 많이 모르겠습니다 ...

신원 제공 업체에 제출하라는 SAML 요청을 준비하고 있다고 가정 해 봅시다. 이 요청에 X.509 인증서를 적용 해야하는 이유는 무엇입니까? SSL에 대한 전송만으로는 충분히 안전하지 않습니까?

도움이 되었습니까?

해결책

예 -SSL은 충분하지만 SSL은 포인트 간 포인트입니다. 소스와 대상 기계 사이에 중개자가 몇 개있는 경우 SSL을 사용하여 연결을 보호 할 수 없습니다.

즉, 예를 들어 인터넷을 통해 전송할 때 전송 수준 대신 실제 메시지를 보호해야합니다. 그렇기 때문에 XML (또는 적어도 일부)을 암호화해야합니다.

마크

다른 팁

SAML의 경우, 메시지 수준 보안 (예 : XML 자체가 서명되고 때로는 암호화됩니다)은 커뮤니케이션이 직접 통신하지 않는 당사자와 관련되어 있기 때문입니다. SSL/TLS는 운송 수준 보안을위한 것이며, 직접 통신하는 두 당사자들 사이에서만 사용 되며이 커뮤니케이션 기간 동안 만 사용됩니다.

사용하는 SAML 바인딩에 따라 대화 상자가 다음과 같이 보일 수 있습니다 (예 : 라인을 따라 표어):

  • 사용자의 브라우저는 서비스 제공 업체 (SP)에 연결합니다.
  • SP는 사용자에게 SAML 요청을 제공합니다. 반드시 보이지 않지만 양식이나 동등한 내에 숨겨져 있습니다.
  • 사용자의 브라우저 (IDP에 직접 연결) SAML 요청을 IDP로 보냅니다.
  • 사용자는 그것을 인증하고 SAML 응답을받습니다.
  • 사용자의 브라우저는 해당 SAML 응답을 SP에 보냅니다.

이 시나리오에서는 SP와 IDP간에 직접 SSL/TLS 연결이 없지만 3 명의 당사자 모두가 관련되어 있습니다. (이의 일부 변형은 속성에 대한 SP와 IDP 간의 백엔드 커뮤니케이션이 포함되지만 다른 문제입니다.)

  • IDP에 대한 연결은 SP 자체가 아닌 사용자의 브라우저에서 나오기 때문에 IDP가 SAML 요청이 속성을 인증하고 릴리스 할 수있는 SP에서 나온 SSL/TLS 연결만으로는 충분하지 않습니다. 이러한 이유로 SP는 SAML 요청에 서명해야합니다. 메시지 사용자의 브라우저에 전달하기 전에.
  • SSL/TLS 연결은 SP가 SAML 응답이 신뢰하는 IDP에서 나온 것을 알기에 충분하지 않습니다. 다시 말하지만, SAML 응답 자체도 서명 된 이유입니다.

서명에 적용되는 내용은 암호화에도 적용됩니다. 즉, 사용자가 SAML 메시지의 내용을 보거나 사용자와 SP 또는 IDP 사이의 연결이 SSL/TLS를 초과하지 않는 경우에도 적용됩니다. (일반적으로 HTTPS를 초과해야합니다).

https가 할 모든 것은 두 지점 사이의 통신을 암호화하고 도청자를 방지하는 것입니다. 누구 메시지를 보냈습니다. 메시지가 전달되면 안전한 커뮤니케이션을 보장하지 않습니다.

X.509 인증서로 요청에 서명하면 해독자에게 인증서에 공유 비밀이 포함되어 있음을 보장 할 수 있습니다. 다시 말해, 메시지가 해독되기를 원하는 조직에 의해서만 해독 될 수 있음을 확신 할 수 있습니다.

귀하의 경우, X.509 암호화 요구 사항은 신분 공급자가 귀하의 요청을받는 유일한 조직임을 확인해야한다는 것을 의미합니다.

유용한 Wikipedia Primer입니다 여기.

그들이 당신을 인증하기를 원하기 때문일 것입니다 (클라이언트). HTTPS 클라이언트 인증에 사용될 수 있지만 실제로는 거의 없습니다.

실제로 HTTPS (SSL/TLS)를 사용하여 SAML 메시지를 보호 할 수 있습니다. 그러나 양방향 SSL 인증서 확인/유효성 검사를 사용하려면 클라이언트가 서버의 X.509 인증서를 확인해야하며 서버는 클라이언트 인증을 수행하도록 구성되어야하며 X를 확인해야합니다. 509 클라이언트가 제공하는 인증서. 따라서 고객은 어쨌든 자체 인증서가 필요합니다.

SSL/TLS는 실제로이를 위해 설계되지 않았습니다 ... 전송 중에 웹 트래픽을 보지 못하도록 설계되었습니다. 클라이언트 (사용자 구매)가 신용 카드 정보를 보내는 사람을 알고있는 전자 상거래를 위해 실제로 설계되었습니다). SAML의 경우, 요점은 당사자들이 교환중인 정보가 교통에서 변경되지 않았으며 각자가 자신이 생각하는 사람과 대화하고 있음을 아는 것입니다. 인증서를 사용하여 해당 메시지 자체에 서명/암호화하면이를 수행합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top