Dreaming Deve1oper

네트워크 보안 최종 본문

네트워크 보안

네트워크 보안 최종

주현테크 2021. 10. 21. 00:55

정보보호 (Information Security) 정의

  • 정보가 사용되는 모든 과정 (수집/가공/저장/검색/송신/수신) 중에서 정보의 훼손, 변조, 유출 등을 방지하게 위함.
  • 관리적, 기술적 수단 또는 그러한 수단으로 이루어지는 행위를 말한다.
  • 악의적인 사용자로부터 정보를 보호하는 것을 말한다.
  • 정보보호도 결국 사람이 행하는 일이기 때문에 완벽한 보호는 불가능하다.
  • 정보보호 시스템에는 정보보호 정보 보호 관리, 컴퓨터 및 데이터 보안, 네트워크 보안과 정보 보호 정책이 포함된다.

 

 

■ 정보 보호의 3원칙(기밀성, 무결성, 가용성)&목표

 

- 기밀성[Confidentiality]: 개인 또는 기밀 정보 혹은 데이터를 부정한 사용자(인가되지 않은 사용자/시스템/프로세스)가 이용하거나 볼 수 없도록 암호화해 어떤 정보인지 알 수 없도해야 한다.

 

▶적용기술 

암호화, 네트워크 트래픽 통제

 

▶위협요소 

Snooping, Sniffing: 데이터에 대한 비인가 접근 또는 탈취 

Traffic Analysis: 전송되는 네트워크 트래픽을 분석하여 정보를 수집

 

 프라이버시: 개인에 대한 정보의 수집, 저장하는 행위 및 정보의 공개 범위, 관리 주체 등을 통제하거나 영향을 미칠 수 있도록 하는 것

 


 

- 무결성[Integrity]: 네트워크를 통해 송/수신되는 정보의 내용이 불법적으로 생성 또는 변경되거나 삭제 되지 않도록 보호 되어야한다. 해쉬함수를 적용해 정보를 송신할 경우, 사용자가 전송한 데이터가 조금이라도 바뀌면 해당 해쉬함수가 변경됨으로써 리시버가 이를 감지해 악의적으로 누군가가 데이터를 변경한것으로 감지시켜 해당 데이터를 삭제시킨다.

 

 

적용기술

전자서명, 바이러스 백신, 해쉬함수

 

위협요소

변경: (Message) Modification: 불법적으로 메시지의 일부를 수정, 메시지 전송을 지연시키거나 순서를 바꾸어 전송

가장: Masquerading, Spoofing, Impersonation

재전송: Replaying

부인: Repudiation

 

※ 데이터 무결성: 제한적 의미로써 적절한 권한 규정, 상태에 따라서만 정보를 변경할 수 있음을 보장한다.

※ 시스템 무결성: 시스템이 정상 동작함을 보장한다. (의도했던 기능을 정상적으로 수행/고의나 사고로 인해 조작되지 않은 상태로 기능을 수행)

 


 

- 가용성[Availability]: 정상적인 사용자가 데이터/자원을 필요할 때 지체 없이 접근하여 사용 할 수 있어야 한다.

 

적용기술

백업, 결함허용시스템, 클러스터링

 

위협요소

Dos (Denial of Service): 시스템을 악의적으로 공격해 시스템의 리소스를 부족하게하여 사용하지 못하도록 함

DDoS: 악성코드를 삽입하여 감염시킨 좀비 PC를 활용하여 특정 시간대 공격 명령을 실행해 공격 대상 컴퓨터에 동시 접속요청을 함으로써 시스템을 마비시킴

 


 

- 인증성[Autentication]: 사용자가 위조된 사용자가 아닌 정상적인 사용자인지 확인하기 위한 방식이다.

 

 

 

 

정보의 가용성과 안전성, 보안성 측면에서의 정보보호란?

■ 정보의 활용과 정보의 통제 사이에서 균형을 유지하는 행위

- 정보의 활용: 사용 가능한 자원을 필요로 하는 사람들이 쉽게 얻을 수 있도록 제공하는 것

- 정보의 통제: 정보에 위협이 되는 요소들을 최소화 하는 것

 

■ C (Concidentiality) I (Integrity) A (Availability) Traid

