0. 서론

해당 글에서는 정보보안 산업기사 및 기사에서 자주 출제되는 내용을 다루고 있습니다. 만약 정보보안 산업기사 및 기사의 취득 의사가 없는 분들은 바로 2. 수학적 배경지식부터 읽는 것을 추천드립니다.

1. 보안의 목표 및 위험

인터넷의 발달로 사람들은 많은 정보를 인터넷에 보관하고 이용하고 있습니다. 또한 지속적인 기술의 발전으로 정보의 흐름이 매우 빨라졌습니다. 이런 기술 발전에 따라 기술들을 악용하는 일은 파급력이 더욱 세졌으며, 더 빠르게 진행되고 있습니다.

1-1. CIA(Confidentiality, Integrity, Availability)

  • Confidentiality (기밀성) : 정보가 외부로 노출되지 않는 특성
  • Integrity (무결성) : 정보가 비인가자로부터 변경되지 않는 특성
  • Availability (가용성) : 권한이 있는 사용자에게 필요한 상황에 적절하게 정보를 전달하는 특성 (DoS와 같은 공격 과정에서 서비스 부하로 인하여 사용자에게 적절한 응답을 보내지 못하는 상황에 대한 대비책을 말하는 것입니다.)

1-2. CIA의 각 위험 요소

  • 기밀성(Confidentiality)
    • 도청 : 비인가자가 정보를 가로채어 자신의 공격 목적에 의해 사용하는 것
    • 트래픽 분석 : 전송되는 트래픽 양 혹은 트래픽 방향 등을 분석하여 불법적으로 정보를 취득하는 경우
  • 무결성(Integrity)
    • 변경 혹은 삭제 : 비인가자가 전송되는 메시지를 자신이 원하는 것으로 바꾸거나 삭제하여 전송하는 행위
    • 재사용 : 이전에 사용한 정보를 다시 사용하여 불법적인 이득을 취하는 공격
    • 부인 : 자신이 보내는 것과 다르다고 통신 사실을 부정하는 위협
  • 가용성(Availability)
    • 서비스 거부(Denial of Service, DoS): 네트워크를 사용하지 못하게 하거나 속도를 저하시키는 행위
보안 목표공격 방법공격 형태
기밀성도청수동적
트래픽 분석수동적
무결성변경 혹은 삭제능동적
재사용능동적
부인능동적
가용성서비스 거부능동적

1-3. 보안 매커니즘

정보를 보호하는 방법 3가지

  • 관리적 방법
  • 법적, 제도적 방법
  • 기술적 방법

이 중 기술적 방법이 가장 효과적입니다.

ITU-T X.800는 보안 목표를 5가지로 정의하고 있습니다.

  • 인증(Authentication) : 정당한 방법으로 권한을 받지 못한 자가 사용자로 가장하여 침입하거나 정보에 대한 위협을 방지하는 행위
    • 인증 확인 정보의 종류
      • something known(알고 있는 것) : 패스워드
      • something possessed(소유하고 있는 것) : 물리적인 키 혹은 IC 카드
      • some immutable characteristic(유일하게 존재하는 것) : 음성, 지문 등과 같은 생체 특징
  • 접근 제어(access control) : 인증되지 않는 것으로부터 자원의 이용 여부를 결정하는 것
    • 접근 제어 정책
  • 기밀성(confidentiality) : 권한이 없는 사람으로부터 정보가 노출되지 않게 막는 것
    • 기밀성의 제공 형태
      • 물리적 보호
      • 정보 은닉
        • 암호화
        • 데이터 패딩
        • 대역확산
        • 주파수 도약
  • 데이터 무결성(integrity) : 데이터가 인가되지 않은 방법으로 변경, 삭제, 생성되지 않도록 보호하는 것.
  • 부인 봉쇄(non-repudiation) : 송신자나 수신자가 메시지를 송수신한 사실을 나중에 부인하지 못하도록 증거를 제공하는 것.
    • 발신처 부인 봉쇄
    • 수신처 부인 봉쇄

보안 서비스와 메커니즘 관계

서비스 \ 메커니즘암호화디지털 서명접근 제어데이터 무결성인증 교환라우팅 제어공증
인증OO
접근 제어OO
기밀성O
무결성OO
부인 봉쇄OO
가용성OO

1-4. 넓게 보는 암호 기술 및 시스템

기밀성을 유지하기 위해 사용되는 암호 기술을 **암호화(encryption)**라고 부릅니다. 이렇게 만들어진 문자를 **암호문(ciphertext)**이라고 합니다. 또한 이런 암호화된 문자를 다시 암호화되기 전으로 만들면 **평문(plain text)**이라고 부르며, 암호화된 문자를 평문으로 만드는 과정을 **복호화(decryption)**라고 부릅니다.

