Non-repudiation Mechanisms using asymmetric techniques (ISO_IEC 13888-3) 유창훈 2013.5.31
Table of Contents Introduction Scope Normative references Terms and definitions Symbols and abbreviated terms Requirements Trusted Third Party involvement Digital signatures Use of non-repudiation token with and without delivery authorities
Table of Contents Evidence produced by the end entities Non-repudiation of origin Non-repudiation of delivery Evidence produced by a Delivery Authority Non-repudiation of submission Non-repudiation of transport Mechanisms to ensure that a NR token was signed before a time t Mechanism using a Time-stamping service Mechanism using a Time-marking service
Introduction 목적 : 사건이나 행위의 발생유무에 대한 분쟁을 해결하기 위해 가용한 유효 증거를 제공하는 것. ISO/IEC 13888 에 정의 된 부인방지 서비스 종류 Non-repudiation of origin Non-repudiation of delivery Non-repudiation of submission Non-repudiation of transport 부인 방지 메커니즘은 부인방지 토큰의 상호교환을 포함. 부인방지 토큰은 전자서명과 부가 데이터로 구성된다. 부인방지 토큰은 분쟁 발생에 대비한 부인방지 정보로 저장. 부가적인 데이터 : 토큰의 구조에서 추가적으로 S()필드 외에 여러가지
Introduction 추가적인 데이터가 요구될 수 있다. Time-stamping authority 에 의해 제공되는 정보 Time-marking service 에 의해 제공되는 정보 부인방지토큰생성 당사자가 제공한 시간이 신뢰될 수 없는 경우 신뢰된 제 3자인 TSA에 의존하여 토큰의 생성된 시간에 대한 추가적인 증거를 수립하는 것입니다. 현재 토큰에 서명된 키가 유효하지 않더라도 과거 특정시점에 유효했었던 키로 서명되었다는 것을 증명해주기 위함.
Scope This part of ISO/IEC 13888 specifies mechanisms for the provision of specific, communication related, non-repudiation services using asymmetric cryptographic techniques.
Normative references ISO/IEC 13888-1:2004, Information technology — Security techniques — Non-repudiation — Part 1: General ISO/IEC 18014-1:2008, Information technology — Security techniques — Time-stamping services — Part 1:Framework
Terms and definitions ISO/IEC 13888-1에 설명된 용어와 정의의 개념을 적용한다.
Symbols and abbreviated terms A : 메시지 송신자 A의 식별자 B : 메시지 수신자 B의 식별자 C : 제 3 신뢰기관 식별자 CA : 인증기관 Di : 배달기관 식별자 fi : 부인방지 서비스의 type을 나타내는 flag Imp(y) : 데이터 y 또는 y의 해쉬값 M : 메시지 NR : 부인방지 NRD : 배달부인방지 NRDT : 배달부인방지 토큰 NRO : 송신부인방지 NROT : 송신부안방지 토큰 신뢰된 제3자가 다양한 역할(예를 들면 공증, 타임 스탬핑, 감시, 키 인증, 서명 생성, 서명 검증, 보안 봉투 생성, 보안 봉투 검증, 토큰 생성 또는 배달역할) 을 수행할 수 있다.
Symbols and abbreviated terms NRS : 제출 부인방지 NRST : 제출 부인방지 토큰 NRT : 전달 부인방지 NRTT : 전달 부인방지 토큰 Pol : 증거에 적용되는 부인 방지 정책의 식별자 Q : 추가적인정보 ex) 메시지 m의 식별자, 서명이나 해쉬알고리즘 S : 실체 x의 개인키를 이용한 서명. Ex> S(X,m) Ti : event가 발생한 날짜와 시간. Tg : 증거가 생성된 날짜와 시간. texti : (optional data) ex) 공개키 또는 인증기관 구별하기 위한 식별자 TSA : 시점확인 기관 Pol 부인방지 서비스 제공을 위한 부인방지 토큰을 생성과 확인에 적용되는 규칙들. 리스트로 되어있지 않을까? TTP를 이용해라, TSA를 이용해라 Q는 메시지 m의 식별자 : 메일서버에서 message id를 발견할 수 있는데 이메일과 같은 @ 형식 rfc822에 … 왜 optional data 지?????????? Ti = 해당 토큰에 따라 토큰 생성자 입장에서 메시지가 송신,수신,제출,전송 시간 Text = 공개키 또는 인증기관을 구분하기 위한 식별자.
Symbols and abbreviated terms TST : 시점확인 토큰 X,Y : 개체 이름 X,Y y||z : y와 z의 순서로 연접된 결과
Requirements 부인방지 교환의 실체들은 동일한 제 3의 신뢰기관(TTP) 를 신뢰한다. 실체에 연결된 서명 키는 반드시 그 실체에 의해 비밀이 유지되어야 한다 사용되는 Imp 함수는 항등함수 이거나 충돌저항성이 보장되는 해쉬 함수 이어야 한다. 사용된 전자서명 메커니즘은 부인방지 정책에 의해 명시된 보안 요구사항을 만족해야 한다. 1차 다이제스트 y가 주어졌을 때, 같은 y가 나오는 M 찾기 힘들어야함 2차 평문과 다이제스트가 주어졌을 때, 같은 다이제스트를 갖는 평문 찾기 힘들어야함 충돌 :무작위로 생성한 두개의 평문에 같은 다이제스트 나오면안됨.
Requirements 증거 생성에 앞서 증거 생성자는 증거가 어떤 유형인지, 증거를 검증하기 위해 사용될 메커니즘은 무엇인지 알아야 한다. 신뢰기관은 검증 시 메커니즘을 제공할 수 있어야 한다. 증거 생성자와 검증자는 Time-stamping service 또는 Time-marking serivce 를 이용할 수 있어야 한다.
Trusted Third Party involvement 배달기관은 메시지를 수신자에게 전달할 것과 submission, transport 부인방지 토큰을 제공 해야 한다. 비대칭암호기술은 TTP의 참여를 요구할 수 있다. 부인방지 정책은 TTP에 의해 생성되는 증거를 요구할 수도 있다. TSA에 의해 TST 는 부인방지의 유효성을 보장받을 수 있다. 신뢰된 제3자가 다양한 역할(예를 들면 공증, 타임 스탬핑, 감시, 키 인증, 서명 생성, 서명 검증, 보안 봉투 생성, 보안 봉투 검증, 토큰 생성 또는 배달역할) 을 수행할 수 있다.
Trusted Third Party involvement A Time-marking Authority may be involved to provide assurance that the signature of a given nonrepudiation token was recorded before a given time. An Evidence Recording Authority may be involved to record evidence that can later be retrieved if there is a dispute. TST와 NR토큰과 같은 증거를 저장해 놓는 증거기록 기관이 참여할 수 있다.
Digital signatures 부인방지토큰은 전자서명을 포함. 서명은 유효기간을 가진다. 토큰도 서명을 포함하고 있기 때문에 유효기간을 가진다. 현재 시점에서 유효기간이 만기되었거나, 철회 또는 취소 되었을 때 에도 Time-stamping service 나 Time-marking service 를 통해 유효성을 보장 받을 수 있다.
Use of non-repudiation tokens without delivery authorities
Evidence produced by the end entities NRO, NRD 배달기관 DA 없이 A에서 B로 메시지를 보낼 때. A, B는 각각 자신의 개인키를 알고 있고 공개키는 공개되어있다고 가정. TTP C가 포함되어있다면(optional), C는 생성한 모든 NROT를 보관하고 NRDT를 생성하는데 NROT가 사용되었는지 여부를 기록해놓아야 한다.
Non-repudiation of origin NRO토큰은 메시지 송신에 대한 허위 부정을 막기 위함 NRO토큰은 메시지 m의 송신자 A(또는 인증기관 C)가 생성한다. A가 수신자 B에게 NRO토큰을 보낸다. 수신자 B는 검증 후 저장한다.(A나C의 공개키로) NRO토큰의 구조는 NROT = text1||z1||S(A,z1) z1=Pol||forigin||A[||B]||C||Tg[||T1]||Q||Imp(m) Pol : 증거에 적용된 부인방지 정책 식별자 forigin : 송신부인방지를 의미하는 플레그 A : 송신자 식별자 ex> email address B : (optional data) 수신자 식별자 ex> email address C : 인증기관식별자 if. S(A,z1) S(C,z1) Pol 부인방지 서비스 제공을 위한 부인방지 토큰을 생성과 확인에 적용되는 규칙들. 리스트로 되어있지 않을까? TTP를 이용해라, TSA를 이용해라 Q는 메시지 m의 식별자 : 메일서버에서 message id를 발견할 수 있는데 이메일과 같은 @ 형식 rfc822에 … 왜 optional data 지?????????? Ti = 해당 토큰에 따라 토큰 생성자 입장에서 메시지가 송신,수신,제출,전송 시간 Text = 공개키 또는 인증기관을 구분하기 위한 식별자. C = 포함된 인증기관의 식별자(선택적), 만약 토큰이 인증기관 C에 의해 생성되었다면 이 자료항목은 필수 이고, S(A,z1) S(C,z1)로 대체된다.
Non-repudiation of origin Tg : 토큰의 생성시간 T1 : (optional data) 메시지 m이 보내진 날짜와 시간 Q : 추가적인정보 ex>메시지 m의 식별자, 서명메커니즘 또는 해쉬 함수. Imp(m) : 메시지 m, 또는 m의 해쉬 값.
Non-repudiation of origin Mechanism for NRO If TTP C is involved (optional) A가 C에게 m 에 대한 NRO token 생성요청 C가 NRO token 요청을 확인 C가 NRO token 을 구성 C가 NRO token 을 저장하고, A에게 NRO token을 Send. A가 NRO token 수신. If TTP C is not involved A가 NRO token을 구성 A가 NRO token을 m과 함께 B에게 보냄. B는 NRO token 을 검증 Token구성요소 확인 및 공개키로 서명 확인 검증이 완료되면 NRO token은 증거로 저장된다.
Non-repudiation of delivery NRD 토큰은 메시지 수신 및 내용인식에 대한 허위 부정을 막기 위함 NRD토큰은 메시지 m의 수신자 B(또는 인증기관 C)가 생성한다. B가 송신자 A에게 NRD토큰을 보낸다. 송신자 A는 이를 검증 후 저장한다.(B나 C의 공개키로) NRD토큰의 구조는 NRDT = text2||z2||S(B,z2) z2=Pol||fdelivery[||A]||B[||C]||Tg[||T2]||Q||Imp(m) Pol : 증거에 적용된 부인방지 정책 식별자 fdelivery : 배달부인방지를 의미하는 플레그 A : (optional data) 송신자 식별자 ex> email address B : 수신자 식별자 ex> email address C : 인증기관식별자 if. S(B,z2) S(C,z2) C = 포함된 인증기관의 식별자(선택적), 만약 토큰이 인증기관 C에 의해 생성되었다면 이 자료항목은 필수 이고, S(B,z1) S(C,z1)로 대체된다.
Non-repudiation of delivery Tg : 토큰의 생성시간 T2 : (optional data) 메시지 m이 수신된 날짜와 시간 Q : 추가정보 . ex>메시지 m의 식별자, 서명메커니즘 또는 해쉬 함수 Imp(m) : 메시지 m, 또는 m의 해쉬 값.
Non-repudiation of delivery Mechanism for NRD If TTP C is involved (optional) B가 m 또는 m||Imp(NROT)를 C 에게 보내고 NRD token을 요청.(NROT는 C에 의해 생성되었음) C는 NROT가 C에 의해 생성되었는지 확인. C는 NRDT를 구성하고 해당 NROT가 NRDT를 만들기 위해 사용되었다는 것을 기록해놓는다. C는 NRDT를 B에게 보냄. B는 NRDT를 수신. If TTP C is not involved B가 NRD token을 구성 B가 NRD token 을 A에게 보냄. A는 NRD token 을 검증 Token구성요소 확인 및 공개키로 서명 확인 검증이 완료되면 NRD token은 증거로 저장된다.
Use of non-repudiation tokens with delivery authorities
Evidence produced by a Delivery Authority NRS NRS 토큰은 DA에 의해 생성된다. NRS는 송신자나 선행 배달기관이 메시지가 배달을 위해 제출되었다는 증거를 얻도록 허용한다. NRS토큰은 DAi 의해 생성된다. DAi 는 이전 배달기관 DAi-1 또는 송신자 A에게 NRST를 전송한다. DAi-1 또는 송신자 A 는 NRST를 공개키(DAi의)를 통해 검증하고 저장한다.
Evidence produced by a Delivery Authority NRS 토큰의 구조는(Di+1 Di ) ( i = 1,2,3…n-1) NRST = text3||z3||S(Di+1,z3) z3=Pol||fsubmission[||A]||B|| D1||D2||……||Di||Di+1||Tg||T3[||Q]||Imp(m) Pol : 증거에 적용된 부인방지 정책 식별자 fsubmission : 제출부인방지를 의미하는 플레그 A : (optional data) 송신자 식별자 ex> email address B : 수신자 식별자 ex> email address Di : 배달기관 i 는 배달기관의 번호. Tg : 토큰의 생성시간 T3 : 메시지 m이 제출된 날짜와 시간 Q : 추가정보 ex>메시지 m의 식별자, 서명메커니즘 또는 해쉬 함수. Imp(m) : 메시지 m, 또는 m의 해쉬 값.
Evidence produced by a Delivery Authority Mechanism for NRS 송신자 X (A or Di i = 1,2…n-1) 배달기관 Y(D1 or Di+1 ……) X sends the message m and request for an NRST to Y Y 는 NRST 구성 후 X로 전송 X는 Y의 공개키로 검증 후 저장. DA는 자기자신이 신뢰된 3자기관.
Evidence produced by a Delivery Authority NRT NRT토큰은 마지막 배달기관이 송신자에게 전달하는 것으로, 메시지가 배달기관에 의해 지정 수신자에게 전달되었다는 증거를 얻도록 허용한다. 송신자 A또는 선행 배달기관 X가 메시지 m 을 DA 로 전송 DA는 메시지 m을 수신자 B 또는 후위 배달기관에 전송 메시지 m을 B에 전송한 DA는 NRTT를 송신자 A에게 전송. NRT토큰은 배달기관 DAn에 의해 생성 DAn 에 의해 메시지 송신자 A에게 전송 A에 의해 검증후 저장 (DAn 의 공개키로)
Evidence produced by a Delivery Authority NRT 토큰의 구조는(Dn A ) NRTT = text4||z4||S(Dn,z4) z4=Pol||ftransport[||A]||B|| D1||D2||……||Dn||Tg||T4[||Q]||Imp(m) Pol : 증거에 적용된 부인방지 정책 식별자 fsubmission : 전송부인방지를 의미하는 플레그 A : (optional data) 송신자 식별자 ex> email address B : 수신자 식별자 ex> email address Di : 배달기관 i 는 배달기관의 개수. Tg : 토큰의 생성시간 T4 : 메시지 m이 배달된 날짜와 시간 Q : 추가정보 .ex>메시지 m의 식별자, 서명메커니즘 또는 해쉬 함수, 인증서 관련정보. Imp(m) : 메시지 m, 또는 m의 해쉬 값.
Evidence produced by a Delivery Authority Mechanism for NRT 송신자 X (A or Di i = 1,2…n-1) 배달기관 DA(D1or Di+1 … Dn) 수신자 Y X sends the message m to Y Dn 은 메시지 m을 B에게 송신. Dn 은 NRT 토큰을 구성하고 A에게 송신. A는 Dn 의 공개키로 검증 후 저장.
Mechanisms to ensure that a NR token was signed before a time t 서명된 부인방지 서비스의 유효성을 보장해 주기 위함. Time-stamping service information provided by a time-stamping authority which provides assurance that the signature of the nonrepudiation token was created before a given time 시점확인서비스 TSA(Time-stamping Authority)에 의해 제공됨. 부인방지 서비스가 어떠한 시점에 생성되었다는 것을 증명해 주는 것이다. Time-stamping 서비스란 날짜/시간과 전자문서를 암호학적으로 강하게 묶어놓는 time-stamp를 만들어 주는 서비스 입니다. 이 time-stamp라는 것은 어떠한 문서나 전자적인 데이터가 어떠한 시점에서 존재하고 변하지 않았다는 것을 TSA의 서명으로 증명. 과거에 송신부인방지 토큰을 받은 수신자가 해당 토큰을 검증후 TSA에 시점확인 서비스를 요청하면, TSA는 현재 공증 시간과 해당 토큰의 해쉬값을 결합하여 TSA의 개인키로 서명및 TST 생성 나중에 키가 철회되거나 기간이 만료 되었다고 하더라도 TST안에 존재하는 송신부인방지토큰의 해쉬값과 , 가지고 있는 송신부인방지토큰의 해쉬값을 비교해서 변경이되었는지 확인. 및 그때 당시 키가 유효했던 기간에 생성된 증거가 지금까지 변하지 않고 계속 유효하다는 것을 나타내줌. (키가 철회되거나 폐지되면 현재 확인할수없는데)
Mechanisms to ensure that a NR token was signed before a time t Time-stamping service 요청자 X의 메시지 R = text ||y ( y = hash(NR token) + ID(hash algorithm) ) text 은 다음과 같은 내용을 포함한다. R이 시점 확인 서비스에 대한 요구임을 지시 요청자 X를 구별하는 식별자 TSA를 구별하는 식별자 Time-stamping 기관은 다음의 같은 응답 TST = text ||w||STSA(w) w = Pol||f|TSA||Tg||Q||Imp(y) Pol = 증거에 사용된 정책 f = 시점확인 토큰을 지시하는 지시자 TSA = 시점확인 기관을 구분하는 식별자 Tg = 증거가 생성된 날짜와 시간 Q = 자료 y의 식별자, 서명매커니즘, 해쉬함수 Imp(y) = y 혹은 y의 해시 값 Y 에는 공증받길 원하는 어떤 자료항목도 가능하다. 메시지나 부인방지토큰 Pol 부인방지 서비스 제공을 위한 부인방지 토큰을 생성과 확인에 적용되는 규칙들. 리스트로 되어있지 않을까? TTP를 이용해라, TSA를 이용해라 Q는 메시지 m의 식별자 : 메일서버에서 message id를 발견할 수 있는데 이메일과 같은 @ 형식 rfc822에 … 왜 optional data 지??????????
Mechanisms to ensure that a NR token was signed before a time t
Mechanisms to ensure that a NR token was signed before a time t
Mechanisms to ensure that a NR token was signed before a time t Time-marking service information provided by a time-marking service which provides assurance that the signature of the nonrepudiation token was recorded before a given time. 요청자 X 의 요청 메세지 Req = text1 || y ( y = hash(NR token) + ID(hash algorithm) ) text1 구성 Time-marking 기관 식별자 Time-Mark 정책 X의 이름 Time-Marking 기관은 다음과 같은 응답 Resp = text2 || recording number data y 기록된 날짜와 시간 요청 시 보낸 text1 의 전체 또는 부분 Time-mark에 적용된 정책
Q&A 감사합니다.