Introduction

C.I.A

C.I.A란 보안의 3요소를 말하며, 이어 설명할 Confidentiality(기밀성), Integrity(무결성), Availability(가용성)을 뜻합니다.

Confidentiality (기밀성)

오직 인가된 사람/프로세스/시스템만이 알 필요성에 근거하여 시스템에 접근해야 한다는 원칙입니다.

기밀성 확보를 위한 방법은 다음과 같습니다.

  • Encryption
    • 암호 키를 이용한 정보의 변환으로, 변환된 정보는 암호 해독 키를 통해서만 읽을 수 있습니다. 경우에 따라 암호 해독 키는 암호 키와 동일할 수 있습니다.
  • Access control
    • 인과된 사람들 또는 시스템에게만 비밀 정보 접근을 허용하는 규칙 또는 정책을 말합니다. 인과에 대해서는 사람의 이름이나 컴퓨터의 시리얼 넘버와 같은 identity로 결정합니다.
  • Authentication
    • 상대가 갖는 신분 또는 역할에 대한 확인을 뜻합니다.
    • 확인 방법은 다음과 같습니다.
      • 상대가 가지고 있는지? (스마트 키, 공인 인증서)
      • 상대가 알고 있는지? (비밀번호)
      • 상대가 맞는지? (생체인식, 손가락 지문, 얼굴 인식)
    • 예전에는 위의 방법들을 따로 사용했었지만, 요즘은 중요한 거래같은 경우 모두 가용한다고 합니다.
  • Authorization
    • 접근 제어(access control) 정책에 기초하여, 사람과 시스템이 자원에 대한 접근이 허용되었는지 확인하는 것입니다. Authorization은 공격자가 시스템을 속여서 보호되는 자원에 대한 접근 권한을 얻는 것을 예방해야만 합니다.
  • Physical security
    • 물리적 보안으로, 컴퓨터의 보호되는 자원에 대한 접근을 제한하기 위해서 물리적인 장애물을 이용하는 것을 말합니다.
    • 다음과 같은 Physical security가 존재합니다.
      • Faraday cage
      • 금고

Integrity (무결성)

정보는 고의적인, 비인가된, 우연한 변경으로부터 보호되어야 한다는 원칙입니다.

무결성 확보를 위한 방법은 다음과 같습니다.

  • Backups
    • 주기적인 데이터 파일을 보관합니다.
  • Checksums
    • 파일의 컨텐츠와 수치를 연관시키는 함수의 계산입니다.
    • checksum 함수는 파일 전체 컨텐츠에 의존적이며, Input 파일의 작은 변화도 매우 다른 결과값을 반환하는 방식으로 디자인되어 있다고 합니다.
  • Data correcting codes
    • 파일의 작은 변화를 쉽게 감지하고 자동으로 수정하는 방식으로 파일을 저장하는 방식을 말합니다.

Availability (가용성)

정보는 사용자가 필요로 하는 시점에 접근 가능해야 한다는 원칙을 말합니다.

가용성 확보를 위한 방법은 다음과 같습니다.

  • Physical protections
    • 물리적 저항에도 정보 이용이 가능하도록 유지하는 것을 의미하는 사회 기반 시설을 말합니다.
  • Computational redundancies
    • 가용성 실패에 대한 대여책 역할을 하는 컴퓨터와 저장 장치들을 이용하는 것을 말합니다.

A.A.A

A.A.A는 Authenticity, Assurance, Anonymity를 뜻합니다. 이 부분은 생략하겠습니다.

Threats and Attacks

공격자로부터 어떤 위협과 공격이 있는지 알아보겠습니다.

Eavesdropping

엿듣기 또는 도청이라는 의미로, 정보가 통신채널에서 전송되는 도중에 의도된 자에게 정보가 interception 되는 것을 말합니다. 하지만 공격자는 정보 자체를 변조하거나 공격하지 않습니다.

Alteration

정보의 승인되지 않은 수정이 일어난 경우입니다. 예로 중간자가 메시지를 변조하는, man-in-the-middle attack 가 있습니다.

Denial-of-service

데이터 서비스 또는 정보 접근이 중단, 악화되는 것을 말합니다. 예로 분산 환경에서 네트워크를 통해 서비스를 중단시키는 Ddos 공격이 있습니다.

Masquerading

