애플리케이션 개발중인 서버 측 인증을 개발하고 있습니다. 통신은 보안 채널을 통해 수행됩니다 (본인의 경우 HTTPS, 유효한 SSL 인증서 사용). 나는 원격 서버가 정확히 그가 누구라고 주장 하는지를 확인할 무언가를 구현할 계획이다.HTTPS는 "보안이 충분한"클라이언트/서버 통신 보안 방법으로 사용됩니까?
클라이언트 측 보호가 깨지기 쉽지 않다는 것을 알고 있습니다. 특히 충분한 시간과 지식이 있어야합니다. 그러나 위에서 설명한 내용을 구현하면 은 전송 중에 변조되거나 중간자 공격을 방지하고 유효성을 보장하기 위해 데이터가 변조되지 않도록 "충분히 안전"한 보안 접근 방식입니다.
(개인/공개 키 쌍을 사용하여) 전송 된 데이터 주변에 다른 보안 계층을 추가 할 것을 고려하고 있지만, 바퀴를 다시 만들지 않고도 SSL에 의존하는 것으로 충분할 것으로 생각됩니다.
특정 시나리오에서 사용자는 프로세스에 참여하지 않으며 거의 자동으로 인증서 관련 경고를 무시하지만 인증서 유효성은 클라이언트 프로그램에서 자동으로 결정해야합니다. 물론 악의적 인 사용자가 클라이언트 측에서 해당 프로세스를 도용 할 수는 있지만 MITM 공격보다 처리하는 것이 훨씬 어렵습니다. 이것이 보안을 위해 이야기를 바꾸 었는가? –
"진짜"인증서와 함께 SSL을 사용하면 클라이언트가 서버를 신뢰하게됩니다. 그러나 서버 -> 클라이언트 트러스트 (어떤 클라이언트가 서버에 액세스 할 수 있는지 제어)를 설정해야하는 경우 일종의 인증을 사용해야합니다. 한 가지 방법은 각 클라이언트/브라우저에 SSL 클라이언트 측 인증서를 설치하거나 사용자 ID/암호로 SSL 암호화를 사용하는 것입니다. –
사람들이 경고를 무시한다고 말하면, "유효하지 않은 인증서 오류 메시지"에 대한 대부분의 사람들의 반응은 단순히 "무시"또는 "진행"을 클릭하기 때문입니다. 악의적 인 소프트웨어와 관련이 없으며 그러한 경고에 대한 사람들의 행동에 관한 것입니다. 소프트웨어가 올바르지 않은 인증서를 올바르게 인식하지만 사용자는 오류를 무시하고 계속 진행하기 만하면됩니다. 이것은 SSL에서 유일하게 발생할 수있는 문제이며 소프트웨어와 관련이 없으며 SSL을 사용하는 사람들에 관한 것입니다. – HoLyVieR