네트워크 장비의 고유한 물리적 주소
컴퓨터의 네트워크 카드에 할당되며, 48비트 길이의 16진수로 표현
컴퓨터와 네트워크 장비들이 통신할 때 데이터를 보내고 받는 데 사
네트워크 상에서 고유한 값이기 때문에, 충돌을 방지하고 효율적인 데이터 전송을 가능하게 함
같은 네트워크 상에서 두 개 이상의 장치가 동일한 MAC 주소를 가지는 경우 충돌이 발생
물리적인 연결 상에서만 유효하며, 다른 네트워크로 데이터를 전송할 때는 IP 주소와 같은 논리적 주소를 사용
확인 방법

구성 방식

MAC 주소를 사용한 통신
데이터 전달 방식
데이터를 보내고 받는 데 사용되며, 컴퓨터나 네트워크 장비들이 네트워크 상에서 서로를 식별하는 데 사용되는 논리적 주소(Logical Address)
32비트 길이의 10진수로 표현되며, 네트워크 상에서 고유한 값으로 사용
네트워크 ID와 호스트 ID로 구성되며, 네트워크 ID는 해당 컴퓨터가 속한 네트워크를 식별하고, 호스트 ID는 해당 컴퓨터를 식별
네트워크에서 데이터를 전송할 때, 송신자는 수신자의 IP 주소를 알아야 함
데이터는 송신자의 IP 주소와 수신자의 IP 주소로 패킷 헤더에 적히고, 이를 기반으로 패킷이 전송
처음부터 주어지는 것이 아닌 할당이 되는 것 -> 호스트부를 변경하면서 IP 할당.

서브넷 마스크
주소 체계
IPv4
IPv6

