컴퓨터 보안의 속성은 CIA triad 와 AAA triad로 설명할 수 있다.
CIA triad는 Confientiality(기밀성), Integrity(무결성), Availability(가용성),
AAA triad는 Assurance(보장성), Authenticity(진위여부), Anonymity(익명성) 을 포함한다.*
CIA triad
이 3가지 속성을 잘 갖춘 서비스가 보안이 튼튼한 서비스라고 할 수 있다.
Confidentiality(기밀성)
인증되지 않은 사람이 데이터를 읽지 못하게 해야함을 의미한다. 기밀성은 3가지 방법으로 구현될 수 있다. 첫째로 암호화(Encryption)는 대칭/비대칭 키를 이용하여 데이터의 내용을 숨긴다. 둘째로 인증(Authentication)은 유저의 신원을 확인하는 과정이다. 셋째로 접근제어(Access Control)은 권한에 따라 누가, 어떤 자원에, 어떻게 접근가능한지를 조절한다. 리눅스에서 chmod로 유저/리소스 마다 rwx로 나뉘는 권한을 관리하는 것이 예시이다. 인가(Authorization) 또한 접근제어에 포함되는 개념이다.
Integrity(무결성)
데이터가 인증되지 않은 방법으로 변조되어서는 안된다. 데이터의 변조에는 온건한 변조(Benign Compromise)와 위험한 변조(Malicious Compromise)가 있다. 온건한 변조는 단순한 사고로 인해 데이터가 변조되는 것을 말하고, 위험한 변조는 공격자(attackers)에 의해 데이터가 변조되는 것을 말한다. 백업(Backup)과 체크섬(Checksum) 등이 무결성을 확보하는 방법의 예시이다.
Availability(가용성)
사용자가 시기적절하게(in a timely fashion) 서비스를 이용할 수 있어야한다. 24시간 동작한다고 했던 서비스가 갑자기 접근이 되지 않는 다면 가용성 확보에 실패한것이다. 이게 왜 보안에 속하는지 의문이 들 수 있는데, 아주 어려운 비밀번호를 설정한 아주 단단한 금고를 화성에 묻어놓았다고 하자. 이러면, 어떤 공격자들도 이 금고안의 데이터를 접근할 엄두를 못내기야 하겠지만, 사용자들 조차 이용할 수 없으므로 좋은 보안이 아닌것이다. 서비스들은 물리적인 재난에 대응하고, 전산이중화(Computational redundancies) 대책을 세우는 등의 방법으로 가용성을 확보해야 한다.
AAA triad
현대 컴퓨터 보안에서 중요시하게 여겨지는 속성 3가지이다. Netflix, Youtube 등의 현대(Modern) IT 서비스들을 생각하면 된다.
Assurance(보장성)
유저와 서비스, 상호간의 신뢰가 보장되어야 한다. 보장성은 3가지 방법으로 확보할 수 있다.
- 정책(Policy): 고객에게 어떻게 서비스를 제공할 것 인가? (e.g. 유저마다 다른 요금제)
- 권한 부여(Permission): 인증된 고객만이 서비스를 이용 가능한가?
- 보호(Protection): 어떻게 남용(Abuse)을 방지할것인가? (e.g. ddos 공격으로부터 가용성 확보)
Authenticity(진위여부)
디지털 서명(Digital Signature)등의 방법으로 눈속임(repudiation, 오리발)을 방지한다.
Anonymity(익명성)
개인이 서비스를 이용하는 것이 특정되면 안된다. 개인의 의료정보나 연락처 등 개인정보나, 개인의 서비스 이용기록 등을 숨겨야한다. 집계(Aggregation)로, 평균/총합 등으로 집단을 표현하는 것, 프록시(Proxy) 서버로 유저와 애플리케이션 서버를 직접 연결하지 않는것, 가명(Pseudonyms)을 사용하는 것
* 이 글에서 설명하는 AAA triad는 major하게 사용되는 의미는 아니다. Authentication, Authorization, Accounting이 더 널리 쓰이는 약칭이다.
'개인 공부' 카테고리의 다른 글
[이산구조] 명제(Proposition) (0) | 2025.03.02 |
---|---|
[전산기조직] 논리 디자인의 기초 - Combinational Logic 편 (0) | 2025.03.02 |