Search
Duplicate

컴퓨터 네트워크/ 네트워크 보안

네트워크 보안 개요

네트워크 보안의 중요성

(생략)

보안 위협요소

(생략)

수동적인 공격

수동적인 공격은 네트워크에 흐르는 정보를 제 3자가 중간에 알아내어 자신의 이익을 위해 해당 정보를 이용하는 것을 말한다.
단순히 여기서는 네트워크를 통하여 전송되는 정보를 중간에서 얻으므로 전송 중인 정보에 대한 내용을 수정하거나 다른 정보를 보내는 행위가 아닌 단지 지나가는 패킷의 내용이 무엇인지를 파악하여 해당 정보를 이용하는 것이다.
수동ㅈ거인 공격의 또 다른 하나는 정보의 내용 그 자체가 아니라 네트워크를 통해 흐르는 정보의 흐름 즉 트래픽 량이나 트래픽이 발생한 위치, 최종 목적지에 대한 트래픽 분석 등을 통하여 어떤 사실을 유추해 내고자 하는 것이다. 그림 12-1은 수동적 공격 형태를 보여준다.

능동적인 공격

능동적인 공격은 수동적인 공격보다는 좀 더 과감하게 네트워크 중간에 흐르는 정보를 중간에서 가로채어 그 내용을 변조하거나 바꿔치기 하여 공격자 자신의 이익을 추구하고자 하는 행위를 말한다.
예컨대 C라는 공격자가 통신 중인 A와 B라는 두 사람 사이에 전송되는 정보를 중간에서 가로채어 분석한 결과 정보의 내용이 C에게 100만원을 지불하라는 내용이었는데, C가 이를 중간에서 가로채어 1000만원으로 바꿔 놓을 수 있다.
마지막 능동적인 공격은 위장(Masquerade)이다. 사실은 A가 아니면서 A인 척 B에게 거짓 정보를 보내므로 A가 이득을 취하는 것을 말한다.
이런 공격 형태 외에도 DOS(Denial Of Service)와 같은 공격도 있다. 그림 12-2는 능동적인 공격 형태를 보여준다.
앞서 살펴본 내용 외에 당사자들이 부정행위를 저지르는 경우도 있는데, 이때는 공격이라는 용어를 사용하지 않도 단순히 부정(Fraud)라는 용어를 사용한다.
통신 당사자가 부정한 행위를 하는 경우는 송신자가 자신이 보낸 정보가 자신에게 불리한 결과를 초래한다면 송신자는 자신의 송신 사실 자체를 부인할 수도 있다.
이 외에도 컴퓨터와 네트워크를 통해 전송되는 정보를 방해하거나 악용하는 등의 부정행위는 그 형태가 매우 다양하나 대체로 앞서 본 태핑(Tapping)에 의한 내용 훔쳐가기, 내용의 변조(Modification), 어떤 사실의 부인(Repudiation) 등으로 대별할 수도 있다.

미니강의| 암호학

비밀과 지식을 담은 암호체계를 만들고 해석하는 기술력은 이미 오래 전부터 국가의 힘으로 전쟁의 승패를 결정짓는 중요한 열쇠로 자리 잡아 왔다.

암호화 알고리즘

암호화 개요

여러 사람이 같이 사용하는 전송선로를 통해 중요한 데이터를 보내기 위해서는 이들에 대한 보안 대책을 강구해야 하는데, 이것을 가능하게 하는 것이 암호화 방법이다.
암호화에서는 본래의 보내고자 하는 순수 메시지를 평문(Plain Text)이라고 하고, 암호화된 메시지는 암호문(Cipher Text)라고 한다.
암호화는 메시지를 최종 목적지의 수신자에게 가는 동안 제 3자에 의해 이 메시지를 알아볼 수 없도록 평문을 재구성하여 암호문을 만드는 것인데, 이때 메시지의 재구성 방법을 암호화 알고리즘(Encryption Alogorithm)이라고 한다.
암호화 알고리즘에서는 암호화의 비밀성을 높이기 위해 키(key)를 사용하기도 한다. 키 종류에는 비밀키와 공개키가 있는데, 비밀키는 제 3자에게 비밀로 하고, 공개키는 모두에게 공개하게 된다. 특별한 경우를 제외하고는 비밀키는 제 3자에게 알려지지 않도록 잘 관리하여야 한다.
복호화란 암호화의 역과정으로 암호문으로부터 원래의 메시지(평문)를 복원하는 과정이다.
일반적으로 복호화 과정에도 암호화에 사용된 알고리즘을 사용하게 된다. 복호화 과정에서도 역시 키를 사용해야 한다. 그림 12-3은 암호화와 복호화 과정을 보여준다.
위 그림에서 평문 M은 송신자 A가 수신자 B에게 전달하려는 정보로 누구나 알아볼 수 있는 문자으로 되어 있다. 송신자가 평문 M을 멀리 떨어져 있는 사람(수신자 B)에게 안전하게 전송하기 위해서는 암호화 키 Ke와 암호화 알고리즘 E를 적용시켜 암호문 C를 생성하게 된다.
C=EKe(M)C = E_{Ke}(M)
이렇게 생성된 암호문 C를 전송 선로를 따라서 전송하게 되는데 이때 암호문 C는 어느 누구도 읽을 수 없는 상태이다. 수신자 B는 송신자 A가 전송한 암호문 C를 수신하여 복호화 키와 복호화 알고리즘을 적용시켜 송신자가 보낸 평문 M을 복원할 수 있다.
M=DKd(C)M = D_{Kd}(C)

관용키 암호방식(Converntional Cryptography, 대칭키 암호방식)

관용키 암호방식은 우리가 일반적으로 잘 알고 있는 암호화 방식으로 암호화나 복호화에 쓰이는 키 Ke와 Kd가 동일한 것으로 속도가 빠르다는 장점이 있다.
그러나 이 방식은 두 사람이 메시지를 주고받기 위해 송신자와 수신자 모두 암호화에 쓰이는 키를 알고 있어야 하므로 암호화에 쓰인 키를 어떻게 상대방에게 전달할 것인지의 문제가 발생하게 된다.

공개키 암호방식(Public Key Cryptography)

