2010-06-23 3 views
3

애플리케이션 개발중인 서버 측 인증을 개발하고 있습니다. 통신은 보안 채널을 통해 수행됩니다 (본인의 경우 HTTPS, 유효한 SSL 인증서 사용). 나는 원격 서버가 정확히 그가 누구라고 주장 하는지를 확인할 무언가를 구현할 계획이다.HTTPS는 "보안이 충분한"클라이언트/서버 통신 보안 방법으로 사용됩니까?

클라이언트 측 보호가 깨지기 쉽지 않다는 것을 알고 있습니다. 특히 충분한 시간과 지식이 있어야합니다. 그러나 위에서 설명한 내용을 구현하면 은 전송 중에 변조되거나 중간자 공격을 방지하고 유효성을 보장하기 위해 데이터가 변조되지 않도록 "충분히 안전"한 보안 접근 방식입니다.

(개인/공개 키 쌍을 사용하여) 전송 된 데이터 주변에 다른 보안 계층을 추가 할 것을 고려하고 있지만, 바퀴를 다시 만들지 않고도 SSL에 의존하는 것으로 충분할 것으로 생각됩니다.

답변

3

SSL은 ... 유효한 인증서 충분히 안전하지만

잘못된 인증서 오류가 발생하는 것은 귀하의 데이터, 아마도 누군가에 의해 차단 될 것입니다 "를 의미 어떤 것을 많은 사람들이 모르는

그밖에". 그들은 경고를 무시하고 중간자 공격은 여전히 ​​효과가있을 것입니다. 또한 IE6과 같은 일부 구형 브라우저는 인증서가 유효하지 않은 경우 경고를 표시하지 않을 수도 있습니다. 이 경우 문제는 사용 된 기술이 아닌 사용자가됩니다. 즉, 다른 보안 계층을 구축하는 대신 응용 프로그램을 사용하는 사람들에게 잘못된 인증서 오류를 얻는 것이 무엇을 의미하는지, 왜 현대적인 브라우저를 사용해야하는지 가르쳐야합니다.

+0

특정 시나리오에서 사용자는 프로세스에 참여하지 않으며 거의 ​​자동으로 인증서 관련 경고를 무시하지만 인증서 유효성은 클라이언트 프로그램에서 자동으로 결정해야합니다. 물론 악의적 인 사용자가 클라이언트 측에서 해당 프로세스를 도용 할 수는 있지만 MITM 공격보다 처리하는 것이 훨씬 어렵습니다. 이것이 보안을 위해 이야기를 바꾸 었는가? –

+0

"진짜"인증서와 함께 SSL을 사용하면 클라이언트가 서버를 신뢰하게됩니다. 그러나 서버 -> 클라이언트 트러스트 (어떤 클라이언트가 서버에 액세스 할 수 있는지 제어)를 설정해야하는 경우 일종의 인증을 사용해야합니다. 한 가지 방법은 각 클라이언트/브라우저에 SSL 클라이언트 측 인증서를 설치하거나 사용자 ID/암호로 SSL 암호화를 사용하는 것입니다. –

+0

사람들이 경고를 무시한다고 말하면, "유효하지 않은 인증서 오류 메시지"에 대한 대부분의 사람들의 반응은 단순히 "무시"또는 "진행"을 클릭하기 때문입니다. 악의적 인 소프트웨어와 관련이 없으며 그러한 경고에 대한 사람들의 행동에 관한 것입니다. 소프트웨어가 올바르지 않은 인증서를 올바르게 인식하지만 사용자는 오류를 무시하고 계속 진행하기 만하면됩니다. 이것은 SSL에서 유일하게 발생할 수있는 문제이며 소프트웨어와 관련이 없으며 SSL을 사용하는 사람들에 관한 것입니다. – HoLyVieR

1

Mr. B, 클라이언트가 서버 SSL 인증서의 유효성을 검사하고 사용자가 프로세스에 참여하지 않는다고 언급 했으므로 서버 SSL 인증서의 유효성을 검사하는 것이 좋습니다. 그러나 검증 프로세스를 잘 관리해야합니다. 인증서를 충분히 검증하지 못하는 몇 가지 클라이언트 응용 프로그램을 보았습니다. 1) 인증 권한 2) 기간 3) 에 발행 된 사이트 내가 테스트 한 응용 프로그램 중 하나는 인증서의 "CN"을 확인하는 버그였습니다. 스푸핑 (임의의 CN으로 가짜 인증서를 만들 수 있음)

+0

내 질문에 귀중한 의견을 보내 주셔서 감사합니다! 기간 확인의 이유를 알려주시겠습니까? 그게 클라이언트 측의 개입없이 서버 측에서 인증서를 확장하는 것을 막을 수 있습니까? –

+0

서버 인증서가 2 년 동안 유효하다고 가정 해 봅시다 (2010 ~ 2012). 잠시 동안 2013 년에이 인증서의 개인 키 손상이 발생했으며 서버 소유자가 SSL 인증서를 해지했다고 가정합니다. 클라이언트 소프트웨어는 인증서의 유효 기간을 확인하지 않으면 손상된 SSL 인증서를 신뢰하게됩니다.인증서의 유효 기간은 손상된 인증서에 대한 노출을 줄이는 데 도움이됩니다. – gauravphoenix

+0

좋은 지적. 그러나 클라이언트 측에서 오래된 인증서에서 새 인증서로의 전환도 복잡합니다. 기본적으로 보안은 향상되지만 배포가 복잡해지며 이는 고전적인 보안과 단순성 간의 균형입니다. 인증서 유효 기간을 1 년으로 제한하는 것이 좋은 생각입니까? 그건 타협의 위험을 더욱 줄여 줄거야, 안 그래? –

관련 문제