DTT 타임스탬프의 작동원리

DTT 얼라이언스는 20 개의 기업이 모인 분산신뢰기반 시점확인과 데이터 검증 연합체입니다. 기업들의 내부 자료에 대한 직접 적용이나 기업들이 DTT 얼라이언스 블록체인을 활용해서 일반소비자용 서비스를 만들 수 있도록 지원하고 있습니다.

원본의 준비

DTT 얼라이언스의 시점확인은 현재의 법적 유효성 요구사항과 블록체인을 활용한 미래의 가능성을 모두 만족시킬 수 있도록 준비했습니다. PDF 파일 형식을 사용할 경우, 문서의 장기보관에 최적화된 포맷이기 때문에 전자문서의 법적 유효성을 인정받기에도 가장 적합하고 효과적입니다. 현재 정부의 전자문서진본확인센터에서도 모든 인증과 확인은 PDF 파일형식으로만 가능합니다.

그렇다고 PDF 외의 파일 형식에 대해서 시점확인이 불가능한 것은 아닙니다. 어떤 임의의 데이터 세트에 대한 시점확인을 하는 데에 있어서 파일 형식의 제한은 이론적으로는 존재하지 않습니다. 아래에서 설명할 해시 함수에서 더 자세한 설명을 하겠지만, 데이터의 파일 형식이 PDF, 워드, 엑셀, 오디오, 비디오 등 바이트(byte) 형식으로 된 모든 디지털 파일은 시점확인의 대상이 될 수 있습니다.

시점확인 서비스를 이용할 때, 원본 파일의 보관에는 사용자 스스로의 주의가 필요합니다. 시점확인 서비스만 단독으로 사용하고 원본파일의 보관은 사용자가 스스로 관리하는 경우, 만약 사용자 본인이 원본파일을 분실할 경우, 시점확인 서비스 제공자가 원본 파일의 백업, 복구, 복원에는 어떠한 도움도 줄 수 없습니다. 서비스 제공자는 해당 파일의 해시 값만을 저장했을 뿐, 원본 파일은 저장하지 않기 때문에 원본의 보관과 백업은 전적으로 사용자 본인이 관리해야 합니다. 시점확인 서비스와 클라우드 문서 보관 서비스를 동시에 사용해서 이러한 위험을 관리할 수도 있습니다.

해시(Hash) 함수와 응용

해시(Hash) 함수는 긴 입력을 받아서 짧은 출력을 산출합니다. 이러한 출력을 해시 값(hash value) 또는 다이제스트(digest: 요약)이라고 부릅니다. 해시 함수의 암호학적 강도는 함수 출력의 비예측성(unpredictability: 또는 예측 불가능성)에 의존합니다. 보안 해시 함수의 이론적인 정의는 무작위 함수에 없는 어떤 속성이나 패턴이 보안 해시 함수에 존재해서는 안 된다는 것이고, 더 구체적으로는 역상 저항성과 충돌 저항성으로 설명됩니다.

주어진 해시 값 H에 대해서 Hash (M) = H 를 만족하는 임의의 메시지 M을 가리켜 그 해시 값의 역상(preimage)이라고 부릅니다. 역상 저항성은 어떤 무작위 해시 값이 주어졌을 때 공격자가 그 해시 값을 역상을 결코 찾아낼 수 없다는 보안 보장 속성입니다. 실제 응용에서는 원래의 메시지는 물론이고 주어진 해시 값을내는 다른 어떤 메시지도 찾아내는 것이 현실적으로 불가능해야 합니다. 구체적으로 말하면, 역상 저항성은 제 1 역상 저항성과 제 2 역상 저항성으로 나윕니다. 제 1 역상 저항성(first-preimage resistance)는 주어진 해시 값을 산출하는 메시지를 찾기가 현실적으로 불가능한 것을 가리키고, 제 2 역상 저항성(second-preimage resistance)은 어떤 메시지 M1이 주어졌을 때 그 메시지의 해시 값과 동일한 해시 값을 산출하는 또 다른 메시지 M2를 찾기가 현실적으로 불가능한 것을 가리킵니다. 서로 다른 메시지들이 같은 해시 값을 내는 것 또는 그러한 메시지들을 해시 값을 충돌이라고 합니다. 충돌 저항성(Collision Resistant)은 충돌을 찾아내는 것이 원래의 메시지를 찾아내는 것 만큼이나 어렵다는 뜻이고 다른 말로 하면 공격자가 같은 해시 값을 내는 서로 다른 두 메시지를 찾아 낼 수 없다는 뜻입니다. 충돌 저항성은 제 2 역상 저항성과 관련이 있는데, 임의의 충돌 저항 해시 함수는 제 2 역상 저항 함수입니다.

