[컴퓨터 보안] 암호학 개요

유승환·2025년 3월 10일

컴퓨터 보안

목록 보기
1/2

🔒 암호학의 정의와 기본 개념


  • 암호학(Cryptography)은 고대 그리스어 Kruptós(비밀) + gráphō(쓰기)에서 유래되었다고 한다.
  • 암호학이란 적대적 행동이 존재하는 상황에서 안전한 통신을 위한 기술이라고 한다.
  • 암호학적 기본 요소(Cryptographic primitives)는 컴퓨터 보안 시스템을 위한 암호화 프로토콜을 구축하는 데 사용되는 잘 확립된 저수준 암호화 알고리즘이라고 한다.
    • primitive → 알고리즘이라고 생각하면 편함
    • 저수준의 암호화 알고리즘 → 보안 프로토콜과 시스템의 기초가 되는 기본적인 암호화 기법
  • 암호화 프로토콜은 보안 관련 기능을 수행하고 암호화 방법을 적용하는 추상적 또는 구체적 프로토콜이라고 한다.
    • protocol → 암호화된 데이터를 주고받는 규약

🤔 암호학의 주요 영역:


  • 대칭 암호화(Symmetric encryption)
    • 암호화와 복호화에 동일한 키를 사용하는 방식
  • 비대칭 암호화(Asymmetric encryption)
    • 공개키와 개인키라는 한 쌍의 키를 사용하는 방식
    • 공개키는 누구나 알 수 있지만, 개인키는 소유자만이 알고 있어야 함
    • 송신자는 수신자의 공개키로 평문을 암호화하고, 수신자는 자신의 개인키로 암호문을 복호화함. 또는, 송신자는 자신의 개인키로 메시지에 서명하고, 수신자는 송신자의 공개키로 서명을 검증할 수 있음.
  • 데이터 무결성 알고리즘(Data Integrity algorithms)
    • 데이터 무결성 알고리즘은 데이터가 전송 또는 저장 중에 변경되지 않았음을 확인하는 데 사용됨
  • 인증 프로토콜(Authentication protocols)
    - 사용자의 신원을 확인하는 데 사용됨
    📖 반드시 4가지로 grouping되는 것은 아님

🔐 컴퓨터 보안의 정의 (NIST):


컴퓨터 보안의 정의 (NIST): "자동화된 정보 시스템의 자원의 무결성, 가용성, 기밀성을 보존하기 위한 적용 가능한 목표를 달성하기 위해 제공되는 보호"

CIA 트라이어드:

  • 기밀성(Confidentiality): 정보 접근 및 공개에 대한 승인된 제한 유지
  • 무결성(Integrity): 부적절한 정보 수정이나 파괴로부터 보호
  • 가용성(Availability):
    • 정보에 대한 시기적절하고 신뢰할 수 있는 접근 보장
    • 어떤 서비스를 이용하려 했을 때, 해당 서비스가 사용자에게 적절하게 제공됨

CIA 트라이어드 확장 개념:

  • 진정성(Authenticity):
    • 진짜임을 확인하고 신뢰할 수 있는 속성
    • 사용자가 주장하는 대로인지 확인
    • 통신하는 상대방이 그 상대방이 맞는지
  • 책임성(Accountability): 행동을 특정 주체에 고유하게 추적할 수 있는 보안 목표, 시스템은 나중에 보안 침해를 추적하거나 거래 분쟁을 해결하기 위한 활동 기록 유지

🧐 보안 분야:


  • 사이버 보안: 사이버 환경과 조직 및 사용자 자산을 보호하기 위한 도구, 정책, 개념 등의 집합
  • 정보 보안: 정보의 기밀성, 무결성, 가용성 보존
  • 네트워크 보안: 네트워크와 서비스를 무단 수정, 파괴, 공개로부터 보호하고 네트워크가 중요한 기능을 올바르게 수행하도록 보장
  • 기타: 소프트웨어 보안, 웹 보안, 시스템 보안 등

🔫 위협과 공격:


  • 위협(Threat): 보안을 침해하고 해를 끼칠 수 있는 상황, 능력, 행동 또는 사건이 있을 때 존재하는 보안 위반의 잠재적 가능성
  • 공격(Attack): 지능적인 위협에서 파생된 시스템 보안에 대한 공격, 시스템의 보안 정책을 위반하고 보안 서비스를 회피하려는 의도적인 시도

