댓글 검색 목록

[Nodejs] SSL이란 무엇입니까?

페이지 정보

작성자 운영자 작성일 20-07-24 12:09 조회 648 댓글 0

SSL은 프로토콜입니다. 프로토콜은 시스템 간 통신을 위한 일련의 규칙을 정의합니다. 

SSL은 HTTP와 같은 다른 프로토콜 위에 암호화 계층을 제공합니다.


https://www.stackchief.com/blog/What%20is%20SSL%3F 


HTTPS는 실제로 SSL 계층이 있는 HTTP 프로토콜 일뿐입니다.


브라우저는 SSL을 사용하여 민감한 데이터를 암호화하여 대상으로 안전하게 이동할 수 있습니다. 누구나 네트워크 트래픽을 검사 할 수 있지만 데이터가 암호화되어 있으면 모든 것이 횡설수설입니다. 데이터를 해독하려면 개인 키가 필요합니다.


TLS 란 무엇입니까? 


SSL은 1999 년 TLS (Transport Layer Security)로 이름이 변경되었습니다. TLS는 소유권이 다른 SSL의 발전을 나타냅니다. "SSL"이 들리면 아마도 TLS를 나타내는 것일 수 있습니다.


자세한 정보는 SSL 대 TLS를 확인하십시오.


SSL은 어떻게 작동합니까? 


서버 (Facebook과 같은 일부 앱)와 클라이언트 (웹 브라우저)간에 SSL 연결이 있습니다. 클라이언트가 서버와 통신 할 때 HTTPS를 통해 통신합니다.


SSL 프로토콜은 클라이언트와 서버 간의 통신을 시작하기 위해 핸드 셰이크를 호출합니다. 이 핸드 셰이크의 단계는 신뢰할 수 있는 출처를 식별하고 통신을 안전하게 유지하는 데 필수적입니다.


단계별 (기본) : 

1) 브라우저 (클라이언트)가 서버에 SSL 인증서를 요청합니다.

2) 서버는 브라우저에 인증서를 보여줍니다

3) 브라우저가 인증서를 신뢰하는지 여부를 결정합니다.

4) 그렇다면 브라우저는 인증서를 사용하여 비밀 메시지를 암호화합니다.

5) 브라우저는 이 암호화 된 메시지를 서버로 보냅니다

6) 서버는 메시지를 해독

7) 공유 비밀 메시지를 사용하면 브라우저는 서버 만 해독 할 수 있는 더 많은 암호화 된 메시지를 보냅니다.


단계별 (상세) : 

1) 브라우저는 지원되는 TLS 버전 및 암호 알고리즘을 포함하여 서버로 요청을 보냅니다. 이 요청에는 클라이언트 랜덤이라는 임의의 문자열이 포함됩니다.

2) 서버는 선택한 암호, 서버의 SSL 인증서 및 서버 랜덤이라는 비슷한 임의의 문자열로 응답합니다.

3) 브라우저가 SSL 인증서를 신뢰하는지 여부를 결정합니다. 신뢰할 수 있는 제 3 자와 확인하여 발급자가 자신이 누구인지 확인합니다. 브라우저는 타사의 공개 키를 사용하여 인증서의 디지털 서명을 확인하여 타사를 확인합니다.

4) 브라우저가 인증서를 신뢰하면 SSL 인증서에 제공된 공개 키를 사용하여 프리 마스터 비밀을 암호화합니다.

5) 이 암호화 된 비밀은 서버로 전송됩니다.

6) 서버는 비밀을 해독합니다. 이 시점에서 클라이언트와 서버 모두 세션 키를 생성하기 위한 클라이언트 랜덤, 서버 랜덤 및 프리 마스터 시크릿을 갖습니다.

7) 이 공유 세션 키를 사용하여 클라이언트와 서버는 SSL 연결을 통해 암호화 된 정보를 안전하게 교환합니다.


자세한 내용은 TLS 작동 방식을 확인하십시오.


SSL 암호화란 무엇입니까? 


SSL 암호화는 공개 키 암호화를 사용하여 키 쌍을 생성합니다. 각 쌍은 개인 키와 공개 키로 구성됩니다.


개인 키만 공개 키로 암호화 된 메시지를 해독 할 수 있습니다. 공개 키만 개인 키로 암호화 된 메시지를 해독 할 수 있습니다.


