y-seo
y-seo의 딩코 기록들
y-seo
  • 분류 전체보기 (176)
    • 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 (1)
      • Next.js (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

최근 글

최근 댓글

전체 방문자
오늘
어제

태그

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

티스토리

hELLO · Designed By 정상우.
y-seo

y-seo의 딩코 기록들

[CS][알기 쉬운 정보보호개론 3판] Chapter10. 디지털 서명
Computer Science/Network Security

[CS][알기 쉬운 정보보호개론 3판] Chapter10. 디지털 서명

2023. 12. 6. 11:03

 

 
 

디지털 서명의 필요성

  • MAC을 이용한 메세지 인증의 한계
    • 제 3자에게 증명하기
    • 부인 방지 (Von-repudiation)이 불가능
  • 위의 문제가 발생하는 이유는 MAC이 대칭키 방식이기 때문이다.
    • MAC을 위해 사용되는 대칭키는 Alice와 Bob만이 공유하고 있고, 그 키를 갖고 있어야 증명과 검증이 가능하다.
    • 거꾸로 생각하면 그 키를 갖고 있지 않으면 검증이 불가능한 상황
  • 따라서 메세지 작성만이 서명하고, 누구나 검증할 수 있는 새로운 메세지 인증 시스템이 필요하다.
  • 공개키 암호화 방식은 누구나 암호화할 수 있고, 수신자만이 복호화 할 수 있는데 이것을 역이용하여 디지털 서명을 설계
    • 개인키로 나만 무결성을 증명 → 공개키로 다들 검증 가능 = 공개키 암호화 방식 사용
서명키 디지털 서명
Handwritten Signature Digital Signature
서명을 원본 문서로부터 분리할 수 없음 서명을 원본 문서로부터 분리가 가능함
서명 복제가 거의 불가능 서명 복사 가능
기존의 다른 서명과 비교 미리 정해진 알고리즘으로 검증

 

 
 

디지털 서명과 공개키 암호의 비교

  개인키(비밀키) 공개키
공개키 암호 수신자가 복호화에 사용 송신자들이 암호화에 사용
디지털 서명 서명자가 서명 작성에 사용  
→ 증명에 사용 검증자들이 서명 검증에 사용  
키는 누가 갖는가? 개인이 갖는다. 필요한 사람은 아무나 가지고 있어도 된다.

알기 쉬운 정보보호개론 3판

 

 
 

디지털 서명의 구조

  • 공인인증기관이 개입하게 되면
    1. 내가 메세지를 보낼 때 공개키와 공개키로 서명한 서명을 같이 보낸다.
    2. 공인인증기관이 공개키를 해시함수에 넣어본다.
    3. 공인인증기관이 나의 서명을 공인인증기관의 공개키로 복호화한다.

 

 
 

디지털 서명 방법

  • 메세지의 해시값에 서명하는 방법
    • 주로 사용
    • 메세지를 해시함수에 넣은 후, 그 해시값을 비밀키로 암호화한다.
  • 위 방법을 사용하는 이유
    • 공개키 암호화 방식을 사용하기 때문에 메세지를 암호화하는 것보다 크기가 매우 작은 해시값을 암호화하는 것이 훨씬 효율적이기 때문이다.
    • 전송하는 메세지의 크기와 관련하여 메세지 자체를 비밀키로 암호화하면 그 결괏값의 크기가 메세지와 거의 비슷하여 메세지와 서명을 보내기 위하여 원래 메세지 크기의 두 배만큼의 크기를 보내야 한다. 하지만, 해시값을 암호화하여 보내면 매우 작은 값만 원래 메세지와 같이 보내면 되기 때문에 전송량이 크게 줄어든다.
    • 작아서 더 효율적이라서
    • s가 원본 msg 사이즈와 별로 차이가 안나서

 

 
 

디지털 서명과 관련된 이슈

  • 기밀성 관련 이슈
    • 디지털 서명은 기밀성과 상관없기 때문에, 기밀성을 위해서는 추가로 암호화 해주어야 한다.
  • 서명을 다른 사람이 복사하여 재사용할 수 있는지 여부
    • 서명을 다른 문서에 재사용하면, 수신자가 검증하는 데에 실패하기 때문에 서명 재사용은 불가능 (가능은 한데 들통이 난다)
    • 재전송 공격에 취약하다. : M || $s_A$를 그대로 다시 보내면 된다.
  • 부인 방지 원리
    • 메세지에 서명을 할 수 있는 사람은 해당 비밀키를 가진 송신자 뿐이다. 또한, 공개키만 갖고 있으면 누구나 그 송신자가 보냈다는 것을 확인할 수 있다. 따라서 메세지와 서명을 함께 보내면 메세지를 보내지 않았다고 부인하는 것이 불가능해진다.
  • 종이서명 대체 여부
    • 1999년에 전자서명법이 제정되었으며, 손으로 종이에 서명한 것과 같이 취급하기 위하여(법적으로 인정) 등장했다.

 

 
 

디지털 서명의 사용 예시

  • 보안 공지
    • Ex. 경고 msg
  • 소프트웨어
    • 중요도 : 기밀성 < 무결성
    • SW가 많이 사용되면 공격자는 악성코드를 심고 싶어 하다. → SW가 진짠지 확인이 필요하다.
  • SSL/TLS
    • 웬만한 보안 통신 (msg authentication or 디지털 서명 사용)
  • 공개키 인증서 = 공인인증서
    • 내 공개키를 인증하는 것 + 진짜 너 것 맞아?(제3의 공인인증기관이 확인 = 공개키 인증서 : 나의 공개키, 나의 공개키의 서명 포함, 여기서 서명을 제3의 공인인증기관이 한 것)
    • 로그인에만 사용되는 것도 아니다.

 

 
 

Digital Signature Algorithm = DSA

  • RSA보다 안전하다.
  • NIST에서 채택한 표준 디지털 서명 알고리즘
  • 이산 로그 문제를 푸는 것이 어렵다는 것을 기반으로 한다.
    • g^x mod p = g 에서 x 구하기가 어렵다.
  • 난수를 사용하기 때문에, 같은 사용자가 같은 메세지에 서명하더라도 다른 서명값이 나올 수 있다.

 

 
 

디지털 서명에 대한 공격

  • 중간자 공격 (Man in the Middle)
    • 중간의 공격자가 본인이 Alice인 척 한다.
      • Alice의 공개키가 바뀌었다고($pk_D$) Bob에게 거짓말 한다.
      • Alice의 메세지를 받아 공격자의 비밀키로 서명하여 Alice인 척 Bob에게 보낸다.
    • 문제점 : $pk_D$가 Alice의 것이 맞는지 몰라서 발생하는 문제이다.
    • 수신자가 송신자 공개키를 정확히 알 수 없기 때문에 발생할 수 있다.
    • 이를 위하여 송신자의 공개키를 믿을 수 있는 제3자(공인인증기관)가 인증해주는 기법이 사용된다.
  • 잠재적 위조 (RSA 한정)
    • 해시함수를 안쓰는 경우
    • 어떤 무작위 비트열 S에 대하여, 이를 공개키로 RSA 암호화한 것을 M이라고 하자.
    • M을 비밀키로 암호화하면 S이다. = 그러면 M을 비밀키로 RSA S가 나오게 된다.
    • 만일 M에 의미 있는 내용이 있고, 공격자가 M || S 를 키의 주인이 보낸 것처럼 한다면 수신자들이 믿을 수 밖에 없다.
    • 이를 방지하기 위해 디지털 서명을 할 때 메세지 그 자체가 아닌 해시값을 서명하는 방식을 사용한다. = M도 해시함수에 넣어 서명으로 쓰자.
저작자표시 (새창열림)

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

[CS][알기 쉬운 정보보호개론 3판] Chapter12. Key  (1) 2023.12.06
[CS][알기 쉬운 정보보호개론 3판] Chapter11. 인증서  (0) 2023.12.06
[CS][알기 쉬운 정보보호개론 3판] Chapter09. 메세지 인증 코드 (MAC)  (0) 2023.12.06
[CS][알기 쉬운 정보보호개론 3판] Chapter08. 일방향 해시함수  (0) 2023.12.06
[CS][알기 쉬운 정보보호개론 3판] Chapter07. 하이브리드 암호 시스템  (1) 2023.10.17
    'Computer Science/Network Security' 카테고리의 다른 글
    • [CS][알기 쉬운 정보보호개론 3판] Chapter12. Key
    • [CS][알기 쉬운 정보보호개론 3판] Chapter11. 인증서
    • [CS][알기 쉬운 정보보호개론 3판] Chapter09. 메세지 인증 코드 (MAC)
    • [CS][알기 쉬운 정보보호개론 3판] Chapter08. 일방향 해시함수
    y-seo
    y-seo

    티스토리툴바