- 예를 들어 우리가 집에 들어 갈 경우 도어락 비밀번호를 눌러 들어간다. 보통은 이렇게 한번의 인증을 통해 집으로 들어 갈 수 있도록 설정해둔다. 이후 두번 세번 또 다른 비밀번호를 입력한다거나 열쇠 혹은 지문인식을 통해 들어 갈 수 있도록 설정해 두지는 않는다. 너무 번거롭고 귀찮기 때문이다. 정보보호도 마찬가지이다. 모순일 수 있겠지만, 가용성은 보안에서 정말 중요하게 생각해야할 부분이다. 데이터를 사용하지 못하도록 막기만 하는 것은 좋은 것이 아니다. 안전하게 잘 사용 할 수 있도록 하는 것이 중요하다.

 

 

 

 

Insecure Communication

 

정보를 전달할때 누군가가 엿보거나, 엳듣고 해당 데이터를 변경해서 전달 할 수 있다.

해당 문제는 Insecure Channel(=Communication Channel)이 안전하지 않기 때문에 발생하는 문제이다.

이를 방지하기 위해서는 정보보호의 3원칙(기밀성/무결성/가용성)을 잘 지켜야한다.

 

※Communication Channel(사람의 음성, 인터넷 편지 등)

 

 

-Insecure Communication-

 

■통신채널(Insecure Communication)

유/무선 두가지 채널이 존재하며 두가지 모두 절대 안전한 채널은 아니다.

 

- 유선채널

대표적인 유선채널으로 전화선이 있다. 전신주에 올리가 전화선의 피복을 벗겨 해당 선에 신호를 들을 수 있는 전기를 연결하면, 간단하게 음성 채널을 엿들을 수 있다.

 

 

- 무선 채널

대표적인 무선채널으로 wi-fi가 있다. wi-fi는 2.4GHz 주파수 대역을 사용하는 비인가 대역으로 안전하지 않다. 우리가 가정집에서 사용하는 물건 중 2.4GHz 주파수 대역을 가진 대표적인 물건으로는 무선공유기, 전자레인지 등이 있다. 해당 대역을 사용하는 제품들이 하나의 장소에서 공존한다는 의미이다. 이는 물리적인 신호 개념에서 신호 간 간섭이 가능하고 이를 통해 충돌 또한 발생 가능하다. 비인가 대역이기에 해당 대역을 누구나 마음대로 사용할 수 있다. 다시말해, 누군가가 악의적인 목적을 가지고 주변에 동일한 주파수를 가지는 서비스 혹은 통신을 방해할 수 있다는 이야기이다.

 

※비인가 대역

누구든 2.4GHz, 5GHz 대역은 나라에게 허가를 받지 않고, 돈을 지불하지 않고 사용 가능한 채널을 의미한다. 대표적인 것으로 wi-fi, 블루투스 등이 있다.

 

▶ Jamming Signal (무선 방해신호)

- 드론을 통한 사생활 침해, 테러 등을 방지

 

 

 

■ Cryptographic Protocol Regulations (암호화 프로토콜 규정)

  • 메시지를 대상으로 전송해야 한다.
  • 오직 수신자/발신자만 메시지를 볼 수 있어야 한다.
  • 발신자의 신분을 증명할 수 있어야 한다.
  • 메시지의 정보가 중간에 변경, 추가, 삭제, 검출되지 않아야 한다. (발생시 해당 메시지 폐기)
  • 메시지의 송수신은 한차례만 이루어져야 한다.

 

 

■ Terminology (용어) → 매우 중요 앞으로 계속 나올 용어들

  • Plaintext [cleartext/평문]: 본래 형식의 메시지로 음성으로 전하는 정보를 의미.
  • Ciphertext [암호문]: 암호화된 메시지로 Plaintext가 특정한 메서드를 사용하여 암호화된 것.
  • Encryption [암호화]: 메시지의 정보를 숨기기 위함이며 Ciphertext를 변환하는 과정.
  • Cipher [암호]: 암호화를 수행하는데 사용하는 알고리즘으로 Encryption(암호화) Decryption(복호화) 사용하는데 필요. (Encryption↔Decryption)
  • Decryption [복호화]: 과정을 통해 Plaintext(평문)을 얻는 것.
  • Cryptograpgy : 메시지의 보안 기술.
  • Cryptanalysis [암호해독]: 암호화된 것을 깨고 분석하는 것.
  • Cryptology [암호학]: Cryptograpgy와 Cryptanalysis(암호해독)를 합친 것.

 

 