하나의 키는 공개로 지정되어 누구나 사용할 수 있습니다. 누구나 메시지를 암호화하는 공개 키를 가질 수 있습니다.


하나의 키는 개인용으로 지정되며 키 작성자 만 사용할 수 있습니다. 이 키의 작성자 만 개인 키를 갖습니다. 개인 키만 메시지를 해독 할 수 있습니다.


SSL 인증서 


SSL 인증서 란 무엇입니까?


SSL 인증서에는 발급자의 공개 키가 포함되어 있습니다. 클라이언트는 이 공개 키를 얻고 이 공개 키가 신뢰할 수 있는 소스에서 온 것인지 확인하기 위해 SSL 인증서를 요청합니다…


누구나 공개 / 개인 키를 생성 할 수 있습니다. ssh-keygen 또는 다른 유틸리티를 사용하면 다소 간단합니다. 이러한 이유로 SSL 인증서의 정보를 확인하는 것이 중요합니다. 클라이언트는 타사 인증 기관 (CA)을 신뢰하여 이를 수행합니다.


CA는 서버에 SSL 인증서를 발급합니다. 서버는 CA에서 SSL 인증서를 요청하므로 브라우저에서 신뢰할 수 있고 SEO를 준수 할 수 있습니다. 이 요청을 CSR (인증서 서명 요청)이라고 합니다.


서버는 이 CSR의 일부로 공개 키를 CA에 제출합니다. CA에는 자체 공개 / 개인 키 쌍이 있습니다. CA가 신청자가 합법적이라고 판단하면 개인 키를 사용하여 새 인증서에 디지털 서명합니다.


이 새 인증서는 서버에 발급됩니다. 클라이언트가 서버와 핸드 셰이크를 시작하면 이 SSL 인증서를 클라이언트에게 제공합니다.


SSL 인증서 확인 


누구나 해독 할 수 있는 것을 암호화하는 것은 어리석은 것처럼 보일 수 있지만 이 관계를 통해 누구나 서명을 확인할 수 있습니다. 공개 키가 개인 키에서 메시지를 해독 할 수 있는 경우 공개 키는 디지털 서명 된 인증서를 확인할 수 있습니다.


이러한 이유로 CA는 브라우저 / 클라이언트에게 공개 키를 제공합니다. 이제 브라우저는 CA 공개 키를 사용하여 서버의 SSL 인증서에서 CA 서명을 확인함으로써 지정된 CA가 서명 한 인증서를 신뢰할 수 있습니다.


이제 클라이언트는 타사를 사용하여 SSL 인증서가 신뢰할 수 있는 소스에서 온 것인지 확인할 수 있습니다. SSL 인증서가 합법적이라는 것은 서버의 공개 키가 합법적이라는 것을 의미합니다.


이제 클라이언트는 인증서의 공개 키를 사용하여 서버 만 해독 할 수 있는 데이터를 암호화 할 수 있습니다.


SSL 연결이란 무엇입니까? 


핸드 셰이크 프로세스가 완료되면 클라이언트와 서버 사이에 SSL 연결이 존재합니다. 클라이언트가 SSL 인증서의 유효성을 검사하면 서버와 SSL 연결을 설정합니다.


이 보안 연결 중에 클라이언트와 서버는 공유 세션 키를 사용하여 메시지를 앞뒤로 암호화 / 복호화합니다.


SSL은 HTTPS와 어떻게 작동합니까? 


SSL은 프로토콜입니다. HTTP는 프로토콜입니다. SSL은 HTTP 위에 있는 추가 계층입니다. SSL을 사용한 HTTP 연결이 HTTPS를 통해 통신하고 있습니다.


HTTP 자체는 프로토콜로 존재합니다. 다른 프로토콜과 마찬가지로 HTTP는 두 시스템이 통신하는 방법을 정의합니다.


HTTPS와 달리 HTTP는 안전한 것으로 간주되지 않습니다. HTTP 자체는 네트워크를 통해 전송되는 데이터를 암호화하지 않기 때문입니다.


SSL을 사용하여 HTTP는 데이터를 암호화하고 누가 메시지를 암호화하는지 확인할 수 있습니다.



댓글목록 0

등록된 댓글이 없습니다.

웹학교 로고

온라인 코딩학교

코리아뉴스 2001 - , All right reserved.