0. 학습목표
- 암호의 주요 기능을 설명할 수 있다.
- 암호화 방식을 나열할 수 있다.
- 디지털 서명 처리 절차를 설명할 수 있다.
- 빙화벽의 종류를 설명할 수 있다.
1. 암호 기법
01) 암호화 개요
- 암호화 (encryption)
- 누구나 읽을 수 있는 평문(plaintext)(누구나 읽을 수 있는 문자)을 제 3자가 읽을 수 없는 형태인 암호문(ciphertext)으로 변환하는 과정
- 기본적으로 로그인 과정에서 입력되는 비밀번호 같은 자료들은 암호화가 이루어진다.
- 복호화 (decryption)
- 키(key)
- 암호화 키, 복호화 키

주요 기능
- 전달 과정의 기밀성 보장
- 정보의 무결성 보장
- 송신자와 수신자의 정당성 보장
- 네트워크의 5가지 요구 사항
- 기밀성 보장 - 데이터 보안성
- 무결성 보장 - 데이터 무결성
- 정당성 보장 - 실체 인증, 데이터 인증, 부인 방지
02) 암호화 기술
분류
- 동작 형태: 대치 암호, 전치 암호, 혼합 암호, 대수화 암호
- 평문의 처리 방법: 스트림 암호화, 블록 암호화
- 암호화 키의 종류: 대칭 키 암호화, 공개 키 암호화
(1) 동작 형태
- 대치 암호 (치환 암호; substitution cipher)
- 메시지의 각 글자를 다른 글자로 대치하는 방식
- 예: Ceasar(시저) 암호: 원문의 각 글자가 어떤 일정한 수만큼의 뒷 순서의 알파벳으로 대체되는 방식(A는 D로, B는 E로, C는 F로...)
- 전통적으로 많이 사용하던 방식
- 전치 암호 (전위 암호; transposition cipher)
- 평문의 글자를 재배열하는 방식 (문자의 위치를 바꿔 암호문을 작성)
- 예: 스파르타의 Lysander 장군의 암호 (2개의 원통을 사용)

- 같은 크기의 원통을 가지고, 메시지를 둘러서 한 행의 글자를 읽는 방식. 문자의 위치를 바꿈.

- 7개씩 잘라서 5개의 형태로 구분
352761
: key - 내가 만든 암호화 방법. 이 방식대로 읽으면 됨.
- 전송된 key를 기반으로 문자를 다시 배치해서 가로로 읽으면 됨.
- 혼합 암호 (product cipher)
- 대치와 전치 두 방법 모두를 사용하는 방식
- 예: LUCIFER, ENIGMA, ADFGVX, DES 등
- 대수적 암호 (algebraic cipher)
- 각 글자를 숫자로 바꾸어 수학적으로 처리하는 방식
- 예: 순환잉여검사(CRC), Vernam 암호 방식
(2) 평문 처리 방법
- 스트림 암호화 (stream cipher [state cipher] encryption)
- 평문과 같은 길이의 키 스트림을 생성하여 평문과 키를 비트 단위로 합하여 암호문을 얻는 방법
- 평문은 한번에 한 비트씩, random하게 생성되는 키 스트림과 XOR 연산으로 합해져서 전송됨

- 블록 암호화 (block cipher [state cipher] encryption)
- 평문을 일정한 길이의 단위(block)로 나눈 뒤, 각 block단위로 암호화 과정을 수행하여 암호문을 얻는 방법
- 대표적인 예: LUCIFER, DES
- 비교
- 스트림 암호화 방식: 비트 단위의 암호화
- 블록 암호화 방식: 블록 단위의 암호화
(3) 암호화 키
- 대칭 키 암호화 (symmetric key encription)
- 암호화 키 = 복호화 키
- 유사어
- 공통 키(common key) 암호화
- 비밀 키(seckret key) 암호화
- 관용 암호화(conventional encrption)

- 장점: 구현이 용이하고 실행 속도가 빠름
- 단점: 키 분배 및 관리가 어려우며(사용자별로 키가 달라야함), 인증과 송수신 부인 방지가 보장되지 않음
- 예: RC2, RC4, RC5, IDEA, DES, Triple DES, AES
- DES (Data Encryption Standard)
- 대칭 키를 사용하는 블록 암호화 방식
- IBM에서 개발한 LUCIFER의 확장된 형태로 제안되어 1976년 NBS에서 미국정부 표준암호 방법으로 제정
- 평문 한 블록 (64비트)을 공통 키 (54비트)를 이용, 전치, 대치, XOR 연산 등을 16회 반복하여 암호문 헌 블록(64비트)을 완성함.