암호화와 복호화의 관계

 

암호화와 복호화의 관계 도식화

사용자가 생성한 평문 전송 > 전송하기 전에 암호화 거침 > 암호문 생성 > 생성된 암호문을 네트워크를 통해 목적지로 전송 > 목적지에 전달이 되면, 수신한 암호문을 복호화하여 본래의 평문으로 복원

 

 

 

추가 요구사항

Autentication [인증]

┗ Between communicating parties (상호신뢰)

┗ Third-party authentication (제3자의 인증)

 

Non-repundiation: 수신된 정보를 훼손한 것에 대한 부인 방지

┗ 비대칭키 암호화에 의해 차단됨

 

Integrity verification [무결성]: 내가 전송한 데이터가 중간과정에서 수정이나 변경과정없이 전달됐음을 증명

┗ Hash value를 동봉해 전달하면, 중간과정 중 조금이라도 데이터가 변경될 시 수신단에서 데이터의 무결성 검증 가능

 

Key distribution

┗ Secret Key, 대칭키 [source distribution]: Sender와 Reciever가 동일한 키를 가지고 있어야만 암호화된 것을 복호화 할 수 있으며 키가 안전하게 배포되지 않으면 무용지물임

┗ Public Key, 비대칭키 [reliable distribution]: 제3자의 기관을 통해 신뢰할 수 있는 배포가 이루어짐

 

※ 대칭키의 암호화가 강력하고 간단하지만 키 배포에 어려움에 있기 때문에 비대칭키 암호화는 대칭키 암호화의 단점을 해결하기 위해 만들어진 것이다.

 

 

 

 

대칭키 암호화 과정

 

- 암호화 과정 [ C=E(K, P) ]

Sender에서 평문을 생성 > 암호화 거침 > 암호문을 통해 키와 평문 생성 > 암호문 생성

 

- 복호화 과정 [ P=D(K, C) ]

암호화된 암호문을 복호화 > 복호화를 통해 키와 암호문 생성 > 평문 생성

 

 

- 양방향 통신방식

키(Key)가 1개 필요 

 

 

 

 

비대칭키 암호화 과정

sender에서 수신자의 public key를 통해 암호화 후 전송 > public key에 대응하는 private key로만 복호화가 가능 (수신자만 복호화가 가능하다) 

 

 

▶차이점

Public Key [대칭키]: 키 1가지 사용

Private Key [비대칭키]: 키를 최소 2가지 이상 사용

 

 

 

■ Security Objectives (정보보안의 목표)

  • Confidentiality [기밀성]
  • Integrity [무결성]
  • Availability [가용성]
  • Authenticity [인증성]
  • Non-repudiation [부인봉쇄]

 

 

■ Symmetric / Single key: sender와 reciever가 하나의 동일한 키를 가져야한다는 의미

  • sender가 암호화하여 보낸것을 Decryption(복호화) 가능.
  • 암호화 할 경우와 복호화를 진행할 경우 둘 다 Key가 필요하지만 동일하기에 하나의 키만 사용하는 것. 

 

 

Security Objectives (보안의 기본적인 목적)  

Confidentality [기밀성]: 메시지, 파일의 내용을 숨김. (암호화, 복호화와 연관↑) 나랑 통신하려고 의도되어 있는 사람만 메시지를 볼 수 있음.

└ Secret Key, public key encryption

 

Integrity [무결성]: 수정 및 변경된 내용을 감지.

└ Hash function

 

Availability [가용성]: 데이터의 존재 여부 숨김이 적음. 서비스의 fail을 유도. (도스, 디도스)

└ Secret Key, public key encryption

 

Authenticity [인증성]: 대칭키냐 비대칭키냐에 따라 인증을 처리.

└ Public Key encryption

 

Non-repudiation [부인방지] 

└ Public Key encryption

 

 

Cryptanalysis (암호해석)

■ 암호해석의 목적

- Break message

- Break key

- Break algorithm

 

※일반적으로 사용되는 Crypto algorithm은 오픈소스이다.

