
Symmetric-key Cipher (대칭 키 암호) : 데이터의 암호화와 복호화에 동일한 키를 사용하는 방식이다.
송신자와 수신자가 동일한 키를 공유하여 데이터를 암호화하거나 복호화한다.
이는 단순하지만, 상대적으로 key를 쉽게 유추해낼 수 있다는 문제점이 있다.
또한 키를 어떻게 전달하느냐도 문제이다. 중간에 키가 노출될 경우, 기밀성을 전혀 보장할 수 없다.
예시 - 시저 암호화 : Additive cipher 방식의 시저 암호화 예시를 살펴보자.
암호화 표
key = 15, 'hello' 암호화
key = 15, 'WTAAD' 복호화
예시 - Monoalphabetic Substitution Cipher : 특정 문자를 다른 문자로 매핑하는 암호화 방식이다.
위와 같은 암호화 방식은 알파벳의 특성상 어떤 문자가 어느 문자와 매핑되는지 유추할 수 있다.
E는 가장 빈번하게 사용되는 알파벳이므로, E와 매핑된 R이 가장 빈번하게 사용될 것이다.Autokey cipher 방식으로 어느정도 해결 가능하다.
t에 대해서도 각기 다른 알파벳이 매핑될 것이다.
Data Encryption Standard (DES) : 1971년 IBM에서 LUCIFER라는 암호화 알고리즘이 개발되었고, 이는 1977년 NSA, NIST에 의해 데이터 암호화 표준(DES)로 채택되었다.
64비트 블록 단위로 데이터를 처리한다.
암호화 : 128비트 키 사용(초기) 56비트 키 사용(개선)
이 방식은 Computing power가 증가함에 따라, 쉽게 풀 수 있는 알고리즘으로 전락하였다.
좀 더 복잡한 암호화를 위해 Triple DES 방식을 도입함.
Triple DES : 192비트 키(64비트 DES 키를 3개 사용)를 사용하여 암호화하는 방식이지만, 오버헤드가 크다는 단점이 존재하였다.
AES : DES를 대체하기 위한 암호화 기법으로 128 블록 단위로 데이터를 처리하며, 3가지 종류의 암호화 키(128, 192, 256 비트)를 지원한다.
Asymmetric key cipher (비대칭 키 암호화) : 서로 다른 키를 사용하여 데이터를 암호화 및 복호화 하는 방식이다.
공개 키 (Public key) : 데이터를 암호화하는 데 사용
개인 키 (Private key) : 데이터를 복호화하는 데 사용
Public key로 암호화된 데이터는 매핑된 Private key로만 복호화 할 수 있음.
예시
Bob : Key-generation procedure를 통해 공개키와 개인키를 생성
공개키 : 암호화를 위해 공개적으로 배포
개인키 : 복호화를 위한 개인키
생성된 공개키는 보안이 보장되지 않는 채널을 통해 모든 사람에게 배포됨
Alice : 공개키를 사용하여 문서를 암호화한 뒤, 보안이 보장되는 채널로 메시지를 전달함
Bob은 개인키를 사용하여 복호화
RSA : 비대칭 키 암호화 방식의 대표적인 암호화 알고리즘이다.
RSA는 매우 큰 소수(1024비트 이상의 정수)를 이용하여 암호화와 복호화를 진행한다.
RSA의 보안성은 큰 정수를 소인수분해하는 계산 난이도에 의존한다.
Integrity (무결성) : 무결성은 데이터가 전송 도중 손상되거나 변조되지 않았음을 보장하는 보안 속성이다.
기밀성보다 무결성이 중요한 메시지또한 존재한다.
예를 들면, 계약서, 공공 데이터, 유언장, ...
이러한 문서들은 누구나 읽을 수 있지만, 내용이 변경되면 안된다.
무결성 보장 예시
메시지를 생성한 뒤, Hash function을 사용하여 메시지의 고유한 Digest를 생성한다.
메시지는 안전하지 않은 채널로 전송하고, Digest는 안전한 채널로 전송한다.
수신측은 동일한 해시 함수를 사용해 받은 메시지로부터 Digest를 생성한다.
두 Digest가 일치할 경우, 무결성이 보장된다.
위 경우, 메시지의 내용에 대한 무결성은 보장되나 실제 저자가 동일한지에 대한 무결성은 보장하지 못함.
Message Authentication : 메시지 인증은 메시지의 내용과 출처 둘 다 무결성을 보장하는 것을 의미한다.
공캐기를 통해 해쉬 함수를 생성하고, 메시지로부터 해쉬 함수를 통해 MAC을 생성한다.
생성된 MAC과 메시지를 함께 안전한 채널로 전송한다.
수신측에서 메시지로부터 MAC을 생성하고, 생성된 MAC과 수신된 MAC의 일치 여부를 확인한다.
일치 : 메시지 내용과 출처의 무결성 보장
불일치 : 메시지 혹은 출처의 무결성이 보장되지 않음
위 방식은 대칭키 암호화 방식이므로, key를 안전하게 공유하고 관리하는 데 여전히 어려움이 존재함.
Digital Signature (전자 서명) : 전자 서명은 메시지 무결성, 메시지 인증을 포함한 추가적인 보안 서비스를 제공하는 매우 강력한 기술이다.
MAC과는 달리, 비대칭 암호화 기법을 사용한다.
예시
Alice는 메시지에 해쉬 함수를 적용하여 생성한 Digest를 자신의 개인 키로 전자 서명을 생성한 뒤, 안전한 채널로 전송한다.
Bob은 수신한 Alice의 메시지에 해쉬 함수를 적용한 Digest와 Alice의 전자 서명을 공개키로 복호화 한 Digest를 비교한다.
두 값이 같으면 메시지 무결성과 메시지 인증을 모두 만족한다.
인증 센터를 거치는 방식도 존재
Network Layer Security : 네트워크 계층에서의 보안은 네트워크 계층 서비스를 직접적으로 이용하는 애플리케이션(호스트-호스트, 라우터-라우터, 호스트-라우터 간 통신)을 보호하는 데 초점을 맞추고 있다.
IPSec Transport Mode : 호스트 간 직접적인 통신에서 데이터의 보안을 보장하기 위해 사용된다.
Payload 부분만 보호하며, IP 헤더는 그대로 유지한다.
IPSec Tunnel Mode : 네트워크 간 통신의 보안을 보장하기 위해, 혹은 VPN을 구현하기 위해 사용된다.
기존의 패킷 전체를 암호화하고, 새로운 헤더를 붙여 캡슐화한다.
기존 패킷을 암호화하여 페이로드로 만든다.
새로운 IPSec 헤더를 붙여 새로운 패킷으로 만든다.
Security Protocols : IPSec은 네트워크 계층에서 IP 패킷의 인증 및 암호화를 제공하기 위해 두 가지 주요한 보안 프로토콜을 정의한다.
Authentication Header (AH) Protocol : AH 프로토콜은 패킷의 무결성과 인증을 보장하기 위해 사용된다.
암호화는 제공하지 않는다.
무결성과 인증을 보장
Encapsulating Header Protocol (ESP) : ESP 프로토콜은 데이터 암호화와 무결성, 인증을 보장한다.
암호화 기능을 제공한다.
무결성과 인증을 보장한다.
Security Association (SA) : 보안 연관은 IPSec에서 매우 중요한 개념으로, 두 호스트 간의 논리적 보안 관계를 정의한다.
SA는 암호화와 인증 등의 보안 기능을 정의하고, 이를 기반으로 IPSec이 동작한다.
쉽게 말해, 두 호스트 간 보안 범위와 규칙을 설정하는 것으로 이해할 수 있으며, IPSec은 이를 기반으로 어느 범위까지 보안 기능을 제공할지 결정한다.
Virtual Private Networks (VPN) : VPN은 공용 네트워크와 IPSec을 활용해 프라이빗 네트워크를 확장하는 기술이다.
물리적인 전용선 없이, 인터넷과 같은 공용 네트워크에 IPSec을 활용해 논리적인 사설 네트워크를 생성한다.
IPSec은 VPN 구현을 위해 보안 터널을 생성한다. 이때 Tunnel mode가 사용된다.
VPN으로 연결된 두 네트워크 간 데이터는 암호화되어 안전하게 전송된다.
이는 마치 서로 떨어져 있는 두 라우터가 같은 네트워크에 위치하는 것과 같은 효과를 나타낸다.
Transport Layer Security : 운송 계층의 보안은 애플리케이션 계층의 데이터를 보호하기 위해 크게 두 가지 주요 프로토콜을 사용한다.
Secure Sockets Layer (SSL) : HTTP와 같은 애플리케이션 계층 프로토콜에서 생성된 데이터를 받아 압축, 서명, 암호화를 진행한 후 신뢰할 수 있는 운송 계층(예를 들면, TCP)에 전달하는 방식이다.
Handshake protocol
Record Protocol
Transport Layer Security (TLS) : SSL을 개선한 방식으로, 현대 시스템에서 주로 사용되는 보안 방식이다.
Firewall : 네트워크 보안의 핵심 요소인 방화벽은 내부 네트워크와 외부 네트워크(인터넷) 간의 트래픽을 제어하기 위해 설치되는 장치 또는 소프트웨어이다.
네트워크 트래픽을 제어하여 일부 패킷은 전달하며, 일부 패킷은 차단한다.
네트워크의 경계(라우터)에 설치된다.
Packet-Filter Firewall : 패킷 필터 방화벽은 패킷의 헤더를 분석하여, 패킷을 허용하거나 차단하는 방식으로 동작한다.
라우터에 설치되어 동작한다.
필터링 테이블에 정의된 규칙(Rule)에 따라 패킷을 차단하거나 허용한다.
Proxy Firewall : 프록시 방화벽은 애플리케이션 계층의 정보를 기반으로 메시지를 필터링하는 방화벽이다.
패킷 필터링 방화벽과 달리, 헤더 정보 뿐만 아니라 메시지의 내용(Payload)를 분석하여 차단/전달 여부를 결정한다.
외부 인터넷에서 내부 HTTP 서버로 들어오는 모든 HTTP 패킷은 먼저 프록시 방화벽에 전달된다.
프록시 방화벽은 모든 HTTP 패킷을 검사하고, 허용되지 않은 패킷은 차단하여 외부 방화벽으로 전달한다.
허용된 패킷은 HTTP 서버로 전달한다.