본문 바로가기
이론/네트워크

디지털 서명의 부인방지(Non-repudiation)

by 유세지 2023. 5. 14.

 

 

 

 

이전 포스트를 통해 일방향 해시함수가 어떻게 파일의 무결성을 확인할 수 있는지 알 수 있었습니다. 그러나 이런 일방향 해시함수를 사용한다고 해도, 송신자 측에서 통신이 이루어졌다는걸 부인해버리면 이 통신의 진위를 확인할 방법이 없다는 문제점이 남아 있었습니다.

 

따라서 보다 안전하고 확실한 통신을 위해 어떤 요청을 해당 송신자가 보낸 것이 확실하다는, 이른바 부인방지(Non-repudiation) 라고 하는 기술이 필요했는데요. 오늘 설명할 디지털 서명이 바로 통신간 부인방지를 적용하기 위해 등장한 기술입니다. 이번 글에서는 디지털 서명이란 어떤 것인지, 어떻게 디지털 서명이 이러한 문제를 해결할 수 있었는지에 대하여 알아보겠습니다.

 

 

디지털 서명이란?

디지털 서명(Digital Signature)이란 말 그대로 네트워크에서 송신자가 스스로 본인임을 증명하는 방법입니다. 우리가 일상생활에서 계약서를 쓰거나, 신용카드로 물건을 계산할때 내가 하고 있는 것임이 틀림 없다는 의미로 서명을 하는 것과 같은 맥락입니다.

 

아날로그에서의 서명을 생각해보면 필체나, 혹은 지장을 찍었다고 한다면 찍혀진 지문을 토대로 현재 서명을 하고 있는 것이 본인임을 증명하는 방법이 될 수 있겠죠. 그렇다면 디지털에서는 어떻게 본인임을 식별하는 걸까요?

 

우리는 이전까지의 포스팅에서 줄곧 암호화에 대해 이야기를 하였습니다. 잠깐 앞으로 돌아가서 공개 키 암호화 방식이 어떻게 동작하는지 떠올려봅시다.

 

 

공개 키 암호화는 서로 다른 키를 통해 암호화와 복호화를 실행합니다.

 

공개 키 암호화 방식은 수신자의 공개키개인키, 두 가지 키를 통해 암/복호화를 진행합니다. 외부에 공개되어 누구라도 접근할 수 있는 공개키를 통해 암호화 한 정보를 수신자가 개인적으로 가지고 있는 개인키를 통해 복호화 하는 방식으로 기밀성을 유지할 수 있습니다.

 

그런데, 디지털 서명은 이와 비슷하면서도 다른 방식의 암호화가 적용됩니다.

 

송신자 측에서 정보를 보낼때 본인임을 증명하기 위해 암호화를 적용하고, 이후 수신자 측에서 복호화를 통해 해당 송신자가 맞는지 확인합니다. 여기까지만 보면 공개키와 동일한데, 차이점은 암/복호화에 사용하는 키가 서로 반대라는 점입니다.

 

 

서명은 공개 키 암호화와 정반대의 키를 사용해 이루어집니다.

 

송신자만이 접근할 수 있는 송신자의 개인키를 통해 암호화 한 정보는, 모두가 접근할 수 있는 송신자의 공개키를 통해 복호화가 가능합니다. 즉, 서명을 할 수 있는건 오직 개인키를 가지고 있는 송신자 뿐이고, 해당 서명을 확인하는 작업은 수신자를 포함한 불특정 다수 누구라도 가능하다는 의미입니다.

 

송신자 본인을 제외한 아무나 서명을 할 수 없으니, 이렇게 하면 송신자가 해당 메시지를 보냈다는 것을 확실하게 증명할 수 있습니다.

 

물론 이렇게 하면 서명의 암호화는 아무런 보안성을 갖지 않게 됩니다. 누구든 평문으로 해석할 수 있는 암호문을 만들었다면 이를 암호화라고 부르기는 애매하겠죠. 그래서 디지털 서명의 경우 이 단계를 암호화와 복호화가 아닌 서명과 검증이라고 부릅니다. 기밀성을 유지하려는 것이 목적이 아니라는 점을 기억해야 합니다.

 

