Session Layer - Application Layer
3줄 요약
Session Layer는 OSI 모델의 다섯 번째 계층으로, 통신 세션의 설정, 관리 및 종료를 담당
이 계층은 데이터 교환의 순서와 동기화를 관리하며, 다양한 프로토콜을 통해 애플리케이션 간의 세션을 유지
Application Layer는 최상위 계층으로, 사용자와 애플리케이션 간의 상호작용을 가능하게 하며, HTTP, FTP, SMTP와 같은 다양한 프로토콜을 통해 데이터 전송을 처리
긴 설명
Session Layer (세션 계층)
세션 관리
Session Layer는 통신 세션을 설정하고, 관리하며, 종료
이는 두 호스트 간의 대화의 시작, 유지, 종료를 의미
데이터 동기화
이 계층은 데이터 전송의 순서 및 동기화를 유지하여, 데이터가 올바르게 전달되도록 보장
데이터의 흐름을 제어하여 누락된 데이터가 있을 경우 이를 재전송
세션 복구
세션이 중단되었을 때 복구 기능을 제공하여, 사용자 경험을 향상
이는 오류가 발생한 경우 세션 상태를 기억하고 이전 상태로 복원
Application Layer (응용 계층)
사용자 인터페이스
Application Layer는 사용자와 소프트웨어 애플리케이션 간의 상호작용
사용자가 직접적으로 소통하는 계층으로, 다양한 서비스와 애플리케이션을 제공
데이터 전송
이 계층은 데이터 전송을 위한 다양한 프로토콜을 통해 애플리케이션 간의 통신을 지원
예를 들어, 웹 브라우징, 이메일 전송, 파일 전송 등의 기능을 수행
WAF?
방어기능
- SQL injection
웹 애플리케이션에서 DB 서버에 접속하는 취약성 공격 - XSS - 크로스 사이트 스크립팅
공격자가 생성한 HTML 태그 또는 자바스크립트를 이용한 다른 일반 사용자에 대한 공격
중간자 공격 등 - CSRF - 크로스 사이트 요청 위조
특정 사이트에 로그인 중인 사용자에게 함정 사이트를 표시시켜 공격자가 준비한 웹 애플리케이션으로의 요청을 사용자에게 실행시킴
SSL/TLS 통신 방식
TCP 핸드셰이크 이후에 진행함
- 알고리즘 제시
Client Hello
사용할 수 있는 암호화 알고리즘
사용할 수 있는 압축 알고리즘 등 - 통신 상대 인증
Server Hello - Certifiate - Server Hello Done
사용할 알고리즘 결정 정보 전송
인증서 전송
전송 완료
클라이언트에서는
받은 인증서 CA를 통해 인증 및 전송자를 디지털 서명으로 확인
- 공통 키 교환
인증서의 공개키 이용
공개키를 client random, server random을 섞어서 생성 후 암호화해서 전송
client random, server random을 이용해 해싱을 위한 MAC 키 생성 - 최종 확인
서로 암호화 알고리즘 선언 및 통신 시작
SSL 헤더 + Data + MAC키
세션 설정과 종료 과정은 어떻게 이루어지나요?
세션은 클라이언트와 서버 간의 통신이 시작될 때 설정
TCP 세션 설정: TCP 연결에서 3-way 핸드셰이크 과정(클라이언트의 SYN 요청 → 서버의 SYN-ACK 응답 → 클라이언트의 ACK 응답)이 이루어지면 세션이 성립
HTTP 세션 설정: HTTP 프로토콜을 사용하는 경우, 클라이언트가 서버로 HTTP 요청을 보내고 서버가 응답을 반환하면 세션
세션 ID 생성: 서버는 클라이언트를 식별하기 위해 고유한 세션 ID를 생성하여 클라이언트에게 할당
세션 ID는 쿠키, URL 파라미터 등으로 클라이언트에 전달
세션은 클라이언트나 서버의 요청에 의해 종료
명시적 종료: 클라이언트가 로그아웃을 하거나 서버가 명시적으로 세션을 종료할 때, 세션 ID가 삭제되고 세션이 해제
타임아웃 종료: 일정 시간 동안 세션이 유지되지 않으면 타임아웃에 의해 세션이 자동 종료
TCP 세션 종료: TCP 연결은 4-way 핸드셰이크(FIN 요청 → FIN-ACK 응답 → FIN 응답 → ACK 확인) 과정을 통해 명시적으로 종료
세션 복구란 무엇이며, 어떤 상황에서 필요한가요?
세션 복구는 예상치 못한 이유로 세션이 끊겼을 때 클라이언트가 이전 상태로 다시 연결할 수 있도록 하는 기능
예를 들어, 네트워크 장애나 서버가 재시작되는 상황에서 세션이 끊긴 경우 세션 복구를 통해 이전 세션을 복원
세션 복구의 필요성:
장애 복구: 서버 장애 발생 시, 클라이언트가 다시 연결했을 때 세션 상태를 그대로 유지해 연속적인 사용자 경험을 제공
사용자 경험 향상: 클라이언트가 자주 연결을 반복하지 않고, 중단된 세션에서 지속할 수 있어 편리
세션 복구는 주로 애플리케이션 내에서 세션 상태를 저장하고, 이를 재연결 시점에 참조하는 방식
데이터베이스나 메모리 저장소에 세션 상태를 기록하는 것이 일반적
대표적인 HTTP STATUS 코드는?
200 OK: 요청이 정상적으로 처리
403 Forbidden: 접근이 거부된 상태로, 권한이 없는 사용자나 차단된 클라이언트가 접근을 시도
404 Not Found: 서버에서 요청한 자원을 찾을 수 없을 때 반환
503 Service Unavailable: 서버가 과부하되었거나 유지 보수 중이어서 요청을 처리할 수 없을 때 발생
디지털 서명이란?
디지털 서명은 메시지나 문서의 무결성과 인증을 보장하기 위해 사용
발신자는 자신의 개인키로 서명하고
수신자는 발신자의 공개키로 서명을 검증
역할
메시지의 무결성을 보장하며, 발신자가 해당 메시지의 작성자임을 확인
과정
발신자가 메시지에 대해 해시값을 생성
해시값을 개인키로 암호화하여 디지털 서명
수신자는 공개키를 사용하여 서명을 검증하고 메시지의 무결성을 확인
디지털 서명은 문서의 변조 방지와 신뢰성을 높이는 데 유용
메시지 인증 코드란?
메시지 인증 코드 (MAC: Message Authentication Code)
MAC는 송신자가 메시지와 함께 비밀 키를 사용해 생성한 코드로, 수신자가 이 코드와 메시지를 검증해 무결성과 인증을 확인
개념: 메시지와 비밀 키를 이용해 생성된 코드로, 메시지 변조를 방지하고 인증을 제공하는 데 사용
동작 방식
메시지와 비밀 키를 해시 알고리즘을 통해 처리하여 생성
특징
대칭키 암호화를 사용하므로 송신자와 수신자가 동일한 키를 가지고 있어야 함
MAC는 네트워크 패킷의 무결성 검사, 데이터 변조 방지 등에서 활용
'귀찮게하기 > Infra' 카테고리의 다른 글
인프라팀 귀찮게 안하기 - LoadBalancer 및 세션 유지 (0) | 2024.11.06 |
---|---|
인프라팀 귀찮게 안하기 - Network(3) (0) | 2024.11.06 |
인프라팀 귀찮게 안하기 - SSH (0) | 2024.11.05 |
인프라팀 귀찮게 안하기 - Network(2) (4) | 2024.11.04 |
인프라팀 귀찮게 안하기 - Network(1) (0) | 2024.11.04 |