일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 게임 개발
- Multiplay
- gas
- rpc
- 보안
- nanite
- Unreal Engine
- gameplay ability system
- animation
- ability task
- CTF
- 언리얼엔진
- UI
- 언리얼 엔진
- map design
- 게임개발
- stride
- network object pooling
- os
- gameplay effect
- 유니티
- gameplay tag
- photon fusion2
- attribute
- listen server
- Replication
- Aegis
- local prediction
- MAC
- unity
- Today
- Total
Replicated
암호툴, 암호 알고리즘, 암호 프로토콜, 암호 기본 원칙 본문
공격 유형
수동적 공격(Passive Attack)
- 도청에 의한 내용 파악
- 트래픽 분석(Traffic Analysis)
능동적 공격(Active Attack)
- 변조 공격 (Modification)
- 삽입 공격 (Insertion)
- 삭제 공격 (Deletion)
- 재생 공격 (Replay)
- 서비스 거부 공격 (Denial-of-Service)
암호 시스템 적용 대상
- 기밀성 (Confidentiality)
- 메시지 무결성 (Integrity)
- 메시지 인증 (Message Authentication)
- 인증(사용자/사물) (Authentication)
- 부인방지 (Non-repudiation)
정보보호 3대요소
- 기밀성(Confidentiality) : 메시지 못보게
- 무결성(Integrity) : 변조되지 않도록
- 가용성(Availability) : 필요할 때 언제든
6대 원칙? (나머지는 여기 저기서 말하는게 다름)
- 인증성(Authenticity) : 누가 보낸 건지 확인, 본인이 맞음을 확인 가능해야 함
- 책임추적성(Accountability) : 언제, 어떤 방식으로 메시지를 보냈는지 추적 가능해야 함
- 부인방지(Non-repudiation) : 자신이 보내지 않았다고 부인할 수 없어야 함
암호툴(Cryptographic tools)
사용 툴: 난수 발생기
사용 사례: 난수생성
필요 분야: 암호화 키(비밀키)의 초기 생성
종류
TRNG(True Random Number Generator, 진 난수 발생기)
- 실제적으로 랜덤한 소스를 입력으로 사용
- 키보드 입력 타이밍 패턴 및 마우스 움직임
- 디스크의 전기적 활동, 시스템 클럭의 순간 값 등
PRNG(Pseudo Random Number Generator, 의사 난수 발생기)
- 고정값 seed, 결정적 알고리즘으로 출력 비트열 생성
- 제한이 없는 비트열 생성에 사용
- 알고리즘과 seed를 알고 있는 공격자는 비트열 재생성이 가능!
PRNG 요구사항
임의성
- 생성된 비트 스트림이 결정적일지라도 랜덤하게 보여야 함
- 비트열이 랜덤 -> 무작위로 추출된 어떤 비트열도 랜덤해야 함
비예측성
- 수열의 잇따른 다음 수의 순서에 대해 예측 불가
- 이전 비트 정보로 다음 출력 비트 예측 불가
- 생성된 어떤 값의 정보를 통해서도 seed 결정 불가
Seed 요구사항
- 예측 불가. (TRNG로 시드 생성)
Hybrid PRNG
- TRNG: 짧은 길이의 랜덤 밸류 생성
- PRNG: TRNG로 만든 랜덤 밸류를 Seed로 사용하여 PRN 생성
사용 툴: 해시함수
사용 사례: 데이터 압축
필요 분야: 임의의 길이 입력 데이터 처리
암호학적 해시 함수의 필요 조건
- 충돌 저항성 (Collision Resistance) - 서로 다른 입력으로 같은 값을 찾을 수 없어야 함
- 역상 저항성 (Preimage Resistance) - 출력으로 입력을 찾을 수 없어야
- 제2 역상 저항성 (Second Preimage Resistance) - 출력이 같은 입력을 찾을 수 없어야
사용 툴: 일방향 해시 함수
사용 사례: 일방향 연산
필요 분야: 패스워드 저장
- 계산하기는 쉽지만 역을 구하는 것이 어려운 함수, 결과값이 주어졌을 때 입력값을 구하는 것이 어려운 함수
안전하지 않거나 오래된 암호화 도구가 많음
암호화 툴 사용 전 권고 사항을 꼭 살펴야 함
암호 알고리즘
키생성 - 암호키 생성에 사용
데이터 암호화 - 데이터 기밀성 보장을 위한 암호화에 사용
메시지 인증 - 데이터 무결성 보장을 위한 메시지 인증 코드 생성에 사용
키 생성
- 암호 키
- 데이터 암호화 또는 데이터 무결성 검증에 사용할 검증 값 생성
- 데이터 복호화 또는 데이터 무결성 검증 값 검증에 사용
데이터 암호화
- 데이터 기밀성 보장을 위한 암호화에 사용
- 대칭키, 공개키
메시지 인증
- 데이터 무결성 보장을 위한 메시지 인증 코드(MAC) 생성에 사용
데이터 암호화 -> 데이터의 기밀성만 보장
데이터 인증 -> 데이터의 무결성만 보장
암호 프로토콜 (Cryptographic protocols)
- 특정 보안 조치를 실행하는 구체적인 프로토콜
- 암호 알고리즘과 암호 툴을 결합한 대화형 시퀀스
- 사용자 인증, 키 교환
사용자 인증의 예
- 클라이언트는 비밀키를 서버로 전송
- 서버는 수신한 비밀키, 저장된 비밀키 비교
-> 공격자가 통신회선 도청으로 키 획득 및 재사용 가능
키를 암호화하여 전송하면?
- 데이터 암호화는 데이터 인증을 제공하지 않음
-> 재사용
안전한 사용자 인증의 예
- 서버는 랜덤한 값을 클라이언트에 전송
- 클라이언트는 비밀키로 응답값 만듦
- 클라이언트는 응답값을 서버에 전송
- 서버는 응답값 검증
독자적인 암호 알고리즘과 암호 프로토콜을 구축하는 건 위험
안전성이 검증된 표준 암호 알고리즘과 암호 프로토콜을 사용해야 함
암호 기본 원칙(Fundamental crypto principles)
- Kerckhoffs' principle: 암호 알고리즘은 알고리즘의 모든 내용이 공개되어도 키가 노출되지 않으면 안전해야 함. 암호 알고리즘의 안전성은 키의 비밀(secrecy)에만 의존해야 하며 암호 알고리즘의 비밀에 의존하지 않아야 함
- Sufficient key space principle: 암호 알고리즘에서 사용하는 키의 범위는 충분히 커야 함
Kerckhoffs' principle -> 비밀 데이터가 적어질수록 전체적인 안전성은 높아짐
- 보안성 강화(Increased security) : 시스템에 비밀이 적을수록 더 쉽게 보호 가능
- 견고성 향상(Increased robustness) : 알고리즘 변경보다 키 변경이 더 쉬움
- 신뢰성 향상(Increased reliability) : 암호 전문가들이 모인 커뮤니티에서 공개된 시스템 검증
Sufficient key space principle
- 전수조사 공격에 대비
- 침입자가 평문-암호문 쌍을 알고 있으면 모든 키를 대입할 수 있음
'스마트카 소프트웨어 보안' 카테고리의 다른 글
자율주행자동차 (0) | 2025.04.13 |
---|---|
위협 모델링 - DFD, STRIDE, DREAD (0) | 2025.04.13 |
소프트웨어 개발 보안 방법론, MS-SDL (1) | 2025.04.12 |
사이버 킬 체인(Cyber-Kill Chain) (0) | 2025.04.12 |
보안 사고 사례, 공격자 관점, 방어자 관점 (0) | 2025.04.12 |