문제

나는 내 컨트롤하에있는 임베디드 클라이언트에 대한 요청을 제공하는 서버 구성 요소를 개발하고 있습니다.

지금은 모든 것이 베타이고 보안은 다음과 같이 작동합니다.

  1. 클라이언트는 HTTPS를 통해 사용자 이름 / 비밀번호를 보냅니다.

  2. 서버는 액세스 토큰을 반환합니다.

  3. 클라이언트는 사용자 정의 헤더에 액세스 토큰을 사용하여 HTTP에 대한 추가 요청을합니다.

이것은 데모에 적합하지만 공개하기 전에 해결해야 할 몇 가지 문제가 있습니다.

  • 누구나 복사 할 수 있습니다 login 요청, 다시 제시하고 액세스 토큰을 되 찾으십시오. 일부 사용자가 대답 한대로 HTTPS를 넘어서서 문제가되지 않습니다. 내 실수.

  • 누구나 요청 헤더를 검사하는 것만으로도 액세스 키를 듣고 얻을 수 있습니다.

타임 스탬프가있는 대칭 키 암호화를 생각할 수 있으므로 중복 요청을 거부 할 수 있지만이 시나리오에 대해 잘 알려진 모범 사례가 있는지 궁금합니다 (매우 일반적으로 보입니다).

통찰력에 감사드립니다.

추신 : 서버에 Java를 사용하고 있으며 클라이언트는 C ++로 코딩되어 있습니다.

도움이 되었습니까?

해결책

첫 번째 부분을 얻지 못합니다. 로그인 요청이 HTTPS 인 경우 어떻게 복사 할 수 있습니까?

두 번째 부분과 관련하여 t 이것은 꽤 표준 세션 납치 시나리오입니다. 보다 이 질문. 물론 여기에는 내장 브라우저 옵션이 없지만 기본 아이디어는 동일합니다. 중요한 경우 토큰을 안전한 연결로만 보내거나 어떤 방식 으로든 토큰을 전송 장치와 연결합니다.

브라우저에서는 기본적으로 IP 주소 (그다지 좋지 않음)이지만 동일한 토큰이 없는지 확인하기 위해 요청에 대해 검증하는 장치에 대해 구체적인 내용을 표현할 수 있습니다. 다른 곳에서 사용됩니다.

편집 : 당신은 여기서 운이 좋으며 프록시 뒤에 변경된 IP 주소를 배제하고 실제로이 목적으로 사용할 수 있습니다.

그러나 하루가 끝나면 많이 여기에서 자신을 굴리기보다는 잘 알려진 리뷰 라이브러리에서 HTTP를 사용하는 것이 더 안전합니다. 나는 HTTPS가 오버 헤드라는 것을 알고 있지만, 자신을 굴리는 것은 공격자가 악용 할 수있는 명백한 것들을 놓친 것에 대해 큰 위험이 있습니다.

다른 팁

첫 번째 질문, 그냥 꺼내려면 : 사악한 클라이언트 인증자가 액세스 할 수있는 것에 대해 충분히 걱정한다면 HTTPS를 통해 전체 대화를 수행하지 않겠습니까? 최소 성능 이이 애플리케이션에 추가 된 보안 계층의 가치가 없을 정도로 중요합니까?

둘째, 누군가 로그인 요청을 어떻게 재생할 수 있습니까? 내가 착각하지 않으면 HTTPS를 통해 발생합니다. 연결이 올바르게 설정되면 HTTPS 여기).

일반적인 권장 사항 중 하나는 HTTPS를 사용하는 것입니다

전체 세션에 HTTPS를 사용하여 중간 공격의 HTTPS 맨은 충분히 신뢰할 수 있어야합니다. 액세스 토큰에 대해 걱정할 필요조차 없습니다. HTTPS가이를 처리합니다.

추가 요청에 HTTP를 사용하면 일부 취약점이 발생하는 것으로 보입니다. 이제 네트워크 스나이퍼를 가진 사람은 트래픽을 가로 채고 토큰을 훔치고 요청을 스푸핑 할 수 있습니다. 토큰 암호화, 한 번 토큰을 사용하는 등을 방지하기 위해 보호를 구축 할 수 있습니다. 그러나 그렇게하면 HTTPS를 다시 만들게됩니다.

중간 공격에서 HTTPS 맨으로 돌아가서 - 누군가의 서버와 클라이언트 사이에 자신을 삽입하고 코드를 통해 요청을 퍼뜨리는 능력에 근거합니다. 공격자가 물리적 네트워크에 액세스 할 수있는 경우에는 모두 가능합니다. 그러한 공격자가 직면하게 될 문제는 그가 당신에게 적절한 디지털 증명서를 제공 할 수 없다는 것입니다. 그는 서명하는 데 사용한 개인 키가 없다는 것입니다. 브라우저를 통해 HTTPS에 액세스 할 때 브라우저는 경고를 제공하지만 여전히 페이지로 이동할 수 있습니다.

귀하의 경우 서버와 통신하는 것은 고객입니다. 또한 인증서의 모든 적절한 검증이 설치되어 있는지 확인할 수 있습니다. 그렇게한다면 괜찮을 것입니다

편집하다

두 번째로 Yishai- 예, 일부 오버 헤드가 관련되어 있습니다. 주로 CPU이지만,이 추가 오버 헤드가 서버를 보드 위로 밀면 앱에 더 큰 문제가 있습니다.

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