Recent Posts
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- kotlin
- addhooks
- 자원부족
- 코루틴 빌더
- python
- Spring Batch
- PytestPluginManager
- Value too long for column
- taint
- 겨울 부산
- 티스토리챌린지
- 깡돼후
- tolerated
- preemption #
- JanusGateway
- mp4fpsmod
- terminal
- pytest
- table not found
- 오블완
- JanusWebRTC
- vfr video
- 달인막창
- 코루틴 컨텍스트
- JanusWebRTCGateway
- 개성국밥
- JanusWebRTCServer
- VARCHAR (1)
- PersistenceContext
- 헥사고날아키텍처 #육각형아키텍처 #유스케이스
Archives
너와 나의 스토리
[컴퓨터 보안] 보안 개념 & 기초 본문
반응형
보안 요구조건: CIA + AA
- Confidentiality(기밀성): 허가받은 사람만 정보를 볼 수 있어야 한다.
- 예: 성적표
- Integrity(무결성):
- Data integrity: 변경된 사실을 확인할 수 있어야 하고, 정보는 사전에 정의된(허가된)대로만 변경되어야 한다.
- System integrity: 허가 받지 않은 사람은 변경할 수 없어야 한다.
- 예: 약 정보
- Availability(가용성): 정상적인 사용자에게 서비스가 정상적으로 제공이 되어야 한다.
- 예: 인증 시스템에 제대로 작동되야 함
- Accountability: 책임 소재를 밝힐 수 있다.
- Authenticity: 인증. 누가 진짜인지 확인할 수 있는 것
Threats and Attacks
- Threat: 잠재적인 공격(아직 공격이 들어오지 않았음)
- Attack: 이미 공격이 들어옴
Security Attacks
- passive attack: 공격이 일어난 후, 시스템이 변하지 않은 것
- 메시지 내용을 볼 수 있도록 해버림
- Traffic analysis: 예를 들어, 어떤 사이트에서 어떤 물건이 많이 판매되는지 알아감.
- active attack: 공격이 일어나면 시스템의 자원이 변조되는 것
- Masquerade(가면): 다른 사람인 척, 메시지 보내고 하는 것
- Replay: 어떤 데이터 복사해놓고 replay.
- 예:송금 한 번 한 거 복사해서 계속 반복
- Modification of messages: 메시지 내용 바꿔서 보내기
- Denial of service: 메시지 전송을 막음
- 클라이언트가 서버로부터 제대로된 서비스를 받을 수 없도록 막음
- -> Data Integrity, Availability(DoS), Authentication
Data confidentiality
- 위에 언급된 passive attack을 막는 것
- traffic analysis를 막기
- 즉, 허가 받은 사람만 볼 수 있어야 함. 다른 사람은 보면 안 됨
Data Integrity
- 메시지 자체, 혹은 메시지들 간의 관계(순서)가 유지돼야 함
Availability Service
- denial-of-service attack 공격을 제일 걱정
Authentication
- 통신이 진짜임을 증명하는 것, 가장하는 것을 막는 것
- Peer entity authentication: 사용자 인증
- Data origin authentication: 원본 데이터인지 인증
Nonrepudiation
- : 송신자(A)가 수신자(B)에게 무언가를 보냈을 때, B는 A가 자신에게 무언가를 보냈다(요청)는 사실을 입증할 수 있어야 함(발뺌하면 안 되니까). 반대도 마찬가지
- Accountability에서 가장 관심있는 것
Access Control
- 접근을 한정시키고 제어해야 함.
- 허가된 사람만 접근할 수 있어야 함(기밀성), 허가된 사람만 수정해야 함(Integrity)
Attack
- 기밀성 <-> release(passive)
- 무결성 <-> 변조
- 가용성 <-> DoS
- 인증 <-> 가장(masquerade)
- 상황:
- 즉, 어떤 사용자가 메시지를 보냈는데, 그걸 보기만 하면->passive attack
- 그걸 못가게 막으면 -> DoS
- 아예 보내지도 않았는데 만들어서 보내는 것 -> 가장
- 메시지를 중간에 가로채서 변조한 뒤 보내는 것 -> 변조
- 메시지를 반복해서 계속 보냄 -> replay
Security Mechanism
- passive attack 막는 법: 암호화(Encryption)
- 무결성과 인증을 동시에 해결하는 법 2가지:
- Message Authentication Code(MAC)
- Digital signature
- 책임 소재를 확인하는 법:
- Nonrepudiation
- Digital signature로 가능
- Nonrepudiation
근본적인 보안 디자인 원칙
- Economy of mechanism
- 가능한 간단하게 설계하기
- Fail-safe defaults
- Access decision은 배제하는 것을 디폴트로 생각해야 함.
- 즉, 기본적으로 다 접근 못하게 하고, 접근 가능한 것을 정의하는 게 안전
- Complete mediation
- 자원에 따라 각각 따로 접근 정의해야함.
- Open design
- 공개를 해서 취약점을 여려 명이 파악하는 게 좋음
- 예: AES는 NIST에서 암호 공모해서 만든 것
- Separation of privilege
- 권한을 세분화하자
- 한 가지 권한으로 한 가지 일만 할 수 있거나,
- 한 가지 일을 하기 위해 여러 가지 권한을 다 가져야 하게끔 구현해야 함
- Least privilege
- 최소한의 구너 한 만 주기
- Least common mechanism
- 다른 사용자들이 기능 공유하는 것을 최소화하라
- 의도치 않게 정보 유출되는 것을 막을 수 있음
- Psychological acceptability
- 가능하면 security mechanism은 사용자들에게 최대한 투명해야 한다.
- 즉, 사용자들은 보안이 이루어지는데 잘 모르도록 해야 편하다(편의성)
- Isolation
- public access system은 critical resources와 분리되어야 한다.
- Encapsulation
- 내부 구조를 사용자에게 보여주지 않음
- Modularity
- 모듈별로 설게. 한쪽에서의 오류가 다른 족에 영향을 안 주도록
- Layering
- 여러 개의 겹치는 부분이 있음. 대체될 수 있도록
- Least astonishment
- 사용자를 놀라게 하면 안 됨
- 사용자가 직관적으로 접근할 수 있도록 설계
Attack Surfaces
- 시스템에 활용 가능한 취약점들
- 공격자가 공격할만한 표면
- 예: 사용하지 않은 port가 열려 있는 경우
출처:
- [Cryptography and Network Security: Principles and Practices]
반응형
'Computer Security' 카테고리의 다른 글
[컴퓨터 보안] Public Key Cryptography(공개키 암호) and RSA (0) | 2020.12.01 |
---|---|
[컴퓨터 보안] Access control and User authentication (0) | 2020.10.27 |
[컴퓨터 보안] 암호모듈 검증제도, 한국표준블록암호, SEED/ARIA/LEA (0) | 2020.10.25 |
Block Cipher Operation - ECB/CBC/CFB/OFB/CTR (0) | 2020.10.25 |
[컴퓨터 보안] AES 개념과 구조 (2) | 2020.10.24 |
Comments