암호화

  • 암호화: 원문 데이터를 알아볼 수 없는 형태로 변경

  • 복호화: 암호화된 데이터를 원문 데이터로 되돌리는 과정

대칭 키 암호화

  • 암호화와 복호화에 동일한 키 사용

  • 키 전달이 어렵고, 유출 시 큰 문제 발생

비대칭 키 암호화

  • 암호화와 복호화에 다른 키 사용

  • 공개 키와 개인 키의 쌍으로 구성

디지털 서명

  • 디지털 서명은 전자 문서나 메시지에 대한 서명

  • 발신자의 신원을 확인하고 데이터의 무결성을 보장하는 암호화 기술

  • 발신자의 신원을 확인할 수 있음(신원 확인)

  • 발신자는 자신의 개인 키로 서명했기 때문에 서명을 부인할 수 없음(부인 방지)

작동 원리

image

  1. 키 쌍 생성:
    • 비대칭 키 암호화 방식을 사용하여 공개 키와 개인 키의 쌍을 생성
  2. 서명 생성:
    • 발신자는 서명할 메시지의 해시 값을 생성
    • 이 해시 값을 개인 키로 암호화하여 디지털 서명을 생성
  3. 서명 전송:
    • 암호화된 해시 값(디지털 서명)과 원본 메시지를 수신자에게 전송
  4. 서명 검증:
    • 수신자는 발신자의 공개 키를 사용하여 디지털 서명을 복호화함
    • 복호화된 해시 값과 수신한 메시지의 해시 값을 비교하여 일치 여부를 확인

사용 사례

  • 전자 계약: 계약서에 디지털 서명을 사용하여 법적 효력을 부여

  • 소프트웨어 배포: 소프트웨어의 출처를 확인하고 변조되지 않았음을 보장

  • SSL/TLS 인증서: 웹사이트의 신뢰성을 보장하기 위해 사용

인증서

  • 공개 키 인증서는 공개 키와 그 유효성을 입증하는 전자 문서를 뜻함

  • 제3의 인증 기관(CA: Certification Authority)에 의해 발급됨

  • 공개 키의 신뢰성 확인, 키 전송 중 조작 여부 검증, 키의 유효 기간 확인을 위해 사용됨

검증과정

image

  1. 서버 측 CA(인증기관)의 개인 키로 인증서 내용의 해시 값 암호화

  2. 서명 값 생성 후 전달

  3. 클라이언트 측에서 CA의 공개 키로 서명 값 복호화
    (CA의 개인 키는 웹 브라우저(chrome, edge 등등)에 포함되어 있음!)

  4. 복호화된 해시 값과 실제 인증서 해시 값 비교

HTTPS 보안

HTTP vs HTTPS

  • HTTP: 평문 데이터 전송, 보안 취약

  • HTTPS: 인증서와 디지털 서명을 통한 보안 통신

HTTPS 인증 절차

image

  1. 서버가 CA에 인증서 발급 요청

  2. CA가 서버 정보 검증 및 인증서 발급

  3. 웹 브라우저에 CA 공개 키 제공

  4. 클라이언트-서버 간 안전한 대칭키 교환

취약점 대응 방안

기본 방안

  • 정기적인 인증서 갱신
    • 인증서는 유효 기간이 있으며, 만료된 인증서는 신뢰성을 잃기에 정기적으로 인증서를 갱신하여 보안을 유지해야 함
  • 강력한 암호화 알고리즘 사용
    • 최신의 강력한 암호화 알고리즘을 사용하여 데이터 보호를 강화!
    • 예를 들어, AES(Advanced Encryption Standard)와 RSA(Rivest-Shamir-Adleman) 알고리즘을 활용가능
  • 취약한 암호화 방식 지속적 제거:
    • 보안 취약점이 발견된 암호화 방식은 즉시 제거하고, 이를 대체할 수 있는 안전한 방법을 찾아야 함
    • 예를 들어, MD5와 SHA-1은 더 이상 안전하지 않으므로 사용을 중지!
  • 다중 인증 메커니즘 도입:
    • 사용자 인증을 강화하기 위해 다중 인증(Multi-Factor Authentication, MFA) 방식을 도입
    • 예를 들어, 비밀번호 외에 SMS 인증, 생체 인식 등을 추가하여 보안을 강화하는 방식

실무 적용

  • 인증서 만료 모니터링:
    • 인증서의 만료일을 주기적으로 확인하고, 만료 전에 갱신할 수 있도록 모니터링 시스템을 구축해야 함
  • 키 길이와 암호화 강도 관리:
    • 사용 중인 암호화 키의 길이와 강도를 정기적으로 검토하고, 필요 시 강도를 높여 보안을 강화함
    • 예를 들어, 2048비트 이상의 RSA 키를 사용하기
  • 신뢰할 수 있는 CA 선정:
    • 인증서를 발급받기 위해 신뢰할 수 있는 인증 기관(CA)을 선택해야 함
    • CA의 신뢰성은 인증서의 신뢰성에 직접적인 영향을 미침
  • 정기적인 보안 감사:
    • 시스템의 보안 상태를 정기적으로 점검하고, 취약점을 발견하여 개선하는 보안 감사 프로세스를 운영해야함

트렌드

  • 양자 암호화 기술 연구:
    • 양자 컴퓨팅의 발전에 따라 양자 암호화 기술이 주목받고 있음
    • 기존의 암호화 방식보다 훨씬 높은 보안성을 제공함
  • 블록체인 기반 분산형 인증 시스템:
    • 블록체인 기술을 활용하여 중앙 집중식 인증 시스템의 취약점을 보완하는 분산형 인증 시스템이 연구되고 있음
  • AI 활용 이상 징후 탐지:
    • 인공지능(AI) 기술을 활용하여 시스템에서 발생하는 이상 징후를 실시간으로 탐지하고 대응하는 방법이 개발되고 있음
    • 보안 사고를 사전에 예방하는 데 매우 효과적임
  • 생체인증과의 통합:
    • 생체인증 기술(지문, 얼굴 인식 등)을 기존 인증 시스템에 통합하여 보안을 강화하는 추세