• HTTPS 통신의 암호화, RSA 그리고 양자 컴퓨터
    BOOK 2024. 2. 16. 22:46

     

    봉랍
    사진: Unsplash 의 Thalia Ruiz

     "한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 제공 받아 작성된 서평입니다."

    HTTPS

    • 인터넷은 통신과정에서 누군가 데이터를 훔쳐볼 수 있기 때문에 서버, 클라이언트 간 주고받은 데이터를 전부 암호화하는 방법을 사용
    • 이를 위해 HTTPS를 사용.
    • HTTPS = HTTP over SSL (보안이 강화된 HTTP 프로토콜)

    HTTP/HTTPS OSI 7 layer
    HTTP/HTTPS OSI 7 layer

    • HTTP와 HTTPS의 차이는 전송계층과 응용계층 사이 보안계층이 추가
    • HTTPS에서는 TLS(transport layer security), SSL(Secure sockets layer)을 사용해 안전한 통신 채널을 제공

    OSI 7 layer

    OSI 7 layer
    OSI 7 layer

    • OSI 7 계층은 컴퓨터들이 서로 통신할 수 있도록 네트워크 통신 기능을 7개의 계층으로 나눈 '개념적' 프레임워크
    • 많은 계층으로 구성되어 상대적으로 복잡
    • 그래서 실제로는 4개의 계층으로 구성된 간결하면서 실용적인 TCP/IP 모델을 더 많이 사용
    • 현재 대부분의 네트워크는 OSI 모델 보다 TCP/IP 모델을 기반
    • OSI 모델은 이론적인 차원에서 설명하곤 함

    대칭키, 비대칭키 암호 알고리즘

    암호 알고리즘은 암호화 복호화를 할 때 사용하는 알고리즘

    대칭 키 암호 알고리즘

    • 암호화 키와 복호화 키가 동일하면 대칭 키 암호 알고리즘

    대칭 키 암호 알고리즘
    대칭 키 암호 알고리즘 암호화, 복호화 키

    • 대칭 키 알고리즘은 다양하지만, 최소 128비트 이상의 알고리즘 사용 권고
    • 대칭 키 암호화는 비대칭 암호화 보다 연산 속도가 빠르지만 키를 상대방에 전달하기 어려운 단점
    대칭 키 알고리즘 비트수 권고 여부
    DES 64 x
    3DES 112 x
    AES 128/192/256 o
    ARIA 128/192/258 o
    SEED 128/256 o
    LEA 128/192/256 o

    비대칭 키 암호 알고리즘

    • 암호와 키와 복호화 키가 다른 암호 알고리즘
    • 암호화 키 = 공개 키
    • 복호화 키 = 비밀 키(개인 키)
    • 공개 키로 암호화한 경우 반드시 함께 생성된 비밀 키로 복호화
    • 비밀 키로 암호화한 경우 반드시 함께 생성된 공개 키로 복호화

    비대칭 암호화 알고리즘
    비대칭 키 암호 알고리즘 암호화, 복호화 키

    • 공개 키는 누구에게나 공개할 수 있는 키이기 때문에 상대방에게 미리 전달
    • 공개 키를 이용해 데이터를 암호화하도록 요청
    • 이렇게 만들어진 암호문은 내가 가지고 있는 비밀(개인) 키로만 복호화가 가능

    공개 키를 이용한 데이터 암호화 과정
    공개 키를 이용한 데이터 암호화 과정

    • Ana가 문서를 암호화해서 Bro에게 보내야 한다면
    • Bro가 Ana에게 공개키를 미리 전달, Ana는 공개키를 통한 암호화 후 데이터 전송
    • Bro는 비밀 키로만 복호화
    • 공개 키만을 전달하기 때문에 전송 과정에서 위험이 줄게 됨 

    비밀 키로 암호화 공개 키로 복호화는 언제 사용하는가?

    • 전자서명에 활용
    • A의 비밀 키로 문서를 암호화하면 A의 공개 키로만 풀 수 있기 때문에, 문서를 암호화(서명)한 사람이 A라는 것을 증명
    • 나중에 나는 이런 서명을 한 적이 없다고 부인해도 소용이 없다.
    • 뭔가 추리소설 소재로 쓰일 수 있을 법한..
    구분 대칭 키 비대칭 키
    키 개수 1개 2개
    공개 키, 비밀 키
    키 길이 192/256/512비트 2048/4096비트
    암호화 속도 빠름 느림
    암호 알고리즘 AES/ARIA/SEED RSA
    키 교환 어려움 쉬움
    주요 사용 목적 데이터 암호화 전자서명, 키 교환, 인증

    HTTPS에서 인증서를 사용하는 이유

    • 클라이언트 서버 간 송수신 되는 데이터는 대칭 키 암호 알고리즘을 사용
    • 하지만 대칭 키 암호 알고리즘에서 사용하는 키는 공개되면 안 되는 비밀 키이기 때문에 비대칭 키 암호 알고리즘으로 비밀키(대칭키 알고리즘 키)를 암호화해 전송
    • 비대칭 키 암호 알고리즘을 사용하기 위해서는 클라이언트가 공개 키를 받아야 하는데, 공개 키가 진짜가 아닐 가능성 때문에
    • '인증서'라는 개념이 등장
    • 인증서는 신뢰할 수 있는 인증 기관이 발급

    공캐 키 기반 암호화를 위한 인증서 발급 과정
    공캐 키 기반 암호화를 위한 인증서 발급 과정

    1. 인증 서버로부터 발급받은 인증서 설치
    2. 웹 서버는 인증 서버에서 받은 인증서를 공개 키를 포함해 클라이언트로 전송
    3. 클라이언트는 인증서가 진짜인지 검증, 진짜이면 인증 기관에서 발급받은 공개 키로 세션 키(비밀 키:대칭 알고리즘)를 암호화
    4. 암호화 한 세션 키를 웹 서버로 전송
    5. 웹 서버에서 가지고 있는 개인 키로 복호화하여 세션 키 확인
    6. 안전하게 세션 키가 교환되면 이후부터 대칭 키 알고리즘을 이용해 서버와 클라이언트 간 모든 데이터를 암호화

    HTTP over SSL이지만 SSL을 사용하면 안 되는 이유

    • SSL은 1995년부터 사용된 프로토콜이지만, 취약점이 다수 발견되어 1999년부터 SSL의 새로운 브랜드인 TLS가 사용되기 시작
    • 현 시접에서 안전하다고 알려진 TLS 버전은 1.2 이상
    • 전문가들은 보안이 강화된 TLS 1.3(2018년 릴리즈)의 사용을 권장

    그리고 양자컴퓨터

    mac
    사진: Unsplash 의 Melvin Lauber

    • 비대칭 키 암호 알고리즘 RSA의 경우 현대 슈퍼컴퓨터로 복호화하는데 1만 년 이상 걸리기 때문에 안전하다고 볼 수 있지만
    • 양자컴퓨터가 등장하면 10초 만에 해결 가능하다고 함
    • 양자컴퓨터가 상용화되면 RSA 암호 체계는 바로 무너지고 국가 보안이나 금융시스템이 붕괴될 위험
      - 中 연구팀, 초보 수준 양자컴퓨터로 대형 RSA 암호 해독 성공
    • 양자 컴퓨터가 개발되는 시점을 Y2K에 빗대어 Y2Q (Years To Quantum)라고 부르기도..
    • 이러한 양자컴퓨터 시대에 대비해 수학자들은 후양자 암호라는 새로운 암호체계를 만들고 있으며 후보를 정해둔 상태
    • 그 후보 중 하나가 포스트 양자 암호, PQC (Post-Quantum Cryptography)라고 부름
    • 모든 암호 체계가 양자컴퓨터로 뚫리는 것은 아니고, 대칭키 암호화 방식 중 하나인 AES-256의 경우 양자저항성을 가지는 것으로 알려져 있다.

    Ref

    728x90
go.