SSL? TLS? 무슨 차이일까? : Transport Layer Security vs Secure Sockets Layer
결론은 둘다 같은 말이다.
2023년 현재는 지원이 종료된 익스플로러가 개발되기 이전에 모자이크 웹브라우저를 개발했던
미국의 인터넷 소프트웨어 및 통신 산업을 하는 넷스케이프라는 회사에 의해서 SSL이 발명되었고
이것이 점차 폭넓게 사용되다가 표준화 기구인 IETF에 의해서 TLS라는 이름으로 바뀌게 되었다.
처음에는 TLS와 SSL이 다른건가? 뭔차이지? 하는 생각에 알아보았는데
둘 다 같은 기술을 지칭하는 것이여서 허무했다.
TLS 1.0은 SSL 3.0을 기반으로 제작되었으며 2023년 현재는 TLS 1.3 버전까지 출시되었다.
그리고 TLS 1.0과 1.1 버전 조차 취약한 암호통신으로 구분되어 최소 1.2 버전을 사용할 것을 권장하고 있다.
해당 웹사이트에서 적절한 TLS 버전을 사용중인지 확인해보려면 아래의 웹사이트에 해당 웹 사이트의 url 작성하여 확인해볼 수 있다.
위와 같이 현재 사용하고 있는 TLS의 버전을 확인할 수 있다.
TLS의 개념
이러한 TLS 인증서는 클라이언트와 서버간의 통신을 제 3자가 보증해주는 전자문서이다.
클라이언트가 서버에 접속한 직후에 서버는 클라이언트에게 이 인증서 정보를 전달한다.
결국 핵심은 통신을 보증해줄 전자문서를 어떻게 암호화해서 주고받을 것이냐이다.
이때 암호화에 사용되는 키를 대칭키를 사용하게된다면 대칭키가 유출되면 공격자는 복호화하 수 있기 때문에
무용지물이 되어버리는데 이러한 점을 해결하기 위한 방법이 공개키 암호화 방식이다.
공개키 방식은 2개의 암호화키를 사용한다.
A키로 암호화를 하면 B키로 복호화 할 수 있고 B키로 암호화하면 A키로 암호화할 수 있는 방식이다.
하나는 공개키(public key), 다른 하나는 개인키(혹은 비밀키 :private key)라고 부른다.
개인키는 자신만이 소유하며 공개키를 타인에게 제공하고 공개키를 제공받은 타인은
공개키를 통해서 정보를 암호화 한다. 암호화된 정보를 개인키를 가지고있는 사람에게 전송하고 개인키의 소유자는
자신이 갖고 있는 개인키로 복호화한다. 즉 이과정에서는 공개키가 유출되어도 비공개키를 모르면 복호화할 수 없기 때문에 공개키가 유츌된다 하더라도 상관이 없다.
SSL은 이러한 공개키 방식을 사용하여 암호화한다.
SSL에서의 공개키 암호화 방식
1.SSL에서 대칭키로 암호화 하는데이터는?
주로 클라이언트와 서버 간에 주고받는 실제 데이터(예: 사용자 이름, 비밀번호, 개인 정보 등)를 암호화하기 위해
대칭키를 사용한다.
대칭키 암호화 방식은 공개키 암호화 방식에 비해 비교적 연산이 빠르다.
그래서 많은 양의 데이터를 빠르게 암호화하고 복호화할 수 있는 장점을 살려 대칭키는 세션의 시작 부분에서 한 번만
교환되고 그 후에는 모든 통신에 대칭키를 사용한다.
2. 공개키로 암호화 하는 데이터는?
대칭키의 키값을 암호화한다. 즉, 대칭키를 교환하기 위해 공개키 암호화를 사용한다는 말이다.
이 과정에서 클라이언트는 서버의 공개키를 사용하여 대칭키를 암호화하고 서버로 전송한다.
그 다음 서버는 자신의 비공개키로 이 대칭키를 복호화하여 대칭키를 획득한다.
이렇게 공개키 암호화의 안전한 키 교환 능력과 대칭키 암호화의 효율성을 결합하는 방식을
'하이브리드 암호 시스템'이라고도 한다.
이런식으로 공개키 암호화는 계산적으로 대칭키 암호화보다 훨씬 느리기 때문에,
데이터 자체를 암호화하기 보다는 주로 키 교환 메커니즘에 사용한다.
# 공개키 암호화 방식이 대칭키 암호화 방식에 비해서 느린이유
1. 수학적 연산
공개키 암호화 알고리즘은 대체로 복잡한 수학적 연산에 기반을 두고 있는데
하나의 예시를 들자면 RSA 방식은 큰 소수를 이용한 모듈로 연산을 수행한다.
이러한 연산은 대칭키 암호화에서 사용되는 비트 수준의 연산보다 훨씬 더 많은 계샨량을 요구한다.
2. 키 길이
공개키 암호화 알고리즘은 일반적으로 매우 긴 키, 예로 RSA 경우 2048비트의 키 길이를 권장 사용한다
그에 반해 대칭키 알고리즘은 훨씬 짧은 키를 사용한다. (AES의 경우 128비트, 256비트 수준)
3. 알고리즘의 복잡성
대칭키 암호화 알고리즘은 일반적으로 단순한 연산과 반복적인 패턴을 사용한다.
예를 들어, AES(Advanced Encryption Standard)는 데이터를 블록으로 나누고, 각 블록에 대해
일련의 변환작업을 수행하는데 이러한 변한 작업들은 대부분 주로 덧셈, 치환, 비트 이동과 같은 비교적 간다한 연산이다.
반면에 공개키 암호화는 거듭제곱, 모듈로 곱셈 드 과같은 더 복잡한 수학적 연산을 요구한다.
4. 알고리즘의 특성
공개키는 2개의 키(공개키와 개인키)를 사용하는 것이 핵심적인 특성으로
암호화와 복호화 과정에 서로 다른키를 사용하므로 알고리즘의 복잡도가 증가하는 반면
대칭키는 암복호화에 동일한 키를 사용한다.
'네트워크' 카테고리의 다른 글
POST와 PUT 메소드의 차이점 (0) | 2023.04.13 |
---|---|
원격 서버의 포트 개방 여부 확인방법 (0) | 2023.03.28 |
WebSocket vs WEBRTC 개념정리 (0) | 2022.08.27 |
TCP/IP란 무엇인가? (0) | 2021.12.13 |
[네트워크] - 내부망과 외부망 개념 (0) | 2020.08.19 |