공개키 암호방식에서는 설명한 관용키(또는 대칭키) 암호방식과는 달리 암호화나 복호화에 쓰이는 크기 서로 다르다. 즉 암호화 키 Ke와 복호화 키 Kd가 서로 다르게 존재한다는 것이다.
그런데 항상 Ke가 암호화 키로만 사용되는 것은 아니고, 복호화를 위해서도 사용될 수 있는데, Kd로 암호화를 하면 복호화할 때는 Ke를 사용하여 복호화할 수 있기 때문이다. 다시 말해 Ke로 암호화를 하면 복호화할 때는 Kd로 할 수 있고, Kd로 암호화하면 Ke로 복호화할 수 있다는 것이다.
여기서 일반적으로 일반에 공개되는 키를 공개키라 하고, 자신이 비밀로 갖고 있는 키를 비밀키라고 한다.
공개키 암호방식의 가장 큰 단점은 관용키 암호방식보다 처리 속도가 느리다는 것이다.
구분
관용키(or 대칭형) 암호방식
공개키(or 비대칭형) 암호방식
역사
BC 500년경
1976년
대칭키(비밀키)
비대칭키(공개키, 사설키)
키의 상호 관계
암호화키 = 복호화키
암호화키 ≠ 복호화키
암호화/복호화 키
비밀/ 비밀
공개/ 비밀
암호 알고리즘
공개
공개
키의 개수
n x (n-1) / 2
2 x n
장점
계산 속도 빠름 (1,000배)
암호화키 사전 공유 불필요. 통신 대상의 추가가 용이. 인증 기능 제공
단점
키 분배 및 관리의 어려움. 기밀성만 보장
계산 속도 느림
대표적인 예
DES, AES, IDEA
DH, RSA, ECC

관용키(또는 대칭형) 암호 알고리즘

관용키(또는 대칭형) 암호 알고리즘은 같은 키를 사용해 메시지의 내용이 불명확하도록 평문을 재구성하여 암호문을 만들 때 사용하게 되는데, 암호화를 행할 때 사용하는 기본 요소에 따라 크게 환자 암호, 전치 암호, 혼합 암호 등의 방식으로 분류될 수 있다.

환자 암호(Substitution Cipher)

환자 암호는 평문의 각 문자를 다른 문자나 부호로 일대일 대응시키므로 평문을 암호화하는 방식이다.
가장 기본적인 환자 암호 방식은 알파벳을 순서대로 나열한 다음 일정한 방향으로 시프트(shift) 시키고 이를 평문에 적용하는 방법이다.
즉 평문의 알파벳 A B C ... X Y Z를 암호문의 알파벳 C D E ... Z A B와 같이 바꾸는 것이다.
이와 같은 환자 암호를 시프트 환자 암호라고 한다. 이러한 방법에 의해 평문 ‘CIPHER’라는 문자는 암호문 ‘EKRJGT’가 된다. 이는 실제로 줄리어스 시저가 사용하였기 때문에 시저의 암호라고도 한다.
이 외에도 평문의 영문자를 무작위 다른 영문자로 치환하여 암호문을 만드는 단순 환자 암호 방식이 있는데, 이 방법은 평문의 문자 빈도수를 비롯한 영문의 통계적 성질을 이용하면 간단하게 해독된다.
또한 동음이의 환자 암호는 단순 환자 암호 방식이 언어의 통계학적 성질을 이용한 해독에 취약한 점을 보완하기 위해 고안된 방식으로 평문 문장의 문자 빈도수에 따라 평문을 암호문 문자로 배정하여 암호화할 때 암호문의 문자 빈도가 균등하게 분포되도록 만드는 방식이다.
하지만 이 암호 방식 역시 2문자 혹은 3문자 연속 출현에 의한 언어의 통계학적 성질은 그대로 남아있어 이에 대한 공격에는 다소 문제가 될 수 있다.
이 외에도 기존에 환자 암호 방식의 취약점을 보완한 다표식 환자 암호, 철자 환자 암호 같은 암호 방식이 있다. 그림 12-5는 환자 암호의 예를 보여준다.

전치 암호(Transposition Cipher)

전치 암호는 평문의 문자를 특별한 규칙에 따라 재배열하여 평문을 암호화하는 방법으로 순열(Permutation) 암호라고 한다. 이렇게 함으로 평문과 키가 가지고 있는 정보를 암호문 전체에 분산시키는 확산 효과를 얻게 된다.
확산 효과는 영문에서 어떤 구나 단어의 형태를 바꾸고 암호 해독자가 이렇게 암호화된 암호문을 해독하기 위해 더 많은 암호문을 필요로 하게 만든다.
가장 간단한 전치 암호의 예는 문장의 알파벳 순서를 뒤집에서 끝에서부터 적는 방법인데, 평문 ‘infermation security is very important’라는 문장은 암호문 ‘tnatr opmiy revsiytiru ces no itamr ofni’로 바뀐다.
글자의 순서를 바꾸면서 사섯 글자씩 묶었기 때문에 좀 더 복잡하게 보이게 된다.
이 방법 외에도 전치 암호의 강도를 높이기 위해 행은 물론 열에서도 전치를 적용한 Nihilist 암호가 있으나 그 자체로 완벽한 암호 방식이라고 말하기는 힘들다. 그림 12-6은 전치 암호의 예를 보여주고 있다.

혼합 암호(Product Cipher)

혼합 암호는 암호 강도를 높이기 위해 앞서 살펴본 환자와 전치 암호를 모두 사용하는 방법으로 현대에 사용하는 대부분의 관용 암호 방식은 이 혼합 암호 방식을 이용하고 있다.
혼합 암호의 대표적인 예로 1차대전 당시 독일군이 사용했던 ADFGVX 암호가 있다. ADFGVX 암호는 ADFGVX의 여섯 개의 문자를 행과 열에 나열하고 36개의 행열에 영문자 26문자와 숫자 10개를 임의로 위치시킨다.
이를 환자표라고 하는데, 아래 표는 ADFGVX 암호 환자표에 대한 하나의 예를 보여준다.
평문을 이 환자표를 통해 해당하는 행과 열에 있는 문자를 연속으로 위치 나열하면 이 문장이 중간 환자 암호 결과가 된다. 중간 암호화된 결과를 갖고 전치 키워드에 따라 다시 나열하면 최종 암호화 결과를 얻을 수 있다.
A
D
F
G
V
X
A
w
4
i
6
3
9
D
p
d
q
b
s
O
F
j
h
5
r
e
f
G
1
u
a
m
7
0
V
c
t
g
y
l
z
X
v
2
x
k
8
n
예를 들면 평문 a information security를 위 환자표를 통해 중간 환자 암호를 하면 그림 12-7과 같은 결과가 나온다.
여기서 중간 암호문은 COMPUTER라는 전치 키워드의 길이에 따라 다음과 같이 나열하고 키워드의 알파벳 순서에 따라 전치를 시행하면 최종 암호문을 얻게 된다. 그림 12-8은 최종 암호문이 만들어지는 과정을 보여주고 있다.

DES(Data Encryption Standard)

