
- 3-way handshake를 통한 TCP 통신 과정이 설명되어 있으며, 이는 전송 제어 프로토콜(Transmission Control Protocol)입니다.
- Confidentiality (기밀성)
- Integrity (무결성)
- Availability (가용성)
- 트랜잭션 : 일의 최소 단위
신뢰성 있는 통신과 보안 개념 정리
1. 신뢰성 있는 통신
- A와 B 간 Byte Stream을 통한 데이터 전송.
- TCP (Transmission Control Protocol) 사용하여 신뢰성을 보장.
- 3-way handshake(3단계 핸드셰이크) 과정으로 연결 확립:
- 클라이언트(A) → 서버(B) : SYN 요청
- 서버(B) → 클라이언트(A) : SYN-ACK 응답
- 클라이언트(A) → 서버(B) : ACK 전송 후 연결 확립
2. 신뢰성 있는 통신의 특징
- 순서 보장 (Ordered Delivery)
- 패킷이 전송된 순서대로 도착하도록 순서 번호(Sequence Number) 사용.
- 데이터 손실 방지 (Reliability)
- 수신 확인 응답(ACK, Acknowledgment) 메커니즘 사용.
- 손실된 패킷이 감지되면 재전송 요청(Retransmission).
- 오류 검출 및 복구 (Error Detection & Correction)
- 데이터가 손상되었는지 확인하는 체크섬(Checksum) 사용.
- 오류 발생 시 재전송을 요청하여 데이터의 무결성 보장.
- 흐름 제어 (Flow Control)
- 송신자가 너무 많은 데이터를 한 번에 보내는 것을 방지.
- 윈도우 크기(Window Size) 조정을 통해 수신자의 처리 속도에 맞춤.
- 혼잡 제어 (Congestion Control)
- 네트워크 과부하를 방지하기 위해 송신 속도를 조절.
- TCP 슬라이딩 윈도우(Sliding Window) 방식 사용.
3. 보안의 3요소 (CIA)
- Confidentiality (기밀성): 데이터가 인가된 사용자만 접근 가능해야 함.
- Integrity (무결성): 데이터가 변조되지 않고 원래 상태를 유지해야 함.
- Availability (가용성): 필요한 순간에 데이터를 사용할 수 있어야 함.
4. 보안 위협 및 해결 방법
보안 위협 | 영향 받는 요소 | 해결 방법 |
도청 (Eavesdropping) | 기밀성(C) | 암호화(Encryption) 사용 |
데이터 변조 (Tampering) | 무결성(I) | 해시(Hash), 디지털 서명 활용 |
서비스 거부 공격 (DoS) | 가용성(A) | 방화벽(Firewall), 트래픽 필터링 적용 |
5. 보안 해결 방법
(1) 암호화 기법
- 공개키 암호화 (Public Key Cryptography)
- RSA 알고리즘 사용.
- A가 B에게 데이터를 보낼 때:
- B의 공개키(Public Key) 로 데이터를 암호화하여 전송.
- B는 자신의 개인키(Private Key) 로 복호화하여 데이터를 확인.
(2) 데이터 무결성 보장
- 메시지 다이제스트 (Message Digest): 해시 함수(SHA-256 등)로 데이터 변조 감지.
- 디지털 서명 (Digital Signature): 전송된 데이터가 변조되지 않았음을 증명.
6. 신뢰성 있는 통신 환경에서 계좌이체 예제
- A가 B에게 800원을 전송한다고 가정.
- A 계좌: 500 → 잔액 부족 (오류 발생)
- B 계좌: 2000 → 변경 불가 (트랜잭션 롤백)
트랜잭션 처리 (Transaction Processing)
- 원자성 (Atomicity): 하나의 작업 단위가 완벽하게 실행되거나, 실패 시 전부 롤백.
- 일관성 (Consistency): 데이터베이스의 일관성을 유지.
- 격리성 (Isolation): 여러 트랜잭션이 독립적으로 수행.
- 지속성 (Durability): 트랜잭션이 완료되면 결과가 저장됨.
트랜잭션 처리 방식
- A의 계좌에서 800원 인출 요청.
- A 계좌의 잔액이 부족하면 거래 취소(rollback).
- 잔액이 충분하면 B의 계좌에 800원 입금 후 거래 확정(commit).
Share article