아래 내용 참고 블로그 : m.blog.naver.com/nttkak/20130246203

 

SSL : Secure Socket Layer

TLS : Transport Layer Security 

 

SSL 과 TLS 는 거의 비슷한 기능을 가지고 있고, 몇가지 차이점이 있다.

 

아래는 OSI 7개층 표이다. 

7 Application Layer TELNET / FTP / SMTP / DNS / HTTP
6 Presentation Layer  
5 Session Layer  
4 Transport Layer TCP / UDP
3 Network Layer IP
2 Data Link Layer ARPANET / SATNET / PACKET RADIO / LAN
1 Physical Layer

OSI 7계층은 모두 독립적으로 존재 하며 독립적으로 운영된다. 각 계층의 상호간의 인터페이스만

맞는다면 각 계층이 어떻게 구현 되었던 상관없이 동작하게 된다.

 

SSL 프로토콜은 OSI 어느 한 계층에서 계속 동작하는것이 아닌 독립적인 프로토콜 계층을 

만들어서 동작하게 된다. SSL 프로토콜은 Application Layer 과 TCP 계층 사이에 위치한다

 

HTTP →   SSL  TCP IP

 

Application Layer는 TCP 계층 바로 위에 있는 계층으로 Application, 즉 사용자 프로그램이 

사용하는 계층이다. 

Application Layer 에는 웹이 사용하는 HTTP 프로토콜, FTP 프로토콜 등등 많은 프로토콜이 존재한다.

HTTP / NNTP / FTP / ETC...

                

               SSL 

                

               TCP

                

                IP

이 Application Layer 에 해당되는 프로토콜들은 바로 아래의 TCP 계층을 사용해서 데이터를 외부

네트워크에 전달하고 받는다. 

 

SSL 은 Application Layer 과 TCP Layer 사이에 들어가서 동작 하므로 SSL이 적용 되었을 경우에

Application Layer 층의 프로토콜 들은 외부로 보내는 데이터를 TCP 층이 아닌 SSL 층에 보내게 된다. 

SSL 은 받은 데이터를 암호화 하여 아래의 TCP 계증에 보내고 외부 네트워크로 보낸다. 

그리고 TCP 층으로부터 받은 데이터는 복호화 하여 윗 계층인 Application Layer 의 프로토콜에 전달하는 것이다.

 

SSL 계층이 Application Layer 과 TCP Layer 사이에 끼이더라도 Application Layer 의 프로토콜은 TCP 

프로토콜과 데이터를 주고 받던 방식 그대로 사용한다. 그리고 TCP 프로토콜 역시 Application Layer

와 데이터를 주고 받던 방식 그대로를 사용한다. 

 

결국 SSL층이 적용된다고 해도 원래의 Application Layer 과 TCP Layer 의 프로토콜은 수정하지 않아도 된다.

Application Layer 의 프로토콜은 SSL 을 TCP Layer로 인식하고, TCP Layer 은 SSL을 Application Layer 로 인식하기 때문이다. 

 

[ SSL 프로토콜 ]

 

위에서 언급되었던 프로토콜이란 무엇일까?

- 프로토콜은 간단히 얘기하면 규약이다.

통신규약 즉 통신 프로토콜으 수신자와 송신자가 주고 받는 메세지는 어떤 형식이고,

어떻게 해석하며, 어떻게 주고 받을 지에 대한어떤방식으로 약속인것이다. 

 

SSL은 4가지 프로토콜로 구성되어 있다. 

1. ChangeCipherSpec

2. Alert

3. Handshake

4. Record         

 

* ChangeCipherSpec

: SSL 통신을 하는 송/수신 양쪽에 암호화 통신을 할 때 사용할 암호화 알고리즘 즉, 비밀키 알고리즘과

  메세지 다이제스트 알고리즘을 정하자는 신호

 

* Alert

: SSL 통신을 하는 송/수진 양쪽에 Alert 신호를 알리기 위해 사용. 이 신호는 SSL 통신을 하는 양 쪽

 또는 어는 한쪽에서 에러나 비정상적인 상황이 발생 했을 때 이를 상대방에게 알리기 위한 신호.

                            

* Handshake

: SSL 통신의 대부분의 메세지이다.

 Handshake Protocol의 종류는 다음과 같다. 

필드 값 Handshake 프로토콜 타입
0 HelloRequest
1 ClientHello
2 ServerHello
11 Certificate
12 ServerKeyExchange
13 CertificateRequest
14 ServerHelloDone
15 CertificateVerify
16 ClientKeyExchange
20 Finished

'Development > Security (보안)' 카테고리의 다른 글

MTLS(Mutual TLS) 통신이란?  (0) 2020.10.27
TLS(SSL) 통신이란?  (0) 2020.10.14
X.509 인증서  (0) 2020.09.18
JAVA 사설인증서 MTLS 통신 ( Server )  (0) 2020.09.16
Java 사설인증서 MTLS 통신 ( Client )  (0) 2020.09.15

+ Recent posts