※정보를 Secure하게 보호하는 것은 Crypto algorithm에서 진행하는 것이 아닌 사용하는 Key의 기밀성, 안정성에 의해 이루어진다.

 

 

Taxonomy of Attacks (분류체계 공격)

  • Ciphertext-only attack: Attacker has ciphertext for messages encrypted with key (deduce keys and plaintext messages)
  • Known plaintext attack: Attacker additionally knows the plaintext of the messages (deduce keys or decryption algorithm)
  • Chosen plaintext attack: Attacker can obtain the ciphertext for selected plaintext messages (deduce keys or a decryption algorithm)
  • Chosen ciphertext attack: Attacker can obtain decrypted versions of select ciphertext (deduce keys decryption algorithm)

 

 

Breakable vs Practically breakable

  • Unconditionally secure: 암호를 해독할 수 없다. 암호문의 양이 암호 분석가가 평문을 얻을 수 없도록 한다.
  • Computationally secure: 최악의 경우에 시나리오를 기반으로 깨지지 않는 알고리즘.
  • Breakable: 모든 알고리즘은 이론적으로 깨진다. (OTP 제외/물리적은 sync를 통해 이루어지기 때문) 

사람이 만든 Secure syestem은 100% 안전할 수 없다.

단 데이터를 공격할 경우 연산하는 시간이 오래 걸리느냐 적게 걸리느냐가 중요한 것.

└ 연산할 때 100일이 걸렸고, Key change가 30일마다 이루어진다면, 공격은 실패한 것이고 결국 이는 Secure한 것.

 

 

 

 

■ Whay makes a good Cryptosystem?

훌륭한 암호 시스템은 알고리즘의 보안이 아닌, 키에 의존하는 보안 시스템이다.

 

 

 

Secret key Cryptosystem

■ 대칭키 암호화

Sender와 Reciever는 서로 Single Key를 공유한다.

Sender에서 암호화가 이루어지면, Reciever는 복호화를 진행한다. (암호화, 복호화 단계에서 동일한 키를 사용한다)

 

※ 대칭키 암호화에서 제일 중요한 것은 Secret Key

Secret Key를 어떤 방법으로 배포할 것인지가 가장 중요하다.

└ 하지만 서로 동일한 키를 가지고 있는 경우에만 암/복호화가 이루어지기 때문에 신뢰성을 갖는다. 키를 안전하게 배포할 수 있는 방법이 확보되지 않는다면 대칭키 암호화는 무용지물이다. 때문에 Secure Channel이 반드시 필요하다.

 

 

 

Secret Key Cryptosystem Vulnerabilites (대칭키 암호 시스템의 취약성)

암호화, Secure System은 인위적으로 만들어졌기 때문에 취약성은 반드시 존재한다.

해커들은 한번에 시스템을 뚫는 것이 아닌 지속적, 반복적으로 공격해 취약성을 뚫는 것이다.

└ 가장 많이 사용하는 방법 중 하나가 Shouler Attack(Shoulder Surffing)이다.

 

 

■ Passive Attacker [Eavesdropper]: 공격을하기 위한 전 단계인 트래픽을 모니터링하고 정보를 수집하는 단계.

└ Traffic Monitoring를 기반으로 한다.

 

- 키와 암호 시스템을 사용하여 메시지의 암호를 해독하여 공격한다.

- 전송중에 있는 암호문을 수집하거나, 수집한 암호문을 Reverse Engineering을 통해 평문화하여 키를 추론하고 추론된 키를 통해 공격한다.

 

 

■ Active Attacker: 직접적인 공격.

- 통신채널을 차단하는 방식으로 공격한다.

- 키 혹은 암호 시스템을 얻어내고 추측하여 가짜 메시지를 보내 공격한다.

- Sender / Reciever 중 하나에게 과도한 Traffic을 전송해 시스템을 다운시켜 공격한다.

 

 

 

Inherent Weakness of Symmetric Cryptography (대칭키 암호화 알고리즘의 약점)

  • 키 배포는 은밀하게 이루어져야한다. (지리적으로 멀리 있거나 서로 모르는 경우엔 확인해야한다.)
  • 사용자의 수에 맞는 키가 필요하다. → n*(n-1)/2 keys
  • 비밀키(암호 시스템)가 손상된 경우 모든 트래픽을 해독하고 팩을 생성할 수 있다.

 

 