샤논의 암호 이론에 의하면 암호 방식에서 전치와 환자를 반복해서 평문을 암호화했을 때, 이 암호문에는 평문의 통계적 성질이나 암호키와의 상관 관계가 나타나지 않기 때문에 보다 안전한 암호화를 수행할 수 있다고 한다.
Feistel은 이러한 성질을 이용하여 전치와 환자를 반복 적용한 혼합 암호를 제안하였다. Feistel이 제안한 암호 방식은 암호화 과정을 복호화 과정에 그대로 이용할 수 있는 간편한 방식으로 암호의 안전성이 높아 현대 관용 암호 방식에 이용되고 있다.
그 대표적인 예로 DES가 있는데, DES에서는 환자와 전치를 문자 단위가 아닌 비트 단위로 적용하고 있으며 XOR(eXclusive OR) 연산을 도입하였기 때문에 대단히 복잡해졌다.
DES는 현재까지 사용되고 있는 암호기법 중의 하나로 1974년 IBM 루시퍼 암호 알고리즘을 근간으로 하여 1975년 3월에 공표되었고, 1977년 미국 NBS(National Bureau of Standards, 현 NIST)에서 표준으로 정해진 이래 지금까지 사용되고 있다.
DES 암호화 알고리즘은 표준화되어 공개되어 있으므로 암호의 강도는 64비트의 키에 의존한다. 키의 크기가 64비트이긴 하지만 실제로는 8비트마다 패리티(parity) 비트가 들어가 있기 때문에 실제로는 키의 크기가 56비트이다.
DES는 평문을 64비트 단위로 나누어 64비트의 키로 전치, 환자 및 XOR 연산을 16번 반복하여 암호화를 수행하게 된다. 이때 사용되는 키는 56비트의 키로부터 16단계에서 사용되는 48비트의 키를 생성하게 된다.
그림 12-9는 DES 알고리즘의 과정을 보여주고 있다. 초기 전치라는 것은 입력으로 들어간 64비트의 값들이 정해진 표에 의해 위치를 옮기는 것이다.
이렇게 초기 전치가 수행된 64비트 평문은 L0, R0 2개의 32비트로 나뉘어져 16번의 암호화 과정을 거치게 되는데 이것을 식으로 나타내면 다음과 같다.
Li=Ri1Ri=Li1f(Ri1,Ki)L_{i} = R_{i-1} \\ R_{i} = L_{i-1} \oplus f(R_{i-1}, K_{i})
여기서 함수 f는 32비트의 입력과 48비트의 서브키 K를 입력으로 받아 32비트의 암호문으로 치환하는 기능을 수행한다.
여기에 사용되는 48비트의 서브키는 입력된 56비트의 키로부터 구하게 되는데 서비키를 구하는 과정은 그림에서처럼 키에 대한 초기 전치를 수행하고, 다음에 좌측 순환 시프트(Left Circle Shift)를 수행하게 된다.
그리고 각 라운드에 사용되는 키는 48비트이므로 56비트를 48비트로 만드는 축약 전치를 수행하게 된다.
하지만 최근 컴퓨터의 처리 능력이 향상됨에 따라 56비트 DES가 22시간 만에 깨져 키 길이에 있어서 64비트 이하의 알고리즘에 대한 불안감이 증대되었다. 그래서 DES 알고리즘 자체는 변형시키지 않고, DES의 안전성을 증대시키기 위해 서로 다른 2개의 키로 2번 암호화를 수행하는 2중 DES를 제안하였다.
2중 DES의 경우에는 서로 달느 2개으 키 즉, 112비트 키가 적용되어졌기 때문에 이 경우 공격자가 키를 알아내기 위해 모든 가능한 키를 시도해 보기 위해서는 2112번의 작업이 필요하다고 생각되지만 실제로는 그렇지 않다.
한쪽으로는 암호화를 수행하고 다른 한쪽으로는 복호화를 수행하여 결과를 서로 비교하여 키를 찾을 수 있기 때문에 실제로는 263번의 작업이 소요되어 단일 DES에 비해 크게 증대되지 못했다.
이와 같은 공격을 중간충돌공격이라고 하는데 이런 공격을 방지하기 위한 방안으로 3중 DES를 제안하고 있다.
3중 DES의 경우에는 112비트의 서로 다른 2개의 키를 사용하여 암호-복호-암호 또는 복호-암호-복호의 과정이 적용되어 한층 보안성을 강화해 주고 있기 때문에 이 방법을 현재 사용하고 있으나, 현재는 AES(Advanced Encryption Standard)가 새로운 표준으로 정해져 사용되고 있다.
그림 12-10은 3중 DES의 암호화와 복호화 과정을 그림 12-11은 이를 좀 더 친숙한 이미로 표현하여 보여주고 있다.
DES에는 실제 어떤 방법으로 운용 되느냐에 따라 ECB(Electronic Codebook Mode) 모드, CBC(Cipher Block Chaining Mode) 모드, CFB(Cipher Feedback Mode) 모드, OFB(Ouput Feedback Mode) 모드 4가지의 운영모드가 있다.

ECB 모드

ECB 모드는 DES 암호 방식의 사용 방식 중 가장 간단한 방식으로, 평문을 64비트씩 나누어 암호화 하는 방식이다. 평문을 64비트씩 나눌 때 마지막 블록이 64비트가 되지 않을 때는 임의의 약속된 비트 모양을 패딩하게 된다.
이 방식은 동일한 평문 블록 모양에 따라 항상 동일한 암호문이 출력되므로 암호 해독자들의 해독 가능성을 높게 만든다. 즉 문서의 종류에 따라 동일한 문서 모양을 갖고 있으므로 암호문 단독 공격의 가능성을 높게 해준다.

CBC 모드

CBC 모드는 출력 암호문이 다음 평문 블록에 영향을 미치게 하여 각 암호문 블록이 전단의 암호문의 영향을 받도록 만든 방식으로 ECB에서 발생하는 동일한 평문에 의한 동일한 암호문이 발생하지 않도록 구성한 동작 모드이다.
CBC 모드 동작은 그림 12-12와 같이 처음 입력된 평문 블록 M1은 초기 벡터 IV0와 XOR 되어 DES 암호기에 입력된다.
암호기로부터 출력된 암호문은 다시 다음 단 평문 블록 M2와 XOR 되어 DES 암호기에 입력된다.
복호화는 이 반대로 C1을 DES 복호기에 입력으로 넣고 나온 결과와 초기 벡터 IV0와 XOR하여 평문 블록 M1을 얻게 된다.
이 작업을 반복하므로 모든 평문 블록을 얻을 수 있게 된다.
CBC 방식의 특징은 현 단계에서 생성되는 암호문이 그 다음으로 생성되는 암호문 블럭에 영향을 미치기 때문에 특정 암호문 블럭이 전달되는 과정에서 발생되는 채널상의 잡음에 의한 오류는 해당 암호문 뿐만 아니라 그 다음 암호문에도 그 효과가 연장된다.

