본문 바로가기

옥탑방주인/네트워크

Securing TCP

  TCP 또는 UDP는 어떤 보안도 제공하지 않는다.

데이터는 전송프로세스의 소켓의 일부가 되고 이것들은 목적지 프로세스를 찾기위해 네트워크를 돌아다닌다.

예를들면, 만약 전송프로세스가 패스워드를 원문(cleartext)으로 보안되지 않은 상태로 소켓에 포함시켜 전송한다고 하면, 원문(cleartext) 패스워드는 전송자와 수신자 사이의 모든 링크를 통해 돌아다닐 것이고, 가로채질(sniffed) 가능성이 있고, 어떤 링크들 사이에서 검색될수도 있다. 


  왜냐하면 privacy 와 보안문제는 많은 application에서 중요한 문제를 가져오기 때문이고, 인터넷 커뮤니티는 TCP를 강화시킨것을 개발했다, 이것을 Secure Sockets Layer(SSL)이라 부른다. SSL은 일반적으로 TCP가 하는일뿐만 아니라 중요한 P2P(process-to-process)보안 서비스, 암호화, 데이터 온전함(data integrity), 그리고 종단인증을 제공한다.


  TCP와 UDP는 같은 계층이지만, SSL은 제3의 인터넷 전송 프로토콜(e.g, TCP or UDP)이 아니라는것을 강조한다.

enhancement of TCP는 응용계층에서 실행된다. 부분적으로, 만약 application 이 SSL 서비스를 원한다면, application은 application의 서버와 클라이언트면에서 SSL code를 포함하는것이 필요하다.(현재 최고로 좋은 libraries와 class들로)


SSL은 traditional TCP socket API처럼 비슷하게 자신의 socket API를 가지고 있다. application이 SSL을 사용할 때, 전송 프로세스는 SSL 소켓에게 원문(cleartext)데이터를 전달한다; SSL에서 전송프로세스는 데이터를 암호화하고 암호화된 데이터를 TCP소켓에 전달한다. 암호화된 데이터는 인터넷에서 수신프로세스의 TCP socket을 찾으러 다닌다. 

수신프로세스가 SSL에서 암호화된 데이터를 받으면, 수신프로세스는 data를 복호화 한다.

마침내, SSL은 수신프로세스에게 SSL 소켓을 통한 원문(cleartext)데이터를 전송했다.



 

'옥탑방주인 > 네트워크' 카테고리의 다른 글

DNS(domain name system)란 무엇일까?  (0) 2017.01.06
프록시 서버(Web Caching)  (0) 2017.01.03
Cookies(유저와 서버간의 소통)  (0) 2017.01.02
TCP  (0) 2016.12.30
UDP  (0) 2016.12.29