■ Basic Encryption Techniques (기본 암호화 기술)

- Sebstitution (대체) / Permutation (치환)

└ Combinations and iterations of these (조합 및 반복)

 

 

■ Simple Alphabetic Substitution (알파벳 치환)

  • 장점: 26개의 key 공간
  • 단점: 평문 공격, 반복된 패턴, 변경되지 않은 문자의 빈도 분포에 대해 깨지기 쉬움

각 평문의 기호에 무작위로 혹은 Key로 새로운 기호를 지정한다.

→ CodeBook: C = k  |  A = h  |  B = I

 P = C A B   |   C = k h I 

 

 

Q: 알파벳 대체를 여러번 사용할 경우 (C→k→□→k) 보안이 강화될까?

1) 암호문을 두번 복호화해야하기 떄문에 보안이 강화된다.

2) 한번에 대체하는 암호화 방식과 동일하기 때문에 보안이 강화되지 않는다.

3) 각 대체의 복잡성에 따라 강화가 될 수도 되지 않을 수도 있다. 

 

A: 강화된다.

└ 연산의 복잡성을 높이기 때문에 결과적으론 보안이 강화된다. 연산하는 과정에서 시간이 오래 걸릴 수는 있지만 손쉽게 추론 가능하다는것이 단점이다.

 

 

■ Polyalphabetic Substitution (다문자 치환)

- 빈도 분포: 기본 알파벳 분포를 반영한다. 암호 분석가는 대체물을 찾음

- Need: 분포를 평평하게 유지한다.

└ 높고 낮은 분포를 병행한다.

  └ t → a (odd postion), b (even position)

  └ x → a (even position), b (odd position)

 

 

 

■ One-Time Pad (OTP)

  • 인위적으로 만든 것 중 가장 안전한다.
  • 키가 메시지보다 크다.
  • 크고 비반복적인 키.

▶ 장점

- 대부분의 공격에 방어가 가능하다.

 

▶ 단점

- 시간 제한이 존재한다. (Max 2년)

- 매우 길고, 반복되지 않는 키가 필요하다.

- 키를 다시 사용할 수 없다.

- 키 관리가 필요하다: 인쇄, 저장, 설명

 

 

※ 구조: 양단의 시스템에서 물리적인 동기를 맞추어주는 것으로 공인 인증서에 OTP 번호를 넣으면 매핑되는 이유가 이 때문이다.

 

 

■ Transposition (전치)

 

-Plaintext: this is a test-

- 메시지의 문자가 재배열 된다.

└ 전치와 같은 패턴을 깨트린다

 

▶ 장점

- 구현하기 쉽다.

 

▶ 단점

- 구현하기 쉽기 때문에 깨지기도 쉽다.

- 암호만으로 쉽게 공격할 수 있다.

 

 

※ Secure의 정의

- 얼마나 많은 System resource가 필요한가

- System resource를 사용하여 연산을 할 때 Computing time이 얼마나 걸리는가

 

 

 

■ Double Transposition

- 전치하는 것을 두번 꼬아 재배열 하는 것.

  • 1st Transposition: 인접한 글자를 바꿈.
  • 2nd Transposition: 짧은 패턴을 없앰.

 

 

Trustworthy Encryption System (신뢰할 수 있는 암호화 시스템)

  • Based on sound mathematics
  • Has been analyzed by experts
  • Has stood the test of time

대칭키 암호화에서 사용하는 대표적인 Method

- DES: Data Encryption Standard

- AES: Advanced Encryption Standard

- RSA: River Shamir Adelman

 

■ Stream Ciphers

- 평문을 하나의 symbol 단위로 변환하여 처리하는 방식

- 대칭키의 암호화 알고리즘에 사용된다.

 

▶ 장점

연속적인 bit stream을 받아 변환하고 암호화가 이루어지기 때문에 속도가 빠르다.

에러가 다른 bit로 전파될 확률이 적다.

 

▶ 단점

어떤 암호화 알고리즘을 사용했는지 파악하기 쉽다.

오류가 전파될 확률은 낮지만, 오류를 끼워넣기 쉽다.

 

 

■ Block Ciphers

- 하나의 평문 그룹을 하나의 block (64bit, 128bit...)으로 만들고 암호문을 생성하는 것.

 