CFB 모드

CFB 방식도 CBC 방식과 마찬가지로 입력으로 들어가는 평문 블록이 동일한 경우 동일한 암호문이 나타나지 않도록 앞 단의 암호문이 다음 단의 평문을 암호화 하는데 사용하도록 구성하는 방식이다.
CBC 방식과 비슷하지만 암호문이 DES 암호기의 입력으로 사용된다는 점이 다르다. 다시 말해 CBC 방식에선 앞 단의 암호문과 평문 블록이 XOR 되어 DES 암호기에 입력으로 들어가지만 CFB에서는 DES 암호기를 거쳐 나온 암호문과 평문 블록을 XOR 하여 나온 결과가 암호문으로 사용되고, 이 암호문이 다음 단계의 DES 암호기에 입력으로 들어가게 된다.
CFB 방식도 CBC 방식과 마찬가지로 한 비트의 에러가 평문 블럭 내에 있으면 이 비트에 의해 다음 단계의 암호문에 영향을 미치게 된다. 또한 전송 중간에 에러가 발생한 경우에도 복호화 과정에서도 문제가 될 수 있다.

OFB 모드

OFB 방식은 CFB 방식과 마찬가지로 DES를 이용한 알고리즘에 의해 생성되는 일종의 키 수열과 n비트 단위의 평문이 XOR 되어 암호화가 이루어진다.
n비트 문자의 암호화에 스트림 암호가 적용된다는 측면에서는 CFB 방식과 동일하지만, 키 수열은 평문과 무관하게 생성되기 떄문에 현재 생성된 암호문이 그 다음 암호화에는 영향을 미치지 않는다는 차이점을 가지고 있다.
OFB 방식은 키 수열의 생성에 있어서 이전에 생성되었던 암호문이 이용되고 있지 않기 때문에 채널상의 잡음에 의한 다른 암호문으로의 오류의 파급효과가 발생되지 않고 단지 해당 암호문만이 영향을 받게 된다.
즉 OFB 방식 동작은 평문 블럭이 동일하면 암호문이 같아지만 ECB 방식의 단점과 오류 전파가 발생하는 CBC 방식과 CFB 방식을 개선한 동작 모드이다.

공개키 암호 알고리즘

앞서 살펴본 암호화 방식은 암호화와 복호화를 위해 하나의 키만을 사용하는 관용 암호 방식들인데, 이 관용 암호 방식은 비밀통신을 하고자 하는 사람이 적을 경우에는 별 문제가 없지만, 참가하는 사람이 늘어나면 늘어날수록 키의 생성과 분배에 어려움이 따르기 때문에 문제가 된다.
n명이 비밀통신을 하기 위해 필요한 키의 개수는 n(n+1)/2n(n+1)/2로 n이 증가할수록 기하급수적으로 키의 개수가 증가하게 된다.
이런 문제를 해결하기 위한 방안으로 공개키 암호방식이 제안되었다.
공개키 암호방식은 암호화와 복호화를 위해 사용하는 키가 서로 달라서 비대칭 암호방식(Asymmetric Cryptosystem)으로도 부르는데 암호화와 동시에 인증(Authentication) 서비스를 제공하는 디지털 서명이 가능하다는 장점이 있다.
공개키 암호 방식은 합성수의 소인수 분해가 어렵다는 점을 이용하거나, 지수함수의 역인 이산대수의 해를 구하는 것이 힘든 이산대수 문제, 배낭(Knapsack) 문제 등을 이용하고 있다.
그러나 이들 방식은 연산에 소요되는 계산량과 수행 식나이 암호강도와 비례하여 요구된다는 단점을 갖고 있다.
공개키 방식에서는 암호화와 복호화를 위해 두 개의 서로 달느 키를 사용하는데, 비밀 통신을 할 경우 암호화 키는 공개하고 복호화 키는 비밀로 하게 된다.
따라서 불특정 다수 n명이 비밀통신을 하기 위해서는 필요한 키 개수가 n에 비례하여 증가하기 때문에 n의 제곱에 비례하여 증가하는 관용 암호 방식에 비해 키 생성이나 키 관리가 간단하다. 그림 12-13은 이런 공개키 암호화 과정을 간단히 보여준다.

RSA 암호방식

