The CIA Triad

CIA Triad는 가장 근본적인 세 개의 보안 원리를 내포하고 있다.

  • Confidentiality
    • 권한이 있는 사용자(Authorized)만 그 정보에 접근하도록 제어해야 한다.
    • Encrypt / Decrypt
    • "Breaking ENIGMA"는 대표적인 Broken Confidentiality 사례이다.
  • Integrity
    • 데이터나 메시지가 권한이 없는 개체(entity)에 의해 변경되지 않도록 보장해야 한다.
    • HTTPS cipher suite는 HMAC을 사용한다.
    • 편지를 동봉하기 위해 찍는 Seal이 Integrity의 실생활 사례이다.
  • Availability
    • 정보 시스템 서버는 정보가 필요할 때 이용 가능하도록 준비되어야 한다.
    • DDOS(Distributed Denial Of Service)

 

Non-Repudiation

특정 행동에 대해 증명하는 증거를 만드는데 초점을 둔 보안 원리이다.

  • Digital Signature: 송신자의 identity를 보증한다.
  • Timestamps: 마지막으로 수정된 정확한 시간을 보증한다.
    • 어플리케이션은 개발자의 private key로 signed, timestamped 될 수 있다.
    • 개발자의 identity와 publickey는 신뢰할 수 있는 Certificate Authority (CA) 형태로 digitally signed된다.

 

Authentication

  • 사용자의 identity를 verifying하는 과정이다. (예. Touch ID, passports, ID/Password)

 

Access Control

  • 컴퓨팅 환경에서 누가, 어떤 자원에 접근할 수 있도록 할 지 통제하는 보안 테크닉이다.

 

Authorization

  • Authentication + Access Control
  • 시스템 리소스에 대한 유저/클라이언트의 privilege 혹은 access level을 결정하는 것이다.

 

Attestation

  • 무언가를 공식적으로 증명하거나 목격자가 되어주는 행위
  • 앱 시스템에서 애플, 마이크로소프트는 앱의 무결성과 identity에 대한 witness가 되어 준다.
  • HTTPS에서, Certificate Authorities(CA)는 witness의 역할과 웹사이트의 identity를 보증한다. 웹 서버는 클라이언트(웹 브라우저)에게 certificate를 주어야 하고, 클라이언트는 Certificate Authorities(CA)에게 요청하여 certificate의 유효성을 체크한다.

 

Security Design Principles

  1. Least Privilege
    • 유저나 컴포넌트는 요구사항을 만족하는 최소한의 privilege는 반드시 부여받아야(granted) 한다.
  2. Fail-Safe Defaults
    • 오브젝트에 대해 명시적인 접근(explicit access)이 주어지지 않는다면 오브젝트에 대해서 접근을 거부한다.
  3. Economy of Mechanism
    • Security Mechanisms은 가능한 한 단순해야 한다.
  4. Complete Mediation
    • 모든 오브젝트에 대한 모든 접근은 체크되어야 한다.
    • 예시) Operating System Access Control
  5. Open Design
    • 보안 메커니즘은 그것의 설계나 구현에 의존하지 않는다.
    • RSA, AES 등의 cryptosystem들은 오픈되어 있다.
      • 누구나 공부할 수 있고 내부 구조를 알지만 여전히 합리적으로 보안에 사용될 수 있다.
  6. Separation of Privilege
    • 시스템은 단일 조건을 기반으로 권한을 부여해서는 안된다. 권한을 부여할 때는 multiple conditions이 요구된다.
  7. Least Common Mechanism
    • 리소스에 접근할 때 사용되는 메커니즘은 공유되지 않거나 최소한으로 공유되어야 한다. 공유될 경우 서로에게 영향을 줄 수 있다.
      • Cache Side-Channel Attacks
      • Flush and Reload Attack
  8. Psychological Acceptability
    • Security Mechanism이 사용자가 리소스에 접근하는데 더 어렵도록 만들면 안된다.
    • 사용자에게 보안은 쉬워야 한다. 사용자를 열 받게 만들면 안된다. 그렇지 않다면 보안은 득보다 실이 될 수 있다.
    • Humans are Part of the System
      • 보안 시스템을 구성할 때 human factors 또한 고려해야 한다.
        • User's technical knowledge
        • User's carelessness
        • User's motivation
      • Usuable Security는 HCI(Human Computer Interaction)과 Security의 교집합이다.
  9. Defense in Depth
    • 여러 레이어의 security mechanism을 적용하여 하나의 메커니즘의 취약성이 용인될 수 있도록 보안의 중복을 제공한다.
    • 해커의 보안 공격을 더 어렵게 만든다.
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기