Hash function: 데이터의 크기에 관계없이 항상 고정된 길이의 해시 값을 반환하는 함수
긴 데이터를 암호화하는 데 오래 걸릴 수 있는 공개키 암호화 방식과 달리, 해시 함수는 비교적 빠르게 데이터를 변환하고 고정된 길이의 해시 값을 생성
과정
- 밥이 원본 메시지 m을 해시 함수를 통해 H(m)으로 변환하고, 이를 밥의 개인키로 암호화하여 Kb(H(m))으로 만든 후 원본 데이터 m과 함께 앨리스에게 전송
- 앨리스는 받은 원본 데이터 m을 사용하여 다시 한번 해시 함수를 적용하여 H(m)을 얻은 후, 밥의 공개키로 암호화된 Kb(H(m))을 해독
- 해독된 값과 새롭게 계산된 H(m) 값을 비교하여 두 값이 일치하는지 확인
공개키와 해당 공개키를 소유한 개체의 신원을 확인하고 보증하는 역할을 수행하기 위해서 디지털 인증서를 발급
- 디지털 인증서: (사용자의 개인 정보 + 공개키) → CA의 개인키로 암호화
CA 활용 과정
- 밥이 CA에게 인증서 발급을 요청
- CA는 밥의 신원을 확인하고, 밥의 공개키와 신원 정보를 포함한 디지털 인증서를 생성
- CA는 개인키로 이 인증서에 서명하여 밥에게 제공
- 앨리스는 밥으로부터 받은 인증서를 확인하기 위해 CA의 공개키를 사용하여 해당 인증서의 유효성을 검증
Confidentiality
- 앨리스는 대칭키 Ks를 생성
- 메시지 m을 Ks를 사용하여 대칭키 암호화 방식으로 암호화
- 앨리스는 밥의 공개키를 사용하여 Ks를 공개키 암호화 방식으로 암호화
- 앨리스는 암호화된 메시지와 함께 밥에게 암호화된 Ks를 전송
- 밥은 자신의 개인키를 사용하여 암호화된 Ks를 복호화하여 원래의 대칭키 Ks를 획득
- 대칭키 Ks를 사용하여 앨리스가 암호화한 메시지 m을 대칭키 복호화 방식으로 해독
Integrity, Authentication
- 앨리스는 원본 데이터 m을 해시 함수에 입력하여 해시 값을 생성
- 앨리스는 해당 해시 값을 본인의 개인키로 암호화 후 전송
- 앨리스는 함께 원본 데이터 m을 밥에게 전송
- 받은 원본 데이터 m을 해시 함수에 입력하여 나온 해시 값과 앨리스의 공개키를 사용하여 암호화된 해시 값을 복호화 후 비교
- 두 해시 함수 값을 비교하는 부분: 데이터의 무결성
- 앨리스의 공개키를 이용하여 복호화 (앨리스의 개인키로 암호화 됨): 인증
Confidentiality, Integrity, Authentication
- 앨리스는 원본 데이터 m을 해시 함수에 넣어 나온 값을 자신의 개인키로 암호화
- 원본 데이터 m을 대칭키 Ks를 이용하여 암호화
- 대칭키 Ks를 밥의 공개키로 암호화
- 암호화된 원본 데이터 m과 앨리스의 개인키로 암호화된 H(m)을 더해서 밥에게 전송
- 밥은 자신의 개인키를 사용하여 암호문에서 대칭키 Ks를 획득
- 획득한 대칭키 Ks를 사용하여 앨리스가 보낸 메시지에서 원본 데이터 m과 앨리스의 개인키로 암호화된 H(m) 획득
- 밥은 앨리스의 개인키로 암호화된 H(m)을 앨리스의 공개키로 복호화
- 복호화된 H(m) 값과 원본 데이터 m을 해시 함수에 입력하여 얻은 해시 값을 비교
클라이언트와 서버 간 통신을 보호하고 보안을 제공하는 전송계층의 암호화 프로토콜
전송 계층의 보안을 위해 필요한 4가지 요소
- Handshake: 클라이언트와 서버가 인증서나 개인키를 통해 서로를 인증하고, 통신에 사용할 공유 비밀키를 생성하여 교환
- Derivation: 핸드셰이크에서 생성된 공유 비밀키를 이용하여 여러 개의 키를 유도
→ 다양한 보안 기능을 수행하기 위해 사용- Data Transfer: 암호화된 키를 사용하여 클라이언트와 서버 간 데이터를 안전하게 주고 받는다.
- Connection Closure: 통신이 종료될 때 안전하게 연결을 닫기 위한 특별한 메시지를 교환하여 연결을 종료
TLS 1.3: 취약한 보안 알고리즘을 제거하여 Cipher Suite의 수를 줄이고 보안을 강화
→ Cipher Suite: TLS에서 사용되는 다양한 암호화 알고리즘들을 조합하여 나타내는 방식
→ Diffie-Hellman: 주요한 보안 키 교환 방법
네트워크 계층에서 보안성을 제공하기 위한 프로토콜
Mode
- Transport Mode: 이 모드에서는 데이터그램의 페이로드만을 암호화하고 인증
→ IP 페이로드만을 보호하여 데이터의 기밀성과 무결성을 보장- Tunnel Mode: 전체 IP 데이터그램을 암호화하고 인증
→ 암호화된 IP 패킷은 새로운 IP 패킷으로 캡슐화되어 다른 네트워크로 전송
Two IPsec protocols
- Authentication Header: 인증과 무결성을 제공하지만 기밀성(암호화)은 제공하지 않는다.
- Encapsulating Security Payload: ESP는 인증, 무결성, 그리고 기밀성을 제공하므로, AH보다 널리 사용된다.
- 통신하는 두 호스트 간에 보안적으로 신뢰할 수 있는 통신 경로를 설정하는 데 사용
→ 암호화 알고리즘 및 키, 인증 알고리즘 및 키, 통신 경로와 방향, SA의 수명과 시간 제한
내부 네트워크가 인터넷에 연결된 경우, 라우터 방화벽은 패킷 단위로 정보를 필터링하며 패킷을 전달하거나 삭제하는 결정을 내린다.
Stateless Packet Filter: 각 패킷을 독립적으로 처리하여 필터링
- 모든 패킷은 개별적으로 확인되며, 연결 상태를 추적하지 않기 때문에 일부 패킷은 연결 설정과 무관하게 허용될 수 있다.
예를 들어, 목적지 포트가 80으로 설정된 패킷이 허용될 수 있지만, 실제 TCP 연결이 설정되지 않았을 수 있다.
→ 상태를 추적하지 않기 때문에 일부 무의미한 패킷이 허용될 수 있다.
Stateful Packet Filter: 모든 TCP 연결의 상태를 추적하고 관리
- 패킷이 들어오거나 나가는 동안에도 연결 설정(SYN), 해제(FIN)를 추적하여 패킷이 올바른 연결인지 확인한다.
비활성화된 연결은 일정 시간 후에 폐기되어 해당 연결의 패킷을 더 이상 허용하지 않는다.
→ 유효한 연결에 대해서만 패킷을 허용하고, 무의미한 패킷이 허용되는 경우를 방지할 수 있다.
네트워크나 시스템 내에서의 침입을 탐지하고 신속하게 대응하기 위한 시스템
Deep Packet Inspection: 패킷 내용을 분석하여 바이러스나 공격 문자열과 일치 여부를 확인하여 침입을 감지
Examine correlation among multiple packets
- Port Scanning, Network Mapping, DoS Attack