HTTPS( Hyper Text Transfer Protocol Secure )
。HTTP에서보안을 위해TLS 암호화를 통한암 & 복호화과정을 추가한프로토콜
▶클라이언트와서버간 통신을암호화하여 보호하여네트워크중간에 제 3자가데이터를 확인 불가능
。HTTP에암&복호화과정을 추가했으므로 처리속도가 느리지만대칭키 / 비대칭키조합으로 어느정도 개선
▶대칭키를 통한 빠른연산속도및비대칭키를 통한안정성을 모두 확보
비대칭키 / 대칭키 암호화
。HTTPS는CA에 비용을 지불하여인증서를 발급 받는 방식이므로유료
▶민감한 데이터를 교환 시HTTPS를 사용하며 단순한데이터 교환의개발환경에서는HTTP를 이용
。HTTPS 기본포트:443
。SSL,TLS프로토콜을 활용하여Session data를 암호화.
SSL / TLS
。클라이언트와서버간데이터 무결성및기밀성을 보장하는암호화 프로토콜
▶ 상호간통신은암호화되어 전달되므로 중간에데이터가 탈취되더라도 안전
。HTTPS등 다양한프로토콜에서 활용
SSL( Secure Sockets Layer )
。Web의 초기 보안 프로토콜로 개발
▶ 현재는TLS로 대체.
TLS( Transport Layer Security )
。SSL보다 강력한 암호화 기능 제공.
▶ 현재의 보안 표준. (TLS 1.2,TLS 1.3)
。다양한 암호화 알고리즘과 Key 교환방법을 사용하여 Client와 Server간 안전한 통신을 가능하게 한다.
Cipher Suites:TLS에서 활용하는보안 알고리즘
HTTPS의연결과정(Hand Shacking)
。서버와클라이언트간초기 연결시비대칭키 암호화방식으로 안전하게세션키( =대칭키)를 공유
。초기 연결 성립을 통해세션키가 공유된 이후데이터 교환과정은세션키를 통한대칭키 암호화방식으로데이터 교환을 수행
▶세션키( =대칭키)를 통해비대칭키 암호화방식에 비해 빠른데이터 교환이 가능
비대칭키 암호화 단계
클라이언트가서버로 최초 연결 시도
서버에서공개키를CA에 전송 후인증서발급 및 암호화 후클라이언트에게 전달
。인증서는CA에서 발급되며서버의공개키를 저장 후CA 비밀키로암호화
▶인증서=서버 공개키
클라이언트는 수신한인증서의유효성검사 후세션키발급
。클라이언트는CA 공개키를 미리 가지고 있으므로CA 비밀키로암호화된인증서를복호화하여서버 공개키획득
클라이언트는세션키를 보관 및서버 공개키로세션키를암호화하여서버로 전송
。세션키가 다른서버로 잘못 전송되더라도비대칭키 암호화방식을 통해서버 공개키로암호화되어 있으므로 오직서버의비밀키로만복호화가 가능하여 안전을 보장
서버는비밀키를 통해서버 공개키로암호화된세션키를복호화하여세션키를 획득
대칭키 암호화 단계
클라이언트와서버는 동일한세션키( =대칭키)를 공유하므로데이터 교환시세션키로암호화 / 복호화를 수행
HTTPS의인증서발급 원리
。서버는클라이언트와세션키를 공유하기위한 인증된 기관으로부터의인증서를 발급을 수행
▶CA에 비용 지불 및공개키를 전송하여 해당공개키가 저장된인증서를 발급
。인증서는CA 비밀키로암호화되어있어 안전성을 확보
▶브라우저에서 사전에 내장한CA 공개키를 활용해복호화후서버 공개키를 획득
。클라이언트에서는CA인증서를복호화하여 획득한서버 공개키로세션키를암호화하여서버로 전송
▶서버는서버 비밀키를 공유할 필요 없이복호화만 수행하면 되므로 안전
HTTPS의인증서발급과정
A 기업은HTTP기반어플리케이션에HTTPS를 적용하기 위해비대칭키 암호화를 수행하기위한공개키/비밀키를 발급
CA 기업에 비용 지불 및공개키를 전달하여인증서의 발급을 요청
CA는인증서를 생성 및CA의비밀키로암호화하여A 기업에게 전달
。CA 이름,서버 공개키,서버 정보를 기반으로인증서생성
클라이언트에서A 서버로 연결 시클라이언트에게암호화된인증서를 제공
브라우저는 사전에 내장한 인증된CA의공개키를 통해인증서를복호화하여A 서버 공개키획득 및세션키를암호화하여서버로 공유
。브라우저에는 인증된CA들을 사전에 등록 및CA 공개키를 내장
▶ 인증된CA를 사용하지 않는HTTP에서는 다음 형태로브라우저에서 표시됨
인증서
。신뢰할 수 있는CA 인증기관에서 해당서버 신원에 대한검증 확인서
CA 인증기관(CA: Certificate Authority ) ex )ComodoCA
。인증서를 발급하고 관리하는 신뢰할 수 있는 기관
▶HTTPS를 통해요청한서버가 실제서버인지 확인하는 용도
ex ) 가짜인 척 하는서버를 구분가능
。서버의공개키와식별정보를 포함하는인증서를 생성 및CA고유의비밀키로디지털서명( =암호화)
。CA는비밀키 암호화,서버는공개키 암호화를 수행
공개키암호화 / 비밀키암호화
OpenSSL:
。서버에 무료로자체 인증서를 발급
▶ 무료이나유효기간이 짧다.