본문 바로가기

IT/Blockchain

블록체인 배경 지식 - 디지털 서명 및 인증서

728x90

블록체인의 기반이 되는 기술 중 디지털 서명과 인증서에 대해 설명합니다.

 

암호화(Encryption) - 전자적 데이터를 권한이 있는 당사자 외에는 누구도 쉽게 이해할 수 없는 암호문이라는 다른 형태로 변환하는 프로세스입니다. 이를 통해 데이터 보안이 보장됩니다. 

 

복호화(Decryption) - 암호화된 데이터 또는 코드를 알아볼 수 있는 데이터로 변환하는 프로세스입니다. 

  • 메시지는 발신자 측에서 다양한 암호화 알고리즘을 사용하여 암호화되고 수신자 측에서 복호화 알고리즘을 사용하여 복호화됩니다.
  • 사용자 이름, 비밀번호 등과 같이 일부 메시지를 안전하게 유지해야 하는 경우 데이터 보안을 보장하기 위해 암호화 및 복호화 기술이 사용됩니다.

 

암호화 유형 

1. 대칭 암호화 - 키를 사용하여 데이터를 암호화하고 복호화도 동일한 키를 사용하여 수행합니다.

 

2. 비대칭 암호화 - 비대칭 암호화는 공개 키 암호화라고도 합니다. 공개 키와 개인 키를 사용하여 데이터를 암호화하고 해독합니다. 모든 사람과 공유할 수 있는 한 쌍의 키 중 하나를 공개 키라고 합니다. 비밀로 유지되며 소유자만 알 수 있는 쌍의 다른 키를 개인 키라고 합니다. 두 키 중 하나를 사용하여 메시지를 암호화할 수 있으며, 메시지를 암호화하는 데 사용된 키(공개키)와 반대되는 키(개인키)가 암호 해독에 사용됩니다.

 

공개 키(Public key) - 모든 사람에게 알려진 키입니다. 예를 들어, A의 공개 키는 7이라면, 이 정보는 모든 사람에게 알려져 있습니다. 

개인 키(Private key) - 개인 키를 가진 사람만 알 수 있는 키입니다. 

인증(Authentication)- 인증은 시스템이 액세스하려는 사용자의 신원을 확인하는 모든 프로세스입니다. 

부인 방지(Non- repudiation) - 부인 방지란 전송된 메시지가 메시지를 주고 받았다고 주장하는 당사자들에 의해 송수신되었는지 확인하는 것을 의미합니다. 부인 방지란 메시지 발신자가 나중에 메시지를 보낸 사실을 부인할 수 없고 수신자도 메시지를 받은 사실을 부인할 수 없도록 보장하는 방법입니다. 

무결성(Integrity) - 전송 중에 메시지가 변경되지 않았는지 확인하는 기능입니다. 
메시지 다이제스트(Message digest) - 단방향 해시 함수라는 공식을 사용하여 생성된 단일 숫자 문자열 형태의 텍스트 표현입니다. 메시지 다이제스트를 개인 키로 암호화하면 전자 인증 수단인 디지털 서명이 생성됩니다. 
 


디지털 서명(Digital Signature)

디지털 서명이란 메시지, 소프트웨어 또는 디지털 문서의 진위 여부와 무결성을 검증하는 데 사용되는 수학적 기법입니다. 

1. 키 생성 알고리즘(Key Generation Algorithms): 디지털 서명은 특정 발신자가 메시지를 보냈음을 보증하는 전자적 서명입니다. 디지털 트랜잭션을 수행하는 동안 진위성과 무결성이 보장되어야 하며, 그렇지 않으면 데이터가 변경되거나 누군가가 자신이 발신자인 것처럼 행동할 수 있습니다.

2. 서명 알고리즘(Signing Algorithms): 디지털 서명을 생성하기 위해 이메일 프로그램과 같은 서명 알고리즘은 서명할 전자 데이터의 단방향 해시를 생성합니다. 그런 다음 서명 알고리즘은 개인 키(서명 키)를 사용하여 해시 값을 암호화합니다. 이렇게 암호화된 해시와 해싱 알고리즘 등의 기타 정보가 디지털 서명입니다. 이 디지털 서명이 데이터에 추가되어 검증자에게 전송됩니다. 전체 메시지나 문서 대신 해시를 암호화하는 이유는 해시 함수가 임의의 입력을 훨씬 짧은 고정 길이 값으로 변환하기 때문입니다. 따라서 긴 메시지에 서명하는 대신 짧은 해시 값에 서명해야 하므로 시간을 절약할 수 있으며, 또한 해싱이 서명보다 훨씬 빠릅니다.

