디지털 서명
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
디지털 서명은 메시지의 무결성을 보장하고 발신자를 인증하기 위해 사용되는 암호화 기술이다. 디지털 서명은 키 생성, 서명 생성, 서명 검증 알고리즘으로 구성되며, 올바른 서명 키로 생성된 서명은 해당 검증 키로 항상 승인되어야 하고, 공격자는 검증 키만으로는 유효한 서명을 생성하기 어려워야 한다. 디지털 서명은 인증, 무결성, 부인 방지 기능을 제공하며, 전자 문서의 출처, 신원, 상태를 보증하는 데 활용된다. 디지털 서명 알고리즘으로는 RSA, DSA, ECDSA 등이 있으며, 한국을 포함한 여러 국가에서 디지털 서명의 법적 효력을 인정하는 법률을 제정했다. 그러나 디지털 서명은 재생 공격과 같은 보안 취약점을 가질 수 있으며, 공개 키의 진위를 확인하는 데 한계가 있다.
더 읽어볼만한 페이지
- 서명 - 투그라
투그라는 오스만 제국 술탄의 이름과 칭호를 기하학적으로 표현한 서예 양식으로, 술탄의 권위를 상징하며 문서, 건물, 주화 등에 사용되었고, 오스만 제국을 넘어 다른 튀르크족 국가에서도 사용된 역사적, 문화적으로 중요한 자료이다. - 서명 - EIDAS
EIDAS는 유럽 연합의 전자 신원 확인 및 신뢰 서비스 규정으로, 전자 거래의 안전성과 신뢰성을 높이고 디지털 단일 시장을 구축하며, 전자 서명, 전자 인감, 전자 타임스탬프, 전자 배달 서비스 등의 신뢰 서비스에 대한 법적 틀을 제공하고 회원국 간 전자 신원 확인 서비스의 상호 운용성을 보장합니다. - 전자 문서 - 아카이벌 리소스 키
아카이벌 리소스 키(ARK)는 디지털, 물리적, 추상적 자원의 영구적인 식별을 위한 체계로, 분산된 웹 환경에서 관리 주체의 약속을 통해 객체의 보존과 접근성을 제공하며, ARK Alliance가 국제적인 사용을 장려하고 한국에서도 활용된다. - 전자 문서 - 비브코드
비브코드는 천문학 및 물리학 분야에서 사용되는 19개의 ASCII 문자로 구성된 표준 식별자이며, 출판 정보와 저자 정보를 포함하고 천체물리학 자료시스템에서 주요 식별자로 사용된다. - 공개 키 암호 - 공개 키 기반 구조
공개 키 기반 구조(PKI)는 공개 키 암호화를 기반으로 안전한 통신과 개체 식별을 가능하게 하는 기술로서, 디지털 인증서를 통해 공개 키를 특정 개체에 연결하고 인증서를 관리하며, 인증 기관(CA), 등록 기관(RA) 등 다양한 구성 요소로 이루어져 인증서 발급, 관리, 배포, 사용 및 폐기와 관련된 역할, 정책, 하드웨어, 소프트웨어 및 절차의 집합을 포함한다. - 공개 키 암호 - DNSSEC
DNSSEC는 DNS의 보안 취약점을 개선하기 위해 도메인 정보에 디지털 서명을 추가하여 응답 레코드의 무결성을 보장하고 DNS 위장 공격을 막는 기술로, RRSIG, DNSKEY 등 다양한 리소스 레코드 유형을 사용하여 인증 체인을 구성하며 공개 키 암호 방식을 활용한다.
디지털 서명 | |
---|---|
개요 | |
유형 | 암호학적 기법 |
목적 | 데이터 무결성 보장 인증 및 부인 방지 |
기술적 측면 | |
기반 기술 | 공개 키 암호 방식 |
암호화 해시 함수 | 필수 |
서명 생성 | 개인 키 사용 |
서명 검증 | 공개 키 사용 |
보안 고려 사항 | |
위조 방지 | 높은 수준의 위조 방지 필요 |
키 관리 | 안전한 개인 키 관리가 중요 |
활용 분야 | |
전자 상거래 | 거래의 신뢰성 확보 |
소프트웨어 배포 | 소프트웨어의 무결성 및 출처 보장 |
법적 문서 | 문서의 법적 효력 강화 |
법적 효력 | |
법적 인정 | 많은 국가에서 법적 효력 인정 |
관련 표준 | |
국제 표준 | X.509 등 |
참고 | |
관련 기술 | 전자 서명 |
추가 정보 | 공개 키 기반 구조(PKI) |
2. 정의
디지털 서명은 일반적으로 다음 세 가지 알고리즘으로 구성된다.
- 키 생성: 키 생성 알고리즘은 개인 키와 공개 키 쌍을 생성한다.
- 서명: 서명 알고리즘은 이용자의 개인 키를 사용하여 메시지에 대한 서명(전자서명)을 생성한다.
- 검증: 검증 알고리즘은 이용자의 공개 키를 사용하여 서명을 검증한다.
서명 생성 프로세스에서 생성된 데이터도 ‘디지털 서명’이라고 지칭한다. 디지털 서명은 ‘메시지’의 인증기능을 제공한다. 메시지는 전자메일, 계약서, 혹은 더 복잡한 암호화 프로토콜로 송수신되는 데이터 등, 많은 것을 포함한다.
인증기관이 발행하는 공인인증서는 인증 기관의 사회적인 신뢰성을 담보로 이용자와 공개 키 값과 이용자의 관계를 보증한다. 그 때, 인증서가 인증 기관에서 발급된 것임을 증명하기 위해, 디지털 서명을 사용하고 있다.
디지털 서명은 종종 전자 서명(서명을 전하기 위한 모든 전자 데이터를 가리키는 상위어의 개념)을 구현하기 위해 사용되기도 한다. 그러나 모든 전자 서명이 디지털 서명을 이용하는 형태를 취하고 있지는 않다.[43]
디지털 서명 방식은 일반적으로 다음의 세 가지 알고리즘으로 구성된다.[20]
- '''G'''(키 생성기): 보안 매개변수 ''n''을 입력으로 받아 공개 키 (''pk'')와 해당하는 개인 키 (''sk'')를 생성한다.
- '''S'''(서명): 개인 키 (''sk'')와 문자열 (''x'')을 입력으로 받아 태그 ''t''를 반환한다.
- '''V'''(검증): 공개 키 (''pk''), 문자열 (''x'') 및 태그 (''t'')를 입력으로 받아 "수락" 또는 "거부"를 출력한다.
정확성을 위해 ''S''와 ''V''는 다음을 만족해야 한다.
: Pr [ (''pk'', ''sk'') ← ''G''(1''n''), ''V''( ''pk'', ''x'', ''S''(''sk'', ''x'') ) = ''accepted'' ] = 1.
디지털 서명 방식은 모든 비균일 확률적 다항 시간 적대자 ''A''에 대해 다음을 만족할 때 '''안전하다'''고 한다.[20][21]
: Pr [ (''pk'', ''sk'') ← ''G''(1''n''), (''x'', ''t'') ← ''A''''S''(''sk'', · )(''pk'', 1''n''), ''x'' ∉ ''Q'', ''V''(''pk'', ''x'', ''t'') = ''accepted''] < negl(''n''),
여기서 ''A''''S''(''sk'', · )는 ''A''가 오라클 ''S''(''sk'', · )에 접근할 수 있음을 나타내고, ''Q''는 ''A''가 공개 키 ''pk''와 보안 매개변수 ''n''을 알고 있는 상태에서 ''S''에 대해 수행한 쿼리 집합을 나타내며, ''x'' ∉ ''Q''는 적대자가 문자열 ''x''에 대해 ''S''를 직접 쿼리할 수 없음을 나타낸다.
주로 두 가지 특성이 필요하다.
- 먼저, 올바른 서명 키 값으로 생성된 서명은 해당 검증 키 값으로 항상 승인되는 것, 즉 서명 키 값 ''SK''와 검증 키 값 ''PK''가 해당 키 쌍이면 어떤 메시지 ''m''에 대한 V {''m'', ''PK'', S(''m'', ''SK'')}는 승인이 출력되어야 한다.
- 두 번째로, 어떠한 공격자도 ''PK'' 값을 알고 있는 것만으로는 유효한 서명을 생성하기 곤란하여야 한다는 것이다.
3. 역사
1976년, 휫필드 디피와 마르틴 헬만은 논문 "암호화의 새로운 방향(New Directions in Cryptography)"에서 디지털 서명이라는 이론 체계가 존재할 것이라는 추측과 그 개념을 처음 사용하였다.[22][23][48][49]
이후 로널드 리베스트, 아디 샤미어 및 레오나르도 에델만은 기본적인 디지털 서명에 이용할 수 있는 RSA 알고리즘을 개발하였다.[24][50] 그러나 이것은 단지 실증으로서의 역할만 담당하므로, 기본적인 RSA 서명은 안전하지 않았다.[25] 1989년 RSA 알고리듬을 사용하여 디지털 서명을 제공해 널리 사용된 소프트웨어 패키지는 Lotus Notes 1.0이다.[26] 기본적인 RSA 서명은 다음과 같이 산출된다. RSA 서명 키 값을 생성하기 위해, 2개의 큰 소수의 곱인 계수 N과 φ가 오일러 φ함수일 때, ed=1modφ(N)을 충족하는 정수 e와 d를 사용해 RSA 키 쌍 값을 하나 간단하게 생성한다. 서명자의 공개 키 값은 N과 e로 이루어지고, 서명자의 개인 키 값은 d를 사용한다. 메시지 m에 서명하기 위해, 서명자는 σ ≡ md (mod N)을 계산한다. 검증을 위해, 수신자는 σe ≡ m (mod N)을 확인한다. 위에서 언급했다시피, 이러한 기본적인 구조는 안전하지 않다. 공격을 막기 위해서는, 우선 메시지 m에 암호 해시 함수를 적용하고 그 결과에 RSA 알고리듬을 적용하는 방법이 있다. 이 방식은 소위 랜덤 오라클 모델에서 안전을 증명할 수 있다.
RSA 이후, 람포트 서명[27], 머클 서명(Merkle Signature, 혹은 Hash tree)[28], 라빈 서명[29] 등의 디지털 서명 체계가 개발되었다.
1988년, 샤피 골드워서, 실비오 미칼리, 로널드 리베스트는 최초로 디지털 서명 체계의 보안 요구 사항을 엄밀하게 정의했다.[30][54] 그들은 서명 체계에 대한 공격 모델의 계층 구조를 설명했고, 선택된 메시지 공격에 대한 존재적 위조조차 방지할 수 있음이 증명된 GMR 서명 체계를 제시했는데, 이는 현재 서명 체계에 대한 허용되는 보안 정의이다.[30][55] 함정 함수가 아니라 일방향 치환의 훨씬 더 약한 필요 속성을 가진 함수 집합을 기반으로 구축되지 않은 최초의 그러한 체계는 모니 나오르와 모티 영이 제시했다.[31]
샤피 골드워스, 실비오 미칼리, 로널드 라이베스트가 제시한 공격 모델과 공격 결과의 단계는 다음과 같다.
공격 모델 | 공격 결과 |
---|---|
키 전용 공격(Key-Only Attack)에서는 공개된 검증 키만을 전제로 한 공격이 이루어진다. | 완전 해독(total break)은 서명 키가 복구되는 결과를 초래한다. |
기지 메시지 공격(Known Message Attack)에서는 다양한 기지 메시지의 유효한 서명을 전제로 한 공격이 이루어지지만, 공격자는 메시지를 선택할 수 없다. | 보편적 위조(universal forgery) 공격은 임의의 문서의 서명도 위조할 수 있는 서명 알고리즘이 발견되는 결과를 초래한다. |
선택 메시지 공격(Chosen Message Attack)에서는 공격자가 먼저 선택한 임의의 메시지에 대한 서명을 얻고, 그 서명을 전제로 한 공격이 이루어진다. | 선택적 위조(selective forgery) 공격은 적이 선택한 문서의 서명이 위조되는 결과를 초래한다. |
존재적 위조(existential forgery)는 단순히 적에게 알려지지 않은 어떤 유효한 문서/서명 쌍이 발견되는 것만을 의미한다. |
대부분의 초기 서명 방식은 RSA 함수와 같은 트랩도어 순열(trapdoor permutation)의 사용, 또는 라빈 서명 방식의 경우 합성수 N을 법으로 하는 제곱 계산을 필요로 한다. 트랩도어 순열족은 매개변수로 지정되는 치환(置換)의 집합이며, 순방향 계산은 용이하지만 역방향 계산은 어렵다. 그러나 모든 매개변수에 대해 역방향 계산을 용이하게 하는 "트랩도어"가 존재한다. 매개변수를 공개 키, 트랩도어를 비밀 키로 하고, 암호화는 순방향으로, 복호화는 역방향으로 치환을 계산하는 것에 대응시키면, 트랩도어 순열은 공개 키 암호 시스템으로 간주할 수 있다. 또한 트랩도어 순열은 디지털 서명 방식으로도 간주할 수 있으며, 비밀 키를 사용한 역방향 계산을 서명으로 생각하고, 순방향 계산은 서명을 검증하기 위해 수행된다고 생각하면 된다. 서명은 복호화에, 검증은 암호화에 해당한다는 대응 관계에 의해 디지털 서명은 공개 키 암호 방식을 바탕으로 설명되는 경우가 많지만, 이것이 디지털 서명을 계산하는 유일한 방법은 아니다.
직접 사용될 경우, 이러한 종류의 서명 방식은 존재적 위조에 대한 키 전용 공격에 취약하다. 위조 문서를 만들어내기 위해, 공격자는 임의의 서명 σ를 추출하고, 그 서명에 대응하는 문서 m을 찾기 위해 검증 과정을 사용한다.[56] 그러나 실제로는 이러한 종류의 서명이 직접 사용되는 경우는 없다. 보다 정확하게 말하면, 서명되는 문서는 먼저 해시화되어 짧은 요약(메시지 다이제스트)이 되고, 그 요약에 대해 서명 처리가 이루어진다. 결과적으로, 이 위조 공격은 σ에 대응하는 해시 함수의 출력을 생성하는 것에 불과하다. 해시 함수의 출력은 원래 문서의 유용성과는 관련이 없으며, 공격을 초래하지 않는다. 랜덤 오라클 모델에서는, 서명의 이 hash-and-decrypt 형식은 선택 메시지 공격에서도 존재적 위조가 불가능하다.[49]
문서 전체 대신 그러한 해시(또는 메시지 다이제스트)에 서명하는 몇 가지 이유가 있다.
- 효율성: 일반적으로 해시를 계산하는 것은 실제로 서명하는 것보다 훨씬 빠르므로, 서명은 매우 짧아지고 따라서 시간을 절약할 수 있다.
- 호환성: 문서는 일반적으로 비트열이지만, 어떤 서명 방식은 다른 정의역에서 작동한다(예: RSA의 경우 합성수 N을 법으로 하는 정수). 해시 함수는 임의의 입력을 적절한 형식으로 변환하는 데 사용할 수 있다.
- 무결성: 해시 함수가 없다면, "서명해야 할" 문서는 서명 방식이 직접 처리할 수 있도록 작은 단위로 분할되어야 할 것이다. 그러나 서명된 부분을 수신하는 사람은 모든 부분이 적절한 순서대로 존재하는지 인식할 수 없다.
4. 이점
디지털 서명은 문서 발신자의 신원을 확인하고, 내용의 무결성을 보장하며, 부인 방지를 가능하게 하는 등 여러 이점을 제공한다.
- 인증: 디지털 서명은 문서 발신자의 신원을 확인하는 데 사용될 수 있다. 개인 키와 공개 키 쌍을 이용해 서명된 문서는 해당 개인 키를 소유한 사람이 보낸 것임을 보장한다. 이는 특히 금융 거래와 같이 발신자의 신원이 중요한 경우에 유용하다. 예를 들어, 은행 지점에서 본점으로 계좌 잔액 변경 요청을 보낼 때, 디지털 서명을 통해 요청의 진위를 확인할 수 있다.[35]
- 무결성: 디지털 서명은 문서가 전송 과정에서 위조되거나 변조되지 않았음을 보장한다. 문서에 디지털 서명이 추가되면, 내용이 조금이라도 변경될 경우 서명이 무효화된다. 이는 해시 함수의 특성 덕분으로, 원본 문서와 조금이라도 다른 문서는 완전히 다른 해시 값을 가지기 때문이다. 따라서 수신자는 문서를 받은 즉시 서명을 검증하여 내용의 무결성을 확인할 수 있다.
- 부인 방지: 디지털 서명은 서명자가 나중에 서명 사실을 부인할 수 없도록 한다. 이는 개인 키를 사용하여 서명하기 때문에 가능한 것으로, 서명자는 자신의 개인 키로 서명한 문서에 대해 책임을 져야 한다.
몇몇 국가에서는 디지털 서명이 법적인 효력을 가지기도 한다. 대한민국, 미국, 유럽 연합 등에서는 전자 서명이 법적 효력을 가지며, 이는 디지털 서명에도 적용될 수 있다.[45][46][47]
4. 1. 인증
문서를 전송하는 주체에 대한 정보가 문서에 포함되는 경우가 많지만, 그 정보가 잘못될 가능성은 언제든지 존재한다. 디지털 서명은 문서의 원본 발신처를 인증하는 데에 사용할 수 있다. 디지털 서명에 사용되는 개인 키 값의 소유권이 특정 이용자에게 인증될 수 있을 때, 서명이 유효하다면 그 문서가 개인 키 값을 소유한 사람에게서 발신되었다는 것을 확인할 수 있게 된다.[35] 발신자임을 높은 신뢰도로 확인하는 것은 금융에서 특히 중요하다. 가령, 은행 지점에서 본점에 있는 서버에 어떠한 계좌의 잔고를 변경하는 요청을 한다고 가정하자. 변경 명령이 실제 은행 지점에서 일어났는지 높은 신뢰도로 확인되지 않으면, 이러한 변경 명령을 본점에서 받아들이는 것은 치명적인 오류를 낳을 수 있게 되는 것이다.암호화는 도청자로부터 메시지 내용을 숨길 수 있지만, 암호화만으로는 수신자가 메시지의 진위를 확인하거나, 숫자 변경과 같은 선택적 수정을 감지할 수 없다. 은행 사무소가 단순히 주고받는 메시지를 암호화한다면 여전히 위조에 취약할 수 있다. 소프트웨어 업데이트와 같은 다른 응용 프로그램에서는 메시지가 비밀이 아니다. 소프트웨어 작성자가 기존 소프트웨어 설치에 적용할 패치를 게시할 때 패치 자체는 비밀이 아니지만, 소프트웨어를 실행하는 컴퓨터는 악성 코드의 희생자가 되지 않도록 적용하기 전에 패치의 진위를 확인해야 한다.[2]
디지털 서명은 "메시지"의 인증 기능을 제공한다. 메시지는 전자 우편, 계약서, 또는 더 복잡한 암호 프로토콜로 송수신되는 데이터 등 무엇이든 될 수 있다.
인증 기관이 발급하는 공개키 인증서는 인증 기관의 사회적 신뢰성을 보장하여 사용자의 공개키와 사용자 간의 연결을 보증한다. 그때, 인증서가 (공개키 사용자가 신뢰하는) 인증 기관에 의해 발급되었음을 증명하기 위해 디지털 서명이 사용된다.
4. 2. 무결성
문서를 발신한 사람과 수신한 사람은 문서가 전송 중에 위변조되지 않았음을 확인할 필요가 있다. 암호화는 문서 내용을 은폐하지만, 암호화된 문서를 변경할 가능성은 여전히 존재한다. 그러나 문서에 디지털 서명이 되어 있으면, 문서가 변경될 경우 서명이 무효화된다. 또한, 많은 해시 함수와 계산적인 문제로 인해 유효한 서명이 된 가짜 문서를 생성하기 위해 어떤 문서와 서명을 조작하는 것은 거의 불가능하다.몇몇 국가에서는 디지털 서명이 전통적인 펜과 종이 서명과 비슷한 법적 지위를 갖는다. 일반적으로 이러한 조건은 디지털 서명된 문서가 서명자를 법적으로 구속한다는 것을 의미한다.
4. 3. 부인 방지
암호화 세계에서 '부인(否認)'은 메시지에 대한 책임을 거부하는 행위를 가리킨다. (이는 사법 세계에서의 부인과는 의미가 다르다.) 디지털 서명에서 부인 방지는 중요한 속성으로, 어떤 정보에 서명한 당사자가 나중에 서명 사실을 부인할 수 없도록 한다.[15] 마찬가지로, 공개 키에 대한 접근만으로는 사기꾼이 유효한 서명을 위조할 수 없다.메시지 수신자는 서명자와 무결성에 대한 주장을 강화하기 위해 제3자(예: 법원)에게 서명된 메시지를 제시할 수 있다. 따라서 수신자는 나중에 쉽게 부인되지 않도록 발신자의 서명을 강력하게 주장할 수 있다.
하지만 사용자가 비밀 키의 기밀성을 잃으면 해당 키를 사용한 모든 디지털 서명이 의심스러워진다. 그럼에도 불구하고 사용자의 서명 키를 거부하지 않으면 사용자는 서명된 메시지를 부인할 수 없다. 이는 신뢰할 수 있는 타임스탬프가 없으면 더욱 악화된다. 따라서 키가 유출된 후 새로 만들어진 문서는 오래된 문서나 복잡한 서명 키의 폐지와 구분하기 어렵다.
공개 키와 관련된 사용자 키를 증명하고 서명을 부인할 수 없도록 하기 위해 일반적으로 인증 기관은 리포지토리(repository)라는 공개 키의 공개 데이터베이스를 보유한다. 만료된 인증서는 일반적으로 이 데이터베이스에서 삭제된다. 데이터 부인 방지 서비스가 제공되는 경우 일정 기간 동안 오래된 인증서를 보유하는 것은 인증 기관의 보안 정책 및 책임 문제이다.
5. 보안 고려 사항
디지털 서명 방식은 안전한 정보 교환을 보장하기 위해 여러 보안 고려 사항을 필요로 한다. 일반적으로 키 생성, 서명, 서명 검증이라는 세 가지 알고리즘으로 구성된다.
필수적인 두 가지 주요 속성:
- 첫째, 고정된 메시지와 개인 키에서 생성된 서명은 해당 공개 키를 사용하여 진위를 검증할 수 있어야 한다.
- 둘째, 개인 키를 모르는 제3자가 유효한 서명을 생성하는 것은 계산상 불가능해야 한다.
미국표준기술연구소(National Institute of Standards and Technology)가 개발한 디지털 서명 알고리즘(DSA)은 이러한 속성을 만족하는 다양한 디지털 서명 알고리즘 중 하나이다.[20]
골드워서, 미칼리, 리베스트는 디지털 서명에 대한 공격 모델과 공격 결과의 계층 구조를 제시했다.[30]
공격 모델
공격 모델 | 설명 |
---|---|
키 전용 (key-only) | 공격자에게 공개 검증 키만 제공된다. |
알려진 메시지 (known message) | 공격자에게 공격자가 알고 있지만 선택하지 않은 다양한 메시지에 대한 유효한 서명이 제공된다. |
적응적 선택 메시지 (adaptive chosen message) | 공격자가 먼저 공격자가 선택한 임의의 메시지에 대한 서명을 알아낸다. |
공격 결과
공격 결과 | 설명 |
---|---|
전체 위반 (total break) | 서명 키의 복구로 이어진다. |
범용 위조 (universal forgery) | 모든 메시지에 대한 서명을 위조할 수 있는 능력을 제공한다. |
선택적 위조 (selective forgery) | 공격자가 선택한 메시지에 대한 서명을 생성한다. |
존재적 위조 (existential forgery) | 공격자가 아직 알지 못하는 유효한 메시지/서명 쌍을 생성하는 것이다. |
가장 강력한 보안 개념은 적응적 선택 메시지 공격 하에서 존재적 위조에 대한 보안이다.
공개 키 기반 구조(PKI)에서 공개 키 인증서는 인증 기관의 신뢰성을 바탕으로 사용자 공개 키와 사용자 간의 연결을 보증한다. 인증서가 신뢰하는 인증 기관에 의해 발급되었음을 증명하기 위해 디지털 서명이 사용된다.
디지털 서명 방식 자체로는 유효하게 서명된 메시지가 기록되어 악의적인 재생 공격에 사용되는 것을 막을 수 없다.[35]
5. 1. 개인키 보안
공개키/비밀키 암호 시스템은 비밀키를 안전하게 지키는 데 모든 것이 달려있다. 비밀키는 사용자 컴퓨터에 저장되어 로컬 암호로 보호될 수 있지만, 여기에는 두 가지 단점이 있다.- 사용자는 해당 컴퓨터에서만 문서에 서명할 수 있다.
- 비밀키 보안은 전적으로 컴퓨터 보안에 달려있다.
더 안전한 방법은 비밀키를 스마트 카드에 저장하는 것이다. 많은 스마트 카드는 조작 방지 기능을 갖도록 설계되었지만(일부 설계는 로스 J. 앤더슨과 그의 학생들에 의해 해킹되었다.[39]), 일반적인 전자 서명 구현에서는 문서에서 계산된 해시가 스마트 카드로 전송되고, 스마트 카드의 CPU는 사용자의 저장된 비밀키를 사용하여 해시에 서명한 다음 서명된 해시를 반환한다. 보통 사용자는 PIN 코드를 입력하여 스마트 카드를 활성화해야 하며, 이는 이중 인증을 제공한다. 비밀키가 스마트 카드를 벗어나지 않도록 할 수 있지만, 항상 구현되는 것은 아니다. 스마트 카드를 도난당하더라도 도둑은 전자 서명을 생성하려면 여전히 PIN 코드가 필요하다. 이는 시스템 보안을 PIN 시스템 보안 수준으로 낮추지만, 여전히 공격자가 카드를 소지해야 한다. 완화 요소는 비밀키가 스마트 카드에 생성 및 저장되는 경우 복사하기 어려운 것으로 간주되며, 정확히 한 개의 사본만 존재한다고 가정된다는 점이다. 따라서 스마트 카드 분실은 소유자가 감지할 수 있으며, 해당 인증서는 즉시 무효화될 수 있다. 소프트웨어로만 보호되는 비밀키는 복사하기 쉬우며, 이러한 보안 위반은 감지하기 훨씬 어렵다.
스마트 카드를 활성화하려면 PIN 코드를 입력해야 하며, 보통 숫자 키패드가 필요하다. 일부 카드 리더기에는 자체 숫자 키패드가 있다. 이는 PC에 통합된 카드 리더기를 사용하고 해당 컴퓨터의 키보드를 사용하여 PIN을 입력하는 것보다 안전하다. 숫자 키패드가 있는 리더기는 컴퓨터가 키로깅 프로그램을 실행하여 PIN 코드가 손상될 수 있는 도청 위협을 피하기 위한 것이다. 특수 카드 리더기는 소프트웨어나 하드웨어 변조에 덜 취약하며, 종종 EAL3 인증을 받았다.
스마트 카드 설계는 활발한 분야이며, 아직 보안 증명이 거의 없지만, 이러한 특정 문제를 피하기 위해 고안된 스마트 카드 방식이 있다.
디지털 서명과 자필 서명의 주요 차이점 중 하나는 사용자가 서명하는 내용을 "직접 보지" 않는다는 점이다. 사용자 애플리케이션은 개인 키를 사용하는 디지털 서명 알고리즘으로 서명할 해시 코드를 제시한다. 공격자가 사용자 PC를 제어하면 사용자 애플리케이션을 다른 프로그램으로 대체하여 사용자의 통신을 공격자의 통신으로 바꿀 수 있다. 이를 통해 악의적인 애플리케이션은 사용자에게 원본 화면을 표시하면서 서명 애플리케이션에는 공격자 자신의 문서를 제시하여 사용자가 어떤 문서에든 서명하도록 속일 수 있다.
이러한 시나리오를 방지하기 위해 사용자 애플리케이션(워드 프로세서, 이메일 클라이언트 등)과 서명 애플리케이션 간에 인증 시스템을 설정할 수 있다. 기본적인 아이디어는 사용자 애플리케이션과 서명 애플리케이션 모두 서로의 무결성을 확인할 수 있는 방법을 제공하는 것이다. 예를 들어, 서명 애플리케이션은 모든 요청이 디지털 서명된 바이너리에서 발생하도록 요구할 수 있다.
5. 2. 공개키 인증
골드워서, 미칼리, 리베스트는 디지털 서명에 대한 공격 모델과 공격 결과의 계층 구조를 제시했다.[30]공격 모델은 다음과 같다.
공격 모델 | 설명 |
---|---|
키 전용 (key-only) | 공격자에게 공개 검증 키만 제공된다. |
알려진 메시지 (known message) | 공격자에게 공격자가 알고 있지만 선택하지 않은 다양한 메시지에 대한 유효한 서명이 제공된다. |
적응적 선택 메시지 (adaptive chosen message) | 공격자가 먼저 공격자가 선택한 임의의 메시지에 대한 서명을 알아낸다. |
공격 결과 | 설명 |
---|---|
전체 위반 (total break) | 서명 키의 복구로 이어진다. |
범용 위조 (universal forgery) | 모든 메시지에 대한 서명을 위조할 수 있는 능력을 제공한다. |
선택적 위조 (selective forgery) | 공격자가 선택한 메시지에 대한 서명을 생성한다. |
존재적 위조 (existential forgery) | 공격자가 아직 알지 못하는 유효한 메시지/서명 쌍을 생성하는 것이다. |
가장 강력한 보안 개념은 적응적 선택 메시지 공격 하에서 존재적 위조에 대한 보안이다.
공개 키 기반 구조(PKI)에서 공개 키 인증서는 인증 기관의 신뢰성을 바탕으로 사용자 공개 키와 사용자 간의 연결을 보증한다. 인증서가 신뢰하는 인증 기관에 의해 발급되었음을 증명하기 위해 디지털 서명이 사용된다.
5. 3. 재생 공격 방지
디지털 서명 방식 자체로는 유효한 서명된 메시지가 기록되고 악의적으로 재생 공격에 사용되는 것을 막을 수 없다. 예를 들어, 지점 사무소가 서명된 메시지로 한 번 은행 송금을 요청할 수 있다. 은행이 이미 발생한 송금을 감지하기 위해 메시지에 거래 ID 시스템을 사용하지 않는 경우, 누군가 동일한 서명된 메시지를 여러 번 불법적으로 재사용하여 계정의 잔액을 소진할 수 있다.[35] 비트코인 거래소와 같은 은행과 유사한 시스템에서 재생 공격을 감지하기 위해 서명을 거래 ID로 오용하는 경우, 이를 악용하여 거래를 재생할 수 있다.[37]6. 활용 분야
전자 문서의 출처, 신원 및 상태에 대한 보증을 제공하고 서명자의 동의 및 승인을 인정하는 데 디지털 서명이 활용된다. 미국 정부 인쇄국(GPO)은 예산, 공공 및 사법 법률, 의회 법안의 전자 버전에 디지털 서명을 포함하여 발행한다. 시카고 대학교를 포함한 여러 대학에서도 디지털 서명이 포함된 전자 성적표를 발행하고 있다.
다음은 통신에 디지털 서명을 적용하는 몇 가지 일반적인 이유이다.
편지에는 보낸 사람을 식별하는 편지지 또는 손으로 쓴 서명이 있을 수 있지만, 이러한 요소들은 위조된 메시지에 쉽게 복사되어 붙여넣어질 수 있다. 심지어 합법적인 메시지조차도 전송 중에 수정될 위험이 있다.[35]
예를 들어, 은행 중앙 사무소가 지점 사무소로부터 계좌 잔액 변경 지시를 받았다고 가정해 보자. 중앙 은행원들은 지시 사항을 실행하기 전에 해당 지시가 실제로 지점 은행원이 보낸 것이고 위조된 것이 아닌지 확인해야 한다. 위조범이 편지를 조작했거나, 전송 중에 숫자를 추가하여 기존 편지를 수정했을 가능성이 있기 때문이다.
디지털 서명 방식을 사용하면 이러한 문제를 해결할 수 있다. 중앙 사무소는 사전에 지점 사무소만 알고 있는 개인 키와 그에 대응하는 공개 키를 파일에 보관하도록 준비할 수 있다. 지점 사무소는 메시지에 서명하고, 중앙 사무소는 공개 키를 사용하여 서명된 메시지가 위조가 아닌지 확인할 수 있다. 보낸 사람의 개인 키를 모르는 위조범은 메시지를 위조하거나 수정할 수 없다. 그렇게 하면 수신자의 서명 검증이 실패하기 때문이다.[35][1][2]
암호화는 도청자로부터 메시지 내용을 숨길 수 있지만, 암호화만으로는 메시지의 진위를 확인하거나 숫자 변경과 같은 선택적 수정을 감지할 수 없다. 은행 사무소가 주고받는 메시지를 암호화하기만 한다면 여전히 위조에 취약할 수 있다. 소프트웨어 업데이트와 같은 다른 응용 프로그램에서는 메시지가 비밀이 아닐 수 있다. 소프트웨어 작성자가 기존 소프트웨어 설치에 적용할 패치를 게시할 때 패치 자체는 비밀이 아니지만, 소프트웨어를 실행하는 컴퓨터는 악성 코드의 희생자가 되지 않도록 패치를 적용하기 전에 패치의 진위를 확인해야 한다.[2]
7. 주요 디지털 서명 알고리즘
RSA, DSA, ECDSA, EdDSA 등 다양한 디지털 서명 알고리즘이 존재한다. 주요 알고리즘은 다음과 같다.
알고리즘 종류 | 설명 |
---|---|
RSA | 기본적인 RSA 서명은 안전하지 않아 암호 해시 함수와 함께 사용된다. |
DSA | 미국표준기술연구소가 개발한 알고리즘이다. |
ECDSA | |
EdDSA | |
SHA를 사용하는 RSA | |
SHA를 사용하는 ECDSA | [41] |
엘가말 서명 방식 | 슈노어 서명, 포앵슈발-슈테른 서명 알고리즘 등의 변형이 있다. |
라빈 서명 알고리즘 | |
페어링 기반 방식 | 예: BLS |
CRYSTALS-Dilithium | 격자에서 LWE를 기반으로 하는 양자 내성 방식 |
팰컨 | 격자에서 CVP를 기반으로 하는 양자 내성 방식 |
SPHINCS+ | 해시 함수를 기반으로 하는 양자 내성 방식 |
부인 불가능 서명 | |
집합 서명 | 여러 사용자의 서명을 하나로 통합할 수 있다. 미히르 벨라레와 그레고리 네번의 방식은 비트코인과 함께 사용될 수 있다.[42] |
효율적인 프로토콜을 사용한 서명 | 영지식 증명 또는 안전한 계산과 같은 효율적인 암호화 프로토콜을 용이하게 하는 서명 방식이다. |
8. 한국의 전자서명
한국의 전자서명에 대한 내용은 주어진 원본 소스에 직접적으로 나타나 있지 않다. 그러나 원본 소스는 디지털 서명과 관련된 일반적인 법률 제정 및 기술 표준의 문제점을 다루고 있으며, 이는 한국의 전자서명 상황에도 적용될 수 있는 내용이다.
원본 소스에 따르면, 많은 국가와 지방 자치 단체에서 디지털 서명을 승인, 지원, 촉진 또는 허용하는 법률 및 조례를 제정했으며, 미국에서는 유타주, 매사추세츠주, 캘리포니아주 등에서 이러한 움직임이 있었다. 또한 국제연합 국제상거래법위원회(UNCITRAL)에서는 2001년 전자 서명에 관한 모델 법을 제시했다.
이러한 법률 제정은 근본적인 암호 기술의 상태와 상충되는 예상을 구체화하여 혼란을 야기할 수 있으며, 기술 표준의 선택이 지연되는 문제도 발생할 수 있다고 지적하고 있다. 이는 한국의 전자서명 관련 법률 및 제도 마련 과정에서도 유사하게 나타날 수 있는 문제점으로 보인다.
9. 비판 및 한계
디지털 서명은 자체로는 완벽하지 않으며, 몇 가지 문제점을 안고 있다.
'''재생 공격'''
디지털 서명 방식 자체는 유효한 서명된 메시지가 기록되고 악의적으로 재생 공격에 사용되는 것을 막을 수 없다.[35] 예를 들어, 특정 거래에 대한 서명된 요청이 여러 번 반복되어 불필요한 자금 인출을 초래할 수 있다. 이를 방지하기 위해서는 거래 ID 시스템과 같이 추가적인 보안 조치가 필요하다.[35]
'''서명의 고유성 및 위변조 가능성'''
서명 자체는 서명하는 메시지를 고유하게 식별하는 데 사용될 수 없다. 일부 서명 방식에서는 동일한 서명자의 여러 유효한 서명이 존재할 수 있으며, 개인 키 없이도 하나의 유효한 서명을 다른 서명으로 변환하는 것이 가능하다.[36] 이는 비트코인 거래소와 같은 시스템에서 거래 ID로 서명을 오용할 경우, 거래 재생 공격에 악용될 수 있다.[37]
'''공개 키 인증'''
''공개 키''에 대한 사전 지식은 ''서명된 메시지''의 진위를 확인하는 데 사용될 수 있지만, 반대로 ''서명된 메시지''에 대한 사전 지식이 ''공개 키''의 진위를 보장하지는 않는다. 일부 서명 방식에서는 서명된 메시지를 통해 해당 메시지를 검증할 수 있는 공개 키를 쉽게 생성할 수 있다. 이는 개인 키를 알지 못해도 가능하다.[38]
골드바서, 미칼리, 리베스트는 디지털 서명에 대한 공격 모델을 다음과 같이 분류했다.[30]
공격 유형 | 설명 |
---|---|
키 전용(key-only) 공격 | 공격자에게 공개 검증 키만 제공된다. |
알려진 메시지(known message) 공격 | 공격자에게 공격자가 알고 있지만 선택하지 않은 다양한 메시지에 대한 유효한 서명이 제공된다. |
적응적 선택 메시지(adaptive chosen message) 공격 | 공격자가 먼저 공격자가 선택한 임의의 메시지에 대한 서명을 알아낸다. |
공격 결과 | 설명 |
---|---|
전체 위반(total break) | 서명 키의 복구로 이어진다. |
범용 위조(universal forgery) 공격 | 모든 메시지에 대한 서명을 위조할 수 있는 능력을 제공한다. |
선택적 위조(selective forgery) 공격 | 공격자가 선택한 메시지에 대한 서명을 생성한다. |
존재적 위조(existential forgery) | 공격자가 아직 알지 못하는 유효한 메시지/서명 쌍을 생성한다. |
가장 강력한 보안 개념은 적응적 선택 메시지 공격 하에서 존재적 위조에 대한 보안이다.
디지털 서명과 자필 서명의 주요 차이점 중 하나는 사용자가 서명하는 내용을 "직접 보지" 않는다는 점이다. 사용자 애플리케이션은 개인 키를 사용하는 디지털 서명 알고리즘으로 서명할 해시 코드를 제시한다. 공격자가 사용자 PC를 제어하면, 사용자 애플리케이션을 악의적인 프로그램으로 대체하여 사용자가 의도하지 않은 문서에 서명하도록 유도할 수 있다.
이러한 시나리오를 방지하기 위해 사용자 애플리케이션과 서명 애플리케이션 간의 인증 시스템을 구축하여 서로의 무결성을 확인할 수 있도록 해야 한다.
기술적으로 디지털 서명은 비트열에 적용되지만, 사람과 응용 프로그램은 그 비트열의 의미적 해석에 서명한다고 "믿는다". 비트열을 의미적으로 해석하려면 사람과 응용 프로그램에 의미 있는 형태로 변환해야 하며, 이는 컴퓨터 시스템에서 하드웨어 및 소프트웨어 기반 프로세스의 조합을 통해 이루어진다. 문제는 비트열을 의미적 콘텐츠로 변환하는 과정에서 비트의 의미적 해석이 변경될 수 있다는 점이다. WYSIWYS(What You See Is What You Sign)는[40] 서명된 메시지의 의미적 해석이 변경될 수 없다는 것을 의미한다. 즉, 메시지에 서명자가 인지하지 못하는 숨겨진 정보가 포함될 수 없으며, 서명 후에 공개될 수 없다.[40] 하지만 현대 컴퓨터 시스템의 복잡성으로 인해 WYSIWYS를 보장하기는 어렵다.
참조
[1]
서적
Lecture Notes on Cryptography
https://cseweb.ucsd.[...]
2023-06-11
[2]
서적
Introduction to Modern Cryptography
2007-01-01
[3]
웹사이트
US ESIGN Act of 2000
http://frwebgate.acc[...]
2006-05-10
[4]
웹사이트
State of WI
http://enterprise.st[...]
[5]
웹사이트
National Archives of Australia
http://www.naa.gov.a[...]
[6]
웹사이트
Secure Electronic Signature Regulations SOR/2005-30
https://laws-lois.ju[...]
2011-03-10
[7]
간행물
Electronic Communications and Transactions Act [No. 25 of 2002]
https://www.gov.za/s[...]
Republic of South Africa
2002-08-02
[8]
웹사이트
Федеральный закон "Об электронной подписи" от 06.04.2011 N 63-ФЗ (последняя редакция) \ КонсультантПлюс
https://www.consulta[...]
2024-10-27
[9]
웹사이트
Law 15-04
http://www.algerianb[...]
[10]
웹사이트
ELEKTRONİK İMZA KANUNU
https://www.mevzuat.[...]
Resmî Gazete
2004-01-23
[11]
웹사이트
THE INFORMATION TECHNOLOGY ACT, 2000
http://www.dot.gov.i[...]
The Gazette of India Extraordinary
[12]
웹사이트
Electronic Transaction Law
http://www.citc.gov.[...]
[13]
웹사이트
Cómo se usa
https://www.agesic.g[...]
2018-02-01
[14]
웹사이트
LEY-19799 SOBRE DOCUMENTOS ELECTRONICOS, FIRMA ELECTRONICA Y SERVICIOS DE CERTIFICACION DE DICHA FIRMA
https://www.leychile[...]
2002-04-12
[15]
웹사이트
Major Standards and Compliance of Digital Signatures – A World-Wide Consideration
http://www.cryptomat[...]
Cryptomathic
[16]
웹사이트
Recommendations for Providing Digital Signature Services
http://www.cryptomat[...]
Cryptomathic
[17]
논문
Digital signature schemes with strong existential unforgeability
2021-09-16
[18]
논문
Digital signature scheme for information non-repudiation in blockchain: a state of the art review
2020-03-04
[19]
논문
Securing digital signatures for non-repudiation
1999-05-01
[20]
문서
Pass, def 135.1
[21]
문서
Goldreich's FoC, vol. 2, def 6.1.2. Pass, def 135.2
[22]
논문
New Directions in Cryptography
1976-11-01
[23]
논문
Signature Schemes and Applications to Cryptographic Protocol Design
2002-01-01
[24]
논문
A Method for Obtaining Digital Signatures and Public-Key Cryptosystems
http://people.csail.[...]
[25]
문서
For example any integer, r, "signs" m=re and the product, s1s2, of any two valid signatures, s1, s2 of m1, m2 is a valid signature of the product, m1m2.
[26]
웹사이트
The History of Notes and Domino
http://www.ibm.com/d[...]
2007-11-14
[27]
논문
Constructing digital signatures from a one-way function.
1979-10-01
[28]
논문
A certified digital signature
1990-01-01
[29]
논문
Digitalized signatures as intractable as factorization.
1979-01-01
[30]
논문
A digital signature scheme secure against adaptive chosen-message attacks.
1988-04-01
[31]
논문
Universal One-Way Hash Functions and their Cryptographic Applications
1989-01-01
[32]
서적
Modern Cryptography: Theory & Practice
Prentice Hall Professional Technical Reference
2004-01-01
[33]
서적
Handbook of Applied Cryptography
2001-08-01
[34]
논문
The Exact Security of Digital Signatures—How to Sign with RSA and Rabin
Springer
1996-01-01
[35]
서적
Cryptography: Theory and Practice
Chapman & Hall/CRC
2006-01-01
[36]
기술보고서
The Provable Security of Ed25519: Theory and Practice
https://eprint.iacr.[...]
IACR Cryptology ePrint Archive
2020-10-14
[37]
학회논문
Bitcoin Transaction Malleability and MtGox
Springer
[38]
메일링리스트
Signature misuse vulnerability in draft-barnes-acme-04
https://mailarchive.[...]
2023-06-12
[39]
웹사이트
Chip and Skim: cloning EMV cards with the pre-play attack
http://sec.cs.ucl.ac[...]
2018-04-06
[40]
저널
WYSIWYS? – What you see is what you sign?
1998
[41]
RFC
RFC 5758
[42]
웹사이트
Technology roadmap – Schnorr signatures and signature aggregation
https://bitcoincore.[...]
Bitcoin Core
2017-03-23
[43]
법률
US ESIGN Act of 2000
http://frwebgate.acc[...]
[44]
법률
일본의 전자서명 및 인증업무에 관한 법률
[45]
웹사이트
The University of Virginia
http://www.itc.virgi[...]
[46]
웹사이트
State of WI
http://enterprise.st[...]
[47]
웹사이트
National Archives of Australia
http://www.naa.gov.a[...]
[48]
저널
New Directions in Cryptography
1976-11
[49]
논문
Signature Schemes and Applications to Cryptographic Protocol Design
http://theory.lcs.mi[...]
MIT
2002
[50]
저널
A Method For Obtaining Digital Signatures and Public-Key Cryptosystems
1978-02
[51]
기술보고서
Constructing digital signatures from a one-way function
SRI International
1979-10
[52]
학회논문
A certified digital signature
Spring Verlag
1990
[53]
기술보고서
Digitalized signatures as intractable as factorization
MIT Laboratory for Computer Science
1979-01
[54]
저널
A Digital Signature Scheme Secure Against Adaptive Chosen-Message Attacks
1988
[55]
저널
A digital signature scheme secure against adaptive chosen-message attacks
1988-04
[56]
서적
Modern Cryptography: Theory & Practice
Prentice Hall Professional Technical Reference
2004
[57]
주석
[58]
주석
[59]
주석
[60]
주석
[61]
RFC
RFC 5758
[62]
주석
[63]
백과사전
디지털 서명
글로벌세계대백과사전2
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com