▶ 장점

어떤 암호화 알고리즘을 사용하였는지 추론하기 어렵다.하나의 Block 단위로 이루어지기 때문에 오류 정보를 끼워넣기 쉽지 않다.

 

▶ 단점

Block을 하나하나 암호화하고 feedback을 넣는 방식도 이루어지기 때문에 시간이 오래 걸린다.

한 Block에서 오류가 난 것들이 feedback을 통해 입력으로 들어가는 방식을 썼을 경우 에러가 손쉽게 전파될 수 있다.

 

 

 

 

 

DES: Data Encryption Standard

  • 56 bit의 key length를 사용한다.
  • 64 bit의 bit block을 통해 암호화가 이루어진다.
  • Key 하나에 22시간 정도의 연산을 통해 쉽게 추론이 된다.
  • 암/복호화 알고리즘이 오픈(public)되어 있다.

- Double DES - 

 

- Triple DES -

- DES의 보안성을 높이기 위해 개발되었다.

- 여러개의 서로 다른 3개의 키를 가지고 이루어진 알고리즘이다.

- Encrypt > Decrypt > Encrypt 통해 이루어진다.

- 고정된 56 bit가 아닌 64, 128, 192, 256 bits key size를 사용해 DES의 단점을 해소한다.

- 최종적으로 나가는 Ciphertext - 

 

■ DES에서 사용하는 암호화 방식

  • Electronic Code Book [ECB]
  • Cipher Block Chaining [CBC]
  • Cipher Feed Back [CFB]
  • Output Feed Back [OFB]
  • Counter mode: 

※ CBC, CFB, OFB는 IV (Initial Vector) 값이 필요하다.

세가지 모두 chain 방식을 통해 이전의 값이 현재의 값으로 들어오는 과정이 필요하기 때문이다.

 

※ IV (Initial Vector) 값은 서로 공유가 되어야 한다.

Encryption, Decryption 단계에서 동일한 초기값을 처리할 수 있기 때문이다.

 

 

■ Electronic Code Book [ECB]

- ECB MODE -

56 bit의 Key에 64 bit의 데이터가 들어오면 Encryption > 64 bit의 데이터를 만들어서 전송 > 56 bit의 Key를 사용해 Decryption > Original 64 bit 데이터를 추론

 

※ 동일한 Data block은 똑같이 암호화 된다. → 반복적인 plaintext가 들어오는 구조라면 key를 추론하기 쉽다.

 

 

■ Cipher Block Chanining [CBC]

- CBC MODE -

 

 

■ Cipher Feed Back (CFB)

- CFB MODE -

 

■ Out Feed Back (OFB)

- OFB MODE -

 

 

 

 

Advanced Encryption Standard (AES)

NIST가 명시한 조건:

- 공공적으로 사용되어야 한다.

- 특허권이 없는, 이를 통해 금전적 이득을 취할 수 없어야한다.

- 대칭키 암호화 방식을 취해야한다.

- 128bit의 block cipher를 기반으로 해야한다.

- key size는 128, 192, 256bit여야한다. → DES가 56bit의 Key length를 가지고 암호화가 이루어졌기 떄문.

- 빠르고 안전하고 휴대성이 뛰어나야한다.

- 암호화 방식의 수명이 20~30년 이상 지속되어야 한다.

- 풀스펙을 제공해야한다.

 

=> Rijindael algorithm 채택됨.

 

■ Rijindael algorithm

- Block Cipher 기반

- Federal Information Processing Standard (FIPS)를 따르도록 되어있음

 

- Key length: 128, 192, 256 bit

- Block size: 128 bit

└ 4개 그룹으로 Block cipher가 처리됨

└ 매 round마다 하나의 Block이 처리됨

└ Key 128 = 9 round | Key 192 = 11 round | Key 256 = 13 round

 

■ Rijindael algorithm's Strength

- 특정기관과의 연관성이 떨어짐- 수학적인 근거가 명확함

- 이론적으로 약점이 없다.

└ Key length가  길고 뒤섞인 구조방식 때문

 

 

 

 

- Conventional Encryption -

- Encryption / Decryption 알고리즘에서 동일한 Key를 사용한다.

 

 

Secret Key Encryption (대칭키 암호화)

