>  기사  >  Java  >  Java에서 HTTPS를 사용하는 이유와 이점은 무엇입니까?

Java에서 HTTPS를 사용하는 이유와 이점은 무엇입니까?

WBOY
WBOY앞으로
2023-04-17 22:19:011328검색

    1.HTTP

    HTTPS에 대해 이야기하기 전에 먼저 HTTP를 이해해야 합니다. 왜냐하면 HTTP는 HTTPS 통신의 기초이기 때문입니다. HTTP(HyperText Transport Protocol) 클라이언트측 및 서버측 데이터를 전송하는 데 사용되는 하이퍼텍스트 전송 프로토콜입니다.

    HTTP는 매우 간단하고 사용하기 편리하지만 다음과 같은 세 가지 치명적인 문제가 있습니다.

    • 일반 텍스트 통신을 사용하면 내용이 도청될 수 있습니다.

    • 통신자의 실제 신원을 확인하지 않을 경우 위장 처리될 수 있습니다.

    • 메시지의 무결성은 입증할 수 없으며 쉽게 변조될 수 있습니다.

    위의 문제를 고려하여 현재 시스템에서는 HTTP 대신 HTTPS를 사용하게 됩니다.

    2.HTTPS

    먼저 HTTPS는 새로운 프로토콜은 아니지만, HTTP 프로토콜을 기반으로 SSL(Secure Socket Layer) 또는 TLS(Transport Layer Security) 암호화 메커니즘을 추가합니다. HTTPS = HTTP + 암호화 + 인증 + 무결성 보호.

    SSL 및 TLS:

    SSL(Secure Socket Layer)은 브라우저 개발자인 Netscape에 의해 처음 개발되었으며, 이 회사는 SSL 3.0 및 3.0 이전 버전을 개발한 후 SSL을 IETF(Internet Engineering Task Force)에 넘겼습니다. ) IETF는 인터넷 엔지니어링 태스크 포스(Internet Engineering Task Force)의 손에 SSL 3.0을 기반으로 TLS 1.0을 개발했으므로 TLS는 SSL의 "새 버전"으로 간주될 수 있습니다.

    2.1 신뢰 문제 해결

    HTTPS의 경우 가장 먼저 해결해야 할 것은 신뢰 문제, 즉 신원 확인 문제입니다. 신뢰 문제가 해결되지 않으면 서버 위장 문제가 발생합니다. "중간자 공격". 소위 중간자 공격이란 일반적인 상황에서는 클라이언트와 서버가 직접 상호 작용해야 하지만 여기서는 클라이언트 사이에 포함된 "나쁜 사람"(중간자)이 등장한다는 의미입니다.

    아래 그림과 같이

    HTTPS는 신뢰 문제를 해결하기 위해 디지털 인증서 솔루션을 사용합니다. 서버가 먼저 생성되면 먼저 모든 사람에게 인증서를 발급합니다. 공인된 제3자 플랫폼은 신뢰할 수 있는 디지털 인증서를 신청한 다음 클라이언트가 (서버)에 액세스하면 서버는 먼저 클라이언트에게 디지털 인증서를 제공하여 이를 증명합니다. 이는 "중개자"가 아닌 신뢰할 수 있는 서버입니다. 이때, 브라우저는 디지털 인증서의 유효성을 검증하고 확인하는 역할을 담당하며, 디지털 인증서에 문제가 있는 경우 클라이언트는 문제가 없는 경우 즉시 통신을 중단합니다. Java에서 HTTPS를 사용하는 이유와 이점은 무엇입니까?

    아래 그림과 같이

    디지털 인증서를 사용하면 서버의 실제 신원을 확인할 수 있습니다. 이를 통해 "중간자 공격" 문제와 문제를 해결할 수 있습니다. 위장하다. Java에서 HTTPS를 사용하는 이유와 이점은 무엇입니까?

    2.2 일반 텍스트 전송 및 무결성 문제 해결

    위의 신뢰 문제를 해결했지만 두 당사자가 일반 텍스트로 통신하기 때문에 여전히 통신 중에 통신 내용이 도청될 위험이 있습니다. 이 시간에 해? 그래서 우리는 정보노출 문제를 해결하기 위해 암호화를 활용하자고 생각했습니다.

    암호화 분류

    암호화는 크게

    대칭 암호화와 비대칭 암호화의 두 가지 범주로 나뉩니다.

    대칭형 암호화에는 공유된 비밀키가 있는데, 이 공유된 비밀키를 통해 정보의 암호화와 복호화가 빠른 것이 특징이지만, 공유된 비밀키의 문제로 인해 한 번은 실패하게 됩니다. 공유된 비밀 키가 가로채기 때문에 소위 암호화 및 디코딩은 공허한 이야기입니다.
    • 비대칭 암호화에는 공개 키와 개인 키라는 한 쌍의 비밀 키가 있습니다. 공개 키는 정보를 암호화하는 데 사용될 수 있지만, 개인 키는 정보를 해독하는 데 사용될 수 있습니다. 서버가 개인키를 저장하고 외부에 노출시키지 않는 것이 특징이며, 공개키만 클라이언트에게 전달하므로, 다른 사람이 공개키를 획득하더라도 암호화된 정보를 해독할 수 없습니다. 더 안전하지만 비대칭 암호화 실행 속도가 상대적으로 느립니다.
    • 그렇다면 HTTPS에서는 대칭 암호화를 사용해야 할까요, 아니면 비대칭 암호화를 사용해야 할까요? 빠르지만 안전하지 않은 대칭 암호화를 사용하고, 안전하지만 느린 비대칭 암호화를 사용하세요. 선택은 어린이만 하고 어른들이 하므로
    • HTTPS는 비대칭 암호화와 대칭 암호화를 모두 사용합니다.

    Java에서 HTTPS를 사용하는 이유와 이점은 무엇입니까?

    Java에서 HTTPS를 사용하는 이유와 이점은 무엇입니까? HTTPS 실행 프로세스는 다음과 같습니다.

    클라이언트는 HTTPS를 사용하여 서버에 액세스합니다.
    • 서버는 디지털 인증서를 반환하고 비대칭 암호화를 사용하여 클라이언트에 대한 공개 키를 생성합니다(서버는 개인 키 자체를 유지합니다).
    • 클라이언트는 디지털 인증서가 유효한지 확인합니다. 유효하지 않으면 액세스가 종료됩니다.
    • 유효한 경우:
      • 대칭 암호화를 사용하여 공유 비밀 키를 생성합니다.

      • 대칭 암호화 공유 비밀 키를 사용하여 데이터를 암호화합니다.

      • 대칭 암호화 공개 키를 사용하여 공유 비밀 키(대칭 암호화로 생성됨)를 암호화합니다.

      • 암호화된 비밀 키와 데이터를 서버로 보냅니다.

    • 서버는 개인 키를 사용하여 클라이언트의 공유 비밀 키(대칭 암호화를 사용하여 생성됨)를 해독한 다음 공유 비밀 키를 사용하여 데이터의 특정 콘텐츠를 해독합니다.

    • 그런 다음 클라이언트와 서버는 공유 비밀 키로 암호화된 콘텐츠를 사용하여 서로 상호 작용합니다.

    이렇게 HTTPS는 보안과 효율성을 모두 보장하는데, 이는 두 가지의 장점을 모두 갖고 있다고 할 수 있습니다.

    암호화를 사용하면 데이터의 무결성이 간접적으로 보장됩니다. 데이터가 불완전하거나 중복되면 암호 해독 중에 오류가 보고되므로 데이터의 무결성이 간접적으로 보장됩니다.

    위 내용은 Java에서 HTTPS를 사용하는 이유와 이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제