RSA 암호화 방식은 1978년에 MIT의 로널드 라이베스트(Ron Rivest), 아디 샤미르(Adi Shamir), 래너드 애들먼(Leonard Adleman) 세 사람의 연구에 의해 체계화된 것으로 이 사람들의 앞 글자를 따서 만든 것이다.
이 RSA 알고리즘은 1983년 MIT에 의해 미국에 특허로 등록되었다가 2000년 9월에 그 특허가 만료되었다.
이것은 매우 큰 정수의 소인수 분해가 어렵다는 것을 이용한 것으로 백 자리보다 큰 2개의 p, q를 선택하여 n=pqn = p \cdot q를 계산하게 된다.
이때 p와 q를 아는 사람은 n을 계산하는 것이 쉽지만, n만 알고 있는 사람은 n으로부터 p, q를 알아내는 것이 힘든 소인수 분해의 어려움을 이용하는 것이다.
RSA에서 공개키 Ke, 비밀키 Kd를 계산하는 절차는 다음과 같다.
1.
2개의 큰 소수 p와 q를 생성하여 n=pqn = p \cdot q를 계산한다.
2.
Euler 함수값 φ(n)=(p1)(q1)\varphi(n) = (p-1) \cdot (q-1)과 서로소가 되는 Ke를 계산한다.
3.
φ(n)\varphi(n)과 Ke로부터 유클리드를 사용하여 KeKdKe \cdot Kdmodφ(n)\mod \varphi(n)으로 되는 1이 되는 Kd를 계산한다.
4.
n, Ke는 공개하고 p, q, Kd는 비밀로 유지한다.
암호화 과정은 다음과 같다. 평문 M을 공개키 Ke를 사용하여 MKeM^{Ke}를 계산한 다음 modn\mod n을 구하면 암호문 C를 구할 수 있다.
CMKe(modn)C \equiv M^{Ke}(\mod n)
복호화 과정은 암호문 C를 비밀키 Kd를 이용하여 CKdC^{Kd}한 다음 modn\mod n을 하면 다시 평문을 구할 수 있게 된다.
CKd(MKe)Kd=Mtφ(n)+1=Mtφ(n)MM(modn)C^{Kd} \equiv (M^{Ke})^{Kd} = M^{t \varphi(n)+1} = M^{t \varphi(n)}M \cdot M(\mod n)
여기서 t는 KeKd1(modφ(n))Ke \cdot Kd \equiv 1 (\mod \varphi(n))에서 유도되는 KeKd=tφ(n)+1Ke \cdot Kd = t \varphi(n) + 1을 만족하는 정수이다.
공개키와 비밀키를 생성하는 과정을 예를 들어 설명하면
우선 p=11,q=3p = 11, q = 3이라 하면 pqp \cdot q인 33을 공개하고
φ(33)=(111)(31)=20\varphi(33) = (11-1)(3-1)=20과 서로소인 정수 중에서 임의로 Ke=3Ke = 3을 선택하여 공개한다.
그리고 KeKd1modφ(n)Ke \cdot Kd \equiv 1 \mod \varphi(n)을 계산하면 371(mod20)3 \cdot 7 \equiv 1(\mod 20)이므로 Kd=7Kd = 7이다.
이때 비밀키는 p=11,q=3,Kd=7p = 11, q = 3, Kd = 7이며 공개키는 n=33n = 33Ke=3Ke = 3이다.
어떤 가입자가 자신의 공개키 n=33n = 33Ke=3Ke = 3을 마치 전화번호부에서 찾듯이 찾아내어 평문 M=5M = 5를 암호화 한다면 암호문은 C5312526(mod33)C \equiv 53 \equiv 125 \equiv 26(\mod 33)이 된다.
복호화는 수신자가 암호문 C=26C = 26을 받았다면 수신자는 자신만의 비밀키 Kd=7Kd = 7을 이용하여 267을 mod 33에서 계산하여 평문 M=5M = 5을 얻을 수 있다.
위에서는 예를 들어 설명하였다. 하지만 공개키 Ke와 n을 가지고 비밀키를 구할 수 있다면 RSA는 쉽게 해독된다. 왜냐하면 n으로부터 φ(n)\varphi(n)을 구한다면 유클리드 알고리즘을 사용하여 비밀키 Kd를 쉽게 계산할 수 있으므로 전체적인 암호화 강도는 φ(n)\varphi(n)의 계산에 달려 있는데 n을 소인수 분해할 수 있다면 φ(n)\varphi(n)은 자동으로 계산되기 때문이다.
하지만 n의 소인수 분해를 모르고 φ(n)\varphi(n)을 구하는 방법은 알려지지 않고 있다. 그리고 보다 안전한 RSA 공개키 암호 시스템을 위하여 p와 q를 선택하는 조건이 부가적으로 필요하다.
소수 p와 q는 다음 조건을 만족해야 한다.
p-1과 q-1은 거의 같은 크기이다.
p-1과 q-1은 큰 소인수를 갖는다.
p-1과 q-1의 최대공약수는 작은 수이다.
그림 12-14는 이런 RSA 알고리즘을 이용하여 암호화 통신의 동작 원리를 보여주고 있다.

미니강의| 유클리드 호제법(Euclid Algorithm)

유클리드 알고리즘은 어떠한 두 자연수가 주어질 떄 그들의 최대공약수를 구할 수 있다. 입력한 두 수 중에서 큰 수를 작은 수로 나눈 나머지를 구해서 나머지가 0이면 작은 수가 최대 공약수이고, 그렇지 않으면 반복해서 나머지가 0이 될 때까지 나누는 방법이다.
식으로 나타내면 f(x)와 g(x)의 최대 공약수는 f(x)를 g(x)로 나누어 그 나머지와 g(x)의 최대 공약수와 같다. 즉 f(x)=g(x)Q(x)+R(x)f(x) = g(x)Q(x) + R(x)에서 g(x)와 R(x)의 최대 공약수는 f(x)와 g(x)의 최대 공약수와 같다.

암호 관리

암호 관리란 암호화에 필요한 알고리즘을 어디서 수행하며 여기에 사용되는 키를 어떻게 분배할 것인지에 대한 문제를 다루는 것이다.

암호화 장치의 위치

암호화를 위한 도구를 어디에 위치해야 할 것인지를 정하는 것이 필요한데, 여러 방안이 있겠지만 여기서는 링크 암호화와 종단간 암호화 두 가지로 구분하여 살펴보겠다.
링크 암호화의 경우 모든 링크 각각의 끝에 암호화 장치를 설치하여 모든 트래픽에 대해 보안을 강구하는 방법이다.
이와 같은 방법은 네트워크 규모가 크면 클수록 암호화 장치가 더 많이 필요하게 된다. 그래도 네트워크를 통해 보내려고 하는 사람과 받는 사람의 쌍보다는 암호화 장치의 수가 적다.
이렇게 하면 링크를 통해 메시지가 나가기 위해서 메시지가 암호화되기 때문에 링크를 통해 전달되는 메시지에 대한 보안을 유지할 수가 있다.
하지만 이와 같은 방법에도 단점은 존재한다. 링크의 시작 위치에서 메시지에 대한 암호화가 필요하고, 링크의 끝에서 다시 메시지에 대한 복호화가 되야 한다. 이렇게 하면 네트워크가 큰 경우에는 지나가는 경로 상에 많은 암호화 장치들이 있는데 이들 장치들을 거칠 때마다 복호화 및 암호화를 수행해야 하기 때문에 소요되는 시간이 커지게 된다.
그리고 네트워크 노드 중간에 존재하는 네트워크 장치에서는 처리해야 할 트래픽 양이 많기 때문에 이들 트래픽에 대한 처리를 위해 많은 부하가 갈리게 된다.
종단간 암호화의 경우 암호화가 양 끝단의 호스트에서 이루어진다. 송신 호스트가 데이터를 암호화해서 전송하면 이 데이터는 중간에 어떤 노드에서도 다시 암호화 과정을 거치지 않고 최종 목적지까지 전송된다.
하지만 암호화는 패킷 전체에 대해서 수해오디는 것이 아니라 패킷의 헤더를 제외한 나머지 부분에 대해서만 암호화를 수행하게 된다.
이렇게 하므로 인해 사용자 데이터에 대해서는 보안이 유지되지만, 이들 패킷의 흐름에 대한 정보는 보호받지 못하게 된다.

키 관리 및 분배

암호에 의해 보호되는 정보의 보안은 직접적으로 키에 대한 보호에 의존하기 때문에 키 관리 및 키 분배는 암호에 중요한 요소이다.
여기서 말하는 키 관리는 키 생성 및 보관을 어떻게 할 것인지를 말하는 것이고, 키 분배라는 것은 비밀 통신을 원하는 두 사람 사이에 비밀키를 사전에 분배하는 행위를 말한다.
공개키 암호방식은 관용키 암호방식에 비해 암호화 시간이 매우 오래 걸리므로 실제의 데이터를 공개키 암호방식으로 암호화하여 전송하기는 어려운 일이다.
그러나 관용키 암호방식으로 암호화를 하기 위해서는 통신하고 있는 서로가 둘만이 알고 있는 비밀키를 가지고 있어야 한다는 전제조건이 필요하다.
이것을 만족시키기 위하여 관용키 암호방식으로 실제 데이터를 암호화 하지만, 이를 위한 관용키는 공개키 방식으로 서로 교환하게 한다.