⚙️ OSI 보안 아키텍처:


  • 보안 공격: 정보의 보안을 손상시키는 모든 행동
  • 보안 메커니즘: 보안 공격을 탐지, 방지, 복구하기 위한 프로세스
  • 보안 서비스: 시스템 보안을 강화하는 처리 서비스, 보안 공격에 대응하기 위한 것으로 하나 이상의 보안 메커니즘을 활용

🔫 보안 공격 유형:


  • 수동적 공격(Passive Attack):
    • 시스템에서 정보를 학습하거나 사용하려고 시도하지만 시스템 리소스에 영향을 주지 않음
    • 데이터 변경이 없어 감지하기 어려움
    • 예: 도청, 트래픽 모니터링
  • 능동적 공격(Active Attack):
    • 시스템 리소스를 변경하거나 작동에 영향을 주려는 시도
    • 데이터 스트림을 수정하거나 거짓 스트림을 생성
    • 다양한 물리적, 소프트웨어, 네트워크 취약점으로 인해 방지하기 어려움
    • 유형:
      • 가장(Masquerade): 한 개체가 다른 개체인 척함
      • 재생(Replay): 데이터 유닛을 수동적으로 캡처하여 재전송
      • 데이터 수정: 합법적인 메시지의 일부 변경, 지연, 재정렬
      • 서비스 거부: 통신 시설의 정상적인 사용이나 관리를 방해

🛅 보안 서비스:


  • 인증(Authentication):
    • 통신의 진정성 보장
    • 피어 엔티티 인증: 연결에서 피어 엔티티의 신원 확인
    • 데이터 원본 인증: 데이터 단위의 출처 확인
  • 접근 제어(Access Control):
    • 호스트 시스템과 애플리케이션에 대한 접근 제한 및 제어
    • 접근 권한을 개인에 맞게 조정하기 위해 각 엔티티는 식별되고 인증되어야 함
  • 데이터 기밀성(Data Confidentiality):
    • 수동적 공격으로부터 전송 데이터 보호
    • 트래픽 분석으로부터 트래픽 흐름 보호
    • 인가되지 않은 사용자로부터의 데이터 보호
  • 데이터 무결성(Data Integrity):
    • 메시지가 중복, 삽입, 수정, 재정렬 또는 재생 없이 전송된 대로 수신되도록 보장
  • 부인 방지(Nonrepudiation):
    • 송신자나 수신자가 전송된 메시지를 부인하지 못하게 함
    • 메시지 전송 시 수신자는 송신자가 실제로 메시지를 보냈음을 증명 가능
    • 메시지 수신 시 송신자는 수신자가 실제로 메시지를 받았음을 증명 가능
  • 가용성(Availability):
    • 시스템 가용성을 보장하기 위한 보호
    • 서비스 거부 공격으로 인한 보안 문제 해결

⚙️ 보안 메커니즘:


  • 암호화 알고리즘: 암호화, 암호학적 기본 요소, 암호화 알고리즘, 해시 알고리즘
  • 데이터 무결성: 데이터 단위의 무결성을 보장하기 위한 다양한 메커니즘
  • 디지털 서명: 데이터 단위의 출처와 무결성을 증명하고 위조로부터 보호
  • 인증 교환: 정보 교환을 통해 엔티티의 신원을 보장하기 위한 메커니즘
  • 트래픽 패딩: 트래픽 분석 시도를 좌절시키기 위해 데이터 스트림의 간격에 비트 삽입
  • 공증: 데이터 교환의 특정 속성을 보장하기 위한 신뢰할 수 있는 제3자 사용
  • 접근 제어: 리소스에 대한 접근 권한을 시행하는 다양한 메커니즘

📒 Kerckhoff의 원칙:


❗ 가장 중요함

  • 암호 시스템은 키를 제외한 모든 세부 사항이 공개적으로 알려져 있더라도 안전하도록 설계되어야 함

  • "암호 방식은 비밀일 필요가 없어야 하며, 적의 손에 들어가도 불편함 없이 사용할 수 있어야 한다."

  • 암호 방식의 보안은 알고리즘의 비밀성이 아닌 비밀 키에만 의존해야 함

    📖 알고리즘이 노출되더라도 알고리즘을 수정할 필요 X

profile
성실한 개발자를 목표로 하고 있습니다.

0개의 댓글