[네트워크] 네트워크 보안 2 : SSL, FireWall

드림보이즈·2024년 10월 11일
0

주제 : SSL, Firewall

SSL

우리가 대부분 인터넷을 사용할 땐, 브라우저로 통해 HTTP 통신을 한다.
앞서 말했듯 기본적으로 TCP를 설계할 때 보안은 1도 고려가 안되었는데,
이를 위해 등장한 것이 Secure Socket Layer, SSL이다.

새로운 레이어는 아니고, APP 레이어에 내장해서 사용한다.
즉 HTTP 메시지가 원래는 TCP 소켓으로 내려가는 것을,
중간에 SSL이 어떠한 보안 처리를 한겹 해줘서 내려보내는 것이다.
APP 레이어 안의 라이브러리다.
요즘은 SSL을 TLS라고 한다고도 한다. 결국 TCP 통신에 보안을 추가한 것이니,
Transport Layer Security 라고

HTTP가 바로 HTTP + SSL

동작원리

  • 서버가 공개키 인증서를 전달하고,
  • 클라이언트는 서버의 공개키로 암호화해 서버에게 전달한다.

이를 통해 4가지 키가 만들어지고, 각각 다른 부분을 암호화하는데 쓰인다.
왜 4개냐고? 그래야 털렸을 때 리스크가 적어지니까.

Pre-Master Secret: 클라이언트가 생성하여 서버에 전달. 서버는 자신의 공개키로 암호화된 Pre-Master Secret을 받아 복호화.
Master Secret: 클라이언트와 서버가 각각 Pre-Master Secret과 난수(Client Random, Server Random)를 사용해 계산.
세션 키: Master Secret을 기반으로 클라이언트와 서버에서 대칭키인 Client Write Key, Server Write Key 등을 생성.

Data Records

이렇게 HTTP 메시지를 4가지 키로 암호화해서 TCP로 내려보낸다.
여기서 SSL에서 사용하는 메시지를 Data Records라고 한다.

구조는 이렇고, MAC은 메시지의 위변조를 증명하는 Message Authentication Code로,
data,Ksk, SEQ#를 해시한 값이다.

이게 TCP 세그먼트에 바디로 들어간다.
이제 세그먼트는 네트워크로 졸졸졸 흘러간다.
TCP 헤더는 암호화되지 않는다. 누구나 어떤 IP에서 어떤 IP로 보내는지 알 수 있다.

이제 공격자가 할 수 있는 일이 뭘까?
여기서 의미있는 공격은 사용자들이 눈치를 못채게 해야한다.
데이터 바꿔봤자 다 들키잖아.

  1. 패킷 순서를 바꿔서 보내기(reordering)
    내용은 안바꾸고 순서를 바꾸면, 받는 입장에서 이게 바뀐건지 원래 순서가 이런건지 알 길이 없다. 그래서 MAC에 Seq#를 붙이는 것이다.

  2. TCP FIN을 상대에게 보내기 (연결 끊기)
    지가 나인것처럼 해서 연결 끊자고 할 수는 있다.
    그러나 이는 Data records 안에 type=0,1로 더 보낼게 있는지, 없는지로 체크할 수 있다.

이렇게 암호화되는 과정이다.

Firewall

관리할 수 있는 네트워크와, 외부 네트워크 사이에서 검문소처럼
통제할 수 있는 기능이다.
정책을 통해 어떤 것을 허용하고 금지시킬지 정할 수 있다.
누가? 네트워크 관리자가.

ACL (Access Control Lists)


profile
10년 후 세계 최고 블록체인 개발자

0개의 댓글

관련 채용 정보