-
HTTPS 통신의 암호화, RSA 그리고 양자 컴퓨터BOOK 2024. 2. 16. 22:46
"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 제공 받아 작성된 서평입니다."
HTTPS
- 인터넷은 통신과정에서 누군가 데이터를 훔쳐볼 수 있기 때문에 서버, 클라이언트 간 주고받은 데이터를 전부 암호화하는 방법을 사용
- 이를 위해 HTTPS를 사용.
- HTTPS = HTTP over SSL (보안이 강화된 HTTP 프로토콜)
- HTTP와 HTTPS의 차이는 전송계층과 응용계층 사이 보안계층이 추가
- HTTPS에서는 TLS(transport layer security), SSL(Secure sockets 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에서 인증서를 사용하는 이유
- 클라이언트 서버 간 송수신 되는 데이터는 대칭 키 암호 알고리즘을 사용
- 하지만 대칭 키 암호 알고리즘에서 사용하는 키는 공개되면 안 되는 비밀 키이기 때문에 비대칭 키 암호 알고리즘으로 비밀키(대칭키 알고리즘 키)를 암호화해 전송
- 비대칭 키 암호 알고리즘을 사용하기 위해서는 클라이언트가 공개 키를 받아야 하는데, 공개 키가 진짜가 아닐 가능성 때문에
- '인증서'라는 개념이 등장
- 인증서는 신뢰할 수 있는 인증 기관이 발급
- 인증 서버로부터 발급받은 인증서 설치
- 웹 서버는 인증 서버에서 받은 인증서를 공개 키를 포함해 클라이언트로 전송
- 클라이언트는 인증서가 진짜인지 검증, 진짜이면 인증 기관에서 발급받은 공개 키로 세션 키(비밀 키:대칭 알고리즘)를 암호화
- 암호화 한 세션 키를 웹 서버로 전송
- 웹 서버에서 가지고 있는 개인 키로 복호화하여 세션 키 확인
- 안전하게 세션 키가 교환되면 이후부터 대칭 키 알고리즘을 이용해 서버와 클라이언트 간 모든 데이터를 암호화
HTTP over SSL이지만 SSL을 사용하면 안 되는 이유
- SSL은 1995년부터 사용된 프로토콜이지만, 취약점이 다수 발견되어 1999년부터 SSL의 새로운 브랜드인 TLS가 사용되기 시작
- 현 시접에서 안전하다고 알려진 TLS 버전은 1.2 이상
- 전문가들은 보안이 강화된 TLS 1.3(2018년 릴리즈)의 사용을 권장
그리고 양자컴퓨터
- 비대칭 키 암호 알고리즘 RSA의 경우 현대 슈퍼컴퓨터로 복호화하는데 1만 년 이상 걸리기 때문에 안전하다고 볼 수 있지만
- 양자컴퓨터가 등장하면 10초 만에 해결 가능하다고 함
- 양자컴퓨터가 상용화되면 RSA 암호 체계는 바로 무너지고 국가 보안이나 금융시스템이 붕괴될 위험
- 中 연구팀, 초보 수준 양자컴퓨터로 대형 RSA 암호 해독 성공 - 양자 컴퓨터가 개발되는 시점을 Y2K에 빗대어 Y2Q (Years To Quantum)라고 부르기도..
- 이러한 양자컴퓨터 시대에 대비해 수학자들은 후양자 암호라는 새로운 암호체계를 만들고 있으며 후보를 정해둔 상태
- 그 후보 중 하나가 포스트 양자 암호, PQC (Post-Quantum Cryptography)라고 부름
- 모든 암호 체계가 양자컴퓨터로 뚫리는 것은 아니고, 대칭키 암호화 방식 중 하나인 AES-256의 경우 양자저항성을 가지는 것으로 알려져 있다.
Ref
728x90'BOOK' 카테고리의 다른 글
Spring DI (1) 2024.04.27 게임 AI를 위한 탐색 알고리즘 입문 (0) 2024.03.23 게임이론, 나폴레옹 그리고 중용 23장 (0) 2023.12.24 어쩌다 보니 파트장이 되었는데.. (0) 2023.12.08 인문학, AI 그리고 죽은 시인의 사회 (2) 2023.12.02