암호화 및 복호화 과정에서는 **키(key)**라는 정보를 이용하여 이뤄지며, 암호화 과정과 복호화 과정에서 똑같은 키를 사용하면 **대칭 키 암호(symmetric cryptosystem)**라고 부르며, 다른 키를 이용해서 암호화하고 복호화를 진행하면 **비대칭 키 암호(asymmetric cryptosystem)**라고 부릅니다.

암호 시스템의 역사

Caesar Vingenere(20세기) ENIGMA (제 2차 세계 대전) DES AES 1976년 공개 키 이론 1978년 RSA

flowchart LR
    A[Caesar 암호] --> B["Vigenère 암호<br/>(20세기)"]
    B --> C["ENIGMA<br/>(제2차 세계대전)"]
    C --> D[DES]
    D --> E[AES]
    E --> F["공개키 이론<br/>(1976)"]
    F --> G["RSA<br/>(1978)"]

비밀 키 암호 시스템 또는 대칭키 암호 시스템은 암호화 과정과 복호화 과정에서 사용되는 키가 같아서 키가 탈취될 경우 기밀성이 지켜지지 않는다는 문제가 있었습니다. (키 분배 문제) 이런 문제를 해결하는 방법이 바로 공개키 암호 방식입니다. 공개키 암호는 암호화하는 키와 복호화하는 키를 다른 키를 이용하여 상대방에게 암호화만 가능한 키를 주는 것을 통해서 안전한 통신이 가능하게 되었습니다.

이런 공개키 알고리즘 방식은 안전한 만큼 속도 문제가 있었습니다. 매번 공개키와 비밀키를 만드는 속도가 느렸기 때문에, 이런 문제를 해결하기 위해서 최근에는 하이브리드 암호시스템(hybrid cryptosystem)을 사용하기 시작했습니다. 하이브리드 방식은 생성된 세션키를 이용하여 암호화하되 이런 세션 키 자체를 공개키 방식을 이용하여 보내도록 하였습니다.

이 외에도 해시 함수라는 일정한 길이의 메시지를 압축하는 다이제스트 방법도 있습니다. 이런 방법은 짧은 길이로의 메시지 압축을 제공하는 서비스에서 계산량이나 효율성을 크게 향상시킬 수 있습니다. 이런 해시 함수로는 MD-x 시리즈와 SHA-x가 있습니다. 이 중 MD-x 시리즈는 안전성 보장이 어려워 현재는 자주 사용되고 있지는 않습니다.

디지털 서명(Digital signature)은 도장 혹은 문서에 수행하는 서명을 디지털화하여 사용하는 것으로 공개 키 암호 기술 중 매우 중요한 부분입니다. 서명 생성은 자신의 개인 키를 이용하여 메시지를 서명하며, 수신한 메시지 및 서명을 송신자의 공개키를 이용하여 진위 여부를 검증합니다. 이 과정에서 메시지를 해시 함수를 이용하여 압축한 후 서명하는 것이 매우 효과적이며 이때 해시 함수를 필수적으로 이용합니다.

국내에서 많이 사용되는 표준 서명 방법으로는 RSA 서명과 DSS 및 ECDSA가 있습니다. 국내 표준 서명 알고리즘으로는 KCDSA, ECKCDSA가 있습니다.

암호학에서 키를 추측하지 못하게 하기 위해서 의사 난수 생성기(Pseudo Random Number Generator, PRNG)를 이용합니다. 이 경우 초기 벡터, 논스 생성 과정에서 많이 사용하며, 통신문이 무작위성을 가지지 않으면 재사용 공격과 같은 공격에 쉽게 노출되므로 의사 난수 생성기는 암호학적으로 랜덤성과 예측 불가능성을 만족해야 합니다. 이때 많이 알려진 의사 난수 생성기로는 CTR_DRBG 알고리즘이 있습니다.

mindmap
  root((암호 시스템))
    대칭키 암호
      비밀키 암호라고도 함
      암호화 키 = 복호화 키
      문제: 키 분배 문제
    공개키 암호
      비대칭키 암호라고도 함
      암호화 키 ≠ 복호화 키
      공개키로 암호화, 개인키로 복호화
      문제: 속도
    하이브리드 암호시스템
      세션키로 데이터 암호화
      세션키는 공개키로 전달
    해시 함수
      메시지를 다이제스트로 압축
      MD-x / SHA-x
    디지털 서명
      개인키로 서명
      공개키로 검증
      해시 함수 필수 사용
    의사 난수 생성기 PRNG
      키·IV·논스 예측 방지
      CTR_DRBG