실제로 인증자가 아닌 누군가가 인증자로 위장하여, 자신이 보낸 정보를 인증자의 정보라고 주장하는 것을 말합니다. 이를 막기 위해서는 강력한 인증 기능이 필요할 것입니다.

Repudiation

생략.

Correlation and traceback

생략.

The Ten Security Principles

생략.

Cryptographic Concepts

암호화 개념에 대해 살펴보겠습니다.

Encryption

Alice와 Bob에게 도청의 대상이 되는 안전하지 않은 채널에서 기밀성이 보장되는 통신을 가능하게 해주는 것으로, 암호화한다는 뜻을 갖고 있습니다.

Encryption하기 전 원래 메시지 M을 plaintext , encryption 알고리즘을 이용하여 생성한 output을 M의 cipertext 라고 부릅니다.

방정식으로는,
C = E(M)
M = D(C)
로 나타낼 수 있습니다.

Caesar Cipher

인류 역사상 최초 암호화 알고리즘이라고 합니다. 이 알고리즘은 각 영어 문자를 3번째 뒤에 있는 영어 문자로 대체하는 것이라고 합니다.

Symmetric Cryptosystems

대칭 키 암호화 라고 부릅니다. Alice와 Bob이 암호 키를 공유하는데, 이 암호키는 encryption와 decryption 모두 가능합니다.

Symmetric Key Distribution

대칭 키 알고리즘의 키 분배에 관한 내용입니다. 사람이 n명(n은 짝수) 있다면, 대칭 키는 총 n(n-1)/2 개가 필요합니다. 키가 쌍의 수 만큼 필요하기 때문에, 근본적으로 Key Management에서 힘든 문제가 발생합니다.

Public-Key Cryptography

공개 키 암호화 알고리즘 입니다. 통신에 참가하는 각 사람들이 한 쌍의 키를 갖고 있습니다. 키는 개인 키(SB), 공개 키(PB)가 있으며, 개인 키는 개인만 알고 있어야 하는 키이며 공개 키는 누구나 알아도 되는 키입니다.

공개 키로 암호화된 메시지는 해당 공개 키에 대응되는 개인 키로만 해독 할 수 있습니다. 이것이 바로 공개 키 알고리즘의 핵심이라고 볼 수 있습니다.

Public Key Distribution

공개 키 알고리즘의 키 분배에 관한 내용입니다. 사람이 n명(n은 짝수) 있다면, n쌍의 키 만 있으면 됩니다. 키 관리 측면에서 대칭 키 알고리즘보다 매우 간단해졌음을 알 수 있습니다.

Digital Signitures

공개 키 알고리즘의 개인 키로 전송할 메시지에 전자 서명 을 할 수 있습니다. 메시지를 해독하고 싶은 사람은 전자 서명된 메시지를 공개 키로 해독함으로써, 메시지를 보낸 사람이 공개 키의 주인임을 확인할 수 있습니다.

Cryptographic Hash Functions

암호화 해쉬 함수에 대한 내용입니다. 해쉬 함수 H는 다양한 크기의 메시지가 입력으로 들어와도, 반환 값은 항상 고정된 크기입니다. 예로 sha256 해쉬 함수는 어떤 메시지가 입력되도 랜덤 256비트 문자열을 출력합니다.

해쉬 함수 알고리즘의 특성은 다음과 같습니다.

  • One-way (일방향성)
    • Y = H(M)을 계산하는 것은 쉽지만, Y로만 M을 찾아내는 것은 어려워야 합니다.
  • Collision-resistant
    • 다른 두 메시지 M과 N으로부터, H(M)과 H(N)은 달라야 합니다.

Message Authentication Codes (MAC)

만약 엘리스와 밥이 암호 키(K)를 공유하고 있다면, 둘에게 MAC을 통해 데이터 무결성을 제공해줄 수 있습니다.

다음은 해쉬 함수를 통한 MAC 이용 방법입니다.

  1. 주어진 메시지 M이 있다면, 엘리스는 H(K||M)와 메시지 M, K을 밥에게 보냅니다.
  2. 밥은 K와 M을 해쉬 함수의 입력으로 넣어 H(K||M)을 계산합니다.
  3. 밥은 엘리스에게 받은 H(K||M)과 자신이 계산한 H(K||M)이 같은지 확인합니다.

Updated: