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
- Least Privilege
- 유저나 컴포넌트는 요구사항을 만족하는 최소한의 privilege는 반드시 부여받아야(granted) 한다.
- Fail-Safe Defaults
- 오브젝트에 대해 명시적인 접근(explicit access)이 주어지지 않는다면 오브젝트에 대해서 접근을 거부한다.
- Economy of Mechanism
- Security Mechanisms은 가능한 한 단순해야 한다.
- Complete Mediation
- 모든 오브젝트에 대한 모든 접근은 체크되어야 한다.
- 예시) Operating System Access Control
- Open Design
- 보안 메커니즘은 그것의 설계나 구현에 의존하지 않는다.
- RSA, AES 등의 cryptosystem들은 오픈되어 있다.
- 누구나 공부할 수 있고 내부 구조를 알지만 여전히 합리적으로 보안에 사용될 수 있다.
- Separation of Privilege
- 시스템은 단일 조건을 기반으로 권한을 부여해서는 안된다. 권한을 부여할 때는 multiple conditions이 요구된다.
- Least Common Mechanism
- 리소스에 접근할 때 사용되는 메커니즘은 공유되지 않거나 최소한으로 공유되어야 한다. 공유될 경우 서로에게 영향을 줄 수 있다.
- Cache Side-Channel Attacks
- Flush and Reload Attack
- 리소스에 접근할 때 사용되는 메커니즘은 공유되지 않거나 최소한으로 공유되어야 한다. 공유될 경우 서로에게 영향을 줄 수 있다.
- 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의 교집합이다.
- 보안 시스템을 구성할 때 human factors 또한 고려해야 한다.
- Defense in Depth
- 여러 레이어의 security mechanism을 적용하여 하나의 메커니즘의 취약성이 용인될 수 있도록 보안의 중복을 제공한다.
- 해커의 보안 공격을 더 어렵게 만든다.
'Computer Science > Security' 카테고리의 다른 글
SSL/TLS: 프로세스를 중심으로 (0) | 2022.04.13 |
---|---|
Public-Key Cryptosystem: 공개키 암호화 방식에 대해 (0) | 2022.04.13 |
Fundamental Concept of Cryptosystem: 개념과 역사를 중심으로 (0) | 2022.04.13 |
Access Control: 정책과 구현 방식 (0) | 2022.04.13 |
Authentication Mehod: 해시 함수, 패스워드(salt), 생체 인증 (0) | 2022.04.13 |