[컴퓨터시스템개론] 네트워크
네트워크 기초
네트워크 정의 및 중요성
- 네트워크 (Network): 컴퓨터 간 데이터 전송을 위해 시스템들을 연결한 것
- 정보 및 자원 공유 요구 증대에 따라 네트워킹의 중요성 증가
- 섀넌(C. E. Shannon) 통신 모형: 송신자, 수신자, 메시지, 채널, 인코딩/디코딩 등의 요소로 구성되며, 통신에는 체계적인 규칙(프로토콜)이 필요함을 시사
네트워크 분류

- 송신기-수신기 간 통신 거리에 따른 분류
- PAN (Personal Area Network): 개인 통신망, 수 미터 이내 (예: 블루투스)
- LAN (Local Area Network): 근거리 통신망, 1~2km 이내 (예: 건물 내, 대학 캠퍼스)
- MAN (Metropolitan Area Network): 광역도시 통신망, 100km 이내 (예: 도시 규모)
- WAN (Wide Area Network): 원거리 통신망, 아주 넓은 범위 (예: 도시 간, 국가 간)
- 운영 주체에 따른 분류
- 개방형 네트워크 (Open Network): 공적 영역에서 운영
- 폐쇄형 네트워크 (Closed Network): 사적 영역에서 운영
네트워크 토폴로지 (Topology)

- 컴퓨터들이 연결되는 물리적 또는 논리적 형태
- 버스 (Bus) 형:
- 하나의 공통 케이블(버스)에 모든 컴퓨터가 탭(tap)으로 연결된 구조
- 메시지는 버스를 통해 모든 컴퓨터에 방송(broadcast)되며, 해당 주소의 컴퓨터만 수신
- 장점: 구축 및 확장 용이, 한 컴퓨터 고장이 전체 네트워크에 영향 적음
- 단점: 버스 자체 고장 시 전체 네트워크 마비, 동시 전송 시 충돌 발생 가능
- 주요 표준: 이더넷 (IEEE 802.3) - 유선 LAN/MAN/WAN에서 널리 사용
- 스타 (Star) 형:
- 중앙의 제어 노드(허브, 스위치, AP)에 모든 컴퓨터가 점대점(point-to-point)으로 연결된 형태
- 모든 통신은 중앙 노드를 거침
- 장점: 개별 연결 관리 용이, 일부 케이블 문제 시 해당 노드만 영향
- 단점: 중앙 노드 고장 시 전체 네트워크 마비
- 활용: 스위치, 무선 AP(Access Point) 접속
네트워크 프로토콜 (Protocol)
- 원거리 통신 장비 간 메시지 교환을 위한 양식과 규칙
- 물리적 측면: 전송 매체, 접속 단자, 전송 신호 규격 등
- 논리적 측면: 데이터 형식(프레임), 주소 지정, 오류 제어, 흐름 제어, 전송 절차 등
- 표준 프로토콜 정의로 이기종 간 통신 및 호환 제품 개발 가능
- LAN 프로토콜 표준:
- IEEE 802 LAN 표준안:

