암호화에 대한 깊은 사이버 보안 관점
Source: Dev.to
암호화: 양방향 보호
암호화는 읽을 수 있는 데이터를 읽을 수 없는 암호문으로 변환합니다. 올바른 키가 있으면 다시 복원할 수 있습니다.
대칭 암호화
하나의 키로 데이터를 암호화하고 복호화합니다.
일반적인 사용 사례
- Wi‑Fi
- VPN
- 디스크 암호화
- TLS 세션
알고리즘
- AES – 현대적이고 빠르며 안전한 대칭 표준.
- DES – 오래된 암호; 키 길이가 너무 짧아 더 이상 안전하지 않음.
- 3DES – 개선된 DES이지만 여전히 구식; AES보다 느리고 약함.
비대칭 암호화
공개 키로 암호화하고 개인 키로 복호화합니다.
일반적인 사용 사례
- HTTPS
- 디지털 서명
- 신원 검증
- 보안 이메일
알고리즘
- RSA – 널리 알려진 신뢰성 높은 알고리즘이지만, 최신 시스템보다 느리고 오래됨.
- ECC (Elliptic Curve Cryptography) – 작은 키로 동일한 강도를 제공하는 현대적인 비대칭 시스템, 더 빠르고 가벼움.
블록 암호 모드 (블록 암호가 작동하는 방식)
AES와 같은 블록 암호는 고정 크기의 데이터 조각을 암호화합니다; 모드는 더 긴 메시지를 처리하는 방법을 정의합니다.
- CBC (Cipher Block Chaining) – 각 블록이 이전 암호문 블록과 결합됩니다. 패딩 오라클 공격에 취약하며 구식으로 간주됩니다.
- GCM (Galois/Counter Mode) – 카운터 모드 암호화에 무결성 검사가 내장되어 기밀성, 무결성, 인증을 제공합니다. 현대 TLS에서 표준으로 사용됩니다.
TLS 핸드셰이크
TLS 핸드셰이크는 데이터를 교환하기 전에 암호화를 안전하게 협상합니다.
- 암호화 알고리즘 합의
- 공개 키 교환
- 인증서 검증
- 임시 대칭 세션 키 생성 (이후 모든 데이터에 사용)
암호 스위트
암호 스위트는 TLS 세션에서 사용되는 알고리즘(키 교환, 암호화, 해싱 등)을 지정하는 미리 정의된 “레시피”입니다.
전형적인 최신 스위트:
- ECDHE – 키 교환
- AES‑GCM – 암호화
- SHA‑256 – 무결성
TLS, 인증서, 키, 신뢰
TLS (Transport Layer Security)
클라이언트와 서버 사이에 암호화된 연결을 제공하며, AES, RSA/ECC, 인증서, 키 교환을 결합합니다.
SSL
TLS의 이전 버전; 현재는 안전하지 않다고 간주됩니다.
키 교환 방법
- DH (Diffie–Hellman) – 비밀을 직접 전송하지 않고도 불안전한 네트워크에서 공유 비밀을 생성합니다.
- ECDH (Elliptic Curve Diffie–Hellman) – 더 작은 키와 비트당 향상된 보안을 제공하는 동일한 개념.
PKI (Public Key Infrastructure)
구성 요소
- 인증서
- 인증 기관(CA)
- 신뢰 체인(루트 → 중간 → 서버)
- OCSP (Online Certificate Status Protocol)
- CRL (Certificate Revocation List)
루트 신뢰 – 장치는 내장된 신뢰할 수 있는 CA 목록을 저장하며, 신뢰된 CA가 발급한 인증서는 모두 허용됩니다.
EV 인증서 – Extended Validation; 더 강력한 신원 확인을 제공하지만 암호 보안은 동일합니다.
인증서 고정 (Certificate Pinning) – 애플리케이션이 특정 인증서 또는 키만을 신뢰하도록 하여 가짜 인증서를 방지합니다.
키 수명 주기
- 생성
- 안전한 저장
- 교체(회전)
- 만료
- 안전한 파기
코드 서명
소프트웨어는 개인 키로 서명되며, 시스템은 실행 전에 서명을 검증하여 악성 코드 위장을 방지합니다.
인증 및 신원 보안
- Kerberos – Windows 네트워크용 인증 프로토콜.
- WPA3 – 최신 보안 Wi‑Fi 프로토콜.
- Password‑Based (PB) – 비밀번호 기반 시스템을 총칭하는 용어.
- SAML – 오래된 엔터프라이즈 신원 프로토콜.
- OAuth 2 – 현대 애플리케이션용 권한 부여 프레임워크.
- OIDC (OpenID Connect) – OAuth 2 위에 구축된 신원 계층.
- Identity Provider (IdP) – 사용자의 신원을 확인해 주는 서비스.
- SSO (Single Sign‑On) – 한 번 로그인하면 여러 애플리케이션에 접근 가능.
- JWT (JSON Web Token) – 웹 시스템에서 사용되는 토큰 형식.
- Access Tokens – API 접근을 위한 단기간 유효 토큰.
- Federation – 시스템 간 신원 정보를 공유하는 방식.
위협 모델링 및 위험 용어
- STRIDE – 위협 카테고리: Spoofing(스푸핑), Tampering(변조), Repudiation(부인), Information disclosure(정보 유출), Denial of service(서비스 거부), Elevation of privilege(권한 상승).
- DREAD – 오래된 위협 점수 모델.
- Attack Trees – 공격자가 목표에 도달하는 경로를 시각화한 모델.
- Kill Chain – 공격 단계들.
- MITRE ATT&CK – 공격 기술 데이터베이스.
- Attack Surface – 공격자가 진입을 시도할 수 있는 모든 지점.
취약점 및 위험 지표
- CVE – 알려진 취약점에 대한 공개 식별자.
- CVSS – 취약점 심각도를 나타내는 점수 체계.
- NVD – National Vulnerability Database; 취약점 기록의 공식 저장소.
- Threat Agents – 공격을 수행할 수 있는 주체들.
- Risk Scoring – 상황의 위험도를 평가하는 방법.
인프라 및 접근 제어
- IAM (Identity and Access Management) – 사용자 신원 및 권한을 관리하는 프레임워크.
- ACLs (Access Control Lists) – 누가 어떤 자원에 접근할 수 있는지를 정의하는 목록.
- DMZ (Demilitarized Zone) – 공용 인터넷과 내부 네트워크를 분리하는 네트워크 구역.
재해 복구 용어
- RTO (Recovery Time Objective) – 허용 가능한 최대 다운타임.
- RPO (Recovery Point Objective) – 허용 가능한 최대 데이터 손실량.
- DR Site – 재해 복구를 위한 백업 위치.
- Backup Testing – 백업이 정상적으로 작동하는지 검증하는 절차.
암호화는 처음에 압도적으로 느껴질 수 있지만, 알고리즘, 키, 신뢰 계층이 어떻게 서로 연결되는지를 이해하면 시스템을 파악하기 쉬워지고 사이버 보안의 더 깊은 개념을 배우는 탄탄한 기반이 됩니다.