### Data Privacy
-오늘날 인터넷은 통신과 정보 전달을 위해 가장 효과적이고 많이 사용되는 정보 전달 수단이다.
-Internet망을 통해서 많은 사람들이 통신함에 따라서 통신 보안은 매우 중요한 이슈중 하나이다.
-통신 보안은 모든 네트워크 설계의 중요한 요소이며 데이터를 암호화하는 기법들은
현대 정보 시스템에 없어서는 안될 필수요소가 되었고 안전한 접근을 위해서
안정성 , 신뢰성 , 기밀성등을 제공한다.
------------------------------------------------------------------------------------------------------------------------
## 암호 시스템
# 암호 시스템 (CryptoSystem or Cryptographic System)
-암호 시스템은 통신 보안을 제공하기 위해서 암호화 응용 프로그램을 포함하는 하나의 프레임워크이다.
-암호 시스템은 암호화 프로토콜 , 암호화 절차 , 암호화 알고리즘등을 포함한 개념으로
암호화 기술을 사용하여 인코딩과 디코딩하는 시스템을 운용하기위한 기술이다.
또한 암호 시스템을 통해 정보의 기밀성 , 무결성을 구현할 수 있으며 이를 위해
암호화(Encryption) , 복호화(Decryption) , 해쉬 함수(Hash-function) , 키 관리기법 (Key Management)
등과 같은 다양한 암호기술을 이용한다.
# 암호화 기법의 개요
-암호화 기법은 오래 전부터 있어온 과학으로 기원전 1900년경 이집트인들은 암호화 기법을 사용하여 고대 비문을 만들었고
로마인들은 유출되지 말아야 할 비밀 메시지를 교환할 때 암호화 기법을 사용하였다.
-암호 기법은 그리스어 'Kryptos'와 'Graphein'에서 유래되었다 (Kryptos = 숨겨진 , Graphein = 기록하다)
-인터넷과 같이 신뢰할수 없거나 여러 사용자가 공유하는 매체를 통해서 통신시 암호화 기법은 매우 중요하다.
# 암호와 기법에서 사용되는 용어
-평문 (Plaintext)
: 암호화 되지 않은 일반 데이터
-암호화 (Encryption)
: 비밀 Key를 사용하여 일반 데이터를 비밀 코드로 전환하는 연산 프로세스를 의미하며
이러한 전환을 통해서 의도된 수신자 이외의 누구도 정보에 접근할 수 없도록 만드는 프로세스를 의미한다.
-복호화 (Decryption)
: 암호화의 반대과정을 의미하며 암호화된 데이터를 원본의 일반데이터로 변환하는 과정
-암호문 (Ciphertext)
: 암호 프로세스를 거친 결과물로 암호화된 데이터를 의미한다.
-해시 (Hash)
: Hash는 메시지 압축 (Message-digest)로 알려져 있으며 Text의 수열(Sequence)에
수학 공식을 적용하여 산출해내는 유일한 값을 의미하며 원래의 데이터를 다른 데이터와 구분하기 위해 계산된 값이다.
만들어진 Hash값은 데이터를 식별할 수 있는 유일한 값으로 원본 데이터에 첨부된다.
# 암호화 알고리즘
-대칭 키(비밀키) 암호화 알고리즘 (Symmetric Key algorithm)
: 하나의 Key를 사용하여 암호화 및 복호화를 프로세스한다.
즉 암호화 Key와 복호화 Key가 동일하다. (EX : DES , 3DES , AES , SEED)
-비대칭 키(공개키) 암호화 알고리즘 (Asymmetric Key algorithm)
: 비밀 Key와 공개 Key를 사용하여 암호화 및 복호화를 프로세스한다.
복호화 Key와 암호화 Key값이 다르다. (RSA , Diffie-Hellman)
-해시 알고리즘 (Hash algorithm) OR 해시 함수 (Hash function)
: 단방향 수학 함수 (One-way mathematical function)를 사용하여 해시함수를 만들고
만들어진 해시 값을 사용하여 원본데이터와 다른 데이터를 구분할 수 있다.
# 대칭 키 암호화 알고리즘 (비밀키 알고리즘)
-대칭 키 암호화 알고리즘은 하나의 Key를 사용하여 암호화 및 복호화가 이루어지며
기밀성을 제공하기 위해서 메시지의 내용을 암호화한다.
-대칭 키 암호화 알고리즘은 일반적으로 두가지 방식으로 전송이 가능하다.
.Streaming Cipher : 비 암호화 상태의 데이터를 bit단위로 암호화하는 형식이다.
bit단위로 암호화를 진행하기때문에 장비의 CPU소모율이 증가하고 전송시 Dealy가 증가할 수 있다.
.Block Cipher : 비 암호화 상태의 데이터를 고정된 길이의 Block단위로 암호화 하는 방식이다.
대칭 키 암호화 알고리즘을 사용하게되면 암호화 주기동안 출력 결과는 변화되지 않는다.
비 암호화 데이터 128bit를 암화화 하게되면 128bit의 Block으로 출력된다. (DES , AES)
-DES (Data Encryption Standard)
: 가장 일반적인 대칭 키 암호화 알고리즘으로 IBM에 의해서 1970년대에 개발되었다.
1976년 미국 연방 정보 표준(FIPS) 표준으로 채택되었고 1977년 국립 표준 기술원 (NIST)에 의해 상업으로 사용할수 있게되었다.
DES는 56bit의 Key를 사용하여 64bit의 데이터그램 블록 암호화한다.
(현재는 56bit의 Key가 너무 작기때문에 12시간 이내에 해독이 가능)
NIST는 5년마다 DES의 안전도를 평가를 실시하며 1993년에 실시된 재평가에서 안전상에 문제가 있다고 판단되어
1998년까지만 표준으로 사용하였다. (그 이후 임시로 3DES를 표준으로 사용하였다.)
-3DES (Triple-DES)
: 3DES는 DES의 변형된 형태로 3개의 56bit Key를 이용하여 같은 데이터 상에서
세번의 암호화와 복호화 과정을 거친다. (56bit의 Key를 3번 반복하기때문에 168bit의 key를 가진다.)
-AES (Advanced Encryption Standard)
: Rijndael로도 알려전 AES는 2001년 국립 표준 기술원 (NIST)에 의해 소개되었고
DES를 대체할 새로운 미국 연방 정보 표준(FIPS)으로 발표되었다.
AES는 2002년에 암호화 표준이 되었으며 가장 일반적으로 사용하는 알고리즘이다.
AES알고리즘은 다양한 블록 길이와 Key 길이로 사용이 가능하며 표준에 의해
128bit , 192bit , 256bit의 Key길이와 128bit , 192bit , 256bit의 Block 길이의 모든 조합으로 사용이 가능하다.
(AES의 관계자는 현재의 컴퓨터로 AES를 해독하려면 148조년이 걸리며 양자 컴퓨터로 30년의 시간이 필요하다고 발표)
# 비대칭 키 암호화 알고리즘 (공개키 알고리즘)
-비대칭 키 암호화 알고리즘은 공개키 알고리즘이라고도 불리우며 1976년에 처음 공개되었다.
-비대칭 키 암호화 알고리즘은 두개의 Key를 사용하며 하나는 평문을 암화화 하는 Key로 사용하며
다른 하나는 암호문을 복호화 하는데 사용된다.
-대칭 키 암호화 알고리즘과 달리 비밀키 공유 없이 보안이 유지되지 않는 채널을 통해서 보안을 구현할 수 있다.
-비대칭 키 암호화 방식은 일반적으로 디지털 인증이나 Key 관리에 사용된다.
이론적으로는 비대칭 키 암호화를 사용하여 데이터를 암화화 하여 전송하는데 사용할 수 있지만
대칭 키 암호화 방식이 암호화 전송에 더 효율적이며 장비에 부하로 인해 사용하지 않는다.
-RSA
.RSA 알고리즘은 1976년 MIT 세명의 수학자 Ronald Rivest , Adi Shamir , Leonard Adleman에 의해
만들어진 것으로 RAS는 이들의 성 첫 글자를 딴것이다.
.RSA는 Key교환 , 전자 서명 , 메시지 암호화등에 사용된다.
-Diffe-Hellman
.스탠포트 교수인 Martin hellman과 대학원생인 Whitfield Diffie에의해 1976년 공식적으로 처음 발표되었다.
.Diffe-Hellman는 비대칭키 알고리즘을 사용하는 Key Exchange Protocol (키 분배 시스템)에서 사용된다.
.서로 사전 정보 없는 상태에서 안전하지 않은 channel을 통해 Key를 교환시 사용한다.
.RSA와 다르게 전자 서명등에 사용되지 않고 비밀키를 교환하는 용도로만 사용한다.
-Hash algorithm (해쉬 알고리즘)
.Hash algorithm은 Hash function (해쉬 함수) , Message-digest등의 이름으로도 불리운다.
.Hash algorithm은 수학적인 공식을 사용하여 원본 Text에 기반을 둔 고정 길이의 해쉬값을 계산하며
해쉬 알고리즘을 알고있더라도 해쉬값을 원래의 원본데이터로 복원할 수 없다.
.MD5 (RFC 1321) , SHA , SHA-1 (RFC 3174)
------------------------------------------------------------------------------------------------------------------------
## IPsec VPN
-IPsec은 IETF가 개발한 공개 표준으로 IP환경에서 트래픽 보호를 위해서 암호화 및 인증 Protocol을 사용한다.
-IPsec은 데이터 전송시 크게 Transport mode , Tunnel mode 두가지 Mode를 지원한다.
-Transport mode
.Host와 Host 종단 장비간 사이에서 통신시 데이터를 보호한다.
.Transport mode는 Peer-to-Peer로 구성되며 IP Header를 제외한 나머지 데이터에 대한 암호화를 지원한다.
-Tunnel mode
.네트워크와 네트워크 구간 사이에서 통신시 데이터를 보호한다.
.LAN-to-LAN , Site-to-Site , Gateway-to-Gateway라고 부른다.
.Tunnel mode는 VPN장비를 통과하는 모든 데이터를 보호하며 원본 IP Header앞에 New IP Header를
encapsulation하며 New IP Header뒤의 모든 데이터를 암호화한다.
------------------------------------------------------------------------------------------------------------------------
## AH(Authentication Header)
-AH Protocol은 Protocol number 51번을 사용하며 기밀성(암호화)은 보장하지 않으며
IP Header에 포함된 데이터의 무결성과 데이터 인증 및 보호를 제공을위해서 사용된다.
(여기서의 인증은 세션에 대한 인증이 아닌 Packet의 무결성을 의미) 즉 데이터를 확인할 수는 있지만 위조/변조는 할수없다.
-AH 프로토콜은 IP Header의 일부를 제외한 (TTL , TOS) IP Header전체를 인증하기 때문에
IP Header 조작이 불가능하므로 NAT (Network Address Translation) 환경에서 적용할수 없다
(NAT는 IP Header의 Source Address를 변경하는 기능이므로 사용할 수 없다.)
-인증 알고리즘은 MD5와 SHA등의 HASH알고리즘을 사용한다.
# Transport mode 사용시 AH Header 위치
| IP Header | TCP Header | DATA | 원본 Data
| IP Header | AH Header | TCP Header | DATA | AH 사용시
|--------------- Authentication --------------|
# Tunel mode 사용시 AH Header 위치
| IP Header | TCP Header | DATA | 원본 Data
| New IP Header | AH Header | IP Header | TCP Header | DATA | AH 사용시
|----------------------- Authentication ---------------------|
------------------------------------------------------------------------------------------------------------------------
## ESP (Encapsulating Security Payload)
-ESP는 기밀성, 원본 데이터의 인증, 무결성과 같은 보안 서비스를 지원하기 위하여
설계된 프로토콜로 IP 데이터그램 안에 포함되며 Protocol number 50번을 사용한다.
-AH(Authentication Header)의 경우에는 데이터의 인증 기능만 제공하지만
ESP는 데이터 암호화 기능과 함께 인증 기능도 포함하기때문에 일반적으로 AH보다 많이 사용된다.
-ESP만으로도 암호화및 인증을 실시할수 있지만 보안의 강도를 높일때에는 AH와 병행사용이 가능하다.
이전에는 AH와 ESP를 병행하여 상용했지만 병행사용할경우 throughput이 증가하여 지금은 병행사용을 하지않는것이 일반적이다.
-ESP Header의 위치
-Transport mode사용시 ESP Header의 위치
| IP Header | TCP Header | DATA | - 원본
| IP Header | ESP Header | TCP Header | DATA | - ESP 사용시
|---------- 암호화 ----------|
|------------------ 인증 -----------------|
-Tunne mode사용시 ESP Header의 위치
| IP Header | TCP Header | DATA | - 원본
| New IP Header | ESP Header | IP Header | TCP Header | DATA | - ESP 사용시
|--------------- 암호화 ---------------|
|----------------------- 인증 ----------------------|
------------------------------------------------------------------------------------------------------------------------
## IKE (Internet Key Exchange)
-IKE는 ISAKMP , Oakley , SKEME Protocol을 조함한 하이브리드 Protocol이다.
-IKE는 IETE에서 규정한 Key Negotiation 및 Key exchange Protocol로써 UDP 500번을 사용하며
IPsec의 세션연결을 맺는 SA(Security Assosiation)를 제어하기위한 Protocol이다.
공중망에서 Key를 생성하고 생성된 key를 교환하는 방식을 지정한다.
-IKE는 RFC 2409에 정의되어 있으며 RFC 4306(IKEv2)으로 대체되었다.
-IKE는 2단계 Multi-potocol로 Peer인증을 위한 3가지 방법을 지원한다.
.Pre-shared key
.Public Key encryption
.Public Key signature
-Pre-shared key
.사전에 정의된 Key를 사용하는 방식이며 적용이 쉽기때문에 일반적으로 가장 많이 사용된다.
-Public Key signature
.보안성이 가장 뛰어난 방식이지만 PKI 인프라가 필요하다.
-Public Key encryption
.Public Key signature방식과 유사하지만 Peer간 공개키를 사전에 공유해야하며 지원되는 Protoco이 제한적이다.
-IKE는 위에서의 설명대로 2단계를 거쳐 인증 및 통신이 이루어진다.
.IKE-1 (Phase-1) , IKE-2 (Phase-2)
.IKE-1은 Peer간 인증 및 안전한 경로를 설정하고 IKE-2의 통신 협상의 정보를 제공한다.
-IKE-1 (Phase-1)은 아래의 내용을 협상한다.
.IKE의 SA를 보호한다. (Encrption과 같은 암호화 알고리즘과 Hash알고리즘을 사용한 인증 기능 사용)
.Sessin key를 생성한다. (Diffie-hellman group 사용)
.인증 방법 (Pre-shared key , Public Key encryption , Public Key signature)
-IKE-2 (Phase-2)
.Protection suite (AH , ESP)
.Protection suite algorithm (DES , 3DES , AES , MD5 , SHA)
.보호 되어야할 네트워크 및 IP 주소
------------------------------------------------------------------------------------------------------------------------
## ISAKMP (Internet Security Association And Key Management Protocol
-ISAKMP는 Key관리를 위한 프레임워크이며 Key 생성 및 협상 , 변경 , 삭제에 필요한 절차와
Packet구조를 정의하고 Peer들만 식별할 수 있는 기능을 제공한다.
[Key를 생성하고 생성된 Key를 안전하게 교환]
-IPec을 사용하여 데이터 전송시 SA를 사용하여 정보 보호시 필요한 정보들을 공유한다.
-ISAKMP는 SA Phase 1과 SA Phase 2의 두 단계로 동작하는데 실제 데이터를 보호하는 역할은 Phase 2이며
Phase 1은 Phase 2를 전송하기전에 장비간의 인증 및 통신에 필요한
정보(암호화 알고리즘 , 인증 알고리즘 , 사용할 Key , Key의 크기 , 키교환 주기)를 협상 및 교환하는데 사용된다.
동작 절차는 IKE가 ISAKMP의 헤더 포맷을 빌려 동작하기 때문에 IKE에서 확인할수있다.
-ISAKMP는 UDP port 500을 이용하여 통신하기때문에
방화벽을 사용하는 경우 UDP port number 500번을 허용해야 ISAKMP를 사용한 통신이 가능하다.
-ISAKMP는 위에서의 설명대로 2단계를 거쳐 인증 및 통신이 이루어진다.
.Phase-1 , Phase-2
.Phase-1은 Peer간 인증 및 안전한 경로를 설정하고 Phase-2의 통신 협상의 정보를 제공한다.
-Phase-1은 아래의 내용을 협상한다.
.ISAKMP의 SA를 보호한다. (Encrption과 같은 암호화 알고리즘과 Hash알고리즘을 사용한 인증 기능 사용)
.Sessin key를 생성한다. (Diffie-hellman group 사용)
.인증 방법 (Pre-shared key , Public Key encryption , Public Key signature)
-Phase-2
.Protection suite (AH , ESP)
.Protection suite algorithm (DES , 3DES , AES , MD5 , SHA)
.보호 되어야할 네트워크 및 IP 주소
'물리서버' 카테고리의 다른 글
IPsec 이중화 (0) | 2021.11.23 |
---|---|
IPsec Pre-config (0) | 2021.11.23 |
IPsec (IP Security) (0) | 2021.11.23 |
1) GRE Tunnel (Static route) (0) | 2021.11.23 |
Switch (0) | 2021.11.23 |