- AES (Advanced Encryption Standard)
- 2001년 NIST에서 미국정부 표준암호 방법으로 제정
- 공개 키 암호화
- 은행에서 이런식으로 인증이 이뤄짐
- 암호화 키 = 공개 키 / 복호화 키 = 개인 키(private key)
- 유사어
- 비대칭 키(asymmetric key) 암호화

- 장점
- 공통 키 암호화 방식의 키 분배 문제를 해결
- 디지털 서명 가능 (부인 봉쇄 가능)
- 단점
- RSA 암호화 알고리즘
- 1978년 MIT의 3명의 수학자(Rivest, Shamir, Adleman)가 개발
- 가장 대중화된 공개 키 암호화 방식
- 2개의 큰 소수 p, q를 구하고, 두 소수의 곱 n을 구해 사용하는데, 이 암호화 방식의 안전도는 n의 소인수분해 난이도에 종속됨
03) 키 관리
- 키 관리
- 사용되는 키들을 안전하게 다루기 위해 키를 관리함
- 키 생성, 등록, 확인, 분배, 설치, 저장, 파생, 보관, 취소, 말소, 폐기 등
- 공개 키 관리
- 공개 키는 공개되므로 위조, 변조가 가능함
- 공개 키 인증서(certificate)
- 공개키를 인증하는 전자적 증명문서
- 인증 만기일, 인증서 발관기급 이름, 일련번호, 인증서 발급기관의 디지털 서명
- 인증서의 형식은 ITU-T X.509 표준에 따름
- 공개 키 기반 구조
- Public Key Infrastructure (PKI)
- 공개 키 인증서를 발급하고 사용할 수 있는 인증서 관리 구조
- 인증 기관(Certificate Authority; CA)
- 일반인에게 개인 키와 공개 키를 부여하고, 인증서를 통해 상대방의 공개 키를 제공하는 서비스 기관
- 인증서
- 기재된 통신 객체 (개인, 기관, 컴퓨터)의 신분을 보증
- 인증기관은 디지털 서명이 포함되어 있어서 인증기관의 개인 키 없이는 위조, 변조할 수 업음
04) 공개키 암호화 방식

인증 기관은 여러개가 계층구조로 이루어져있음. 하위 인증기관에서 인증서를 발급받아도, 그 위 다른 계층의 인증기관에도 인증을 받아야함. 예시로 내가 국민은행에서 받은 공인인증서도 또다른 정부기관에 로그인 하는 등 계층적 추가 인증이 필요할 수 있음.
2. 디지털 서명
01) 디지털 서명 개요
- 디지털 서명 (digital signature)
- 네트워크상에서 문자나 메시지를 송,수신할 때 사용함
- 종이 문서에 사인이나 도장을 찍던 방법을 디지털 문서에 서명자 인증, 문서의 위-변조 방식, 송신 부인 방지 등 기능을 제공
- 공개 키 암호화 방식에서의 메시지 암호화는 개인 키를 이용한 메시지 작성자만이 할 수 있으므로 이를 이용하여 메시지의 작성자 본인을 알리는 서명을 작성
02) 디지털 서명 인증
디지털 서명의 인증
- 서명 알고리즘 및 증명 알고리즘
- 디지털 서명을 포함하는 메시지 전송

- A의 비밀키로 암호화를 하는 과정 자체를 디지털 서명이 이루어졌다고 본다.
디지털 서명의 유효성
- 서명자 인증(user authentication)
- 디지털 서명의 서명자를 불특정한 다수의 사람들이 검증할 수 있어야 함
- 부인 불가 (non-repudiation)
- 서명자는 서명 이후 서명 사실을 부인할 수 없어야 함
- 변경 불가 (unalterable)
- 재사용 불가 (not reuseable)
- 어느 한 전자문서의 디지털 서명을 다른 전자문서의 디지털 서명으로 사용할 수 없어야 함
- 위조 불가 (unforgeable)
- 적법적인 서명자만이 디지털 서명을 할 수 있어야 함.
3. 방화벽
01) 방화벽 개요
- 네트워크 보안의 가장 기본적인 요소. 집의 대문이 사람이 들어오고 나가는 것을 한번 막아주듯이, 외부와 내부에 방화벽이라는 것을 두어 보안적 요소를 방지.
방화벽(firewall)
- 네트워크와 네트워크 사이에서 패킷을 검사하여 조건에 맞는 패킷만을 통과(packet filtering)시키는 소프트웨어나 하드웨어를 총칭함
- 방화벽은 각 계층마다 패킷의 헤더 내용에 대한 확인 항목을 생성하여 확인 항목을 통과한 데이터만 상위 계층으로 전달하며 수상한 패킷은 버림
- 방화벽이 확인할 항목은 네트워크 관리자가 결정
방화벽 시스템 구조

