[Network] 네트워크 보안 기초

 

네트워크 보안


(1) 네트워크 보안 요소

  • 흔히 정보 보안의 3요소로 기밀성(Confidentiality), 무결성(Integrity),가용성(Availability)을 말함

  • 네트워크 보안 요소는 정보보안 3가지 요소에 서버 인증과 클라이언트 인증을 더함

  • 총 5가지의 요소를 지님

 

1-1. 기밀성

  • 허락되지 않은 사용자 또는 객체가 정보 내용을 알 수 없도록 하는 것 (비밀 보장)

  • 원치 않는 정보 공개를 막는다는 의미 > 프라이버시 보호와도 밀접한 관계

  • 네트워크 보안 측면에서는 '시스템 간 안전한 데이터 전송'과 관련

  • '시스템 간' 의미는 서버-클라이언트, 서버-서버, 클라이언트-클라이언트의 통신을 말함

  • 네트워크 기밀성 관련 공격 > 스니핑(패킷을 무작위로 읽어들이는 공격)

  • 기밀성 보안 대책 > 통신의 암호화 

1-2. 무결성

  • 허락되지 않은 사용자 또는 객체가 정보를 함부로 수정할 수 없도록 하는 것

  • 수신자가 정보 수신하거나, 보관 정보를 꺼내 봤을 때 그 정보가 중간에 수정/첨삭되지 않음을 확인

  • 네트워크 무결성 > '클라이언트와 서버 간의 데이터가 변조되지 않고 전송되는가'

  • 네트워크 무결성 관련 공격 > 세션 하이재킹(중간에 유효한 다른 연결을 뺏음), MITM(두 시스템 간의 데이터를 중간에 변조)

  • 무결성 보안 대책 > 통신의 암호화(PKI가 밀접 관련)

1-3. 가용성

  • 허락된 사용자 또는 객체가 정보에 접근할 때 방해받지 않도록 하는 것

  • '언제든 필요할 때 클라이언트와 서버 간에 데이터를 전송할 수 있는가'

  • 네트워크 가용성 관련 공격 > DOS(서비스 거부 공격)

  • 서비스 거부 공격 대응 > 매우 어려운 문제로, 수많은 요소 고려 필요

1-4. 서버 인증

  • '클라이언트가 올바른 서버로 접속하는가'

  • 잘못된 서버로 접근하여 잘못된 정보 인식 / 잘못된 정보 입력 > 문제점

  • 서버 인증 관련 공격 > DNS 스푸핑, 서버 파밍

  • 예) 윈도우 운영체제를 정품 대신 해킹 프로그램으로 인증하여 사용 > 운영체제가 인증을 위한 요청 시 해당 프로그램을 인증 서버로 생각하고 운영체제를 인증

  • 서버 인증 > 보안 측면에서 막기에 매우 어려운 이슈

  • SSL(HTTPS)을 통해 서버 인증을 하지만, 현재는 경고를 보여주고 사용자에게 선택하게 하는 것이 일반적

1-5. 클라이언트 인증

  • '올바른 클라이언트가 접속을 시도하는가'

  • 클라이언트 인증 관련 공격 > 스푸핑, 세션 하이재킹, 피싱 등

  • 웹 사이트에 접근할 때 항상 사용하는 아이디/패스워드 > 대표적 클라이언트 인증

  • 클라이언트 인증 보안 도구 > 아주 간단한 것부터 보안성이 매우 높은 방법까지 다양하게 존재


(2) 프로토콜 정의

  • '컴퓨터와 컴퓨터 사이에서 메시지를 전달하는 과정'

  • 컴퓨터가 메시지 전달 > 제대로 도착했는지 확인 / 제대로 도착하지 않으면 재전송하는 일련의 방법

 

2-1. 프로토콜 3가지 요소

  • 구문 : 데이터의 구조나 포맷을 의미 > 전송되는 데이터의 어느 부분이 어떤 정보를 포함하는지와 관련

  • 의미 : 전송되는 데이터의 각 부분이 무엇을 뜻하는지 알 수 있게 미리 정해둔 규칙 > 오류 제어, 동기 제어, 흐름 제어를 포함

  • 순서 : 네트워크 통신에서 두 가지 역할 > '어떤 데이터를 보낼 것인가?' , '얼마나 빠르게 데이터를 보낼 것인가?'


