「HTTP」의 위험성과 「HTTPS」에 대해서

소개



배포된 웹 애플리케이션. '보호되지 않음'이라는 메시지가 표시되지 않습니까?
이는 Google Chrome에서 'HTTPS'를 지원하지 않는 사이트로 간주되기 때문입니다.
이대로는 보안면에서 큰 문제가 되는 경우가,,,
이번에는 「HTTP」의 위험성과 「HTTPS」에 대해 해설하겠습니다.

우선 "HTTP"란



HTML로 작성된 문장 등을 교환할 때 사용되는 통신 수단(프로토콜)입니다.
웹 서비스를 실현하기 위한 프로토콜로서 오랫동안 사용되어 왔지만, 보안면에서 다음과 같은 문제가 있습니다.

[문제 1] 데이터를 암호화하는 메커니즘이 없습니다.


  • 도청될 위험이 있다
  • 개인정보나 신용카드 정보 등을 송수신할 때 큰 문제가 된다.

  • [문제 2] 통신 상대를 인증하지 않음



    인증에는 서버를 인증하는 서버 인증과,
    클라이언트를 인증하는 클라이언트 인증의 2 종류가 있다.

    【서버를 인증하지 않는 경우】
    HTTP를 사용한 웹 서비스는 가짜 서버로 유도됩니다.
    개인정보를 훔칠 위험이 있습니다. (피싱 사기)


    【클라이언트를 인증하지 않는 경우】
    마찬가지로 클라이언트도 인증하지 않으므로 웹 서버 측도 통신 상대를 확인할 수 없어 위험합니다.


    [문제 3] 통신 데이터의 변조를 검출 할 수 없다.



    HTTP에는 변조를 감지하는 기능이 없습니다.

    예를 들어, 클라이언트가 1개 감귤을 구입한다고 합니다.
    구입을 실행해 서버에 데이터가 보내지는 도중에, 공격자로부터 100개로 재기록되어 버렸습니다.
    서버에는 100개로 데이터가 도착했습니다.
    이것이 데이터의 변조입니다.

    이와 같이 HTTP에서는 변조를 검출할 수 없기 때문에 통신 도중에 데이터를 마음대로 재기록될 위험성이 있습니다.

    그 문제를 해소하기 위해 태어난 것이 "HTTPS"



    「HTTP」에 「TLS(SSL)」를 짜넣은 것.
    결론부터 말하면, 「HTTPS」대응으로 하는 것으로, 방금전의 「HTTP」의 문제점은 모두 클리어 할 수 있습니다.

    「TLS」란



    전송 계층의 보안 프로토콜.
    다음 기능을 제공합니다.
  • "서버"와 "클라이언트"로 인증 할 수 있습니다 ( "TLS"에서 실행되는 "핸드 셰이크 프로토콜"로 인증서가 발행되기 때문에).
  • 통신 데이터를 암호화합니다 ( "핸드 셰이크 프로토콜"에서 공유하는 암호화 키를 사용하기 때문에)
  • 위조를 찾는다.

    "핸드 셰이크 프로토콜"이란?



    "TLS"에 있는 프로토콜.
    사전에 「클라이언트」와 「서버」간에 교환을 실시해, 확약하면, 암호화 키 등을 생성해 준다.
    생성 된 암호화 키 등은 "클라이언트"와 "서버"간에 공유된다.

    요약



    이와 같이, 「HTTP」로의 통신은 꽤 무방비에 가까운 상태에서 위험이라고 하는 것을 알았습니다,,,
    Web어플리케이션 제작할 때는, 「HTTPS」에 대응시키는 것이 필수군요.
  • 좋은 웹페이지 즐겨찾기