Chrome Dev Summit 2018 is happening now and streaming live on YouTube. Watch now.

중요 보안 용어

TL;DR

  • 공개 키/비공개 키는 브라우저와 서버 간 메시지를 서명하고 복호화하는 데 사용됩니다.
  • CA(인증 기관)는 공개 키와 공용 DNS 이름(예: www.foobar.com) 사이의 매핑을 보증하는 조직입니다.
  • CSR(인증서 서명 요청)는 공개 키를 소유하는 엔터티에 대한 약간의 메타데이터와 함께 공개 키를 번들로 묶는 인증서와 같은 데이터 형식입니다.

공개 키와 비공개 키 쌍이란 무엇입니까?

공개 키와 비공개 키 쌍 은 암호화 키와 복호화 키로 사용하며 특수한 수학적 관계를 공유하는 매우 큰 숫자로 구성된 쌍입니다. 키 쌍에 대한 공통 시스템은 RSA 암호화 시스템 입니다. 공개 키 는 메시지를 암호화하는 데 사용되며, 해당 비공개 키 는 암호화된 메시지를 해독하는 데 사용됩니다. 웹 서버는 해당 공개 키를 세상에 알리고 클라이언트(예: 웹 브라우저)는 이를 사용하여 서버에 대한 보안 채널을 부트스트랩합니다.

인증 기관이란 무엇입니까?

CA(인증 기관)는 공개 키와 공용 DNS 이름(예: “www.foobar.com”) 사이의 매핑을 보증하는 조직입니다. 예를 들어, 특정 공개 키가 www.foobar.com의 진짜 공개 키인지 여부를 클라이언트가 어떻게 알 수 있습니까? 추측만 가능할 뿐 알 수 있는 방법이 없습니다. CA는 고유한 비공개 키를 사용하여 해당 웹사이트의 공개 키를 암호화 방식으로 서명 함으로써 특정 사이트에 대한 진짜 공개 키임을 보증합니다. 이 서명은 전산으로는 위조가 불가능합니다. 브라우저(및 기타 클라이언트)는 잘 알려진 CA가 소유하는 공개 키를 포함하는 트러스트 앵커 저장소 를 유지 관리하며 이러한 공개 키를 사용하여 CA 서명을 암호화 방식으로 확인 합니다.

X.509 인증서 는 공개 키를 소유하는 엔터티에 대한 약간의 메타데이터와 함께 공개 키를 번들로 묶는 데이터 형식입니다. 웹의 경우 공개 키 소유자는 사이트 운영자이고 중요 메타데이터는 웹 서버의 DNS 이름입니다. 클라이언트가 HTTPS 웹 서버에 연결하면 웹 서버는 클라이언트가 확인하도록 인증서를 제시합니다. 클라이언트가 인증서가 만료되지 않았는지, DNS 이름이 클라이언트가 연결하려는 서버의 이름과 일치하는지, 알려진 트러스트 앵커 CA가 인증서를 서명했는지 확인합니다. 대부분의 경우 CA는 웹 서버 인증서를 직접 서명하지 않습니다. 일반적으로 트러스트 앵커를 중간 서명자 및 최종적으로 웹 서버 고유 인증서(최종 엔터티)에 연결하는 인증서 체인 이 있습니다.

CSR(인증서 서명 요청)이란 무엇입니까?

CSR(인증서 서명 요청)은 인증서와 마찬가지로 공개 키를 소유하는 엔터티에 대한 약간의 메타데이터와 함께 공개 키를 번들로 묶는 데이터 형식입니다. 그러나 CSR는 클라이언트가 해석하지 않고 CA가 해석합니다. 개발자는 웹 서버의 공개 키를 CA로부터 보증받으려는 경우 CA에 CSR를 보냅니다. CA는 CSR 정보의 유효성을 검사하고 해당 정보를 사용하여 인증서를 생성합니다. 그런 다음, 최종 인증서를 개발자에게 보냅니다. 그러면 개발자는 이 인증서(또는 인증서 체인일 가능성이 더 높음)와 비공개 키를 웹 서버에 설치합니다.