자체 서명 SSL 인증서는 안전합니까?


33

웹 메일, phpMyAdmin 등에 로그인 할 때 안전한 연결을 원합니다 .

따라서 OpenSSL을 사용하여 자체 SSL 인증서에 서명하고 포트 443에서 수신 대기하도록 Apache에 지시했습니다.

이것은 실제로 안전합니까? 모든 비밀번호가 실제로 안전하고 안전한 계층을 통해 전송됩니까? Verisign 에서 SSL 인증서를 구매 하거나 본인의 인증서에 서명 하면 어떤 차이가 있습니까? 하루가 끝나면 모든 데이터가 서버에 저장됩니다. 큰 차이점은 무엇입니까?

답변:


40

이것은 신뢰에 관한 것입니다. verisign으로부터 서명 된 인증서를 받으면 임의의 클라이언트에게 인증서가 신뢰할 수 있음을 증명합니다. 인증서에 자체 서명 한 경우 컴퓨터에 인증서를 설치하지 않은 사람이 중간자 공격에 의해 공격받지 않았 음을 확신 할 수 없습니다 .

웹 서버를 방금 사용한 경우 인증서에 서명하는 데 실제 CA (예 : verisign)가 필요하지 않습니다. 사용하려는 컴퓨터에 인증서를 설치하기 만하면됩니다.

편집 : 따라서 귀하의 질문에 대답하십시오 : 예 모든 것이 암호화되어 있으며 웹 브라우저에 제공된 인증서가 실제로 웹 서버를 설정 한 인증서라는 것을 알고 있다면 아무도 민감한 데이터를 읽을 수 없습니다.


12
CA의 목적은 인증서가 자신이 속한 사람에게 속해 있음을 다른 사람 에게 증명하는 입니다. 자신의 서버에 액세스하고 자신의 인증서를 제시한다는 점에서 인증서가 누구인지 이미 알고 있으므로 CA는 아무 목적이 없습니다. 그러나 다른 인증서는 신뢰할 인증서를 알 수있는 방법이 없으므로 서버에 안전하게 액세스 할 수 없습니다. (당신은 알고있다-당신이 발행 한 것을 믿어 라.)
David Schwartz

이 방법은 인증서를 확인하기 위해 직접 연락 할 수있는 제한된 수의 사용자 (가족 구성원 또는 소규모 회사 직원)가 서버에 액세스하는 경우에도 합리적인 접근 방법입니다.
bgvaughan 2019

CA와 협력하는 중간에있는 사람이 자신의 인증서를 재정의 할 수 있습니까? 예를 들어 Bob은 Alice의 자체 서명 된 웹 사이트에 연결하고 Scar은 Bob에게 CA Scar가 서명 한 다른 인증서를 조정하고 Bob의 브라우저는 SSL 경고를 표시하지 않습니다. 이것이 가능한가?
Hello World

14

이것은 신뢰에 관한 것입니다.

인증서를 제공하는 인기있는 웹 사이트를 방문한다고 가정 해보십시오. 이 웹 사이트는 "이 사람은 내가 누구인지, 당신이 신뢰할 수있는 사람 서명 한 서한이 있기 때문에 나를 믿을 수 있습니다"라고 말합니다.

이 경우 '신뢰할 수있는 사람'은 귀하를 대신하여 인증서 발표자의 신원을 확인하기 위해 합법적으로 다리 작업을 수행 한 인증 기관 중 하나입니다.

당신이 정말로 신뢰하는 것은 인증서를 제시하는 사람의 신원에 대한 인증 기관의 신뢰에 대한 브라우저 작성자의 신뢰입니다. 또한 귀하와 발표자 사이에는 종종 하나 이상의 권한이 있으므로 '신뢰 망'이라는 용어가 있습니다. [1]

자신의 인증서에 서명하면 신뢰 체인이 없습니다. 귀하의 사이트가 귀하에게 자신의 인증서를 제시하고 있습니다. 귀하는 다음 중 하나로 브라우저에서 자신의 인증서를 설치하는 경우 권위로 처리 한 후 신뢰, 사전 설치되어 제공되는 것과 같은. 그런 다음 하나의 링크 만있는 신뢰 체인이 있습니다.

그런 다음 자신의 사이트를 방문하여 브라우저에 신뢰할 수없는 인증서가 있음을 경고하면 신뢰할 수없는 인증서를 제공하는 다른 사이트와 마찬가지로 신뢰할 수없는 문제가 발생할 수 있습니다. 실제 사이트와 통신하고 있습니다.

아직 암호화에 대해서는 언급하지 않았습니다. 인증서는 통신하는 당사자 의 신원인증하는 것 입니다. 신뢰할 수있는 인증서를 통해 상점이나 은행이 실제임을 확신 할 수있는 방법이 있습니다. 신원을 확인한 후에는 다음 단계에서 커뮤니케이션을 보호해야합니다. 인증서에는 이러한 보안을 용이하게하는 데 필요한 키도 포함되어 있습니다. SSL을 올바르게 설정했다고 가정하면이 통신은 상점이나 은행에있는 것만 큼 안전하며 암호도 동일하게 보호됩니다. [2]