관용키(또는 대칭형) 암호방식의 키 분배

관용키 암호방식에서 비밀 통신을 위해서는 쌍방이 같은 비밀키를 갖고 있어야 하고 다른 사람은 이 키에 접근할 수 없어야 한다. 또한 사용자가 n명일 때 n개의 키를 분배해야 한다. 이렇게 많은 키를 분배하다 보면 키의 노출 가능성도 그만큼 커지게 된다.
그러므로 관용키 암호방식에서 키 분배 방법으로는 여러 가지 다양한 방법들이 있을 수 있다.
비밀통신을 하려는 두 사람 중에 어느 한쪽이 키를 생성하여 물리적으로 직접 전달하는 방법
비밀통신을 하려는 두 사람 사이가 아니라 제 3자가 키를 생성하여 물리적으로 직접 전달하는 방법
둘 사이에 이전에 비밀통신을 위해 사용한 비밀키가 있는 경우에, 이 비밀키로 새로 생성한 비밀키를 암호화하여 전달하는 방법
비밀통신을 하려는 두 사람이 제 3자와 암호화된 링크를 갖고 있는 경우에 제 3자가 암호화된 링크를 통해서 두 사람에게 비밀키를 전달하는 방법

공개키 암호방식의 키 분배

공개키 암호방식은 암호화와 복호화를 위해 서로 다른 두 개의 키를 사용하며, 이둘 중 비밀키는 자신이 보관하고 공개키는 공개하기 때문에 관용키 암호 방식에서처럼 사전에 비밀키를 분배해야 하는 키 분배 문제가 없다.
그리고 사용자가 많아져도 사용자들이 사용하기 위한 키의 수는 관용 키에서처럼 사용자가 n명일 때 n개의 키가 필요하지만, 공개키 방식에서는 2n개만이 필요하다.
그림 12-15는 왜 공개키 암호방식에서 키가 2n개만 필요하고 키의 사전 분배가 필요 없는 지 보여준다.
그러나 공개키 암호 방식에서 각 사용자가 다른 사용자의 공개키들을 관리해야 하는데 네트워크에 등록된 모든 사용자에 대해 관리하는 것이 현실적으로 쉽지 않기 때문에 사용자 개인이 단독으로 사용하기는 어렵다.
이를 위해 모든 키들을 관리해주는 믿을 수 있는 제3의 기관이 필요한데, 바로 키 분배 센터(Key Distribution Center)가 필요하다. 키 분배 센터는 키를 암호화하여 요청한 사용자들에게 나누어주게 된다.
키 분배 센터는 전체 보안체제에 큰 영향을 미치기 때문에 안전성을 보장받아야 하고 또한 신뢰할 수 있는 기관이어야 한다.
또한 공개키 알고리즘은 일반적으로 관용키 알고리즘에 비해 훨씬 느리므로 실제 사용에 있어서는 송신자가 보내고자 하는 메시지를 비밀키를 사용하여 관용키 암호 방식으로 암호화하고 암호화된 메시지를 다시 수신자의 공개키로 암호화하여 암호문과 암호화된 비밀키를 보낸다.
그러면 수신자는 자신의 비밀키를 사용하여 암호문을 복호화하고 또한 암호화된 비밀키를 다시 복호화하여 이 비밀키로 암호화된 메시지를 복호화하는 방법으로 해결하고 있다.

디지털 서명

디지털 서명은 기존의 종이 문서에 하던 서명을 전자적 형태로 저장된 메시지에 서명한느 방법이다. 서명된 메시지는 공개된 증명 알고리즘을 사용하여 확인할 수 있으며, 따라서 어떠한 사람도 디지털 서명을 확인할 수 있다.
디지털 서명은 서명 알고리즘(Signing Algorithm)과 증명 알고리즘(Verification Algorithm)으로 구성된다.
송신자는 보내고자 하는 메시지에 서명 알고리즘을 이용하여 메시지에 서명할 수 있으며, 이 서명된 메시지는 공개된 증명 알고리즘을 사용하여 상대바으이 서명을 증명할 수도 있다.
DSS(Digital Signature Standard)는 ElGamal 서명 기법의 변형으로 1994년에 표준으로 채택되었다.
송신자가 어떤 메시지를 전송하고도 송신하지 않았다고 주장할 때 수신측은 이를 증명할 방법이 없다. 이런 경우를 막기 위하여 디지털 서명(Digital Signature)을 사용한다.
즉 송신자 A가 어떤 메시지를 보냈다는 것을 확인하기 위해서는 A의 비밀키를 암호화함으로써 확인할 수 있다. 왜냐면 A 이외의 다른 사람은 A의 비밀키를 갖고 있지 않기 때문에 A 이외에 그 누구도 그 암호화된 메시지를 만들 수는 없는 것이다.
즉 디지털 서명은 송신자에 대한 인증을 해주므로 부인 불가(Nonrepudiation) 문제를 해결한다. 그림 12-16은 이러한 디지털 서명에 의한 인증을 보여주고 있다.
한편 송수신측의 암호화 처리의 시간을 줄이기 위해 전체 평문 메시지를 대상으로 디지털 서명을 하지 않고 전송할 메시지의 MD(Message Digest)를 만들고, 이 MD만을 대상으로 디지털 서명을 한 후에 이 메시지를 평문과 같이 전송한다.
이렇게 MD를 이용하면 송수신측에서 암호화 시간이 단출될 뿐만 아니라 디지털 서명 및 데이터의 무결성(Integrity)도 검증할 수 있게 된다.
그림 12-17은 공개 키를 사용하여 메시지를 암호화와 디지털 서명을 동시에 하는 과정을 보여주고 있다.
디지털 서명을 위해서 A는 우선 자신의 비밀키로 암호화하고, 다른 제 3자가 메시지를 중간에 보지 못하도록 하기 위해 B의 공개키로 다시 암호화 한다.
수신측에서는 송신측의 역과정을 통해 복호화를 수행하게 되는데, 우선 수신한 메시지를 B의 비밀키로 복호화하고 다시 A의 공개키로 복호화하면 A가 보낸 메시지를 얻게 된다.
위에서 살펴보았듯이 디지털 서명이 유효하기 위해서는 다음의 기본적인 요구사항들을 만족해야 한다.
위조 불가(Unforgeable)
합법적인 서명자만이 디지털 서명을 생성할 수 있어야 한다.
서명자 인증(User Authentication)
디지털 서명의 서명자를 불특정 다수가 검증할 수 있어야 한다.
부인 방지(Non-Repudiation)
서명자는 서명행위 이후에 서명한 사실을 부인할 수 없어야 한다.
변경 불가(Unalterable)
서명한 문서의 내용을 변경할 수 없어야 한다.
재사용 불가(Not Reusable)
전자문서의 서명을 다른 전자문서의 서명으로 사용할 수 없어야 한다.
디지털 서명은 크게 두 부분으로 설명된다. 즉 비암호식 인증방법과 암호식 인증방법으로 구분된다.
비암호식 인증은 신청 시마다 특정한 소프트웨어 플랫폼에 연결되는 신원확인 및 인증 메커니즘에 의해서만 가능하다.
암호식 인증은 적절히 관리만 된다면 복수 적용을 위하여 이용될 수 있으며 인증 및 암호화 서비스 모두를 포괄할 수 있다.
두 가지의 기술을 결합시키면 고도의 안전한 디지털 서명을 수행할 수가 있게 된다.