- 하나의 키와 비밀키를 사용한다.

- 하나의 키를 어떻게 배포할 것인지가 가장 중요한 issue point이다.

└ 통신 시작 전 키를 설정 해줘야한다.

└ 서로 다른 n(n-1)/2 키가 필요하다.

 

- 디지털 서명방식과 같은 암호화를 제공하지 않는다.

- third party authentication을 제공하지 않기 때문에 공개키보다는 빠른 처리가 가능하다.

└ 하지만 Key 배포에 있어서는 위험성이 높다.

 

 

 

■ Symmetric Key Distribution with Server (서버o 대칭키 암호화 방식)

- Server를 매개로 두 node에서 사용할 key를 얻는다.

└ Originator, Recipie에서 사용할 Key를 Server에서 제공해주는 것.

└ 때문에 제  3자가 Server를 공격하지 않는 한 정보를 얻어낼 수 없는 구조.

 

 

 

 

■ Symmetric Key Distribution without Server (서버x 대칭키 암호화 방식)

i) 제 3자의 서버를 이용하는 경우

- key 외에 별도의 session에서 사용되는 key를 하나 더 만들어 multiple한 방식으로 활용 

 

ii) 제 3자가 서버 없이 이용하는 경우

 

 

 

■ Summary of Secret Key Encryption

  • Security: secrecy의 비밀성에 근간하여 이루어진다. → Key length, itself 두가지로 보장됨
  • Encryption / Decryption 을 진행할 경우 동일한 Key를 사용한다.
  • ex) DES, Triple DES, AES, ...

※ Secret Key / Session Key는 명확하게 구분되어야한다.

 

 

■ Compare DES & AES

  DES AES
Date 1976 1999
Block Size 64 bit 128 bit
Key length 56 bit 128, 192, 256 bit
Encryption Subsitution, permutation Subsitution, shift, mixing
Source IBM, enhanced by NSA Independent Dutch Cryptographers

 

■ Weakness of Secret Key Encryption

Secrecy of Key 

└ 어떤 방법으로 안전하게 배포할 것인가?

  • 서버를 이용하는 방식[KDC, Kerberos]: 모든 User의 레지스터리를 알고있는 KDC Key를 통해  두 node 사이에 사용되는 Session Key를 요청하면 이를통해 Encryption, Decryption이 이루어진다.
  • 서버를 이용하지 않는 방식: 별도의 Session Key를 두고 본래 사용하려 했던 key로 Encryption하여 배포한다. ("Session Key는 안전하게 배포됐다" 라는 전제가 없다면 무의미하다.)

 

※ Kerberos

- 신뢰하는 제 3의 컴퓨터가 서비스를 이용하려는 클라이언트의 사용자를 인증함으로써 가능.

- 서버는 클라이언트의 사용자가 올바른 사용자 인지를 확인하게 되고 서로간에는 비밀통신이 가능.

- 서버는 AS/TGS 두가지로 구성.

 

많은 Key가 요구된다. →  n-(n-1)/2

- 단방향 통신을 할 떄 수신자의 Public Key, Private Key 두가지의 Key 필요로한다.

- 양방향 통신을 할 때 하나의 Session에서 네가지의 Key를 필요로한다.

 

대칭키 암호화 방식의 Issue

- Third party verification을 지원하지 않는다.

- Non repudiation을 지원하지 않는다.

 

※ Third party verfication: 제작사에서 만든 것이 아닌 타 업체에서 만든 해당 툴 지원 라이브러리.

※ Non - repudiation: 메시지의 송수신이나 교환, 통신 혹은 처리가 실행된 뒤 그 사실을 사후에 증명함으로써 사실부인을 방지하는 보인 기술.

 

 

Public Key Encryption

- 위의 단점을 해결하기 위해 제공되는 Key, 모든 사람이 알고 있는 (public) key.

- 하나의 user는 Public Key, Private Key 두가지를 가진다.

 

두개의 키는 서로 역의 관계로 확립된다

└ 암호화된 public key는 private key로 복호화 가능.

└ 암호화된 private key는 public key로 복호화 가능.

└ public key에 대한 신뢰성 필요!

└ public key, private key 구조를 통해 전자서명이 가능하다. (유효성 검증)

 

 

■ Public key Encryption's needed security