DHCP란 호스트의 IP주소와 각종 TCP/IP 프로토콜의 기본 설정을 클라이언트에게 자동적으로 제공해주는 프로토콜
DHCP에 대한 표준은 RFC문서에 정의되어 있으며, DHCP는 네트워크에 사용되는 IP주소를 DHCP서버가 중앙집중식으로 관리하는 클라이언트/서버 모델을 사용
DHCP 지원 클라이언트는 네트워크 부팅과정에서 DHCP서버에 IP주소를 요청하고 이를 얻을 수 있음
네트워크 안에 컴퓨터에 자동으로 네임 서버 주소, IP주소, 게이트웨이 주소를 할당해주는 것을 의미
해당 클라이언트에게 일정 기간 임대를 하는 동적 주소 할당 프로토콜
장점
단점
- DHCP 서버에 의존되기 때문에 서버가 다운되면 IP 할당이 제대로 이루어지지 않음
구성
서버
클라이언트
IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술
패킷에 변화가 생기기 때문에 IP나 TCP/UDP의 체크섬(checksum)도 다시 계산되어 재기록해야 함
NAT를 이용하는 이유는 대개 사설 네트워크에 속한 여러 개의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위함
많은 네트워크 관리자들이 NAT를 편리한 기법이라고 보고 널리 사용하고 있으며, NAT가 호스트 간의 통신에 있어서 복잡성을 증가시킬 수 있으므로 네트워크 성능에 영향을 줄 수 있는 것은 당연
NAT는 IPv4의 주소 부족 문제를 해결하기 위한 방법으로서 고려되었으며, 주로 비공인(사설, local) 네트워크 주소를 사용하는 망에서 외부의 공인망(public, 예를 들면 인터넷)과의 통신을 위해서 네트워크 주소를 변환하는 것
장점
HTTP란 HyperText Transfer Protocol의 약자
-> 하이퍼텍스트(HyperText)를 전송(Transfer)하기 위해 사용되는 통신 규약(Protocol)
-> 인터넷에서 HTML과 같은 문서를 사용자 컴퓨터에 설치된 웹 브라우저가 웹 서버에 요청할 때의 규칙
정보를 텍스트로 주고 받기 때문에 네트워크에서 전송 신호를 인터셉트 하는 경우 원하지 않는 데이터 유출이 발생할 수 있다. 이러한 보안 취약점을 해결하기 위한 프로토콜이 HTTP에 S(Secure Socket)가 추가된 것이 HTTPS
기본 골격이나 사용 목적 등은 HTTP와 거의 동일하지만, 데이터를 주고 받는 과정에 ‘보안’ 요소가 추가되었다는 것이 가장 큰 차이점
-> 서버와 클라이언트 사이의 모든 통신 내용 암호화
페이지를 암호화한 키가 그 페이지를 보는 특정 사용자에게만 알려지도록 함
HTTPS는 SSL이나 TLS 프로토콜을 통해 세션 데이터를 암호화하며, 기본 TCP/IP 포트는 443이고, SSL 프로토콜 위에서 HTTPS 프로토콜이 동작
암호화 방식
- 공개키 암호화
- A키로 암호화를 하면 B키로 복호화
- B키로 암호화를 하면 A키로 복호화를 할 수 있다.
- 둘 중 하나를 비공개키(Private Key) 혹은 개인키라 부르며, 이는 자신만 가지고 있고 공개되지 않음
- 나머지 하나를 공개키(Public Key)라고 부르며 타인에게 제공
- 공개키는 유출이 되어도 비공개키를 모르면 복호화 할 수 없기 때문에 안전
- 대칭키 방식
- 동일한 키로 암호화, 복호화가 가능
- 대칭키는 매번 랜덤으로 생성되어 누출되어도 다음에 사용할 때는 다른 키가 사용되기 때문에 안전
- 공개키보다 빠르게 통신 가능
CA(Certificate Authority)
공개키와 공개 DNS명(ex.www.example.com)의 연결을 보장하는 기관
CA는 자신만의 암호화 키로 웹사이트의 공개키를 암호학적으로 사인하는 데 사용함으로써 특정 공개키가 특정 사이트의 공개키라는 것을 보장
이 서명은 계산적으로 위조할 가능성이 없음
브라우저(그 외 클라이언트)는 잘 알려진 CS가 소유한 공개키를 보관하는 신뢰할 수 있는 anchor 저장소(trust anchor stores)를 유지하고 CS 서명을 암호학적으로 확인하는데 이 공개키를 사용



장점
단점
Q: HTTPS가 동작하는 방식에 대해서 설명 해 주세요.
A: HTTPS는 보안 강화를 위한 HTTP의 버전으로, 데이터 통신의 기밀성, 무결성, 그리고 서버 신뢰성을 보장합니다. 동작 방식은 다음과 같습니다.
첫째, 핸드셰이크 단계에서 클라이언트는 서버와 SSL/TLS 프로토콜을 사용하여 통신을 시작합니다. 이때, 클라이언트는 지원하는 암호화 알고리즘을 제시하고, 서버는 이 중에서 하나를 선택하여 응답합니다.
둘째, 서버는 클라이언트에게 공개키 인증서를 제공하며, 클라이언트는 이를 검증하여 서버의 신뢰성을 확인합니다.
셋째, 클라이언트는 서버의 공개키를 사용하여 세션 키를 생성하고, 이를 안전하게 서버에게 전송합니다. 이 세션 키는 이후 데이터 전송에 사용됩니다.
넷째, 데이터 전송 단계에서 세션 키를 사용하여 데이터를 암호화하고, 서버 또는 클라이언트에게 전송합니다. 이렇게 전송된 데이터는 중간에 있는 공격자가 해독하기 어렵습니다.
다섯째, 받은 데이터는 서버 또는 클라이언트의 개인키를 사용하여 해독되며, 데이터 무결성은 해쉬 함수를 통해 보장됩니다.
이러한 과정을 통해 HTTPS는 웹 통신의 안전성을 제공하며, 사용자의 개인정보 등을 신뢰할 수 있게 보호합니다