인터넷 보안

웹 보안(Web Security)

웹 보안은 다른 일반 네트워크 혹은 인터넷 보안과 유사하다. 웹 보안은 오히려 암호화 시스템과 좀 더 가깝다고도 말할 수 있다. 웹 보안은 크게 두 가지로 구분해 볼 수 있다.
첫째, 웹 서버 시스템에서의 보안과 사용자 인증 드으이 기법들을 이야기할 수 있다.
웹은 기본적으로 익명성을 보장하면서도 CGI(Common Gateway Interface)를 이용해서 사용자가 호스트 측의 프로그램을 실행하도록 요구할 수 있게 되어 있다.
이런 경우 서버측에서의 보안을 고려할 필요가 있게 된다.
둘째, 바로 일반 네트워크 암호화 시스템과 관련해서 웹에 적용한 네트워크 암호화 프로토콜을 이야기할 수 있다.
잘 알려진 네트워크 암호화 알고리즘 혹은 프로토콜인 공개키 암호화 방식들인 DES, RSA, Beberos 등을 웹 프로토콜에 적용한 S-HTTP, SSL, Shen 등의 프로토콜 등이 있다.

웹 서버 보안

현재 웹은 기본적으로 모든 사람에게 개방된 시스템을 지향한다. 서버에 접근하는 사용자는 무명으로 접근하며 서버측에서는 접근한 사용자를 확인할 길이 없다. 모든 기술적 사항도 공개되어 있다.
그러므로 네트워크 상에서 웹 서버는 보안상 중요한 허점이 될 수도 있다. 다만 아직 웹 서버가 보안 허점의 중심적 요소는 아니지만, 웹 서버측의 환경설정 등을 통해 보안 요소를 강화하는 것이 반드시 필요하다.

웹 보안 프로토콜

1.
S-HTTP(Secure Hypertext Transfer Protocol)
S-HTTP는 ETI(Enterprize Intergration Technologies)에서 제안한 HTTP의 보안 확장판이다. 프로토콜은 HTTP 세션으로 주고받는 자료를 암호화하고 디지털 서명을 해서 주고 받는 메커니즘이다.
메시지 포맷은 PKCS-7, PEM, PGP 등의 포맷을 사용하고 암호화 방식은 RSA, RC2, MD4 등의 여러 가지 방식을 이용할 수 있도록 설계되어 있다.
S-HTTP는 HTTP를 캡슐화 하면서도 HTTP의 형식을 그대로 따르고 있다. 즉 HTTP의 요청(Request)과 응답(Response) 구조를 그대로 이용하고 있다. 물론 URL의 프로토콜 가운데 shttp라는 앵커가 새로이 정의되었다.
즉 shttp://.../ 형태의 URL이 새롭게 제안되었다. 이런 s-http는 모자익에 시범적으로 구현되었다. 암호화와 관련된 정보가 요청(Request) 헤더에 따라서 전달되고 상대편과 암호화된 정보를 주고 받는다.
S-HTTP의 장점은 다양한 암호화 메커니즘을 광범위하게 수용할 수 있다는 점이며, 이러한 인터넷 전자상거래나 금융 계정에 대한 온라인 액세스와 같은 민감한 거래의 경우를 위한 S-HTTP는 Eric Rescorla와 Allan M.Schiffman에 의해 처음 개발되고 1999년 RFC 2660으로 명명되었다.
2.
SSL(Secure Socket Layer)
SSL은 테리사(Terrisa)가 개발해 Netscape사가 Netscape과 NetSite의 암호화 중심 프로토콜로 사용하였던 방식이다.
SSL은 서버와 클라이언트 간에 인증으로 RSA 방식과 X.509를 사용하고 실제 암호화된 정보는 새로운 암호화 소켓 채널을 통해 전송하는 방식이다.
SSL은 특히 네트워크 레이어의 암호화 방식이기 때문에 HTTP 뿐만 아니라 NNTP, FTP 등에도 사용할 수 있다.
기본적으로 Authentication, Encryption, Integrity를 보장하며 TLS(Transport Layer Security)라는 이름으로 표준화 되었다.
백업 종류
S-HTTP
SSL
보호 범위
웹에만 적용
Telnet, FTP 등 응용 프로토콜을 지원
인증 방식
각각 인증서가 필요하다.
클라이언트의 인증이 선택적이다.
인증서
클라이언트에서 인증서를 보낼 수 있다.
오직 서버만이 인증할 수 있다.
암호화와 인증 단위
메시지 단위
서비스 단위
연결주소
shttp:// 형태
https:// 형태

방화벽(Firewall)

방화벽은 네트워크간의 인가되지 않은 접근을 막아주는 역할을 한다. 즉 인터넷으로부터 내부 네트워크를 보고하는 것이다.
인터넷이 보편화되기 전에는 네트워크를 운영하는 기관들은 외부의 네트워크와 단절된 네트워크를 자체적으로 구축하여 운영하였다.
따라서 네트워크를 구축 및 운영하는 경우에는 외부 네트워크로부터의 칩임을 방지할 수는 있지만 내부 네트워크 사용자들이 인터넷과 같은 외부 네트워크를 사용할 수도 없었다.
하지만 최근에는 인터넷 등과 같은 외부 네트워크를 통한 정보 수집, 교환 및 정보 서비스 등이 중요시 되었으며, 많은 기관이나 기업들이 이러한 인터넷과 연동하는 네트워크를 운영하고 있다.
하지만 이러한 외부 네트워크와 연동을 하는 경우 가장 문제가 되는 것은 외부의 침입으로부터 내부 네트워크를 안전하게 보호할 수 있느냐이다.
즉 이런 경우 내부 네트워크에 대해 불순한 의도를 가진 외부로부터의 접근을 효과적으로 막을 수 있는 환경 구축을 위한 방안이 바로 방화벽을 설치하는 것이다. 이러한 방화벽에는 다음과 같은 종류가 있다.
배스천 호스트(Bastion Host)
이중 홈 게이트웨이(Dual-Homed Gateway)
스크리닝 라우터(Screening Router)
스크린된 호스트 게이트웨이(Screened Host Gateway)
스크린된 서브네트 게이트웨이(Screened Subnetwork Gateway)
프락시 서버/응용 게이트웨이