(3) 프로토콜 기능

3-1. 주소 설정

  • 서로 다른 시스템의 두 개체가 통신을 하는 경우 필요

  • 한 개체가 상대 개체에게 데이터 전송 시 상대 주소를 알아야 함 > 프로토콜에는 각 전송 계층에 맞게 이를 지정하는 기능 있음

  • 정상이 아닌 변조된 주소 값을 가진 패킷을 보내면 네트워크나 시스템에 혼란을 줌

3-2. 순서 제어

  • 데이터가 전송될 때 일정 크기 데이터 블록을 프로토콜 데이터 단위(PDU)라고 함

  • 프로토콜 데이터 단위 전송 시에 보내는 순서를 명시하는 기능 > 연결 지향형에만 사용

  • 순서 지정 이유 > 전달, 흐름 제어, 오류 제어 등을 위해서

  • 순서가 정해진 각 PDU를 상대 개체에 보냄 > 수신측에서 순서에 맞게 데이터 재구성 / 잘못된 PDU는 재전송 요구

3-3. 데이터 대열의 단편화 및 재조합

  • 대용량 파일을 한 번에 전달하는 것은 불가능 > 단편화 및 재조합 필요

  • 대용량 파일 전송 시에 전송 효율이 높고 작은 단위로 나누어 전송 > 전송받은 시스템에서 이를 재조합 

3-4. 캡슐화

  • 프로토콜 데이터 단위(PDU)는 SDU(전송 데이터), PCI(제어 정보)로 구성

  • PCI에는 송수신자 주소, 오류 검출 코드, 프로토콜 제어 정보 등이 있음

  • 데이터에 제어 정보를 덧붙이는 것을 캡슐화라고 함

  • 어떤 네트워크 통과를 위해 데이터 전송 시에 다른 무언가로 감싸서 보냄 > 네트워크를 통과하면 감싼 부분을 다시 벗겨내어 전송하는 기능

3-5. 연결 제어

  • 두 시스템끼리 서로 데이터 교환 시에 연결을 설정(미설정)하는 것 > 연결(비연결) 지향형 데이터 전송 

  • 연결 지향형 데이터 전송은 연결 설정, 데이터 전송, 연결 해제 총 3단계로 구성 > 데이터 전송 중 연결 지속적 관리

  • 연결 지향형 데이터 전송 > TCP 이용한 연결

  • 연결 제어하는 패킷 이용 > 네트워크 연결 임의로 끊기 / 세션 뺏기 가능

  • 비연결 지향형 데이터 전송 > UDP 이용한 연결 > 전송되는 데이터를 데이터그램이라 함 

3-6. 흐름 제어

  • 송신측 개체로부터 오는 데이터 양이나 속도 조절 기능 > 송신측 / 수신측의 속도 차이 등으로 인한 정보 유실 방지

  • 두 가지 방법(정지-대기 흐름 제어 기법, 슬라이딩 윈도우 기법)이 있음

  • 정지-대기 흐름 제어 기법 > 패킷 하나를 보낸 후 해당 패킷의 응답이 와야 다음 패킷을 보내는 방식

  • 슬라이싱 윈도우 기법 > 가용 데이터 분량 패킷을 한꺼번에 보낸 후 응답 패킷을 받으면 다시 그만큼의 데이터를 한꺼번에 보내는 방식(정지-대기 흐름 제어보다 훨씬 효율적)

3-7. 오류 제어

  • 두 개체에서 데이터 교환 시 SDU나 PCI가 잘못되었을 경우, 이를 발견하는 기법

  • 오류는 패리티 비트나 순환 잉여도 검사를 통해 발견 가능

  • 순서를 검사하거나 특정 시간 안에 받지 못하면 재전송을 요구하는 방식

3-8. 동기화

  • 두 개체 간에 데이터를 전송할 때 각 개체는 특정 타이머 값이나 윈도우 크기 등을 기억해야 함

  • 두 개체가 동시에 정의된 인자 값을 공유하는 것을 동기화라 함

  • 두 개체가 정보를 송수신할 때 서로 호흡을 맞추는 것이라 할 수 있음

3-9. 다중화

  • 통신 선로 하나에서 여러 시스템을 동시에 통신할 수 있는 기법