중간에 가지고 있는 방화벽의 종류에 따라 어떤 기술을 사용할지가 달라짐
02) 방화벽 종류
- 배스천 호스트 (bastion hst)
- 스크리닝 라우터 (screening router)
- 이중 홈 게이트웨어 (dual-homed gateway)
- 스크린 호스트 게이트웨어 (screened host gateway)
- 스크린 서브넷 (screended subnet)
베스천 호스트 (bastion host)
- 방화벽 시스템 관리자가 중점 관리하는 시스템 중 하나
- 중요 기능으로서 내부 네트워크로의 접근에 대한 기록, 감사 추적을 위한 기록 및 모니터링 기능 필요
스크리닝 라우터 (screening router)
- 네트워크에서 사용되는 통신 프로토콜의 형태, 송신지 주소와 수신지 주소, 통신 프로토콜의 제어 필드 및 통신 시 사용되는 포트 번호를 분석
- 내부 네트워크로 진입하는 패킷들의 진입 허가 및 거절을 행하거나 내부 네트워크에서 외부 네트워크로 나가는 패킷들의 진입 허가 및 거절을 수행하는 라우터
이중 홈 게이트웨어 (dual-homed gateway)
- 2개 이상의 네트워크에 동시에 접속하는 베스천 호스트
- 하나의 네트워크 인터페이스는 인턴세 등 외부 네트워크에 연결되며, 다른 하나의 네트워크 인터페이스는 보호할 내부 네트워크에 연결되어 양쪽 네트워크 간의 직접적인 접근을 허용하지 않음
스크린 호스트 게이트웨어 (screened host gateway)
- 스크리닝 라우터와 스크린 호스트(Bastion host 또는 Dual-homed gateway)를 혼합한 형태의 방화벽
- 내부 네트워크에 두어 스크리닝 라우터가 내부로 들어가는 모든 트래픽을 전부 스크린 호스트에게만 전달되도록 하는 것.

- 인터넷에서 데이터를 보낼때는 스크리닝 라우터로, 내부에서 인터넷으로 전송하는 것은 스크린 호스트로.
스크린 서브넷 (screended subnet)
- 외부 네트워크와 내부 네트워크 사이의 DMZ의 역할을 하는 완충 지역 개념의 서브넷
- 스크리닝 라우터와 배스천 호스트를 활용
4. 프락시 서버
01) 프락시 서버의 개요
- 내부 네트워크에 있는 Client를 대신하여 인터넷에 접속하고 Client가 요청한 통신 서비스를 Client에게 제공해주는 서버
- 동작 절차
- Proxy server는 client 요청에 따라 외부 서버에게 서비스 요청
- 외부 서버는 proxy server에게 요청한 서비스를 전달
- Proxy Server는 전달받은 서비스를 client에게 전달
02) 프락시 서버의 장점
- 안정성
- 사용자 인증 기능, 서비스 이용 제한 등의 기능을 proxy server에 두면 client는 일괄적 보호를 받음
- 익명성
- 외부 서버에 접근하는 것은 proxy server이므로, client의 고유 정보가 노출될 가능성이 감소함
- 신속성
- 사용자가 열람한 웹 사이트의 정보를 캐시에 임시적으로 보관해 놓는데, 이를 이용하면 client가 동일한 웹 사이트에 접속하는 경우 서비스를 신속하게 할 수 있음
03) 프록시 서버의 종류
- 웹 서비스를 제공하는 HTTP 프락시 서버
- 메일 서비스를 제공하는 POP 프락시 서버
- FTP 서비스를 제공하는 FTP 프락시 서버
- 서비스에 따라 여러 종류의 프락시 서버가 존재함.
Reference
한국방송통신대학: 정보통신망 - 박지수