2013-06-18 6 views
0

REST 서비스 간의 서버 대 서버 인증에 사용할 수있는 다양한 옵션을 알고 있지만 각 방법의 보안 의미에 대한 설명을 사용할 수 있습니다.서버 대 서버 인증의 기초

받은 요청이 합법적 인 호출 원격 서비스에서 온 것인지 확인하는 서비스를 원합니다. 대화 형 사용자는 참여하지 않으며 호출 서비스가 시작될 때 요청이 발생했다고 가정합니다. 일반적으로 언급 한 세 가지 방법은 다음과 같습니다

  1. 가짜 사용자 계정을 사용하여 기존 인증 시스템
  2. 를 사용하여 공유 된 비밀/API 키에 대해 클라이언트를 인증 및 검증 (요청
  3. 사용을 클라이언트 인증서에 서명 서버가 우선 순위가 아닙니다.) 3.

내가 놓친 부분은 호출 서비스의 호스트 (호출중인 클라이언트)가 전적으로 의존하여 3 가지 방법 모두가 손상되지 않은 것 같습니다. 첫 번째 접근 방식에서는 위조 된 사용자 암호를 줄 수 있지만 두 가지 다른 접근 방식에서는 공격자가 공유 비밀 또는 클라이언트 인증서를 얻을 수 있으며 접근 번호 1과 마찬가지로 쉽게 호출 서버를 가장 할 수 있습니다. 2 & 3가 더 안전하다고 생각하십니까?

+0

두 서버가 동일한/트러스트 된 도메인에있는 Windows 서버 인 경우 각 컴퓨터에 적절한 보안 컨텍스트에서 실행중인 컴퓨터 계정이 자동으로 전달됩니다. –

+0

Off-topic : http://security.stackexchange.com/에 속합니다. – Vulcan

+0

질문이 특정 배포와 독립적이라는 질문을 편집했습니다. 이는 두 가지 REST 서비스 간의 통신 보안에 관한 것입니다. – franck102

답변

0

호출 서버가 손상되지 않았는지 확인하려면 시스템에 TPM이있는 경우 호출 서버의 TPM 기반 확인을 사용하는 것이 좋습니다. 위의 3 가지 방법 중 하나가 손상되지 않았다고 확인되면 안전 할 것입니다. (참조 : http://en.wikipedia.org/wiki/Trusted_Platform_Module)

0

호스트가 손상된 경우 게임은 이미 끝났습니다. 네트워크 보안 기술을 사용하여 최종 시스템에 대한 보장을 제공 할 수는 없습니다. 이는 그것이 의미하는 바가 아닙니다. 예를 들어 암호를 고려하십시오. 사용자가 암호를 입력 할 때 암호를 입력 한 엔티티가 암호를 알고 있다는 보장이 있습니다. 손상된 호스트로부터 보안을 유지하도록 설계하는 것은 실제 사람이라면 권한을 부여하는 암호 체계를 구축하는 것과 같습니다. 메커니즘을 제공하지 않을 것이라는 보장이 있어야합니다.