2011-04-24 2 views
0

https를 사용하여 은행 계좌에 로그인 할 때 로그인 정보를 입력하기 전에 서버 측 SSL 인증 일뿐입니다. 내 브라우저는 SSL 세션 중에 서버의 인증서 정보를 기반으로 서버 인증을 수행합니다. 내 브라우저에 신뢰할 수있는 인증서로 서버 인증서를 수동으로 가져올 필요가 없었습니다. SSL 교환 중에 런타임에 발생합니다.PKI 인증서 가져 오기

한편 설치 안내서를 살펴볼 때 keytool을 사용하여 수동으로 인증서를 가져와야하는 응용 프로그램도 보았습니다.

질문 : SSL 세션이 시작될 때 인증서 정보가 교환되면 각면에 다른 쪽을 인증하는 데 필요한 충분한 정보가 있습니다. 왜 일부 앱에서는 클라이언트와 서버간에 서로 certs를 수동으로 가져와야합니다. 양쪽 또는 양쪽 인증이 될 수 있습니다.

추가 정보 아래의 응답을 기반으로합니다. 클라이언트 측 SSL 인증이 설정된 클라이언트 - 서버 모델을 기반으로 상용 소프트웨어를 설치하는 시나리오를 언급했습니다. 내 컴퓨터에 A 서버를 설치하고 사설 네트워크에있는 다른 컴퓨터에 2 클라이언트를 설치했습니다. 설치하는 동안 서버는 자체 서명 된 인증서를 로컬에서 생성합니다. 그래서 2 명의 클라이언트를해라. 설치가 완료되면 클라이언트의 인증서를 서버 컴퓨터에 복사하고 수동으로 신뢰할 수있는 인증서로 가져 오도록 요청 받았습니다. 또한 클라이언트 컴퓨터에 서버 인증서를 복사하고 신뢰할 수있는 저장소로 가져 오기 작업을 수행하십시오. 그들은 java keytool 위에 wrapper 도구를 제공하여 cert 가져 오기를 수행했습니다. 이유가 여기이 가져 오기가 필요한 이유는 무엇입니까? 클라이언트와 서버는 SSL 핸드 셰이크 중에 인증서 정보를 교환하고 인증을 수행합니다. 다시 말하지만, 여기에는 자체 서명 된 인증서와 여기에 관련된 CA가 있습니다.

답변

0

인증서는 인증 기관에서 서명하므로 브라우저가 신뢰하는 인증 기관에 따라 달라집니다. 웹 서버가 브라우저/응용 프로그램에서 신뢰할 수있는 인증 기관에서 서명 한 인증서를 보내고 인증서가 유효하면 아무런 경고 메시지도 표시되지 않습니다.

반면에 브라우저가 웹 서버에서 인증서를 수신하고 해당 인증서를 서명 한 인증 기관을 신뢰하지 않으면 브라우저가 어떤 조치를 취합니다. 이. 웹 사이트에서 인증서를 가져올 때 기본적으로 브라우저에 서명 한 사람과 관계없이 해당 인증서를 신뢰한다고 결정했습니다.

편집 : 동일한 추론이 적용됩니다. 키 저장소는 신뢰할 수있는 인증 기관 및 해당 인증서의 목록을 유지합니다. PKI의 전체 개념은 신뢰할 수있는 계층 구조를 사용하여 다른 당사자의 서명 된 인증서를 발급하는 CA입니다. 인증서가 자체 서명 된 경우 유효한 트러스트 체인이 없음 - Java가 인증서가 공격자에 의해 위조되지 않았다는 것을 어떻게 알 수 있습니까?

SSL 핸드 셰이크 중에 인증서가 교환 되었기 때문에 클라이언트와 웹 서버 간의 연결이 암시 적으로 신뢰된다고 가정합니다.중앙에있는 사람이 웹 서버로 포즈를 취하고 서버 인증서를 보내는 대신 자신의 인증서를 대신 보내면 어떻게 될까요? 중간에있는 사람이받은 인증서가 신뢰할 수 없다는 것을 고객이 어떻게 알 수 있습니까? 인증서가 신뢰할 수있는 CA에 의해 서명 된 경우 또는 인증서가 신뢰할 수있는 인증서로 키 저장소에 수동으로 추가 된 경우 클라이언트는 인증서를 신뢰해야하는지 여부를 확인할 수 있습니다.

+0

충분합니다. 하지만 내가 설명한 시나리오에서는 SSL 클라이언트 인증 만 켜져 있습니다. 서버 인증서를 클라이언트로 가져올 필요가 있습니까? 클라이언트 인증서를 서버로 가져 오기 만하면됩니다. – tushima

+0

@tushima SSL에서는 서버 인증서가 항상 필요하며 유효성이 검사됩니다. 클라이언트 인증서 만 선택적입니다. 서버 인증서의 유효성을 검사하지 않으면 중간에있는 사람이 서버를 가장 할 수 있습니다. –

+0

환상적. 저에게 SSL 기본을 상기시켜 주셔서 감사합니다! – tushima

0

SSL 서버의 인증서는 인증 기관 (CA)에서 "보증"해야합니다. 브라우저 (또는 다른 프로그램)에는 신뢰하는 CA 목록이 있습니다. 이 아닌 사이트를 표준 CA 중 하나에서 인증 한 경우 인증을 성공시키기 위해 CA를 가져와야합니다.

합법적 인 사이트 (특히 온라인 뱅킹의 경우)에는 "대체"CA를 사용해야합니다. 민감한 데이터를 보내지 않는 사이트에만이 작업을 수행하십시오.

관련 문제