- 최소한 하나의 키(각 user의 private key)는 안전하게 보호되어야한다.

- 정당한 수단이 아니라면, 해독하는 것이 어려워야한다.

- 알고리즘이 사용되었는지, 키들 중 하나를 아는지, 암호문의 샘플을 얻었더라도 private key를 추론하는 것은 불가능해야한다.

 

 

 Public Key Cryptosystem

- 1976 Diffie and Hellman 방식에서 따 온 것.

※ Deffie and Hellman은 Public key, Private key를 사용하며 현재 키 배포 방식으로 남아있다.

- 상호 user가 public key를 교환하기 위해 필요.

 

 

 

 

RSA

RSA의 보안성은 소인수분해의 복잡성에 기초해서 만들어진 것이다.

RSA STEPS: 키 생성 > 키 배포 > 암호화 > 복호화

 

- 키 분배 및 관리가 편리.

- 부인방지 기능 포함.

 

■ RSA Principle (RSA의 원칙)

  • 각 mod가 소수를 소유한다.
  • 0 < M < n
  • Sender가 e를 알고, Reciever가 d를 알고있을 경우 M^e, C^d를 추론하기쉽다.
  • 결과적으로 e를 알고 있더라도 d의 값을 추론하기는 어렵다.

 

■ RSA Key

- Public Key와 Private Key 생성하는 방법:

소수 p와 q를 생성한다 > 각 선택한 소수의 값이 n일 경우 p*q

- RSA Confientiality -

Ciphertext = E[PU, P]

Decryption = D[PRᴮ, C]

 

 

 

■ 전자서명

디지털 서명은 보통 3개의 알고리즘으로 구성된다. 하나는 공개 키 쌍을 생성하는 키 생성 알고리즘이다. 두 번째는 이용자의 개인 키를 사용하여 서명(전자서명)을 생성하는 알고리즘, 그리고 그것과 이용자의 공개 키를 사용하여 서명을 검증하는 알고리즘이다. 서명 생성 프로세스에서 생성된 데이터도 ‘디지털 서명’이라고 지칭한다. 디지털 서명은 ‘메시지’의 인증기능을 제공한다. 메시지는 전자메일, 계약서, 혹은 더 복잡한 암호화 프로토콜로 송수신되는 데이터 등, 많은 것을 포함한다.

인증기관이 발행하는 공인인증서는 인증 기관의 사회적인 신뢰성을 담보로 이용자와 공개 값과 이용자의 관계를 보증하는 것이다. 그 때, 인증서가 인증 기관에서 발급된 것임을 증명하기 위해, 디지털 서명을 사용하고 있다. 디지털 서명은 종종 전자 서명(서명을 전하기 위한 모든 전자 데이터를 가리키는 상위어의 개념)을 구현하기 위해 사용되기도 한다. 그러나 모든 전자 서명이 디지털 서명을 이용하는 형태를 취하고 있지는 않다.

 

디지털 서명은 일반적으로 다음의 세 가지 알고리즘으로 구성된다.

  • 키 생성 알고리즘 G: 서명자의 키 쌍(PK, SK)을 생성한다. PK는 공개 검증 값, 그리고 SK는 비밀 서명 값이다.
  • 서명 생성 알고리즘 S: 메시지 m과 서명 값 SK를 입력하고, 서명 σ를 생성한다.
  • 서명 검증 알고리즘 V: 메시지 m, 검증 값 PK, 서명 σ을 입력하고, 승인 또는 거부를 출력한다.

주로 두 가지 특성이 필요하다. 먼저, 올바른 서명 키 값으로 생성된 서명은 해당 검증 키 값으로 항상 승인되는 것, 즉 서명 키 값 SK와 검증 키 값 PK가 해당 키 쌍이면 어떤 메시지 m에 대한 V {m, PK, S(m, SK)}는 승인이 출력되어야 한다. 두 번째로, 어떠한 공격자도 PK 값을 알고 있는 것만으로는 유효한 서명을 생성하기 곤란하여야 한다는 것이다.

'네트워크 보안' 카테고리의 다른 글

방화벽  (0) 2021.11.04
Access Control  (0) 2021.10.28
RSA  (0) 2021.10.17
Public Key Encryption  (0) 2021.10.16
Key Distribution  (0) 2021.10.16
Comments