ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Internet] HTTPS란?
    Study/모몽이 공부중 2020. 6. 29. 22:52

    HTTP(HyperText Transfer Protocol)

    - WWW상에서 정보를 주고 받을 수 있는 프로토콜.

    - 주로 HTML 문서를 주고 받음


    HTTPS(HyperText Transfer Protocol over Secure Socket Layer, HTTP over TLS, HTTP over SSL, HTTP Secure)

    - WWW 통신 프로토콜인 HTTP의 보안이 강화된 버전

    - 통신의 인증과 암호화를 위해 개발. 전자상 거래에서 널리 쓰임

    - SSL이나 TLS프로토콜을 통해 세션 데이터 암호화

    - 기본 TCP/IP 포트: 443

    - 보호의 수준은 웹 브라우저에서의 구현 정확도와 서버 소프트웨어, 지원하는 알호화 알고리즘에 달려있음 
    - 웹페이지의 URL는 'https://'로 시작 

     

    HTTPS 목적

    1. 기밀성

    2. 무결성

    3. 인증

     

    HTTPS 구성

    1. 초기 키 교환 비대칭 알고리즘 사용

    2. 신원 인증서

    3. 실제 메세지 암호화 대칭 알고리즘

    4. 메세지 다이제스트 암호 해싱 알고리즘

     

    HTTPS 인증서 유형

    1. DV(Domain Validated)

    : 가장 일반 적인 유형의 인증서. 도메인이 특정 공개 키와 일치하는지 확인

    2. EV(Extended Validated)

    : 웹사이트의 법적 신분 검증. 가장 신뢰할 수 있는 유형의 인증서

    3. OV(Organization Validated)

    : 웹사이트의 법적 신분 검증. EV인증서와 다르게 UI에서 확인된 법적 이름 표시 안함

     

    [법적 신원]

    - 도메인 관리

    - 현재 유지상태인 회사가 등록되어 있는 상태를 확인할 수 있는 공인된 사업 기록

    - D&B(Dunn and Bradstreet), 전화번호부 등에 등재된 자영업 정보

    - 확인전화

      DV(Domain Validated) EV(Extended Validated) OV(Organization Validated)
    특징 HTTPS HTTPS 법적 소유자 검증
    소유자 정보 브라우저 표시
    HTTPS 법적 소유자 검증

     

    HTTPS/SSL 암호화 통신 방법

    - 서버측에서는 서버에 대한 정보와 인증 등이 담긴 인증서와 공개키(비대칭키)를 인증기관에 등록 
    - 클라이언트가 등록되어 있는 공개키로 공통키를 암호화하여 서버측에 전송 
    - 서버측에서 클라이언트에서 전송도니 암호를 개인키를 사용하여 복호화하여 공통키 획득 
    - 서버 및 클라이언트는 공통키를 사용하여 보안 통신을 함 
      => 핸드쉐이크(HandShake): 통신 전 공동키를 암호화해서 주고받는 단계


    SSL/TLS

    SSL(Secure Socket Layer, 보안 소켓 계층)

    웹사이트와 브라우저(혹은, 두 서버) 사이에 전송된 데이터를 암호화하여 인터넷 연결을 보안을 유지하는 표준 기술. 해커가 개인 정보 및 금융 정보를 포함한 전송되는 모든 정보를 열람하거나 훔치는 것을 방지

     

    TLS(Transport Layer Security, 전송 계층 보안, 과거 명칭: 보안 소켓 레이어/Secure Sockets Layer, SSL)

    가장 최신 기술로 더 강력한 버전의 SSL. SSL이 더 일반적으로 사용되는 용어이기에 보안 인증서는 SSL이라 불림

     

    TLS  3단계 기본 절차

    - 지원 가능한 알고리즘 서로 교환
    - 키 교환, 인증
    - 대칭키 암호로 암호화하고 메시지 인증

     

    SSL/TLS 장점

    - 통신 내용이 공격자에게 노출되는 것 막음
    - 클라이언트가 접속하려는 서버가 신뢰할 수 있는 서버인지 판단 가능
    - 통신 내용의 악의적인 변경 방지


    SSL 인증서 파일 종류

    CSR(Certificate Signing Request): 인증 서명 요청

    - 인증기관(CA)에서 인증서를 얻기 위한 서명 키 및 암호화 키에 대한 증서 서명 요청 파일
    - 인증기관은 이 파일을 이용하여 서명 인증서, 암호화 인증서 및 키 저장소로 가져올 CA 인증서 생산
    - CRT(Certificate):인증서. 인증서 파일의 확장자로 쓰임


    PEM(Privacy Enhanced Mail)

    - Base64 인코딩된 ASCII 텍스트
    - 파일 구분 확장자로 .pem 을 주로 사용

     

    PEM(Privacy Enhanced Mail)

    - Base64 인코딩된 ASCII 텍스트
    - 파일 구분 확장자로 .pem 을 주로 사용

     

    keyStore: 클라이언트 인증을 위해 클라이언트 측에 놓이는 것

    - 비밀키 관련된 인증서 혹인 인증서 체인을 가지고 있는 데이터베이스
    - 인증서 체인은 클라이언트 인증서와 하나 이상의 CA 인증서로 구성됨. 보통 서버 역할을 하는 측에서만 필요하지만 클라이언트 인증을 요구하는 경우 클라이언트 쪽도 있어야함

     

    trustStore: 서버를 인증하기 위한 것

    - 클라이언트가 신뢰할 수 있는 인증서만을 가지고 잇음
    - 인증서는 CA루트 인증서(자기 서명 인증서)임. 
    - 보통 웹서버가 설치되면 cacerts.jks 라는 파일명으로 저장됨
    => keyStore, trustStore의 파일 형식은 동일함. 둘 다 keytool을 이용하여 만들고 조작 가능

     

    DER (Distingulished Encoding Rules)

    - 대부분의 브라우저 기본형식
    -  ASN.1 DER 형식에 따라 저장

    PKIPubic Key Infrastructure): 공개키 기반 구조

    - 공개키 암호 방식을 바탕으로 한 디지털 인증서를 활용하는 소프트웨어, 하드웨어, 사용자, 정책 및 제도 등을 총칭

     

    PKCS(Public Key Cryptography Standard): 공개 키 암호 표준

    - RSA에서 정한 공개 키 암호 사용방식에 대한 표준 프로토콜
    - 보통 .pfx , .p12 등의 확장자로 저장
    - 바이너리 형식으로 저장
    - pkcs#12 포멧의 파일은 인증서, 개인키 내용을 파일하나에 모두 담고 있음
    - 백업 또는 이동용으로 주로 사용

    X.509: 공개키 기반 인증서 형식 표준


    PFX(PersonalinFormation eXchange), P12: PKCS#12 암호화 파일 포맷. 사용자의 개인키, 인증서, 기타 기밀 정보를 저장 및 운송하기 위한 휴대용 포맷

    PFCS#12: 암호화 파일 포맷. 인증서와 개인키가 같이 들어있음


    공인인증서/ 사설인증서

    공인인증서(CA 인증서)

    인증서의 역할은 클라이언트가 접속한 서버가 클라이언트가 의도한 서버가 맞는지를 보장하는 역할을 한다.
     이 역할을 하는 민간기업들이 있는데 이런 기업들을 CA(Certificate authority) 혹은 Root Certificate 라고 부른다. 
    CA는 아무 기업이나 할 수 있는 것이 아니고 신뢰성이 엄격하게 공인된 기업들만이 참여
    CA(Certificate Authority): 공인 인증 기관. 서비스 요금을 부과하는 상업 인증기관과 무료 인증기관도 있음. 기업, 단체별로 운영하는 사설 인증기관이 있음


    인증서 소스: 서드파티 공급업체
    통신 일반 패턴: 인터넷 <-> 회사 웹서버
    장점
    - 대부분의 경우 브라우저는 이러한 인증서를 자동으로 인식 가능. 웹 사이트와의 보안 통신 세션을 자동으로 확립 할 수 있음
    - CA는 인터넷 상의 사용자에 대해 회가의 웹 사이트 신원 보장
    단점
    - 회사에서 이러한 유형의 인증서가 아직 없을 경우 이를 신청 및 구입하여 정기적으로 갱신 필요

     

    사설 인증서

    인증서 소스: 대상 컴퓨터에 액세스 권한이 있는 사람
    통신의 일반 패턴: 인터넷에 닿지 않는 내부망 통신 
    장점
    - 비용 부담 없음
    - 공급업체에서 제공하는 인증서에 필요한 어플리케이션 및 유지보구 절차 없이 즉시 사용 가능
    단점
    - 로컬로 작성 및 서명한 인증서를 사용 가능하게 하려면 클라이언트 컴퓨터에 인증서를 수동으로 설치해야 함


    key Tool 프로그램 


    - hava SDK와 함께 배포. bin 디렉토리에 있는 보안 관련 프로그램 
    - keyStore라는 일종의 데이터베이스를 관리하는 프로그램 

     

    keystore는 두개의 항목을 가지고 있음 
    - key entry: 비밀키와 공개키와 관련된 인증서 체인으로 구성 
    - trusted certificate entry(공인 인증서 엔트리): 신뢰할 수 있는 기관을 나타내는 공개키 인증서

     

    'Study > 모몽이 공부중' 카테고리의 다른 글

    [TCP] 3-way hand shake  (0) 2020.07.05
    cookie session 차이 localStorage, sessionStorage  (0) 2020.07.01
    jQuery란?  (0) 2020.06.25
    Request, Response  (0) 2020.06.22
    RESTful이란  (0) 2020.06.22
Designed by Tistory.