[1] 이것은 완벽한 시스템이 아닙니다. 자유 시장과 저 마진 고용량 비즈니스는 필연적으로 비용 절감으로 이어집니다. http://www.theregister.co.uk/2011/04/11/state_of_ssl_analysis/

[2] 적어도 누군가가 집에 침입해서 비밀을 깨뜨 리려고하기보다는 비밀을 깨뜨릴 수있을 정도로 충분히 싸다. http://xkcd.com/538/


11

실제로 자체 서명 된 인증서 현재 사용중인 모델이 아니라 안전 할 수 있습니다.


모든 사람 이 현재 사용 하는 광범위한 CA (인증 기관) 모델 에서 신뢰할 수있는 CA가 서명 한 인증서의 목적은 인증을 제공하는 것입니다.

인증서를 받으면 벽에있는 잭에서 1과 0이 들어오는 것입니다. 우리는 그 1과 0이 어디에서 왔는지 전혀 모른다. 그러나 인증서는 해당 CA 이외의 다른 어느 누구도 할 수없는 CA에 의해 서명 되고 인증서 소유자의 신원을 확인하기 위해 CA를 신뢰하기 때문에 인증서가 주장하는 사람의 인증서임을 신뢰합니다 에.

물론, CA가 손상 되었거나 소유자를 올바르게 확인하지 않으면 모든 베팅이 해제됩니다.


그러나 자체 서명 된 인증서 인증을 제공 하는 다른 모델 있습니다. 이를 공증인 모델 이라고합니다 .

기본적으로 단일 CA를 신뢰하는 대신 여러 공증인 에게 신뢰를 배포합니다 . 이 공증인은 인증서를 검색 할 때 인터넷을 검색하여 모든 인증서의 캐시를 유지합니다. 처음으로 사이트를 방문하여 인증서를 받으면 전 세계에 분포 된 여러 공증인에게 마지막으로 본 인증서가 무엇인지 묻습니다. 그들이보고있는 것에 동의하지 않으면 중간자 공격의 일부가 될 수 있습니다.

이 모델에서는 자체 서명 된 인증서는 공증인이 인증서를 볼 수 있기 전에 서버가 즉시 손상되지 않는다고 가정하는 한 완벽하게 안전합니다.


공증인 모델은 아직 초기 단계에 있으며, CA 모델을 인수 할 것이라는 의문의 여지가 있습니다 (실제로 필요하지는 않습니다) . 지금까지 가장 유망한 프로젝트는 Firefox 용 플러그인이있는 Convergence.io 입니다.


2

신뢰에 관한 것은 아닙니다 ....

SSL 인증서는 두 가지 용도로 사용할 수 있습니다. 1) 연결하려는 웹 서버가 연결하려는 웹 서버입니다. 그리고 2) 통신을 암호화하기 위해.

당신이 성취 한 # 1없이 # 2를 가질 수 있습니다. 남은 것은 연결하려는 상자가 원하는 상자인지 확인하는 것입니다.

그것이 내 서버 인 경우, 본인이 자체 서명 한 인증서를 사용하는 데 아무런 문제가 없지만 누군가가 내 대신 서버에 연결하도록하는 것을 스푸핑 할 위험이 있습니다. 아무도 나와 내 서버를 신경 쓰지 않고 여기에 가치가 거의 없으므로 이것에 대해 너무 많은 위험을 보지 않습니다.

반면에 내 서버 대신 귀하의 서버라면 걱정할 것입니다.


"서버 인 경우 걱정하지 않아도됩니다"라고 말 하시겠습니까?
cherrun

아니, 그는 "내 서버라면 문제가 없다. 만약 당신의 서버라면 문제가있다"고 말했다.
프란체스코

당신은 틀 렸습니다. 아무도 당신을 대신하여 서버에 연결하도록 물건을 속일 수 없었습니다. 발급 한 자체 서명 인증서에 해당하는 키가 없으며 수락하지 않으므로 다른 인증서를 제시 할 수 없습니다.
David Schwartz

@cherun 내 요점은 내가 당신을 (또는 다른 사람이 아닌) 나를 믿었다는 것입니다. 당신은 자신을 신뢰할 수 있어야합니다.
uSlackr

1
-1. 핸드 셰이크 중에 협상 된 대칭 키를 사용하여 암호화가 수행됩니다. 물론 인증서를 사용하여 원격 당사자의 신원을 확인하십시오. 그렇지 않으면 통신을 암호화하는 지점이 거의 없습니다 (MITM 일 수 있음). 서버이고 자체 서명 된 인증서 인 경우 인증서를 클라이언트로 명시 적으로 가져 오십시오.
브루노
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.