긴 입력을 예측불가능한 무작위의 짧은 값으로 출력하고, 서로 다른 두 자료에 대해서 항서 서로 다른 해시 값을 산출한다는 특성 덕분에 한 파일의 해시는 그 파일의 식별자 역할을 합니다. 그래서 해시 함수는 자료의 기밀성 유지에 쓰이는 다른 암호 함수와는 달리 중간에 누군가가 자료를 수정했다면 그 사실을 알 수 있게 함으로써 자료의 무결성을 지키는 용도로 주로 쓰입니다. 디지털 서명, 공개 키 암호화, 무결성 검증, 메시지 인증, 심지어 비트코인의 작업증명 시스템에서도 해시 함수 활용됩니다.

DTT 얼라이언스의 타임스탬프는 공인인증을 받은 사업자의 신뢰를 기반으로 하는 전통적인 방식과 블록체인 기반의 탈중앙화된 인증 효과를 모두 누릴 수 있도록 되어 있고, 이 두가지 방식에 모두 해시 함수가 중요한 역할을 합니다.

공인인증 사업자 인

전통적인 방식의 타임스탬프는 정부기관이나 정부로부터 인증을 받은 공인인증기관이 신뢰할 수 있는 제 3자(Trusted Third Party: TTP) 역할을 맡아서 타임스탬프 발행기관(TimeStamp Authority: 또는 시점 확인 서비스 기관)이 됩니다. 사용자는 타임스탬프를 받기 원하는 원본문서의 해시 값을 타임스탬프 발행기관에 제출합니다. DTT 얼라이언스의 타임스탬프는 시점확인의 국제규격인 RFC 3161 따라서 PDF 문서의 해시 값을 계산하고 여기에 현재의 시간값을 더해서 DTT 얼라이언스가 TSA가 되어 개인키로 서명한 값을 원본 PDF 문서에 추가합니다.

KeyPrivate ( Hash (M) + Time ) = C

KeyPublic ( C ) = Hash ( M ) + Time

원본의 확인은 타임스탬프에 표시된 값(C)을 공개키를 적용한 뒤 나온 해시 값과 원본 문서의 해시 값을 비교해서 확인할 수 있습니다. 최초의 과정에서 타임스탬프 발행기관의 개인키를 이용했기 때문에 발행기관 외의 다른 제 3자가 이 타임스탬프를 남길 수 없다는 점을 확인할 수 있습니다.

DTT 얼라이언스의 타임스탬프는 시점확인의 국제규격인 RFC 3161 과 행정안전부의 전자문서 진본확인 서비스 연계 기술규격 표준에서 요구하는 데이터 규격을 모두 만족합니다. 이 규격은 지방자치단체 및 공공기관이 국민에게 전자문서 진본 확인 서비스를 제공할 때 사용되는 연계용 SW에 대한 일종의 가이드라인입니다.

DTT 얼라이언스 블록체인 저장

블록체인 기반의 타임스탬프는 전통적인 신뢰할 수 있는 제 3자(Trusted Third Party: TTP)가 없이도 시점확인과 원본인증을 구현할 수 있는 방법입니다. 사용자가 타임스탬프 인증을 원하는 문서의 해시 값을 제출하면 타임스탬프 발행자의 서명과 블록체인 지갑 주소의 해시 값을 원본 PDF 문서의 스탬의 형태로 삽입하고, DTT 얼라이언스 블록체인의 블록에 문서의 해시값과 타임스탬프 발급기록을 거래(transaction)의 형식으로 저장합니다.