- LLC (Logical Link Control) 프로토콜: 다양한 MAC 부계층과 상위 계층 연결, 오류/흐름 제어
- MAC (Media Access Control) 프로토콜: 공유 매체 접근 제어, 물리 계층 특성 반영
- 유선 LAN (이더넷) 매체 접근 제어: CSMA/CD (Carrier Sense, Multiple Access with Collision Detection)
- 버스형 토폴로지 기반, 동축 케이블/UTP 케이블 사용
- 동작 원리:
- 전송 전 버스 사용 여부 확인 (Carrier Sense)
- 버스 비사용 시 프레임 전송 (Multiple Access)
- 전송 중 충돌 발생 여부 감지 (Collision Detection)
- 충돌 감지 시: 전송 중단, 충돌 신호 전송, 임의 시간 대기 후 재전송 시도
- 무선 LAN (WiFi) 매체 접근 제어: CSMA/CA (Carrier Sense, Multiple Access with Collision Avoidance)
- 무선 환경의 은폐 단말기(Hidden Terminal) 문제로 충돌 '탐지' 어려움 → 충돌 '회피' 방식 사용
- 동작 원리:
- 전송 전 채널 사용 여부 확인 (Carrier Sense)
- 채널 비사용 확인 후에도 일정 시간(IFS) 및 임의 시간(Contention Window) 대기
- 대기 후 채널 비사용 시 프레임 전송, ACK(수신 확인) 대기
- 대기 중 채널 사용 감지 시 타이머 멈추고 다시 대기
- (추가) RTS/CTS 핸드셰이킹으로 은폐 단말기 문제 해결 시도 (전송 전, 채널 사용 여부 요청 전송)
네트워크 연결 및 확장
네트워크 연결 장치
- 리피터 (Repeater):
- 물리 계층 장비
- 감쇠된 신호를 증폭하여 전송 거리 확장
- 브리지 (Bridge):
- 데이터 링크 계층 장비
- 두 개의 LAN 세그먼트 연결
- MAC 주소를 학습하여 목적지가 다른 세그먼트에 있을 때만 프레임 전달 (충돌 도메인 분리)
- 스위치 (Switch):
- 데이터 링크 계층 장비 (L2 스위치 기준)
- 여러 포트를 가진 브리지, 각 포트에 연결된 장치 간 전용 통신 경로 제공
- MAC 주소 테이블 기반으로 특정 포트로만 프레임 전송
- 라우터 (Router):
- 네트워크 계층 장비
- 서로 다른 네트워크(프로토콜이 다르거나, IP 주소 대역이 다른 네트워크)를 연결
- IP 주소를 기반으로 패킷의 최적 경로 결정 및 전달 (라우팅)
- 전달 테이블 (Forwarding Table) / 라우팅 테이블 (Routing Table) 유지
- 게이트웨이 (Gateway):
- 서로 다른 프로토콜 체계를 사용하는 네트워크를 연결하는 장비 (넓은 의미)
- 라우터도 게이트웨이의 일종으로 볼 수 있음
인터네트워크 (internet)
- 네트워크들의 네트워크 (Network of Networks)
- 라우터를 사용하여 이종(heterogeneous) 네트워크들을 연결하여 구성
소문자 internet은 일반적인 인터네트워크, 대문자 Internet은 전 세계적인 인터넷을 지칭
프로세스 통신 및 분산 시스템
프로세스 간 통신 (IPC - Interprocess Communication)
- 네트워크 상의 서로 다른 컴퓨터에서 실행되는 프로세스들이 협력하는 방식
통신 모델
- 클라이언트/서버 (Client/Server) 모델:
- 클라이언트 프로세스가 서버 프로세스에게 서비스 요청
- 서버 프로세스는 요청 처리 후 응답 제공
- 예: 웹 서버, 파일 서버, DB 서버, 프린터 서버
- P2P (Peer-to-Peer) 모델:
- 동등한 자격의 프로세스(Peer)들이 서로 서비스 요청 및 제공
- 필요할 때만 일시적으로 실행되는 경우 많음
- 중앙 서버 없이 개체 간 직접 통신
- 예: 메신저, 파일 공유 시스템, 블록체인
분산 시스템 (Distributed System)
- 네트워크로 연결된 여러 독립적인 컴퓨터들이 하나의 통합된 시스템처럼 동작하는 컴퓨팅 환경
- 각 컴퓨터는 전체 작업의 일부를 수행하며 협력
- 클라이언트/서버 또는 P2P 모델 기반 설계
- 장점: 자원 공유, 성능 향상, 고가용성(High-Availability), 부하 균형(Load Balancing), 확장성
- 유형:
- 클라이언트-서버 컴퓨팅: 가장 기본적인 분산 시스템 모델
- 클러스터 컴퓨팅 (Cluster Computing): 고성능 컴퓨팅을 위해 여러 컴퓨터를 고속 네트워크로 연결하여 긴밀하게 협력
- 그리드 컴퓨팅 (Grid Computing): 지리적으로 분산된 이종 자원을 네트워크로 연결하여 가상 슈퍼컴퓨터처럼 활용
- 클라우드 컴퓨팅 (Cloud Computing):
- 인터넷을 통해 IT 자원(서버, 스토리지, 네트워크, 소프트웨어 등)을 서비스 형태로 제공하는 모델
- 자원 소유 → 임대 패러다임 전환
- 장점: 확장성, 비용 효율성(사용한 만큼 지불), 접근성, 관리 용이성, 보안/백업
- 서비스 모델:
- IaaS (Infrastructure as a Service): 인프라(서버, 스토리지, 네트워크) 제공 (예: AWS EC2, GCP Compute Engine, Oracle Cloud Infrastructure)
- PaaS (Platform as a Service): 애플리케이션 개발/실행 플랫폼 제공 (예: Heroku, Google App Engine)
- SaaS (Software as a Service): 소프트웨어 자체를 서비스로 제공 (예: Google Workspace, Microsoft 365)
인터넷
인터넷 정의 및 구조
- 인터넷 (Internet): 전 세계적으로 연결된 거대한 인터네트워크
- ISP (Internet Service Provider): 인터넷 접속 서비스를 제공하는 사업자 (KT, SKB, LGU+ 등)
- ISP 계층 구조:
- 계층-1 ISP (Tier-1 ISP): 국제 백본망 운영, 하위 ISP와 피어링(Peering) 또는 트랜짓(Transit) 계약
- 계층-2 ISP (Tier-2 ISP): 지역/국가 단위 네트워크 운영
- 계층-3 ISP (Tier-3 ISP / 접속 ISP): 최종 사용자에게 직접 인터넷 접속 제공
- 라우터 간 다중 경로 존재로 높은 중복성(Redundancy) 및 내고장성 제공
- 단말 시스템 (End System) / 호스트 (Host): 인터넷에 연결된 최종 사용자 컴퓨터 또는 장치
인터넷 주소 체계
- IP 주소 (Internet Protocol Address):
- 인터넷에 연결된 장치를 식별하고 위치를 지정하는 고유한 숫자 주소
- 데이터의 정확한 목적지 전달에 핵심 역할
- 관리 기관: ICANN (국제인터넷주소관리기구) 산하 지역별 레지스트리(RIR) 및 국가별 레지스트리(NIR)
- IPv4 (Internet Protocol version 4):
- 32비트 주소 체계 (약 43억 개) -> 주소 고갈 문제
- 구성: 네트워크 주소 + 호스트 주소 (클래스 기반 또는 CIDR 방식)
- 표기법: 8비트씩 4부분으로 나누어 점(.)으로 구분하는 10진 표기법 (Dotted Decimal Notation) (예: 203.255.3.255)
- IPv6 (Internet Protocol version 6):
- 128비트 주소 체계 (거의 무한대) -> IPv4 주소 고갈 문제 해결
- 구성: 네트워크 프리픽스(상위 64비트) + 인터페이스 ID(하위 64비트)
- 표기법: 16비트씩 8부분으로 나누어 콜론(:)으로 구분하는 16진 표기법 (연속된 0은 '::'으로 축약 가능) (예: 21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A)
- *IPv4 주소와 변환/호환 기술 존재
- 도메인 주소 (Domain Name):
- 사람이 기억하기 쉬운 문자 기반의 인터넷 주소 (예: gnu.ac.kr)
- 계층적 구조: 오른쪽으로 갈수록 상위 도메인 (예: kr -> ac -> gnu)
- 최상위 도메인 (TLD - Top-Level Domain): .kr, .com, .org, .net 등
- 차상위 도메인 (SLD - Second-Level Domain): .co, .go, .ac 등
- 부도메인 (Subdomain): 왼쪽으로 확장되는 하위 도메인
- 작명 규칙: 영문 대소문자(구분 없음), 숫자, 하이픈(-) 사용 가능 (하이픈 시작/끝 불가), 최대 63자
DNS (Domain Name System)