디지털 서명은 메시지에 직접 서명하는 방법과 메시지의 해시 값에 서명하는 두 가지 방법이 있습니다. 빠른 처리 속도를 위해 보통은 메시지의 해시 값에 서명하는 것이 일반적인 경우입니다.

 

 

다음으로는 디지털 서명의 몇 가지 특징을 알아보겠습니다.

 

위조 불가

디지털 서명의 첫 번째 특징으로는, 위조가 불가능하다는 점입니다. 디지털 서명은 서명자(송신자)의 개인키로만 가능하기 때문에, 개인키를 갖고 있지 않은 공격자가 서명을 위조하는 것은 불가능합니다. 이는 공개 키 암호화에서 수신자의 개인키를 갖고 있지 않은 외부인이 암호문을 해석할 수 없는 것과 동일하다고 볼 수 있겠습니다.

 

 

서명자 인증

두 번째는 서명자를 인증(확인)할 수 있다는 점입니다. 이 데이터에 서명을 한 것이 누구인지 확인할 수 있다는 점이 바로 일방향 해시함수의 문제점을 직접적으로 해결하는 특징이라고 할 수 있습니다.

 

 

재사용 불가

세 번째 특징으로는 재사용이 불가능하다는 점입니다. 서명은 송신자가 보내려고 하는 정보를 토대로 만들어집니다. 따라서 송신자가 한 번 서명한 부분을 그대로 복사했다고 해서 다른 통신에서 다시 사용하는 것은 불가능합니다. 만약 재사용이 가능했다면 그 자체로 엄청난 취약점이 될 것이고, 서명도 아무런 의미가 없어질 것입니다.

 

 

변경 불가

일단 한 번 서명이 이루어졌다면, 서명된 이후 데이터의 변경이 불가능합니다. 이는 재사용 불가와도 일맥상통하며, 이전 데이터를 기반으로 만들어진 서명과 새롭게 변경된 데이터는 서로 양립할 수 없기 때문입니다.

 

 

부인 불가

이번 글의 제목이기도 한 부인방지의 근거가 되는 특징입니다. 서명자만이 알 수 있는 개인키로 서명이 진행되었기 때문에, 송신자는 해당 통신이 이루어진 것을 부인할 수 없게 됩니다.

 

 

 

디지털 서명은 이렇게 다섯 가지 특징을 갖고, 이를 통해 부인방지를 성공적으로 적용할 수 있게 되었습니다.

 

 

 

디지털 서명을 공격하는 방법

공격자는 다양한 방법을 통해 디지털 서명을 공격할 수 있습니다. 공개 키 암호를 기반으로 이루어지는 서명이다보니, 공개 키 암호에 효과가 있는 중간자 공격 또한 디지털 서명에 적용될 수 있습니다. 송신자와 수신자 사이에서, 양측에게 서로의 통신 상대인 것처럼 행세하여 정보를 취하는 방법입니다.

 

또한 일방향 해시 함수의 충돌처럼 서명 정보를 충돌시켜 엉뚱한 정보에 유효한 서명을 덧붙이는 방법도 가능합니다. 따라서 이러한 공격을 방지하기 위해서는 서명 또한 충돌 내성을 가져야합니다.

 

또는 공격자가 송신자에게 접근하여 암호문에 서명하도록 유도하는 방법도 있습니다. 언제 누구라도 이런 교묘한 속임수의 표적이 될 수 있으니, 알 수 없는 정보에 서명을 하는 것은 반드시 지양해야 할 일입니다.

 

 

디지털 서명 또한 언제든 공격 받을 수 있습니다

 

 

마치며

오늘은 디지털 서명에 대해 알아보았습니다. 디지털 서명이 어떤 방식으로 진행되고, 어떻게 부인방지를 적용할 수 있었는지에 대해 알 수 있었습니다. 다음에는 인증서에 대하여 알아보겠습니다.

반응형

댓글