배스천 호스트(Bastion Host)

배스천 호스트는 인터넷 사용자가 내부 네트워크로의 액세스를 원할 경우 우선 배스천 호스트를 통과하여야만 내부 네트워크를 액세스하여 자원 및 정보를 사용할 수 있도록 하는 것이다.
해커 및 불법 침입자가 호스트에 있는 중요한 정보를 악용하여 내부 네트워크로 접근하는 것을 방지하기 위해서는 배스천 호스트 내에 존재하는 모든 사용자 계정을 지워야 하며 중요하지 않은 파일이나 명령 및 유틸리티, IP Forwarding 파일 그리고 라우팅 정보 등을 삭제해야 한다.
배스천 호스트는 내부 네트워크로의 접근에 대한 기록, 감시 및 추적을 위한 기록 및 모니터링 기능을 가지고 있어야만 한다.

이중 홈 게이트웨이(Dual-Homed Gateway)

이중 홈 게이트웨이는 두 개의 네트워크 인터페이스를 가진 배스천 호스트를 말하며, 하나의 네트워크 인터페이스는 인터넷 등 외부 네트워크에 연결되며, 다른 하나의 네트워크 인터페이스는 보호하고자 하는 내부 네트워크에 연결되어 양 네트워크간의 직접적인 접근을 허용하지 않는 방식을 말한다.
라우팅 기능이 없는 이중 홈 게이트웨이를 이용하여 인터넷 혹은 내부 네트워크의 정당한 사용자들이 응용 서비스를 제공받는 방법은 두 가지로 구분되는데,
첫 번째 방법은 이중 홈 게이트웨이 상에서 실행되며 서비스를 제공하는 프락시 서버를 사용하는 것이고
두 번째 방법은 응용 서비스를 제공해 주는 이중 홈 게이트웨이에 직접 로그인한 다음 다시 내부 네트워크로 접근하는 것인데, 이 경우 강력한 인증 방법이 게이트웨이에 구현되어야 한다.

스크리닝 라우터(Screening Router)

스크리닝 라우터는 OSI 참조 모델의 3계층과 4계층에서 동작되기 때문에 3계층과 4계층에서 동작하는 프로토콜인 IP, TCP 혹은 UDP의 헤더에 포함된 내용을 분석해서 동작한다.
스크리닝 라우터란 네트워크에서 사용하는 통신 프로토콜의 형태, 발신지 주소와 목적지 주소, 통신 프로토콜의 제어 필드 그리고 통신 시 사용하는 포트 번호를 분석해서, 내부 네트워크에서 외부 네트워크로 나가는 패킷 트래픽을 허가 및 거절하거나 혹은 외부 네트워크에서 내부 네트워크로 진입하는 패킷 트래픽의 진입 허가 및 거절을 행하는 라우터를 말한다.
이러한 진입 허가 혹은 거절 결정은 패킷 필터 규칙에 따른 라우팅 테이블에 의해 결정된다. 일반 패킷과 특수한 프로토콜에 입각한 포트로 전송되는 패킷을 구별하는 능력 때문에 패킷 필터 라우터라고도 한다.

스크린된 호스트 게이트웨이(Screened Host Gateway)

스크린된 호스트 게이트웨이는 이중 홈 게이트웨이와 스크리닝 라우터를 혼합하여 사용한 방화벽 시스템이다.
방화벽 시스템의 구성 방법은 인터넷과 배스천 호스트 사이에 스크리닝 라우터를 접속하고, 스크리닝 라우터와 내부 네트워크 사이에서 내부 네트워크 상에 배스천 호스트를 접속한다.
인터넷과 같은 외부 네트워크로부터 내부 네트워크로 들어오는 패킷 트래픽을 스크리닝 라우터에서 패킷 필터 규칙에 의해 1차로 방어하고, 스크리닝 라우터를 통과한 트래픽은 모두 프락시 서버를 구동하는 배스천 호스트에서 입력되는 트래픽을 점검 받으며, 스크리닝 라우터 혹은 배스천 호스트를 통과하지 못한 모든 패킷 트래픽은 거절된다.

스크린된 서브네트 게이트웨이

스크린 서브네트는 일명 DMZ(DeMilitarized Zone)의 역할을 외부 네트워크와 내부 네트워크 사이에 두는 것으로 완충지역 개념의 서브네트를 운영하는 것이다.
여기에 스크린 라우터를 이용하여 이 완충지역을 곧바로 통과 못하게 하지만, 외부 네트워크와 내부 네트워크에서도 이 스크린 서브네크에 접근할 수는 있다.
스크리닝 라우터는 인터넷과 스크린된 서브네트 그리고 내부 네트워크와 스크린된 서브네트 사이에 각각 놓이며 입출력 되는 패킷 트래픽을 패킷 필터 규칙을 이용하여 필터링하게 되며, 스크린된 서브네트에 설치된 배스천 호스트는 프락시 서버를 이용하여 명확히 진입이 허용되지 않은 모든 트래픽을 거절하는 기능을 수행한다.
이러한 구성에서 스크린된 서브네트에 대한 접근은 배스천 호스트를 통해서만 가능하기 떄문에 침입자가 스크린된 서브네트를 통과하는 것은 거의 불가능하다.

프락시 서버/응용 게이트웨이

프락시 서버는 방화벽 시스템 즉, 배스천 호스트 같은 시스템에서 구동되는 응용 소프트웨어를 말하는데 Store-and-Forward 트래픽 뿐만 아니라 대화형의 트래픽을 처리할 수 있으며, 사용자 응용 계층에서 트래픽을 분석할 수 있도록 프로그램 된다.
따라서 이것은 사용자 단계와 응용 프로토콜 단계에서 접근 제어를 제공할 수 있고, 응용 프로그램의 사용에 대한 기록을 유지하고 감시, 추적을 위해서도 사용될 수 있다.
응용 게이트웨이는 사용자 단계에서 들어오고 나가는 모든 트래픽에 대한 기록을 관리하고 제어할 수 있으며, 해커 및 불법 침입자를 방어하기 위해 강력한 인증 기법이 필요하다.
응용 게이트웨이는 사용되는 응용 서비스에 따라 각각 달느 소프트에ㅜ어를 구현하여 사용하기 때문에 고수준의 보안을 제공할 수 있다.