-> 블로그 이전

[정보보호개론] Week_1 : 기본 용어

2022. 3. 3. 18:49Major`/정보보호개론

보안의 기본 3원칙 : C I A

Confidentially (기밀성)

"To prevent unauthorized reading of information"

- 인가되지 않은 user(Attacker)가 정보를 읽는 것을 막는다

- Attacker에 의해서 정보가 읽혀서 노출되는 것을 막는 보안원칙

 

◆ 공격예시

- 스니핑

- 스푸핑

 

◆ 대처방안

1. 접근 통제(Access Control)을 실시

2. 정보에 대한 암호화

 

 

Integrity (무결성)

"To prevent unauthorized writing of information(Modifying)"

- 인가되지 않은 user(Attacker)가 정보에 접근해서 정보를 변경하는 것을 막음으로써 정보의 원본을 보호

- Attacker에 의해서 정보의 변조/파괴를 막는 보안원칙

 

◆ 공격예시

- 트로이목마

- 바이러스

 

◆ 대처방안

1. 접근 통제(Access Control)을 실시

2. 만약에 이미 정보가 변경되었거나 변경될 위험이 있을 때 해당 사실을 즉시 파악해서 복구할 수 있는 메커니즘이 필요하다

>> 해시 함수를 통한 무결성 확인

 

 

Availability (가용성)

"To provide access to information whenever consumers want"

- 인가된 user라면 언제든지 정보에 접근할 수 있는 원칙

- Attacker의 공격에 대해서 잘 대응해서 인가된 user에게 정보를 안정적으로 제공해주는 원칙

 

◆ 공격예시

- DOS

- DDOS

 

◆ 대처방안

1. Attacker의 자료 파괴/장애 유발에 대한 복구대책 + 예방대책

2. 인가된 user에 대해서는 정보의 접근이 절차에 따라 완전하게 허락되어야 한다

 


인증 (Authentication)

Example) "Alice" & "Bob"

- "Bob"이 "Alice"에게 접근

  • "Alice"는 접근한 사람이 누군지 파악해야 한다 :: 신원확인

 

≫ Alice : "너는 누구니?"

 ?? : "나는 Bob이야"

  • Alice는 ??가 "Bob"이라는 말만 듣고 진짜 ??가 "Bob"인지 믿을 수 없다

 Alice : "너가 정말 Bob인지 증명해봐"

  • Bob은 Alice에게 자신을 증명한다

Bob : "이제 내가 Bob이라는 것을 믿을 수 있겠니"

 Alice : "너가 Bob이라는 것을 확인했어"

 

>> 이러한 과정들을 "인증"이라고 한다

  • 사이트 로그인 / 휴대폰 잠금 해제 / ....

 

▶ 대면 인증

- 비교적 간단히 서로 인증할 수 있다

- 암호화를 기반으로 인증

 

 네트워크 인증

- 비교적 인증이 복잡하다

  • 네트워크를 인증하던 과정에서 Attacker에 의해서 Data가 노출될 위험이 존재

- 암호화 + 보안 프로토콜을 기반으로 인증

  • SSL / TSL / ...

인가 (Authorization)

- 인증된 user라고 해도 모든 Data에 대한 접근을 허용하면 안된다

  • Alice에게 Bob은 인증된 user이다
  • 만약, Bob이 Alice에게 개인정보를 요구하면 Alice는 줄 필요가 없다

>> 인증된 user라고 해도 접근 가능 정보/접근 불가능 정보가 구분되어야 한다

- "인가"는 "인증된 user"에 대한 접근 제어 강화

  • 접근 제어(Access Control)을 기반으로 한다

 


Cryptography (암호화)

"Making Secret Codes"

- Secret Code를 만들어내는 것

 

※ 암호화 기술

1. Encryption (암호화)

- 양방향 암호화 기술

  • encrypt : plain text → cipher text
  • decrypt : cipher text → plain text

- 인가되지 않은 user에게 정보 노출을 막는것이 목표 :: 기밀성 

 

2. Hashing (해싱)

- 단방향 암호화 기술

  • encrypt : plain text → hashed text

- 해시값을 검사해서 정보 변조가 없었는지 확인하는 것이 목표 :: 무결성 

 

Cryptanalysis (암호 해독)

"Breaking Secret Codes"

- Secret Code를 해독하는 것

 

※ 대표적인 방법 : Brute-Force

- key로 가능한 모든 경우의 수를 대입해서 암호를 해독하는 방식

 

Cryptology (암호학)

"The art and science of making and breaking 'secret codes'"

- Secret Codes를 만들거나 해독하는 학문

 

Crypto (암호)

- 위의 모든 용어를 포함한 포괄적 용어


Crypto System

데이터를 암호화할 때 사용되는 암호 체계

모든 암호체계의 목적은 "키 없이 복호화 할 수 있는 방법은 존재하지 않도록 해라"이다

 

Encryption & Decryption

Encryption (암호화)

- 특정 key를 통해서 plain text를 cipher text로 변환

  • "key 1"이라고 가정

Decryption (복호화)

- 특정 key를 통해서 cipher text를 plain text로 변환

  • "key 2"라고 가정

 

Symmetric Key Cryptosystem

대칭키 암호 시스템

- (Client & Server)가 동일한 key를 사용하는 시스템 >> key 1 == key 2

- key는 private key를 사용한다

 

1. 계산속도가 빠르다

2. key 하나만 알아내면 복호화를 할 수 있기 때문에 Attacker의 공격으로부터 안전하지 않다

 

>> 대칭키 암호 알고리즘 방식으로 DES / 3-DES / AES / SEED / ARIA / MASK 등이 존재한다

 

Public Key Cryptosystem

공개키 암호 시스템

- (Client & Server)가 다른 key를 사용하는 시스템 >> key 1 != key 2

- 암호화 : public key / 복호화 : private key

 

1. 대칭키 암호 알고리즘에 비해 속도가 느리다

2. 공개키는 누구나 알 수 있지만, 공개키에 대응되는 비밀키는 키의 소유자만 알 수 있어서 Attacker의 공격으로부터 꽤 안전하다

>> 공개키 암호 알고리즘 방식으로 RSA / Elgamal 등이 존재한다

 


"Kerckhoffs Principle"

'The Attacker completely knows the system'
'Only key is secret'

- 암호체계는 해당 시스템이 Attacker에 의해 파악됨을 가정하고 설계해야 한다

- Key를 제외한 시스템의 모든 내용이 알려져도 암호체계는 안전해야 한다

 

Example)

A : 모든 것이 비밀인 Crypto Algorithm

B : Key만 비밀인 Crypto Algorithm

>> B가 더 좋은 Crypto Algorithm이다

 

why?

어차피 암호 알고리즘은 언젠가는 Attacker에 의해 알려진다

  • "세상에 비밀은 없다"

- A는 안전성을 암호 알고리즘을 숨김으로써 보장한다. 근데 암호 알고리즘은 언젠가는 알려지기 때문에 암호 알고리즘을 통해서 안전성을 확보하는 것은 안전하지 못한 방법이다

 

- B는 안전성을 키의 보안을 통해서 보장하기 때문에 키만 잘 관리한다면 안전한 방법이다

 

>> 암호체계의 안전성은 키의 비밀성에만 의존해야 한다