본문 바로가기

Computer Science/네트워크

[쉽게 배우는 데이터 통신과 네트워크] CH17. 암호화와 네트워크 보안 (최종)

반응형
SMALL

01 암호화의 이해

1 암호화 관련 용어

  • 메시지 읽기: 인터넷에서 신호 도청을 차단하기는 쉽지 않으므로 암호화 기법으로 해결해야 한다.
  • 전송 방해: 전송 메시지가 수신자에게 도착하지 못하게 함으로써 송수신자 간의 통신을 방해한다.
  • 메시지 수정: 전송되는 메시지의 내용을 수정하는 것으로, 송수신자가 교환하는 메시지의 의미를 왜곡한다.

 

1.1 암호화 용어

암호화와 해독 과정

  • 암호화 전의 원본 문서를 원문서라 하며, 이를 임의의 형태로 암호화한 문서를 암호문이라 한다.
  • 암호문은 미리 정해진 암호키 k를 이용하여 암호화한다.
  • 송수신 사이의 전송 매체에서 외부에 노출될 가능성이 있는 경우는 암호문 상태로 전송될 때이다.
  • 외부 침입자가 암호문을 해독할 능력이 없으면 메시지의 내용을 읽거나 수정하는 등의 위해 행동을 할 수 없다.

 

1.2 암호화 알고리즘

키의 종류

  • (a) 단일키(대칭키) 방식: 암호화와 해독 과정에서 동일한 하나의 키를 사용한다.
  • (b) 비대칭키 방식: 암호화 과정에서 사용하는 암호키와 해독 과정에서 사용하는 해독키가 서로 다르다.

 


2 대체 암호화

임의의 문자를 다른 문자로 대체하는 암호화를 대체 암호화라고 한다.

 

2.1 시저 암호화

  • 알파벳 문자를 순차적으로 3문자씩 오른쪽으로 이동하면서 대체 문자를 사용하는 방식이다.
  • 가장 초보적인 알고리즘이지만 원문서 없이 암호문만으로 원래의 문자를 찾기가 쉽지 않다.
  • 단순하다는 점이 장점이자 단점이다.

 

2.2 키워드 암호화

  • 키워드로 지정한 단어를 암호문 앞줄에 먼저 적고, 키워드에 표시된 문자를 뺀 나머지 문자를 알파벳 순으로 기술한다.
  • 대체 문자 변환표의 오른쪽으로 갈수록 원문과 암호문의 문자가 같아질 확률이 높아 시저 암호화보다 나쁜 결과를 초래할 수 있다.

 

2.3 복수 개의 문자 변환표

  • 2개의 대체 문자 변환표를 모두 활용한다.
  • 하나는 홀수 위치에, 다른 하나는 짝수 위치에 있는 문자를 암호화하는 데 사용한다.

 


3 위치 암호화

문자의 배열 순서를 변경해 암호화한다.

 

3.1 컬럼 암호화

  • 전체 문장을 컬럼을 기준으로 다시 배치한다.

 

칼럼 암호화 예

  • (c) 왼쪽의 첫 번째 칼럼부터 시작해 오른쪽으로 이동하면서 표기하여 암호화한다.
  • (d) 공백을 특정 알파벳(z)로 채운다.

 

3.2 키워드 암호화

  • 중복된 문자를 포함하지 않는 임의의 단어를 암호키로 제공한다.

 

키워드 암호화 예

  • 키워드 NETWORK의 각 문자에 알파벳 순으로 일련번호를 부여한다.
  • 키워드의 알파벳 순을 따라 암호화한다.

 


02 암호화 시스템

1 DES 알고리즘

  • 암호문을 작성할 때 사용하는 암호키와 암호문을 해독할 때 사용하는 해독키가 같다.
  • 이러한 키를 비밀키 또는 대칭키라고 부른다.
  • 비공개키 방식의 알고리즘이다.
  • 대체 암호화와 위치 암호화를 복잡하게 조합하여 개발되었다.
  • 암호화를 64비트 단위로 수행하고, 암호키의 크기는 56비트이다.

 