DTT 얼라이언스가 제공한 거래와 블록의 정보를 검색해서 원본의 해시 값이 블록체인에 저장되어 있는지를 확인함으로써 원본의 시점과 그 이후에 변경되지 않았음을 확인할 수 있습니다. 해시 값과 해당 시간을 직접 기록할 수도 있지만, 블록의 생성순서는 생성시간의 절대적 순서를 가리키기 때문에 블록체인의 블록순서 정보만으로도 해당 정보의 생성시점에 대한 논리적 증명으로 작동합니다. 어떤 특정 블록에 담긴 거래에 포함된 해시 값을 조작하기 위해서는 해당 블록을 조작하는 것만으로는 불가능하고 해당 블록과 그 이후부터 현재까지 쌓인 모든 블록을 조작해야 합니다. 이는 블록체인의 모든 블록 값이 그 이전 블록의 해시 값에서 다시 계산되어서 나온 연쇄 해시의 속성을 가지고 있기 때문입니다. 여기에 DTT 얼라이언스 타임스탬프는 앵커링을 통해서 신뢰성을 더 강화했습니다.

앵커링(Anchoring)

프라이빗 블록체인 네트워크를 구축하여 전자문서를 보관/관리하는 경우, 퍼블릭 블록체인에 비해 상대적으로 보안이 취약할 것이라고 바라보는 시각도 있습니다. 프라이빗 블록체인은 보안 이슈로 인해 내부에서 한정된 네트워크 참여자(Node)로 운영되기 때문입니다. 이를 보완하기 위해 앵커링(Anchoring)을 사용할 수 있습니다. 앵커링은 프라이빗 블록체인에 저장된 최신 블록의 해시 값을 주기적으로 퍼블릭 블록체인에 저장하는 기법입니다. 배가 정박할 때 움직이지 않도록 닻(anchor)을 내리는 앵커링에 비유한 표현입니다. 앵커링은 프라이빗 블록체인에서 발행한 데이터를 퍼블릭 블록체인에 등록함으로써 프라이빗 네트워크 내 발생하는 데이터 정합성을 확보할 수 있는 추가적인 연계 방안입니다.

DTT 얼라이언스 블록체인은 주기적으로 블록의 해시정보를 퍼블릭 블록체인인 아르고(Aergo)에 앵커링하고 있습니다. 이를 통해서 얼라이언스 내부의 노드에 의해서만 운영되는 블록체인의 기록 불가역성에 대한 신뢰를 강화합니다.

DTT 얼라이언스 타임스탬프 서비스

DTT 얼라이언스의 타임스탬프는 신뢰할 수 있는 제 3자가 타임스탬프 발행기관이 되는 전통적인 타임스탬프와 블록체인 기반의 분산신뢰 시점확인의 장점을 모두 갖춘 서비스입니다. 전자문서 시점확인에 대한 국제표준과 국내규격 요구사항을 모두 만족시킴으로써 법적 유효성을 가질 수 있고, 블록체인 기반으로 특정 국가, 특정 정부의 통제권에 제한받지 않고 유효한 검증과 확인을 할 수 있습니다. DTT 얼라이언스는 전자문서 뿐만 아니라 모든 형태의 데이터로 그 범위를 확장하고 시점확인 뿐만 아니라 탈중앙화된 다양한 검증과 확인을 할 수 있도록 발전해 나갈 예정입니다. 국경이나 서비스 시간, 또는 위탁 저장 기관의 신뢰도를 넘어서서 전세계 어디서나 누구나 신뢰할 수 있는 방법으로 단일 장애 없이 온라인 상에서 전자적인 데이터를 교환하고 검증할 수 있도록 하는 것이 DTT 얼라이언스의 목표입니다.

Last updated