이 기사에서는 HTTP의 문제를 이해하고 HTTPS가 보안을 보장하는 방법을 소개합니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.
HTTP
1. 도청 위험: 통신은 암호화되지 않은 일반 텍스트를 사용하므로 내용이 도청될 수 있습니다(제3자가 통신 내용을 알 수 있음)
2. 사칭 위험 : 통신 당사자의 신원이 확인되지 않아 위장될 수 있습니다. 3.
위조 위험: 메시지의 무결성을 입증할 수 없으므로 변조되었을 수 있습니다.
HTTPS
HTTPS 웹사이트를 볼 수 있으며, 브라우저의 주소 표시줄에 잠긴 표시가 나타납니다.
HTTPS는 애플리케이션 계층의 새로운 프로토콜이 아닙니다. 일반적으로 HTTP는 TCP와 직접 통신하는 반면, HTTPS는 먼저 보안 계층(SSL/TLS)과 통신한 다음 보안 계층이 TCP 계층과 통신합니다.SSL/TLS 프로토콜은 위에서 언급한 HTTP 문제를 해결하기 위해 탄생했습니다. 해결 방법을 살펴보겠습니다.
1. 모든 정보는 암호화되어 전송될 수 없습니다. 2. 신원 도용을 방지하기 위한 신원 확인 기능 탑재3. 검증 메커니즘을 통해 일단 변조되면 통신 당사자는 즉시 이를 발견할 수 있습니다 암호화대칭 암호화
암호화 동일한 비밀 키를 사용하여 복호화하는 방법을 공유 키 암호화, 대칭 키 암호화라고도 합니다.
브라우저는 서버에
client_random
및 일련의 암호화 방법을 보냅니다.client_random
和一系列加密方法
服务端发送给浏览器 server_random
和加密方法
现有浏览器和服务器有了三个相同的凭证:client_random
、server_random
和加密方法
用加密方法把 client_random
、server_random
两个随机数混合起来,生成秘钥,这个密钥就是浏览器和服务端通信的暗号。
存在的问题:第三方可以在中间获取到client_random
、server_random
서버는 브라우저에 server_random
및 암호화 방법을 보냅니다.
기존 브라우저와 서버에는 세 가지 동일한 자격 증명이 있습니다: client_random
, server_random
및 암호화 방법
암호화 방법을 사용하여 client_random 암호화 , <code>server_random
두 개의 난수를 혼합하여 비밀 키를 생성합니다. 이 키는 브라우저와 서버 간의 통신을 위한 비밀 코드입니다.
기존 문제: 제3자가 client_random
, server_random
과 암호화 방법을 중간에 얻을 수 있습니다. 이 암호화 방법은 동시에 복호화가 가능하므로 중개자가 할 수 있습니다. 암호를 성공적으로 해독하고 데이터를 얻으면 이 암호화 방법을 쉽게 해독할 수 있습니다.
서버는 암호화 방법과 공개 키를 브라우저에 보냅니다.
그런 다음 브라우저는 공개 키를 사용합니다. key to 데이터는 암호화되어 서버로 전송되며, 서버는 데이터를 받아 개인키를 이용해 복호화합니다. 서버가 브라우저에 데이터를 보낼 때, 브라우저는 개인 키를 사용하여 이를 암호화하고, 서버에서 보낸 데이터를 수신하고 공개 키를 사용하여 이를 해독합니다. 기존 문제:
비대칭 암호화는 너무 비효율적입니다. 이는 암호화 및 암호 해독 속도와 사용자가 페이지를 여는 속도에 심각한 영향을 미칩니다.
서버에서 브라우저로 보낸 데이터가 안전하다는 보장은 없습니다 서버의 데이터는 개인 키로만 암호화할 수 있습니다(공개 키를 사용하면 브라우저가 이를 해독할 수 없기 때문입니다). 중개인이 공개 키를 얻으면 서버에서 전송된 데이터를 복호화하고 다시 크랙할 수 있습니다.
HTTPS는 대칭 암호화와 비대칭 암호화의 조합을 사용합니다.
데이터 전송 단계에서는 여전히 대칭 암호화를 사용하지만 대칭 암호화 키를 전송하기 위해 비대칭 암호화를 사용합니다.이 시점에서 서버와 브라우저는 동일한client_random
、server_random
和 pre_master
을 가지며 서버와 브라우저는 이 세 가지 난수 세트를 사용하여 대칭 비밀 키를 생성합니다. 대칭 비밀 키를 사용하면 양 당사자가 대칭 암호화를 사용하여 데이터를 전송할 수 있습니다.
CA(디지털 인증서)
는 대칭 및 비대칭 방법을 혼합하여 데이터 암호화 전송을 달성합니다. 하지만 여전히 문제는 서버가 해커에 의해 사칭될 수 있다는 것입니다. 이런 방식으로 브라우저는 해커의 서버에 접근하게 되고, 해커는 자신의 서버에 공개키와 개인키를 구현할 수 있게 된다. 그러나 브라우저는 해커의 사이트가 방문하고 있다는 사실을 완전히 알지 못한다.
서버는 자신의 신원을 증명해야 하며, 권위 있는 기관에서 발급한 인증서를 사용해야 합니다. 이 권위 있는 기관은 CA(인증 기관)이며, 발급된 인증서를 디지털 인증서라고 합니다.
브라우저의 경우 디지털 인증서에는 두 가지 기능이 있습니다.
디지털 인증서를 통해 브라우저에 서버의 신원을 증명합니다.
디지털 인증서에는 서버의 공개 키가 포함됩니다
살펴보겠습니다. 디지털 인증서가 없는 HTTPS 요청 프로세스의 경우 디지털 인증서가 포함된 HTTPS 요청 프로세스에서 다음 두 가지 주요 변경 사항이 발생합니다
서버는 공개 키를 브라우저에 직접 반환하지 않고 숫자 인증서를 반환합니다. 공개 키는 디지털 인증서에 포함되어 있습니다.
인증서가 확인된 후 후속 프로세스를 계속할 수 있습니다.
비대칭 암호화를 이해하기 쉬운 용어로 설명하는 방법은 무엇입니까?
위 내용은 HTTPS는 어떻게 보안을 보장하나요? (상해)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!