3-10. 전송 서비스

  • 우선 순위 결정, 서비스 등급과 보안 요구 등을 제어하는 서비스


(4) OSI 7계층

 

[그림 1] OSI 7계층

 

1계층 (물리 계층)

  • 시스템 간의 연결선 > 실제 장치를 연결하는 데 필요한 전기적, 물리적 세부 사항 정의

  • 예 > 핀의 배치나 전압, 전선의 명세

  • 물리 계층 장치 > 허브, 리피터

2계층 (데이터 링크 계층)

  • 점대점 사이의 신뢰성 있는 전송 보장 > CRC 기반 오류 제어, 흐름 제어 필요

  • 네트워크 구성 개체들 사이에 데이터 전달

  • 물리 계층에서 발생할 수 있는 오류 찾기/수정에 필요한 기능적, 절차적 수단 제공

  • 주소 값은 물리적으로 할당 받음 > 네트워크 카드가 만들어질 때부터 맥 주소가 정해져 있음

  • 이더넷, HDLC, ADCCP, 패킷 스위칭 네트워크, LLC, ALOHA 등

  • 데이터 링크 계층 장치 > 브리지, 스위치(물리적 네트워크 선이 직접 연결된 곳에만 연결 가능)

3계층 (네트워크 계층)

  • 여러 노드를 거칠 때마다 경로 찾아주는 역할

  • 다양한 길이 데이터를 네트워크를 통해 전달 > 전송 계층이 요구하는 서비스 품질 제공을 위해 기능적, 절차적 수단 제공

  • 라우팅, 흐름 제어, 단편화, 오류 제어  수행

  • 네트워크 계층 장치 > 라우터, L3 스위치 

4계층 (전송 계층)

  • 양 끝단 사용자들이 신뢰성 있는 데이터를 주고 받을 수 있게 함 > 상위 계층이 데이터 전달의 유효성/효율성 고려 X

  • 시퀀스 넘버 기반의 오류 제어 방식 사용

  • 특정 연결의 유효성 제어

  • 동작 프로토콜 중 TCP는 연결 지향 프로토콜로, 패킷 전송이 유효한지 확인하고 전송에 실패한 패킷은 재전송

5계층 (세션 계층)

  • 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법 제공

  • 동시 송수신 방식, 반이중 방식, 전이중 방식 통신과 함께 체크 포인팅/유휴/종료/재시작 과정 수행

  • TCP/IP 세션을 만들고 없애는 책임을 짐 

6계층 (표현 계층)

  • 다른 기종 여러 시스템들이 서로 다른 데이터 표현 방식을 사용하는 경우 > 하나의 통일된 구문 형식으로 변환시킴

  • 시스템에서 사용되는 코드 간의 번역을 담당 (예 : EBCDIC 인코딩 파일 > ASCII 인코딩 파일로 바꿈)

  • 코드 간의 번역 방식을 ASN.1이라 함 > 응용 계층 간의 서로 다른 표현을 상호 인식하기 위한 정보 정의

  • 데이터 압축, 암호화 기능 수행

  • 데이터 암호화 방식, 압축 방식 설명을 헤더 정보에 붙임

7계층 (응용 계층)

  • 사용자나 응용 프로그램 사이에 데이터 교환을 가능하게 하는 계층

  • HTTP, FTP, 터미널 서비스, 메일 프로그램, 디렉토리 서비스 등 제공


(5) TCP/IP 4계층

 

[그림 2] OSI 7계층과 TCP/IP 4계층

 

5-1. OSI 7계층과 비교

  • 물리 계층, 데이터 링크 계층 > 네트워크 엑세스(인터페이스) 계층

  • 네트워크 계층 > 인터넷 계층

  • 세션 계층, 표현 계층, 응용 계층 > 응용 계층


# References

 

https://www.hanbit.co.kr/store/books/look.php?p_code=B2228799661

'Network' 카테고리의 다른 글

[Network] 응용 계층  (1) 2020.03.19
[Network] 전송 계층  (0) 2020.03.19
[Network] 네트워크 계층  (0) 2020.03.19
[Network] 데이터 링크 계층 (DataLink Layer)  (0) 2020.03.18
[Network] 물리 계층 (Physical Layer)  (0) 2020.03.18

+ Recent posts