3. 서명 검증 알고리즘(Signature Verification Algorithms): 검증자는 데이터와 함께 디지털 서명을 받습니다. 그런 다음 검증 알고리즘을 사용하여 디지털 서명과 공개 키(검증 키)를 처리하고 일부 값을 생성합니다. 또한 수신한 데이터에 동일한 해시 함수를 적용하여 해시값을 생성합니다. 그런 다음 해시 값과 검증 알고리즘의 출력을 비교합니다. 두 값이 같으면 디지털 서명이 유효하고, 그렇지 않으면 유효하지 않은 것입니다.

 

디지털 서명을 생성할 때 따르는 단계는 다음과 같습니다: 
1. 메시지에 해시 함수를 적용하여 메시지 다이제스트를 계산한 후 발신자의 개인키를 사용하여 메시지 다이제스트를 암호화하여 디지털 서명을 생성합니다. (디지털 서명 = 암호화(발신자 개인키, 메시지 다이제스트) 및 메시지 다이제스트 = 메시지 다이제스트 알고리즘(메시지)).
2. 이후 디지털 서명이 메시지와 함께 전송됩니다.(메시지 + 디지털 서명 전송)
3. 수신자는 발신자의 공개키를 사용하여 디지털 서명을 복호화합니다. (발신자만 개인키를 가지고 있기 때문에 발신자만 개인키를 사용하여 암호화할 수 있으므로 발신자의 공개키로 복호화할 수 있으므로 진본성이 보장됩니다)
4. 이제 수신자는 메시지 다이제스트를 갖게 됩니다.
5. 수신자는 메시지에서 메시지 다이제스트를 계산할 수 있습니다(실제 메시지는 디지털 서명과 함께 전송됨).
6. 무결성을 보장하기 위해 수신자가 계산한 메시지 다이제스트와 디지털 서명을 복호화하여 얻은 메시지 다이제스트는 동일해야 합니다.
메시지 다이제스트는 단방향 해시 함수, 즉 메시지의 해시값을 계산하기는 쉽지만 메시지의 해시값으로부터 메시지를 계산하는 것은 매우 어려운 해시 함수를 사용하여 계산됩니다. 

 

https://www.docusign.com/how-it-works/electronic-signature/digital-signature/digital-signature-faq



디지털 서명의 이점

  • 법률 문서 및 계약서: 디지털 서명은 법적 구속력이 있습니다. 따라서 한 명 이상의 당사자가 인증한 서명이 필요하고 기록이 변경되지 않았음을 보장하는 모든 법적 문서에 이상적입니다.
  • 판매 계약: 계약서 및 매매 계약서의 디지털 서명은 판매자와 구매자의 신원을 인증하며, 양 당사자는 서명이 법적 구속력이 있고 계약 조건이 변경되지 않았는지 확인할 수 있습니다.
  • 재무 문서: 재무 부서는 송장에 디지털 서명을 하여 구매자를 속여 사기성 계좌로 대금을 송금하려는 악의적인 행위자가 아니라 올바른 판매자가 보낸 결제 요청임을 고객이 신뢰할 수 있도록 합니다.
  • 건강 데이터: 의료 업계에서는 환자 기록과 연구 데이터 모두에서 개인정보 보호가 가장 중요합니다. 디지털 서명은 동의 당사자 간에 기밀 정보가 전송될 때 수정되지 않았음을 보장합니다.
  • 연방, 주, 지방 정부 기관은 많은 민간 기업보다 더 엄격한 정책과 규정을 가지고 있습니다. 허가 승인부터 작업표에 스탬프를 찍는 것까지, 디지털 서명은 적절한 사람이 적절한 승인에 관여하도록 보장하여 생산성을 최적화할 수 있습니다.
  • 배송 문서: 제조업체는 화물 적하목록이나 선하증권이 항상 정확한지 확인하여 비용이 많이 드는 배송 오류를 방지할 수 있습니다. 하지만 실물 서류는 번거롭고 운송 중에 항상 쉽게 액세스할 수 있는 것은 아니며 분실될 수도 있습니다. 배송 서류에 디지털 서명을 하면 발신자와 수신자가 파일에 빠르게 액세스하고 서명이 최신 상태인지 확인하며 변조가 발생하지 않았는지 확인할 수 있습니다.