1.1 동작 방식

DES 알고리즘 동작 과정

  • 위치 암호화는 시작과 끝에서 2번 수행된다.
  • 왼쪽 과정은 총 18번의 단계로 구성된다.
    • 처음과 마지막에 위치 암호화
    • 중간에는 16번의 암호화 과정
  • 위치 암호화1과 위치 암호화2는 서로 반대의 위치 변환을 수행한다.

 

1.2 16단계의 암호화

16단계 암호화 알고리즘

  • 위치 암호화의 중간 단계에는 동일한 암호화 알고리즘을 16번 수행한다.
  • 이전 단계에서 주어진 입력 데이터의 오른쪽 32비트는 아무 작업 없이 출력 데이터의 왼쪽 32비트로 바로 나가 다음 단계의 입력으로 전달된다.
  • 오른쪽 출력의 32비트 계산이 이루어진다.
    • 암호화를 위해 48비트의 암호키와 32비트의 입력을 이용한다.
    • 임의의 함수 F(오른쪽 32비트, 48비트 암호키)를 이용해 32비트의 결과를 얻는다.
  • 위 계산 값과 입력 데이터의 왼쪽 32비트를 배타적 논리합(XOR)으로 계산하면 오른쪽 32비트 출력을 얻는다.

 

1.3 3DES 알고리즘

  • 암호 기능을 강화하기 위하여 3번의 DES 알고리즘을 수행한다.
  • 👍 DES 알고리즘을 그대로 사용하여 구현이 쉽고, 기존 DES 시스템을 사용하던 환경에 적용하기 편리하다.
  • 👎 DES 알고리즘에 비해 3배 이상 속도가 느리다.

 

3DES 알고리즘을 이용한 암호화 과정

  • 3단계를 걸쳐 암호화가 이루어진다. (해독 과정도 마찬가지)
  • 매 단계마다 서로 다른 56비트의 키가 사용되므로 전체적으로 168비트의 키를 지원하여 보안 기능이 강화되었다.
    • 사용하는 키: 각각 56비트 크기의 3개의 DES 키(K1, K2, K3)
  • 해독 과정은 반대로 K3, K2, K1 순서대로 키를 사용하여 해독 기능을 수행한다.

 

옵션 설명
3개의 키가 모두 독립적 168비트, 보안 기능이 가장 뛰어나다.
K1과 K2는 독립적,
K3 = K1
112비트, 보안 기능이 약간 떨어지지만 DES 알고리즘을 단순 2번 수행하는 것보다 강화된 기능을 지원한다.
3개의 키가 모두 동일
K1 = K2 = K3
56비트, DES 알고리즘과 동일하여 권고에서 제외된다.

🔼 3DES의 암호키 옵션

 


2 RSA 알고리즘

RSA 알고리즘

  • 공개키 알고리즘: 암호키와 해독키가 동일하지 않도록 고안된 방식
  • 암호문을 작성할 때 사용하는 암호키가 외부에 공개되어도 해독키를 모르면 암호문을 해독할 수 없다.
  • 송신 호스트는 공개키로 원문서를 암호화하여 전송하고, 수신 호스트는 암호문을 해독하기 위해 비공개키를 사용한다.
  • RSA 알고리즘은 공개키 알고리즘의 대표적인 예이다.

 


3 전자 서명

전자 서명의 원리

  • 인터넷 환경에서 특정 사용자를 인증하려고 사용한다.
  • 일반적으로 RSA 알고리즘과 반대 원리를 가진다.
  • 비공개키 알고리즘과 공개키 알고리즘의 조합을 사용한다.
  • 암호화 과정에서 자신만 아는 비밀키(전자 서명)를 사용한다.
  • 암호화한 전자 서명은 다수의 타인이 확인하므로 해독 과정에서는 공개키를 사용한다.

 