- 도메인 이름 ↔︎ IP 주소 간 변환을 수행하는 분산 데이터베이스 시스템
- 웹 브라우저 등이 도메인 이름을 사용하여 서버에 접속할 수 있도록 함
- 구성:
- 도메인 네임 스페이스: 계층적 도메인 이름 구조
- 네임 서버 (Name Server): 도메인 정보(IP 주소 등)를 저장/관리하고 질의에 응답하는 서버 (계층적으로 구성: Root, TLD, Authoritative)
- 리졸버 (Resolver): 사용자(클라이언트) 측에서 DNS 질의를 보내고 응답을 받는 역할 (Local DNS 서버 등)
- DNS 조회 (Lookup) 절차:
- 사용자 PC → Local DNS 서버 질의 (예: i1hwan.com)
- Local DNS 서버 → Root DNS 서버 질의
- Root DNS 서버 → com 담당 TLD DNS 서버 주소 응답
- Local DNS 서버 → com TLD DNS 서버 질의
- com TLD DNS 서버 → i1hwan.com 담당 Authoritative DNS 서버 주소 응답
- Local DNS 서버 → i1hwan.com Authoritative DNS 서버 질의
- i1hwan.com Authoritative DNS 서버 → i1hwan.com의 IP 주소 응답 (예: 222.122.195.6)
- Local DNS 서버 → 사용자 PC에 IP 주소 응답 (Local DNS는 응답 캐싱)
World Wide Web (WWW)
- 인터넷 상의 정보를 하이퍼텍스트(HTML) 문서 형태로 연결하여 제공하는 시스템
- 클라이언트(웹 브라우저) / 서버(웹 서버) 모델 기반 구현
- 주요 기능/구성 요소:
- HTTP (Hypertext Transfer Protocol): 웹 자원 요청/응답 프로토콜
- URL (Uniform Resource Locator): 웹 자원의 고유한 위치 식별자
- 형식:
protocol://<host>:<port>/<url-path>
- 예:
https://i1hwan.com/about/aboutme.html
https
: 프로토콜i1hwan.com
: 호스트(도메인 이름)/about/.../aboutme.html
: 경로 및 파일명
- 형식:
- HTML (Hypertext Markup Language): 웹 페이지 내용과 구조를 기술하는 언어
- 웹 브라우저 (Web Browser): WWW 콘텐츠 검색/열람 응용 프로그램 (Chrome, Edge, Firefox 등)
- 기능: URL 파싱, (HSTS 목록 조회), DNS 조회 요청, HTTP(S) 요청/응답 처리, HTML 렌더링
- 웹 서버 (Web Server): 브라우저의 HTTP 요청을 받아 웹 페이지(HTML, 이미지 등)를 반환하는 프로그램 (Apache, Nginx, IIS 등)
- 기능: HTTP 프로토콜 구현, 정적/동적 콘텐츠 관리 및 제공, 가상 호스팅, 대역폭 조절 등
인터넷 응용 프로토콜
- 특정 인터넷 서비스를 위한 통신 규약
- 파일 전송: FTP (File Transfer Protocol)
- 원격 접속: Telnet, SSH (Secure Shell)
- 웹: HTTP (Hypertext Transfer Protocol), HTTPS (HTTP Secure)
- 이메일: SMTP (Simple Mail Transfer Protocol), POP3, IMAP
- 음성 통화: VoIP (Voice over Internet Protocol)
- 스트리밍: HLS, MPEG-DASH, WebRTC, SRT, RTMP, RTSP
인터넷 프로토콜
소프트웨어 계층 모델
- 네트워크 통신 기능을 여러 계층으로 나누어 역할 분담 및 표준화
- OSI (Open System Interconnection) 7계층 참조 모델: 국제 표준 모델 (이론적)
- 7: 응용 계층 (Application): 사용자와 네트워크 간 인터페이스 제공, 서비스 식별 (HTTP, FTP, SMTP)
- 6: 표현 계층 (Presentation): 데이터 형식 변환, 암호화, 압축 수행
- 5: 세션 계층 (Session): 통신 세션 설정, 유지, 종료 및 동기화 관리
- 4: 전송 계층 (Transport): 종단 간 신뢰성 있는 데이터 전송, 오류/흐름/혼잡 제어 (TCP, UDP)
- 3: 네트워크 계층 (Network): 패킷 경로 설정(라우팅) 및 전달, 논리 주소(IP) 관
- 2: 데이터 링크 계층 (Data Link): 인접 노드 간 신뢰성 있는 프레임 전송, 물리 주소(MAC) 관리, 오류 검출
- 1: 물리 계층 (Physical): 비트를 신호로 변환하여 전송 매체로 전송
- 인터넷 4계층 모델 (TCP/IP 모델): 실제 인터넷에서 사용하는 모델 (업계)
- 응용 계층 (Application Layer) (OSI 5-7계층 해당)
- 전송 계층 (Transport Layer) (OSI 4계층 해당)
- 네트워크 계층 (Network Layer / Internet Layer) (OSI 3계층 해당)
- 링크 계층 (Link Layer / Network Interface Layer) (OSI 1-2계층 해당)
인터넷 4계층 (TCP/IP) 역할 및 기능
- 응용 계층 (Application Layer):
- 사용자에게 서비스를 제공하는 계층 (HTTP, FTP, SMTP, DNS 등)
- 데이터 생성 및 표현, 세션 관리 등 수행
- 전송 계층 (Transport Layer):
- 종단 간(프로세스 간) 신뢰성 있는 데이터 전송 담당 (TCP, UDP)
- 데이터 분할/재조립, 포트 번호를 이용한 프로세스 식별, 오류 제어, 흐름 제어, 혼잡 제어 수행
- 네트워크 계층 (Network Layer / Internet Layer):
- 데이터 패킷의 최종 목적지까지의 경로 설정(라우팅) 및 전달 (IP)
- 논리 주소(IP 주소) 사용, 패킷 포워딩
- 링크 계층 (Link Layer / Network Interface Layer):
- 물리적 네트워크(이더넷, WiFi 등)를 통해 인접 노드 간 데이터(프레임) 전송
- 물리 주소(MAC 주소) 사용, 매체 접근 제어, 오류 검출
메시지 전송 과정 (캡슐화/역캡슐화)
- 송신 측 (캡슐화 Encapsulation):
- 응용 계층: 메시지 생성 (+ 응용 헤더)
- 전송 계층: 메시지를 세그먼트/데이터그램(패킷)으로 분할 (+ TCP/UDP 헤더, 포트 번호)
- 네트워크 계층: 패킷에 IP 헤더 추가 (+ IP 주소) → IP 패킷(데이터그램)
- 링크 계층: IP 패킷을 프레임으로 만듦 (+ 이더넷 헤더/트레일러, MAC 주소)
- 물리 계층: 프레임을 전기 신호/광 신호/전파로 변환하여 전송
- 중간 라우터:
- 물리 계층: 신호 수신 및 프레임으로 복원
- 링크 계층: 프레임 헤더 확인 (MAC 주소), 오류 검사 -> IP 패킷 추출
- 네트워크 계층: IP 헤더 확인 (IP 주소), 라우팅 테이블 참조하여 다음 홉 결정 → 링크 계층으로 전달
- 링크 계층: 새로운 프레임 헤더 추가
- 물리 계층: 신호 변환 및 다음 홉으로 전송
- 수신 측 (역캡슐화 Decapsulation):
- 물리 계층: 신호 수신 및 프레임으로 복원
- 링크 계층: 프레임 헤더 제거 → IP 패킷 추출
- 네트워크 계층: IP 헤더 제거 → 세그먼트/데이터그램 추출
- 전송 계층: TCP/UDP 헤더 제거, 메시지 재조립 → 응용 계층으로 전달 (포트 번호 사용)
- 응용 계층: 메시지 처리
TCP/IP 프로토콜 모음 주요 프로토콜
- 인터넷 통신을 위한 프로토콜 표준들의 집합
- 전송 계층 프로토콜:
- TCP (Transmission Control Protocol):
- 연결형(Connection-Oriented) 프로토콜: 통신 전 3-way handshake 통해 연결 설정
- 신뢰성 있는 데이터 전송 보장: 순서 번호, 확인 응답(ACK), 재전송 메커니즘
- 흐름 제어 (Flow Control): 수신 측의 처리 속도에 맞춰 송신 속도 조절
- 혼잡 제어 (Congestion Control): 네트워크 혼잡 상황 감지 및 송신 속도 조절
- UDP (User Datagram Protocol):
- 비연결형(Connectionless) 프로토콜: 연결 설정 없이 데이터 전송
- 신뢰성 보장 기능 없음 (순서 바뀜, 유실 가능)
- 흐름 제어, 혼잡 제어 없음
- 헤더가 단순하여 오버헤드 적고 속도 빠름
- 활용: DNS, 실시간 스트리밍, VoIP, 온라인 게임 등 (속도 중요, 약간의 데이터 손실 허용 가능)
- TCP (Transmission Control Protocol):
- 네트워크 계층 프로토콜:
- IP (Internet Protocol):
- 비연결형 프로토콜
- 패킷 전달(Forwarding) 및 경로 설정(Routing) 역할 (Best-Effort 방식)
- 패킷 헤더에 TTL(Time to Live) 값 포함: 패킷이 네트워크에서 무한 순환하는 것을 방지 (라우터 거칠 때마다 1씩 감소, 0되면 폐기)
- IP (Internet Protocol):
사이버 보안
사이버 보안 개요
- 네트워크, 컴퓨터, 데이터를 악의적인 공격으로부터 보호하는 활동
- 종류:
- 네트워크 보안: 비인가된 네트워크 침입 방지/탐지
- 애플리케이션 보안: 앱 코드 취약점 수정 및 방어
- 정보 보안: 저장/전송 중 데이터의 기밀성, 무결성, 가용성 보장
- 운영 보안: 공개 데이터 분석을 통한 정보 노출 방지
인터넷 환경에서의 공격 유형
- 악성코드 (Malware): 바이러스, 웜, 트로이 목마, 스파이웨어, 랜섬웨어 등 악의적 소프트웨어 총칭
- 스니핑 (Sniffing): 네트워크 상의 데이터를 몰래 엿듣는 행위 (중요 정보 탈취 목적)
- 스푸핑 (Spoofing): IP 주소, MAC 주소, 이메일 주소 등을 위조하여 신뢰받는 사용자인 것처럼 속이는 행위 (접근 권한 획득, 중간자 공격 등에 사용)
- 피싱 (Phishing): 가짜 웹사이트나 이메일 등으로 사용자를 속여 개인 정보(계정 정보, 금융 정보 등) 탈취 (사회 공학적 기법 활용)
- 서비스 거부 공격 (DoS - Denial of Service): 특정 시스템/네트워크 자원을 고갈시켜(트래픽 폭주, 시스템 부하 등) 정상적인 서비스를 방해하는 공격
- 분산 서비스 거부 공격 (DDoS - Distributed DoS): 다수의 감염된 컴퓨터(좀비 PC)를 이용하여 DoS 공격 수행 (공격 출처 분산)
- 랜섬웨어 (Ransomware): 데이터를 암호화하고 복호화 키를 대가로 금전을 요구하는 악성코드
인터넷 환경 자원 보호 대책
- 사이버보안 프레임워크 도입: (NIST 프레임워크 예시)
- 파악 (Identify): 조직 자산 및 취약점 파악
- 보호 (Protect): 자산/데이터 보호 및 접근 통제
- 탐지 (Detect): 침해 및 이상 행위 탐지
- 대응 (Respond): 침해 사고 발생 시 대응
- 복구 (Recover): 사고로 인한 피해 복구 및 시스템 정상화
- 방화벽 (Firewall) 설치:
- 내부 네트워크와 외부 네트워크(인터넷) 사이에 위치하여 미리 정의된 보안 규칙에 따라 네트워크 트래픽을 허용/차단 (네트워크 접근 통제)
- 프록시 서버 (Proxy Server) 설치:
- 클라이언트와 외부 서버 사이에서 중개자 역할 수행
- 클라이언트 IP 숨김, 캐싱을 통한 성능 향상, 접근 제어 및 로깅 기능 제공 (보안 및 성능)
- 안티바이러스 (Anti-virus) 소프트웨어 설치:
- 악성코드 탐지, 차단, 제거 (엔드포인트 보호)
- 암호화 (Encryption) 적용:
- 데이터를 제3자가 알아볼 수 없도록 변환하는 과정 (정보 보호의 핵심 수단)
- 암호학 (Cryptography): 안전한 통신 방법을 연구하는 분야
- 암호화 방식:
- 대칭키 암호화 (Symmetric Encryption):
- 암호화 키 = 복호화 키 (동일한 키 사용)
- 장점: 암복호화 속도 빠름
- 단점: 키 배송 문제 (키를 안전하게 공유해야 함), 키 관리 어려움
- 알고리즘 예: DES, 3DES, AES, SEED, ARIA
- 공개키 암호화 (Public-key Encryption / Asymmetric Encryption):
- 암호화 키 ≠ 복호화 키 (서로 다른 키 쌍 사용: 공개키, 개인키)
- 공개키는 외부에 공개, 개인키는 비밀리에 보관
- 공개키로 암호화 → 개인키로 복호화 (데이터 암호화 목적)
- 개인키로 암호화 → 공개키로 복호화 (전자 서명/인증 목적)
- 장점: 키 배송 문제 해결 (공개키 공유 용이)
- 단점: 암복호화 속도 느림
- 알고리즘 예: RSA, ECC
- 작동 원리: 공개키 암호화는 풀기 어려운 수학적 문제(예: 큰 수의 소인수분해, 이산 로그 문제)에 기반하여, 공개키만으로는 개인키를 추론하거나 암호문을 복호화하는 것이 계산적으로 매우 어렵도록 설계됨
- 디피-헬먼 (Diffie-Hellman) 키 교환:
- 공개키 암호화 기술은 안전하지 않은 채널에서 통신 당사자들이 비밀 키(대칭 키)를 안전하게 공유하는 데 사용될 수 있음 (이후 빠른 대칭키 암호화에 활용)
- 작동 단계:
- 사전 공유: 통신 당사자(Alice, Bob)는 공개된 소수 $p$와 정수 $g$ 공유
- 개인 비밀 생성: Alice는 비밀 정수 $a$, Bob은 비밀 정수 $b$ 선택
- 공개 값 계산/교환: Alice는 $A = g^a mod p$ 계산 후 Bob에게 전송, Bob은 $B = g^b mod p$ 계산 후 Alice에게 전송 ($A$, $B$는 노출 가능)
- 공유 비밀 키 계산: Alice는 $S = B^a mod p$ 계산, Bob은 $S = A^b mod p$ 계산
- 결과: 수학적 원리에 따라 Alice와 Bob은 동일한 비밀 값
S
를 공유하게 됨
- 안전성: 중간 공격자는 $p$, $g$, $A$, $B$를 알아도 $a$나 $b$를 추론하기 어려워(이산 로그 문제) 공유 비밀 $S$ 계산 불가
- 한계: 기본 방식은 중간자 공격에 취약하여 실제로는 인증 메커니즘과 함께 사용됨
- 하이브리드 방식: 대칭키와 공개키 방식을 조합하여 사용 (실제 많이 사용)
- 대칭키(세션키)를 무작위로 생성하여 데이터 암호화 (빠른 속도)
- 생성된 대칭키를 상대방의 공개키로 암호화하여 전달 (안전한 키 교환)
- 수신자는 자신의 개인키로 대칭키를 복호화한 후, 이 대칭키로 데이터를 복호화
- 대칭키 암호화 (Symmetric Encryption):
- HTTPS (HTTP Secure) 사용:
- HTTP 통신 내용을 SSL/TLS 프로토콜을 이용해 암호화하는 방식 (웹 통신 보안)
- 웹 통신 내용의 기밀성 및 무결성 보장
- 인증 기관 (CA - Certificate Authority) 및 인증서 (Certificate) 활용:
- 공개키의 소유자를 증명하고 신뢰성을 보장하기 위한 시스템
- CA는 신뢰할 수 있는 제3자로서, 특정 공개키가 특정 개인/기관의 것임을 증명하는 전자 문서(인증서) 발급 (신뢰 기반 구축)
레퍼런스
“이 글은 『컴퓨터 과학 총론』(Brookshear & Brylow, 2019)의 내용을 토대로 재구성된 자료입니다.”
모든 곳에서 연결하고, 보호하고, 구축하기
복잡성과 비용을 줄이면서 직원, 애플리케이션, 네트워크를 어디에서든 더 빠르고 안전하게 만듭니다.
💻 이 글은 컴퓨터시스템개론 시리즈의 일부입니다.