y-seo
y-seo의 딩코 기록들
y-seo
  • 분류 전체보기 (175)
    • Computer Science (49)
      • Database Design & Query Lan.. (10)
      • Network Security (16)
      • Software Engineering (6)
      • Computer Network (17)
    • Spring (50)
      • Spring-Basic (11)
      • SpringBoot-AWS (7)
      • SpringBoot&JPA (22)
      • 토비의 스프링 (3)
      • + α (7)
    • Cloud (22)
      • AWS (4)
      • GCP (1)
      • ElasticSearch (17)
    • Test (3)
    • Project (4)
    • Algorithm (24)
      • 개념 (9)
      • 문제풀이 (15)
    • AI (3)
      • About (2)
      • AIDU ez (1)
    • IT (5)
      • SQLD (4)
      • ADsP (1)
    • Error (4)
    • ETC (1)
    • Review (8)
    • Free mover (1)
    • Frontend (0)
      • Next.js (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

최근 글

최근 댓글

전체 방문자
오늘
어제

태그

  • JPA
  • 네트워크보안
  • 자바
  • algorithm
  • 보안
  • 김영한
  • 인프런
  • 백준
  • springboot
  • baekjoon
  • 스프링
  • 파이썬
  • Spring
  • 네트워크
  • java
  • 컴퓨터 네트워킹 하향식 접근
  • 알기 쉬운 정보보호개론 3판
  • Python
  • 스프링부트
  • 알고리즘

티스토리

hELLO · Designed By 정상우.
y-seo

y-seo의 딩코 기록들

[CS][네트워크보안] Chapter2. 암호의 세계
Computer Science/Network Security

[CS][네트워크보안] Chapter2. 암호의 세계

2023. 10. 13. 04:14
 
 

통신에서의 참여자 및 주요 공격 유형

  • 송신자 : 메세지를 보내는 사람
  • 수신자 : 메세지를 받는 사람
  • 주요 공격 유형
    • 도청 (Eavesdrop) : 데이터를
      • 방지하려면 암호화를 해야함
      • 그러나 복화화를 위한 키 공유도 노출될 수 있음 (취약점)
    • 위/변조 : 가로채기

 

 
 

암호화와 복호화

  • for 공격 방지
  • 평문 (plaintext) : 암호화 하기 전의 메세지, 암호문을 푼 것
  • 암호문 (ciphertext) : 암호화 한 후의 메세지
  • 암호 기술 : 중간의 도청자가 암호문을 가로챈다 해도 비밀값을 모른다면 암호문을 평문으로 복호화 할 수 없도록 하는 기술, 도청 방지를 위해, 기밀성을 위한 기술
  • 보안 프로토콜 : 어떻게 암호화할지 송수신자가 미리 약속해야 함

 

 
 

암호 해독 (Crptanalysis)

  • 정당한 수신자가 아닌 공격자가 암호문으로부터 평문을 알아내려고 하는 행위
  • 공격자가 아닌 연구자도 암호 해독을 할 수 있음
  • 암호 해독 전략
    • Ciphertext-only Attack : 암호문만을 이용해 키를 찾는 전략 (=평문을 찾는 전략)
    • Known Plaintext Attck : 평문과 암호문의 쌍을 가지고 키를 찾는 전략
    • Chosen Plaintext Attack : 공격자가 선택한 평문과 그 평문의 암호문을 갖고 키를 찾는 전략
    • Chosen Cyphertext Attack : 공격자가 선택한 암호문과 그 암호문을 복호화한 결과인 평문을 갖고 키를 찾는 전략
  • 공격자의 입장 : 위 유형에서 위로 갈수록 난이도 ↑
  • 암호 알고리즘이 안전다하고 할 수 있는 조건
    • 암호를 깨는 데 드는 비용 > 평문의 가치
    • 암호 깨는데 걸리는 시간 > 평문의 수명

 

 
 

암호화와 복호화의 기호 표현

  • 암호화와 복호화는 함수로 나타낼 수 있음
  • 사용 기호
    • 평문 : P
    • 암호문 : C
    • 키 : K

  • 암호화
    • Encryption 
    • 입력 : 평문
    • 출력 : 암호문

  • 복호화
    • Decryption 
    • 입력 : 암호문
    • 출력 : 평문

 

 
 

대칭키 암호화 공개키 암호

  • key
    • 데이터를 암호화 or 복호화하기 위해 필요한 비밀값
    • 복호화에 쓰이는 키 : 해당 사용자들만 소유하거나 알고 있게끔 매우 잘 관리해야 함
  • 대칭 암호
    • 암호 알고리즘 : 암호화에 쓰이는 키 = 복호화에 쓰이는 키
    • 주로 데이터 암호화 시 사용
  • 비대칭 암호 (공개키 암호)
    • 암호 알고리즘 : 암호화에 쓰이는 키 ≠ 복호화에 쓰이는 키
    • 주로 대칭암호에 사용되는 키를 암호화하는데 사용 (key 공유를 위해)
    • 암호화에 쓰이는 키는 공개하기 때문에 공개키라고 함
    • 단점 : 느리고 제한적
  • 하이브리드 암호
    • 공개키 암호 + 대칭 암호
  • 맨 처음에는 key를 공유해야 함 → Bob이 key를 2개 만듦 (for 암호화 & 복호화) → 암호화 할 때 쓰는 key를 Bob이 Alice에게 그냥 보냄 (앞으로 그렇게 하라고) → Bob이 가진 복호화 key로 Alice에게 받은 data를 복호화 가능

 

 
 

일방향 해시 함수

  • 무결성을 위해
  • 함수 H(x)에 대해, x가 임의의 길이라도 함숫값의 길이는 항상 일정할 때, 이 함수를 해시 함수라 함ㅁ
  • n : 1 함수 (1개의 함숫값에 대응되는 x 값이 多)
  • 해시 함수 예시
    • H(x)=x의 각각의 바이트를 모두 XOR 연산한 값
    • H(x)=x의 처음 10bit
    • 위 예시는 안전한 해시 함수 X
  • 입력 값이 모든 디지털 데이터 가능, 아무 값도 넣지 않은 경우도 계산할 수 있어야 함
  • 해시 함수를 통과시킨 함숫값 : Hash Value, Fingerprint, Message digest

 

 
 

해시 함수와 메세지 인증 코드

  • " 원본 msg + hash 값 "을 같이 받아 hash 값이 맞는지 비교 
    • 문제점 : 내용이 안 바뀐 것은 검증이 되지만, 보낸 사람이 누군지는 모른다
    • 해결을 위해 MAC 도입
  • MAC : 발신자 인증을 하기 위한 메세지 인증 코드
    • 받는 사람만 확인 가능
    • MAC을 생성하기 위해 메세지와 키 값이 해시 함수에 입력됨
    • MAC을 이용해 메세지가 전송 과정에서 변하지 않았다는 것과 해당 사람이 송신자임을 검증할 수 있음
  • False Negative : 공격인데 공격이 아니라고 판단하는 것
    • 메세지는 조작하고 해쉬값은 잘 나오게 할 수 있음

 

 
 

디지털 서명

  • Bob 말고도 다른 사람도 확인 가능하게 하기 위해
  • 무결성을 위해
  • 메세지의 출처와 메세지 내용에 대한 확신을 위한 과정
  • 공개키 암호 시스템 사용 : 비밀키를 이용하여 서명 → 공개키를 이용해 서명을 검증
    • 비밀키를 갖고 있는 사람만 서명 가능 → 서명한 사람이 누구인지 쉽게 검증 가능
  • 암호화 알고리즘 X
    • 문서 전체를 비밀키를 이용해 암호화하면 시간이 오래 걸리므로 보내는 사람이 자신의 비밀키로 문서의 해시값을 암호화함

 

 
 

난수 및 의사 난수 생성기

  • 현재 사용되고 있는 대부분의 보안 프로토콜에서 사용
  • 사용 예시
    • 암호 알고리즘에서 각종 키 생성
    • 프로토콜에서 재전송 공격을 막기 위한 방법
  • 난수 : 예측 불가능성과 무작위성을 만족하며 생성된 수
    • 예측 불가능성 : 그동안 뭐가 나왔든 간에 앞으로 뭐가 나올지 모르는
    • 무작위성 : 모든 수가 나올 확률이 같은
  • 난수 알고리즘 : 입력이 항상 달라야 (보통 시간 값) 알고리즘에 따라 나오는 값이 다름
  • 의사 난수 스트림 (Pseudo Random Number Stream) : 예측 불가능성과 무작위성을 완벽하게 만족하지는 않고 수열이 반복되기는 하지만 (주기O) 충분히 수열이 길고 불규칙해 어느정도는 난수 성질을 만족하는 수열, 주로 무선 통신에 사용
    • Pseudo Random Number Generator : 의사 난수 스트림을 생성하는 알고리즘, 의사 난수 생성기

 

 
 

난수를 이용한 재전송 공격 방지 방법 예시

  • K : Alice와 Bob만 공유하고 있는 값
  • 난수를 사용하지 않았을 때, Replay Attack

  • 난수를 사용할 때 : 위의 상황 해결 가능

 

 
 

보안 위협 완화를 위한 암호 기술 사용 예시

  • 보안을 위해 사용되는 암호 기술
    • 대칭암호 / 공개키 암호
    • 일방향 해시함수
    • 메세지 인증 코드 / 디지털 서명
    • 의사 난수 생성기
  • 보안 위협을 완화시킬 전략
보안 위협 위협 받는 특성 방지를 위한 암호기술
도청 기밀성 대칭 암호 / 공개키 암호
메세지 변경 무결성 메세지 인증 코드 / 디지털 서명
(+ 대칭 암호 / 공개키 암호 / 일방향 해시 함수)
위장 인증 메세지 인증 코드 / 디지털 서명
(+ 대칭 암호 / 공개키 암호 / 일방향 해시 함수)
부인 부인 봉쇄 디지털 서명

 

 
 

스테가노그라피와 디지털 워터마킹

  • 스테가노그래피 (steganography)
    • 기밀성 중시할 때는 사용 X
    • 메세지 내용을 읽지 못하게 하는 것이 아니라, 메세지의 존재 자체를 숨기는 기법
    • 메세지를 숨겨 넣는 방법을 알게 되면 메세지 내용은 금방 노출
    • 예시 : 이합체시, 디지털워터마킹
  • 디지털 워터마킹
    • 저작권자를 확인할 수 있는 특정 마크를 삽입해 불법 복제를 방지하는 기술
    • 오디오, 비디오, 이미지 등 디지털 데이터에 특정 마크 삽입 가능
    • 불법 복제 시 소유권 정볼르 추적 가능
    • 워터마크 삽입 방법 : 공간 or 시간 or 주파수 영역에

 

 
 

암호와 보안 상식

  • 비밀 알고리즘을 사용하지 말 것
    • 테스트를 안해봐서 안전한지 모름
    • 대칭키 암호의 안전성은 키를 비밀로 함으로써 지켜지는 것
    • 암/복호화 알고리즘은 오히려 공개되는 것을 권장
  • 약한 암호화 알고리즘은 사용하지 말 것
    • 공격자가 암호문을, 혹은 평문과 암호문의 쌍을 갖고 있더라도 키를 알아내지 못하도록 해야 함
    • 강한 암호화 알고리즘 : AES, 3DES
  • 어떤 암호라도 언젠가는 해독된다
  • 암호는 보안의 아주 작은 부분이기 때문에 완벽한 보안을 위해서는 암호 기술 외에 다른 여러 가지 요소들도 고려해야 함 : 키&사람 관리, 알고리즘만 믿지 않기
저작자표시 (새창열림)

'Computer Science > Network Security' 카테고리의 다른 글

[CS][알기 쉬운 정보보호개론 3판] Chapter05. 블록 암호 모드  (1) 2023.10.17
[CS][알기 쉬운 정보보호개론 3판] Chapter04. 대칭 암호  (0) 2023.10.16
[CS][네트워크보안] Chapter03. 암호의 역사  (2) 2023.10.14
[CS][네트워크보안] Chapter1. 스마트 시대와 정보 보호  (1) 2023.10.09
[CS][네트워크보안] "네트워크보안" 수강을 시작하며  (0) 2023.10.08
    'Computer Science/Network Security' 카테고리의 다른 글
    • [CS][알기 쉬운 정보보호개론 3판] Chapter04. 대칭 암호
    • [CS][네트워크보안] Chapter03. 암호의 역사
    • [CS][네트워크보안] Chapter1. 스마트 시대와 정보 보호
    • [CS][네트워크보안] "네트워크보안" 수강을 시작하며
    y-seo
    y-seo

    티스토리툴바