3.1 암호화 과정

  • 2단계로 이루어진다.
    1. 비공개키 암호화 단계: 전자 서명 알고리즘으로 자신을 인증한다.
    2. 공개키 암호화 단계: 전자 서명의 정보를 전송하기 위해 다시 RSA 알고리즘을 사용한다.

 

3.2 해독 과정

  • 수신자가 전자 서명된 문서를 해독한다.
  • 수신한 문서를 RSA 알고리즘의 비공개키 Rs로 해독함으로써 전자 서명문 Ds(P)를 얻는다.
  • 얻은 문서를 송신자의 인증에 필요한 전자 서명 공개키(Dp)를 사용해 해독하여 원문서 P를 얻는다.

 


03 보안 프로토콜

1 보안 프로토콜의 개요

1.1 감청

  • 허가받지 않은 자가 직간접적인 방법으로 전송 중인 데이터를 얻는 것이다.
  • 전통적으로 유선의 통신 선로에서 이루어진다. (이더넷 선로에 감청 장비를 연결해 패킷을 훔쳐냄)
  • 무선 데이터는 무선 신호가 넓은 범위로 전파되기 때문에 물리적인 감청이 훨씬 용이하다.

 

1.2 암호화

  • 물리 계층에서 데이터를 송신하기 전에 암호화하는 데이터 링크 계층 암호화가 있다. (감청으로부터 보호)
    • 응용 계층~네트워크 계층까지 정보는 암호화하지 않는다.
    • 전송 직전인 데이터 링크 계층에서 암호화한다.
    • 수신 호스트는 암호화된 데이터를 수신하므로 데이터 링크 계층에서 해독하여 상위 계층에 전달해야 한다.
    • 👎 송수신자 사이의 라우터에서 보안이 되지 않는다. (네트워크 계층에서 암호화X)
  • 호스트 내부에서 보안을 지원하려면 응용 계층 암호화 방식을 사용해야 한다.
    • 송수신 과정의 끝단에 위치한 응용 계층에서 암호화한다.
    • 라우팅을 포함하여 모든 전송 과정에서 보안을 유지할 수 있다.

 

1.3 트래픽 제어

  • 특정 호스트가 누구와 통신을 많이 하는지에 대한 정보도 네트워크 보안에 해당된다.
  • 외부 침입자의 통신략 분석을 방해하기 위해서, 무의미한 가공 데이터를 여러 호스트에서 주기적으로 발생시킴으로써 통계 자료에 혼선을 준다.

 


2 방화벽

방화벽

개방적인 공중 인터넷망과 제한된 사용자 그룹에 허가된 사설망 사이에 보안 기능이 필요한데, 이를 방화벽이라 한다.

 

2.1 라우터를 이용한 방화벽 구현

  • 라우터를 이용해 방화벽을 구현하는 것은 간단하면서도 효과적이다.
  • 라우터는 자신과 연결된 네트워크로부터 입력된 패킷의 정보를 분석하여 어느 네트워크로 중개할 것인지를 결정하므로, 패킷을 계속 전송할지에 대한 권한도 가진다.
    • 외부의 특정 호스트가 스팸 메일을 자주 보내면 해당 호스트를 발신자로 하는 패킷을 차단한다.
    • 내부 사용자가 불법 도박 사이트나 유해한 게임 사이트에 접근하는 것을 차단한다.
  • 내부에서 외부로, 또는 외부에서 내부로 특정 응용 서비스에 접근하는 것을 제어할 수 있다.

 

2.2 프록시를 이용한 방화벽 구현

  • 프록시는 응용 환경에서 적절하게 처리할 수 있는 정보만 수신하도록 가상의 응용 프로그램을 시뮬레이션하는 방화벽이다.
  • 예를 들어, 잘못된 메시지는 프록시가 차단하므로 메일 수신자가 올바르게 처리할 수 있는 메시지만 전달된다.
  • 자주 방문하는 사이트 정보는 프록시에 저장하여 사용자에게 정보를 더 빠르게 제공할 수 있다.
반응형
LIST