디지털 서명의 단점

  • 키 관리에 대한 의존성: 디지털 서명은 암호화 키의 안전한 관리에 의존합니다. 즉, 발신자는 개인 키를 무단 액세스로부터 안전하게 보호해야 하며, 수신자는 발신자의 공개 키를 확인하여 진위 여부를 확인해야 합니다. 키 관리에 실패하면 디지털 서명의 보안이 손상될 수 있습니다.
  • 복잡성: 디지털 서명에는 키 생성, 서명, 검증의 복잡한 프로세스가 필요합니다. 따라서 기술 전문가가 아닌 사용자가 구현하고 사용하기 어려울 수 있습니다.
  • 호환성: 서로 다른 디지털 서명 알고리즘과 형식이 서로 호환되지 않을 수 있어 서로 다른 시스템과 애플리케이션에서 서명된 메시지를 교환하기가 어려울 수 있습니다.
  • 법적 인정: 디지털 서명은 많은 국가에서 법적으로 인정받고 있지만, 모든 관할권에서 법적 지위가 명확하지 않을 수 있습니다. 이로 인해 법적 또는 규제적 맥락에서 디지털 서명의 유용성이 제한될 수 있습니다.
  • 취소: 키 유출 또는 기타 보안 문제가 발생한 경우, 디지털 서명의 오용을 방지하기 위해 디지털 서명을 취소해야 합니다. 그러나 취소 절차는 복잡할 수 있으며 모든 경우에 효과적이지 않을 수 있습니다.
  • 비용: 디지털 서명에는 키 관리, 인증서 발급 및 기타 관련 서비스에 대한 추가 비용이 발생할 수 있으므로 일부 사용자나 조직에서는 비용이 많이 들 수 있습니다.
  • 제한된 범위: 디지털 서명은 메시지에 대한 인증 및 무결성 보호 기능을 제공하지만, 서비스 거부 공격이나 맬웨어와 같은 다른 유형의 공격에 대한 기밀성이나 보호 기능을 제공하지는 않습니다.

 


디지털 인증서(Digital Certificate)

 

디지털 인증서는 신뢰할 수 있는 제3자가 발급하여 발신자의 신원을 수신자에게 증명하고 수신자의 신원을 발신자에게 증명합니다. 
디지털 인증서는 인증서 소유자의 신원을 확인하기 위해 인증 기관(CA)에서 발급하는 인증서입니다. CA는 신청자의 공개 키 및 기타 다양한 식별 정보가 포함된 암호화된 디지털 인증서를 발급합니다. 디지털 인증서는 특정 개인 또는 단체의 공개 키를 첨부하는 데 사용됩니다. 

디지털 인증서에는 다음이 포함됩니다.
1. 인증서 소유자의 이름.

2. 인증서, 인증서로 식별된 개인 또는 법인을 고유하게 식별하는 데 사용되는 일련 번호.
3. 만료 날짜.
4. 인증서 소유자의 공개 키 사본(메시지 및 디지털 서명을 해독하는 데 사용됨)
5. 인증서 발급 기관의 디지털 서명.
6. 디지털 인증서도 디지털 서명과 메시지와 함께 전송.

디지털 인증서와 디지털 서명 비교: 

디지털 서명은 진위성, 무결성, 부인 방지, 즉 메시지가 알려진 사용자가 보냈고 수정되지 않았음을 확인하는 데 사용되는 반면 디지털 인증서는 사용자(발신자 또는 수신자)의 신원을 확인하는 데 사용됩니다. 따라서 디지털 서명과 인증서는 서로 다른 종류의 것이지만 둘 다 보안을 위해 사용됩니다. 대부분의 웹사이트는 사용자의 신뢰를 높이기 위해 디지털 인증서를 사용합니다.

 

기능 디지털 서명 디지털 인증서
기본 / 정의 디지털 서명은 디지털 문서의 진위와 무결성을 보장하는 지문이나 첨부 파일과 같은 역할을 합니다.  디지털 인증서는 소유자의 신원을 보장하고 보안을 제공하는 파일입니다.
프로세스 / 단계 원본 메시지의 해시값을 발신자의 비밀 키로 암호화하여 디지털 서명을 생성합니다.  CA(인증 기관)에서 생성하며 총 4단계로 이루어집니다:
키 생성, 등록, 검증, 생성
보안 서비스  발신자의 진위성, 문서의 무결성 및 부인 방지.  인증서 소유자의 보안과 진위성을 제공합니다.
표준  디지털 서명 표준(DSS)을 따릅니다.  X.509 표준 형식을 따릅니다.

 

 

728x90