KR102322447B1 - 인증서 투명성 시스템 - Google Patents

인증서 투명성 시스템 Download PDF

Info

Publication number
KR102322447B1
KR102322447B1 KR1020190147131A KR20190147131A KR102322447B1 KR 102322447 B1 KR102322447 B1 KR 102322447B1 KR 1020190147131 A KR1020190147131 A KR 1020190147131A KR 20190147131 A KR20190147131 A KR 20190147131A KR 102322447 B1 KR102322447 B1 KR 102322447B1
Authority
KR
South Korea
Prior art keywords
certificate
server
log
equation
log server
Prior art date
Application number
KR1020190147131A
Other languages
English (en)
Other versions
KR20210059545A (ko
Inventor
허준범
권현수
Original Assignee
고려대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 고려대학교 산학협력단 filed Critical 고려대학교 산학협력단
Priority to KR1020190147131A priority Critical patent/KR102322447B1/ko
Publication of KR20210059545A publication Critical patent/KR20210059545A/ko
Application granted granted Critical
Publication of KR102322447B1 publication Critical patent/KR102322447B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3265Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate chains, trees or paths; Hierarchical trust model
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

인증서 투명성 시스템이 개시된다. 상기 인증서 투명성 시스템은 인증서를 발행하는 인증서 발행 서버, 상기 인증서 발행 서버로부터 상기 인증서를 포함하는 인증서 등록 요청을 수신하고 상기 인증서를 공유 값 트리(Shared Value Tree, SVT) 구조의 로그에 등록하는 로그 서버, 및 상기 로그 서버로부터 상기 인증서에 대한 해쉬 값을 수신하고 비밀키를 이용하여 상기 인증서에 대한 해쉬 값에 대한 서명을 생성하고 상기 인증서에 대한 해쉬 값에 대한 서명을 상기 로그 서버로 송신하고, 상기 로그 서버로부터 상기 인증서에 대한 공유 값을 수신하여 상기 비밀키를 이용하여 상기 공유 값에 대한 서명을 생성하고 상기 공유 값에 대한 서명을 상기 로그 서버로 송신하는 모니터링 서버를 포함한다.

Description

인증서 투명성 시스템{CERTIFICATE TRANSPARENCY SYSTEM}
본 발명은 인증서 투명성 시스템(certificate transparency system, CT 시스템)에 관한 것이다.
요즈음의 인터넷 환경에서, TLS(transport layer security)와 같은 암호 프로토콜(cryptographic protocols)의 사용은 안전한 통신을 위해 필수적이다. 그러나, 최근에 TLS 프로토콜에 대한 공격이 보고되어 TLS 프로토콜에 대한 안정성 염려가 제기되었다(비특허문헌 1, 3, 6, 12 참조). 특히, TLS에서 인증서 기반 인증(certificate-based authentication)은 엔티티 인증(entity authentication)을 위한 사실상의 표준이기 때문에, CA(certificate authority, 인증 기관)에 의해 발급되는 인증서는 TLS에서 공격의 주요 타겟이 된다(비특허문헌 9 참조).
이러한 문제점을 해결하기 위하여, 인증서 발행(certificate issuance)과 검증(verification)을 보다 투명하게 하기 위하여 CT(Certificate Transparency, 인증서 투명성)가 구글(Google)에 의해 제안되었다. CT 환경에서, CA와 같은 인증서 발행 기관들(certificate issuers) 또는 도메인 소유자들(domain owners)은 인증서를 발급하기 전에 그들의 인증서를 로그(log)에 등록하여야 한다. 로그 서버(log server)는 로그를 관리하고 사용자들로 하여금 인증서를 투명하게 검증하도록 하여야 한다. 사용자가 인증을 위해 검증 요청 메시지(verification request message)를 로그 서버에 전송하면, 로그 서버는 인증서가 로그에 존재하는지 체크한다. 그런 다음, 로그 서버는 인증서가 로그 내에 존재하는 경우 인증서가 용인됨을 가리키는 응답 메시지(response message)를 사용자에게 전송하고 그렇지 않은 경우에는 인증서가 용인되지 않음을 가리키는 응답 메시지를 사용자에게 전송한다. 따라서, CT는 가짜 인증서 공격(fake certificate attacks)에 대한 투명한 인증서 관리 솔루션(transparent certificate management solution)을 제공한다.
그러나, CT가 레거시 인증서 시스템(legacy certificate system)의 투명성을 향상시키고 사용자로 하여금 잘못발행된 인증서(misissued certificates)나 가짜 인증서(fake certificates)를 신속하게 탐지할 수 있도록 함에도 불구하고, 보안(security)과 확장성(scalability)과 관련하여 몇몇 제약 사항이 존재한다.
보안과 관련하여, CT는 오직 로그 서버가 모니터(monitor)나 사용자(users)와 같은 다른 엔티티들의 감시하에서 올바르게 행동할 때만 목표를 달성할 수 있다. 그러나, 로그 서버의 기능이 그들에 의해 감사됨에도 불구하고, 실질적으로 모든 네트워크 트래픽을 검증하는 것은 거의 불가능하다. 따라서, 로그 서버가 제대로 동작하지 않는 경우, 가짜 인증서나 폐기된 인증서(revoked certificate)가 정상적으로 발급되었거나 유효한 것으로 믿는 희생자 클라이언트(victim client)를 초래함으로써 시스템 내의 다른 엔티티에게 보이지 않게 된다. 이는 split-world 공격으로 알려져 있다(비특허문헌 10, 26, 40 참조).
확장성과 관련하여, 구글의 CT 기법에서, 로그 검증 메시지(log verification message)의 크기(size)는 로그에 등록된 인증서의 개수에 영향을 받는다. 등록된 인증서의 개수가 n일 때, 크기는
Figure 112019117650037-pat00001
(log n)로 증가하게 된다. 대략적으로 460억 개의 인증서가 있고 인증서의 개수가 꾸준히 증가하고 있음을 고려할 때, 로그 검증 메시지를 전송할 때의 비용은 매우 큼을 알 수 있다.
상술한 문제점을 해결하기 위해, 본 발명에서는 신규한 로그 구조(log structure)와 공유값 트리(shared value tree, SVT)를 갖는 인증서 투명성 기법(Certificate Transparency scheme, SVT-CT)을 제안한다.
대한민국 공개특허 제2014-0059912호 (2014.05.19. 공개) 대한민국 공개특허 제2012-0053929호 (2012.05.29. 공개) 대한민국 공개특허 제2016-0040747호 (2016.04.15. 공개)
[1] D. Adrian, K. Bhargavan, Z. Durumeric, P. Gaudry, M. Green, J. A. Halderman, N. Heninger, D. Springall, E. Thome, L. Valenta et al., "Imperfect forward secrecy: How diffie-hellman fails in practice," in Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security. ACM, 2015, pp. 5-17. [2] C. Arthur, "Diginotar ssl certificate hack amounts to cyberwar, says expert," Online, Sep. 2011. [Online]. Available: https://www.theguardian.com/technology/2011/sep/05/diginotarcertificate-hack-cyberwar [3] N. Aviram, S. Schinzel, J. Somorovsky, N. Heninger, M. Dankel, J. Steube, L. Valenta, D. Adrian, J. A. Halderman, V. Dukhovni et al., "Drown: Breaking tls using sslv2." in USENIX Security Symposium, 2016, pp. 689-706. [4] J. Benaloh and J. Leichter, "Generalized secret sharing and monotone functions," in Proceedings on Advances in cryptology. Springer-Verlag New York, Inc., 1990, pp. 27-35. [5] J. Bethencourt, A. Sahai, and B. Waters, "Ciphertext-policy attribute-based encryption," in Security and Privacy, 2007. SP’07. IEEE Symposium on. IEEE, 2007, pp. 321-334. [6] K. Bhargavan and G. Leurent, "On the practical (in-) security of 64-bit block ciphers: Collision attacks on http over tls and openvpn," in Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security. ACM, 2016, pp. 456-467. [7] P. Bright, "Another fraudulent certificate raises the same old questions about certificate authorities," Online, Aug. 2011. [Online]. Available: https://arstechnica.com/informationtechnology/2011/08/earlier-this-year-an-iranian/ [8] "How the comodo certificate fraud calls ca trust into question," Online, Mar. 2011. [Online]. Available: https://arstechnica.com/information-technology/2011/03/how-thecomodo-certificate-fraud-calls-ca-trust-into-question/ [9] S. Chokhani, W. Ford, R. Sabett, C. Merrill, and S. Wu, "Internet x. 509 public key infrastructure certificate policy and certification practices framework," Tech. Rep., 2003. [10] L. Chuat, P. Szalachowski, A. Perrig, B. Laurie, and E. Messeri, "Efficient gossip protocols for verifying the consistency of certificate logs," in Communications and Network Security (CNS), 2015 IEEE Conference on. IEEE, 2015, pp. 415-423. [11] J. R. Douceur, "The sybil attack," in International workshop on peer-to-peer systems. Springer, 2002, pp. 251-260. [12] Z. Durumeric, J. Kasten, D. Adrian, J. A. Halderman, M. Bailey, F. Li, N. Weaver, J. Amann, J. Beekman, M. Payer et al., "The matter of heartbleed," in Proceedings of the 2014 Conference on Internet Measurement Conference. ACM, 2014, pp. 475-488. [13] P. Eckersley, "Iranian hackers obtain fraudulent https certificates: How close to a web security meltdown did we get?" Online, Mar. 2011. [Online]. Available: https://www.eff.org/es/deeplinks/2011/03/iranianhackers-obtain-fraudulent-https [14] P. Eckersley and J. Burns, "An observatory for the ssliverse," Talk at Defcon, vol. 18, 2010. [15] L. Encrypt, "Looking forward to 2018," Online, 2017. [Online]. Available: https://letsencrypt.org/2017/12/07/looking-forwardto-2018.html [16] S. Eskandarian, E. Messeri, J. Bonneau, and D. Boneh, "Certificate transparency with privacy," Proceedings on Privacy Enhancing Technologies, vol. 2017, no. 4, pp. 329-344, 2017. [17] A. Freier, P. Karlton, and P. Kocher, "The secure sockets layer (ssl) protocol version 3.0," 2011. [18] Google, "Certificate transparency," Online, 2013. [Online]. Available: https://www.certificate-transparency.org/ [19] "Certificate-transparency: Auditing for tls certificates," 2013. [Online]. Available: https://github.com/google/certificate-transparency [20] "Transparency report," 2018. [Online]. Available: https://transparencyreport.google.com/https/certificates [21] V. Goyal, O. Pandey, A. Sahai, and B. Waters, "Attribute-based encryption for fine-grained access control of encrypted data," in Proceedings of the 13th ACM conference on Computer and communications security, 2006, pp. 89-98. [22] G. Irazoqui, M. S. Inci, T. Eisenbarth, and B. Sunar, "Lucky 13 strikes back," in Proceedings of the 10th ACM Symposium on Information, Computer and Communications Security. ACM, 2015, pp. 85-96. [23] B. Laurie, A. Langley, and E. Kasper, "Certificate Transparency," RFC 6962, Jun. 2013. [Online]. Available: https://rfc-editor.org/rfc/rfc6962.txt [24] J. Leyden, "Trustwave admits crafting ssl snooping certificate," Online, Feb. 2012. [Online]. Available: https://www.theregister.co.uk/2012/02/09/tustwave disavows mitm digital cert/ [25] B. Lynn, "The pairing-based cryptography library," Online, 2013. [Online]. Available: https://github.com/google/certificate-transparency [26] D. Mazieres and D. Shasha, "Building secure file systems out of byzantine storage," in Proceedings of the twenty-first annual symposium on Principles of distributed computing. ACM, 2002, pp. 108-117. [27] Measure, "Certificate of top websites," 2018. [Online]. Available: https://www.quantcast.com/top-sites/US?jump-to=10001 [28] M. S. Melara, A. Blankstein, J. Bonneau, E. W. Felten, and M. J. Freedman, "Coniks: Bringing key transparency to end users." in USENIX Security Symposium, vol. 2015, 2015, pp. 383-398. [29] R. C. Merkle, "A digital signature based on a conventional encryption function," in Conference on the Theory and Application of Cryptographic Techniques. Springer, 1987, pp. 369-378. [30] L. Nordberg, D. Gillmor, and T. Ritter, "Gossiping in ct," Internet-Draft draft-linus-trans-gossip-ct-02, 2015. [31] OpenSSL, "Openssl project," Online, 2017. [Online]. Available: https://www.openssl.org [32] E. Rescorla and T. Dierks, "The Transport Layer Security (TLS) Protocol Version 1.2," RFC 5246, Aug. 2008. [Online]. Available: https://rfc-editor.org/rfc/rfc5246.txt [33] P. Roberts, "Phony ssl certificates issued for google, yahoo, skype, others," Online, Mar. 2011. [Online]. Available: https://threatpost.com/phony-ssl-certificates-issued-google-yahooskype-others-032311/75061/ [34] E. Ronen, K. G. Paterson, and A. Shamir, "Pseudo constant time implementations of tls are only pseudo secure," in Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security. ACM, 2018, pp. 1397-1414. [35] A. Singh, B. Sengupta, and S. Ruj, "Certificate transparency with enhancements and short proofs," in Australasian Conference on Information Security and Privacy. Springer, 2017, pp. 381-389. [36] C. Soghoian and S. Stamm, "Certified lies: Detecting and defeating government interception attacks against ssl (short paper)," in International Conference on Financial Cryptography and Data Security. Springer, 2011, pp. 250-259. [37] E. Stefanov, M. Van Dijk, E. Shi, C. Fletcher, L. Ren, X. Yu, and S. Devadas, "Path oram: an extremely simple oblivious ram protocol," in Proceedings of the 2013 ACM SIGSAC conference on Computer & communications security. ACM, 2013, pp. 299-310. [38] T. Sterling, "Second firm warns of concern after dutch hack," Online, Sep. 2011. [Online]. Available: https://www.smh.com.au/technology/second-firm-warns-ofconcern-after-dutch-hack-20110831-1jm4f.html [39] M. support, "Ms01-017: Erroneous verisign-issued digital certificates pose spoofing hazard," Online, Mar. 2013. [Online]. Available: https://www.rapid7.com/db/vulnerabilities/WINDOWS-HOTFIXMS01-017 [40] E. Syta, I. Tamas, D. Visher, D. I. Wolinsky, P. Jovanovic, L. Gasser, N. Gailly, I. Khoffi, and B. Ford, "Keeping authorities" honest or bust"with decentralized witness cosigning," in Security and Privacy (SP), 2016 IEEE Symposium on. Ieee, 2016, pp. 526-545. [41] H. Tang, Y. Cui, C. Guan, J. Wu, J. Weng, and K. Ren, "Enabling ciphertext deduplication for secure cloud storage and access control," in Proceedings of the 11th ACM on Asia Conference on Computer and Communications Security. ACM, 2016, pp. 59-70. [42] Tor, "Tor project," Online, 2006. [Online]. Available: https://www.torproject.org [43] L. Tung, "Google boots china’s main digital certificate authority cnnic," Online, Apr. 2015. [Online]. Available: https://www.zdnet.com/article/google-banishes-chinas-maindigital-certificate-authority-cnnic/ [44] W3Techs, "Historical trends in the usage of ssl certificate authorities for websites," Online, 2017. [Online]. Available: https://w3techs.com/technologies/history overview/ssl certificate/all
본 발명이 이루고자 하는 기술적인 과제는 비일관성 공격에 안전하고 사용자 검색 정보를 보호하는 인증서 투명성 시스템을 제공하는 것이다.
본 발명의 실시 예에 따른 인증서 투명성 시스템은 인증서를 발행하는 인증서 발행 서버, 상기 인증서 발행 서버로부터 상기 인증서를 포함하는 인증서 등록 요청을 수신하고 상기 인증서를 공유 값 트리(Shared Value Tree, SVT) 구조의 로그에 등록하는 로그 서버, 및 상기 로그 서버로부터 상기 인증서에 대한 해쉬 값을 수신하고 비밀키를 이용하여 상기 인증서에 대한 해쉬 값에 대한 서명을 생성하고 상기 인증서에 대한 해쉬 값에 대한 서명을 상기 로그 서버로 송신하고, 상기 로그 서버로부터 상기 인증서에 대한 공유 값을 수신하여 상기 비밀키를 이용하여 상기 공유 값에 대한 서명을 생성하고 상기 공유 값에 대한 서명을 상기 로그 서버로 송신하는 모니터링 서버를 포함한다.
또한, 본 발명의 일 실시예에 따른 로그 서버는 인증서 투명성 시스템을 구성하고, 인증서 발행 서버로부터 인증서를 포함하는 인증서 등록 요청을 수신하고, 상기 인증서에 대한 해쉬 값을 모니터링 서버로 송신하고, 상기 모니터링 서버로부터 상기 인증서에 대한 해쉬 값에 대한 서명을 수신하고, 상기 인증서에 대한 공유 값을 상기 모니터링 서버로 송신하고, 상기 모니터링 서버로부터 상기 고유 값에 대한 서명을 수신하고, 상기 인증서를 공유 값 트리 구조의 로그에 등록한다.
본 발명의 실시 예에 따른 인증서 투명성 시스템에 의할 경우, 비일관성 공격에 안전하고 사용자 검색 정보를 보호할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 일 실시예에 따른 인증서 투명성 시스템을 도시한다.
도 2는 공유 값 구축을 위한 알고리즘 1을 도시한다.
도 3은 노드 삽입을 위한 알고리즘 2를 도시한다.
도 4는 레벨이 2인 패스 ORAM 기반의 검색 트리를 도시한다.
도 5는 로그 구조(체)를 도시한다.
도 6은 로그 등록 과정을 설명하기 위한 흐름도이다.
도 7은 인증서 등록을 위한 알고리즘 3을 도시한다.
도 8은 모니터의 서명을 위한 알고리즘 4를 도시한다.
도 9는 로그 검증 과정을 설명하기 위한 흐름도이다.
도 10은 질의 메시지 생성을 위한 알고리즘 5를 도시한다.
도 11은 응답 메시지 생성을 위한 알고리즘 6을 도시한다.
도 12는 인증서 검증을 위한 알고리즘 7을 도시한다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1 구성 요소는 제2 구성 요소로 명명될 수 있고 유사하게 제2 구성 요소는 제1 구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다. 그러나, 특허출원의 범위가 이러한 실시 예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
이하에서는, 본 발명의 일 실시예에 따른 인증서 투명성 시스템 모델에 관하여 설명한다.
도 1은 본 발명의 일 실시예에 따른 인증서 투명성 시스템을 도시한다. 도 1에서, 실선(solid lines)은 인증서 등록과 관련된 동작을 나타내고 점선(dotted lines)은 인증서 검증과 관련된 동작을 나타낸다.
인증서 투명성 시스템(CT 시스템)은 4 개의 개체들(또는 엔티티들(entities))로 구성된다. 4 개의 엔티티들은 로그 서버(Log Server), 발행자(Issuer), 모니터(Monitor), 및 사용자(User)를 포함한다. 여기서, 발행자는 인증서를 발행하는 기관 또는 그 기관이 운영하는 서버를 의미할 수 있으며, 모니터는 발행된 인증서와 관련하여 모니터링(또는 감사) 기능을 수행하는 제3의 기관 또는 그 기관이 운영하는 서버(모니터링 서버)를 의미할 수 있으며, 사용자는 발행자가 발급한 인증서의 유효성을 검증하고자 하는 사용자 또는 그 사용자의 단말을 의미할 수 있다. 로그 서버는 SVT(Shared Value Tree, 공유 값 트리)를 로그 구조(log structure)로 채용하고, 모니터의 도움을 받아 인증서를 로그에 등록한다.
로그 서버는 SVT 상에 구현된 인증서 로그(certificate log)를 유지하고, 이로 인하여 발행자는 인증서를 등록할 수 있으며 누구라도 등록된 인증서를 공공연하게 검증할 수 있다. 로그 서버가 발행자로부터 인증서 등록 요청(certificate regisration request)을 수신하면, 로그 서버는 인증서가 MMD(Maximum Merge Delay) 내에 로그에 추가될 것임을 보증하기 위하여 SCT(Signed Certificate timestamp)를 발행자에게 전송한다. 그리고, 로그 서버는 모니터와 상호작용하여 인증서를 로그에 삽입한다. 로그 서버가 사용자로부터 인증서 검증 요청(certificate verification request)을 수신하면, 로그 서버는 인증서에 대응하는 응답 메시지를 생성하고, 사용자가 인증서를 허용할 것인지 거부할 것인지 결정할 수 있도록 STH(Signed Tree Hash)와 함께 생성된 응답 메시지를 사용자에게 전송한다.
발행자는 인증서를 공개하기 전에 자신의 인증서를 인증서 로그에 등록한다. 인증서를 등록하기 위해, 발행자는 인증서를 로그 서버로 송신하고 SCT를 수신한다. MMD 이후에, 발행자는 감사 증명(audit proof) 메시지를 통하여 인증서가 로그에 올바르게 등록되었는지를 검증할 수 있다. 사용자가 발행자의 웹 서버(또는 웹사이트)를 방문함으로써 발행자의 인증서에 액세스하고 인증서를 인증하려고 할 때, 발행자는 인증서와 함께 SCT를 사용자에게 전송한다. 이에 따라 사용자는 인증 과정을 수행할 수 있다. CT 시스템에서, 발행자는 CA 또는 도메인 소유자(domain owner)일 수 있다.
모니터의 주된 역할은 잘못 발행된 인증서(misissued certificates)나 가짜 인증서(fake certificates)가 로그에 포함되어 있는지 여부를 감시하는 것이다. 특히, 인증서 등록 단계에서, 인증서 등록을 완료하기 위하여 모니터는 로그 서버와 상호 작용할 수 있다. 인증서를 등록하기 위하여 모니터는 온라인(online) 상태일 것이 요구되지만, 로그 생성은 MMD 이전에(즉, 비실시간으로(not real time)) 수행되면 되기 때문에 모니터는 인증서 등록 단계의 모든 시간 동안 항상 온라인 상태일 필요는 없다. 본 발명에서는 단일의 모니터를 채용하였으나, 실시예에 따라 모니터는 복수 개로 구현될 수도 있다.
사용자(또는 클라이언트)는 사용자가 액세스한 웹 서버의 인증서를 인증하기 위해서 CT 메커니즘을 이용한다. 서버의 인증서를 검증하고 서버를 인증하기 위해서, 사용자는 서버의 인증서에 대한 검증 요청을 로그 서버로 송신하고 로그 서버로부터 수신된 응답 메시지을 조사함으로써 인증서의 유효성을 검증할 수 있다.
이하에서는, 본 발명에서 제안하는 CT 시스템에서 이용하는 공유 값 트리에 대하여 설명하기로 한다.
Shared Value Tree(공유 값 트리, SVT )
본 발명에서는 첨부 전용 특징(append-only property)을 제공하기 위하여 Tang 등의 LSSS 기법(비특허문헌 41 참조)에 기초하여 SVT를 설계하였고, 이는 로그 구조로 이용될 수 있다. SVT는 액세스 구조를 나타낸다. SVT에는 두 가지 타입의 노드, 즉 비리프 노드(non-leaf nodes)와 리프 노드(leaf nodes)가 존재한다. 비리프 노드
Figure 112019117650037-pat00002
는 문턱 게이트(threshold gate)를 의미하고,
Figure 112019117650037-pat00003
Figure 112019117650037-pat00004
의 차일드 노드(child nodes)의 개수를 나타내고,
Figure 112019117650037-pat00005
는 문턱 값(threshold value)을 나타낸다. 만약
Figure 112019117650037-pat00006
이면, 이는 OR 게이트(OR gate)를 의미하고, 그리고
Figure 112019117650037-pat00007
이면, AND 게이트(AND 게이트)를 의미한다. 함수
Figure 112019117650037-pat00008
는 오직 리프 노드
Figure 112019117650037-pat00009
에 대하여만 정의되고,
Figure 112019117650037-pat00010
와 연관된(associated) 값을 나타낸다.
Shared Value Construction(공유 값 구축)
SVT의 루트(root)의 공유 값은 재귀적인 기법(recursive way)으로 도 2에 도시된 알고리즘 1(Algorithm 1)에 의해 구축된다. 루트 노드(root node)
Figure 112019117650037-pat00011
이 주어졌을 때, 알고리즘 1은
Figure 112019117650037-pat00012
의 리프 타입(LEAF type, 즉 노드의 타입을 의미할 수 있음)을 체크한다. 만약
Figure 112019117650037-pat00013
의 리프 타입이 LEAF이면(즉, 노드
Figure 112019117650037-pat00014
이 리프 노드이면), 알고리즘 1은 임의의 값(random value)을 선택하고 선택된 임의의 값을 공유 값(shared value)
Figure 112019117650037-pat00015
에 할당한다. 그렇지 않으면(즉, 노드
Figure 112019117650037-pat00016
이 리프 노드가 아니면),
Figure 112019117650037-pat00017
의 모든 차일드 노드에 대하여 알고리즘 1이 재귀적으로 반복 수행되고 반환된 값(returned value)을
Figure 112019117650037-pat00018
에 할당한다. 그러면, 알고리즘 1은
Figure 112019117650037-pat00019
의 문턱 게이트를 찾는다. AND 게이트의 경우(즉,
Figure 112019117650037-pat00020
),
Figure 112019117650037-pat00021
의 모든 칠드런 인덱스(children indexes)의 집합에 대하여
Figure 112019117650037-pat00022
를 계산한다. 여기서, 라그랑즈의 계수(Lagrange coefficient)
Figure 112019117650037-pat00023
Figure 112019117650037-pat00024
에 의해 정의된다. 그렇지 않으면,
Figure 112019117650037-pat00025
차(degree)의 임의의 다항식(random polynomial)
Figure 112019117650037-pat00026
를 선택하여
Figure 112019117650037-pat00027
Figure 112019117650037-pat00028
에 할당한 후,
Figure 112019117650037-pat00029
의 모든 칠드런 노드에 대하여 복구 값(recovery value)
Figure 112019117650037-pat00030
를 계산한다. 복구 값은 칠드런 노드의 개수가
Figure 112019117650037-pat00031
Figure 112019117650037-pat00032
이상임을 만족할 때 동일한 공유 값을 획득하는 과정에서 이용된다. 최종적으로 SVT의 공유 값이 설정된다.
Node Insertion(노드 삽입)
새로운 노드는 도 3에 도시된 알고리즘 2에 의해 추가된다. 새로운 노드
Figure 112019117650037-pat00033
가 SVT의 루트 노드
Figure 112019117650037-pat00034
의 인덱스
Figure 112019117650037-pat00035
에 삽입됨을 가정하자. 알고리즘 2는
Figure 112019117650037-pat00036
의 공유 값을 획득한다. 공유 값은
Figure 112019117650037-pat00037
로 표기될 수 있다. 만약
Figure 112019117650037-pat00038
이면(AND 게이트),
Figure 112019117650037-pat00039
을 1 만큼 증가시키고
Figure 112019117650037-pat00040
로 업데이트 시킨다. 그렇지 않으면,
Figure 112019117650037-pat00041
만을 1 만큼 증가시킨다. 만약
Figure 112019117650037-pat00042
Figure 112019117650037-pat00043
의 마지막 차일드 노드가 되는 경우,
Figure 112019117650037-pat00044
의 추가에 따라 루트 노드의 공유 값을 업데이트 한다. 최종적으로, 새로운 노드가 SVT에 삽입된다.
Satisfying Shared Value Tree(공유 값 트리의 만족)
Figure 112019117650037-pat00045
Figure 112019117650037-pat00046
를 루트 노드로 하는 서브트리(subtree)라 하자. 공유 값들의 집합
Figure 112019117650037-pat00047
Figure 112019117650037-pat00048
를 만족한다면,
Figure 112019117650037-pat00049
이라 표기할 수 있다. 만약
Figure 112019117650037-pat00050
가 비리프 노드라면,
Figure 112019117650037-pat00051
는 노드
Figure 112019117650037-pat00052
의 모든 칠드런
Figure 112019117650037-pat00053
에 대하여 계산되고,
Figure 112019117650037-pat00054
는 1을 반환하는 것과 적어도
Figure 112019117650037-pat00055
칠드런이 1을 반환하는 것은 필요충분 조건에 해당한다. 만약
Figure 112019117650037-pat00056
가 리프 노드이면,
Figure 112019117650037-pat00057
는 1을 반환하는 것과
Figure 112019117650037-pat00058
은 필요충분 조건에 해당한다. 상기 과정을 재귀적으로 연산함으로써,
Figure 112019117650037-pat00059
Figure 112019117650037-pat00060
를 만족하는지 여부를 결정할 수 있다.
Path ORAM based Search Tree(패스 ORAM 기반 검색 트리)
본 발명에서 이용하는 패스 ORAM에 대한 상세한 설명은 비특허문헌 37이 참조될 수 있다. 패스 ORAM은 사용자가 신뢰할 수 없는 서버(untrusted server)에 위탁한(outsourced) 데이터를 회수할 때에 사용자의 액세스 패턴을 숨기기 위해 디자인된 프로토콜이다. 서버에서, 데이터는 완전 이진 트리(complete binary tree)의 형태로 저장된다. 트리의 각 노드(버킷(bucket)이라 불림)는 Z 개의 블럭(blocks)으로 구성된다. 각 리프 노드는 인덱스
Figure 112019117650037-pat00061
를 갖고 경로
Figure 112019117650037-pat00062
는 리프 노드
Figure 112019117650037-pat00063
로부터 루트(또는 루트 노드) 까지의 경로에 포함되는 버킷들의 집합을 의미한다. 사용자는 인덱스 값 특정 블럭의 인덱스 값
Figure 112019117650037-pat00064
를 이용하여
Figure 112019117650037-pat00065
를 획득하고, 액세스 패턴을 숨기면서 원하는 데이터를 얻을 수 있다. 도 4는 레벨이 2인 패스 ORAM 기반의 검색 트리를 도시한다(루트 버킷의 레벨은 0이고 7 개의 버킷(a 내지 g)이 존재하고, 각 버킷은 4 개의 블럭을 갖는다). 예컨대, 사용자가 데이터
Figure 112019117650037-pat00066
를 원한다면,
Figure 112019117650037-pat00067
의 인덱스(2 또는 3이 될 수 있음)를 생성하여 서버로 송신하고, 사용자는
Figure 112019117650037-pat00068
를 수신하고
Figure 112019117650037-pat00069
로부터
Figure 112019117650037-pat00070
를 검색할 수 있다(만약
Figure 112019117650037-pat00071
의 인덱스가 2라면).
이하에서는 본 발명의 일 실시예인 SVT 기반의 CT 시스템(SVT-CT)에 대하여 설명하기로 한다.
1) System Setup(시스템 설정)
시스템 설정 단계(system setup phase)에서, 소수 위수(prime order)
Figure 112019117650037-pat00072
를 갖는 겹선형 군(bilinear group)
Figure 112019117650037-pat00073
, 겹선형 함수(bilinear map)
Figure 112019117650037-pat00074
,
Figure 112019117650037-pat00075
의 생성원(generator)
Figure 112019117650037-pat00076
, 및 암호학적 해쉬 함수(cryptographic hash functions)
Figure 112019117650037-pat00077
,
Figure 112019117650037-pat00078
,
Figure 112019117650037-pat00079
가 선택된다. 시스템 설정 단계에서, 모니터는 비밀키(secret key) sk로
Figure 112019117650037-pat00080
를 선택하고
Figure 112019117650037-pat00081
를 대응하는 공개키(public key) pk로 선택한다. 결국, 글로벌 파라미터(global parameters)
Figure 112019117650037-pat00082
가 공개된다. 상기 글로벌 파라미터는 공개 파라미터로 명명될 수도 있다. 여기서, 시스템 설정 단계는 로그 서버 및/또는 모니터에 의해 수행될 수 있다.
로그 구조(log structure)와 관련하여, 본 발명에서는 OR 게이트를 문턱 게이트로 갖는 루트 노드(root node)를 포함하고 최대 레벨(maximum level)이 1로 고정된 SVT(이는 모든 리프 노드들이 루트 노드의 직접적인 차일드 노드임을 의미한다)를 채용한다. 리프 노드들의 모든 공유 값은 연관된 인증서로부터 도출된다. 도 5는 본 발명에서 이용하는 로그 구조를 도시한다.
본 발명에서, 로그 서버는, 각 버킷은 4 개의 블럭을 갖고 트리의 레벨은 로그에 등록된 모든 인증서를 삽입할 만큼 충분한 패스 ORAM(Path ORAM) 기반의 검색 트리를 유지하는 것으로 가정한다. 이하, '패스 ORAM 기반의 검색 트리'는 간략하게 '검색 트리'로 부르기로 한다.
2) Log Registraion (로그 등록)
로그 등록 단계(log registration phase)에서, 발행자는 자신의 인증서를 로그에 등록하기 위하여 로그 서버와 상호작용한다. 도 6에 도시된 바와 같이, 로그 등록 단계는 다음과 같다.
a) Certificate Registration Request(인증서 등록 요청)
CA, 도메인 소유자 등과 같은 발행자가 자신의 인증서를 발행하고자 할 때, 발해자는 우선 인증서 등록 요청(Certificate Registration Request)을 로그 서버로 전송한다.
b) SCT Response and Signing for h( SCT 응답과 h에 대한 서명 )
인증서 등록 요청이 로그 서버로 전송되는 경우, 로그 서버는, 인증서가 위치될 검색 트리의 인덱스
Figure 112019117650037-pat00083
를 선택한다. 그런 다음, 로그 서버는 인증서가 MMD 내에 등록될 것임에 대한 약속으로 발행자에게
Figure 112019117650037-pat00084
를 포함하는 SCT로 응답한다. 즉, 로그 서버가 발행자에게 송신하는 응답 메시지에는 SCT와
Figure 112019117650037-pat00085
가 포함되어 있다. 동시에, 로그 서버는 MMD 이전에 인증서 등록을 준비하기 위해 인증서의 해쉬 값(hash value)
Figure 112019117650037-pat00086
를 모니터에게 전송한다.
Figure 112019117650037-pat00087
를 수신한 모니터는
Figure 112019117650037-pat00088
를 계산함으로써 자신의 비밀키(private key)
Figure 112019117650037-pat00089
를 이용하여
Figure 112019117650037-pat00090
를 서명한 후 로그 서버로 송신한다.
c) Certificate Enrollment(인증서 등록)
SCT를 발행자에게 송신한 후, 로그 서버는 도 7에 도시된 알고리즘 3을 이용하여 인증서를 등록한다. 로그의 루트 노드(root node)
Figure 112019117650037-pat00091
과 인증서
Figure 112019117650037-pat00092
의 서명된 해쉬 값
Figure 112019117650037-pat00093
의 집합
Figure 112019117650037-pat00094
가 입력으로 주어졌을 때, 이전에 구축된적이 없다면
Figure 112019117650037-pat00095
의 공유 값은 알고리즘 1을 이용하여 할당된다. 그렇지 않으면, 알고리즘 1을 이용한 공유 값의 할당 과정은 생략되고,
Figure 112019117650037-pat00096
에 속하는 각
Figure 112019117650037-pat00097
를 위한 노드
Figure 112019117650037-pat00098
을 아래와 같이 생성한다.
Figure 112019117650037-pat00099
여기서,
Figure 112019117650037-pat00100
는 알고리즘 1을 이용하여 할당된다. 그런 다음, 로그 서버는 알고리즘 2를 이용하여 노드들을 로그에 삽입하고, 로그 구조(체)에 첨부-전용 특성(append-only property)을 제공하기 위하여 새롭게 등록된 노드들의 복구 값(recovery value)
Figure 112019117650037-pat00101
로부터
Figure 112019117650037-pat00102
을 생성하고, 공유 값
Figure 112019117650037-pat00103
의 해쉬를 아래와 같이 생성한다.
Figure 112019117650037-pat00104
이후에, 로그 서버는 서명을 위해
Figure 112019117650037-pat00105
를 모니터에게 전송한다.
d) Signing for hs( hs에 대한 서명 )
Figure 112019117650037-pat00106
를 수신한 모니터는 서명(signature)을 생성하기 위하여 도 8에 도시된 알고리즘 4를 실행한다. 즉, 자신의 비밀키
Figure 112019117650037-pat00107
를 이용하여, 서명으로써
Figure 112019117650037-pat00108
를 계산한다.
Figure 112019117650037-pat00109
을 생성한 뒤에 모니터는 이를 로그 서버로 회신한다.
e) Log Registration(로그 등록)
Figure 112019117650037-pat00110
를 수신한 로그 서버는
Figure 112019117650037-pat00111
의 만족 여부를 체크(판단)한다. 만족하는 경우 로그 서버는 서명을 수용하고, 그렇지 않은 경우 서명을 거부한다. 이후에, 로그 서버는 인증서에 대응하는 노드를 검색 트리의
Figure 112019117650037-pat00112
에 저장한다. 그리고, 인증서는 CT 시스템 내에서 모든 사람에 의한 검증을 위한 준비가 완료된다.
3) Log Verification(로그 검증)
로그 검증은 검증자(verifier)에 의해, 등록된 인증서가 로그 내에 존재하는지 여부를 여부를 체크함으로써(발행자에 의해), 또는 서버로부터 수신된 인증서가 유효한지 여부를 체크함으로써(사용자에 의해) 수행될 수 있다. 검증 절차는 검증자와 무관하게 동일하기 때문에, 사용자에 의한 검증 과정만을 기술하기로 한다. 도 9에 도시된 바와 같이, 로그 검증 절차는 다음과 같다.
a) Challenge Message Generation(질의 메시지 생성)
인증서를 검증하기 위해서, 우선 사용자는 도 10에 도시된 알고리즘 5를 실행함으로써 질의 메시지(challenge message)
Figure 112019117650037-pat00113
을 생성한다. 인증서
Figure 112019117650037-pat00114
가 주어진 경우, 사용자는 임의의 수
Figure 112019117650037-pat00115
를 선택하고 아래와 같이
Figure 112019117650037-pat00116
,
Figure 112019117650037-pat00117
,
Figure 112019117650037-pat00118
,
Figure 112019117650037-pat00119
를 계산한다.
Figure 112019117650037-pat00120
임의의 값
Figure 112019117650037-pat00121
는 사용자가 문의하는 인증서를 숨기기 위해 사용된다. 즉, 인증서는 사용자가 액세스하고자 하는 웹 서버에 대한 평문 정보(plain information)를 숨기기 위해 암호화된다. 그런 다음, 사용자는
Figure 112019117650037-pat00122
Figure 112019117650037-pat00123
를 로그 서버로 전송한다. 여기서,
Figure 112019117650037-pat00124
는 SCT에 포함되고, 발행자로부터 수신된 인증서와 함께
Figure 112019117650037-pat00125
를 포함하는 SCT가 수신될 수 있다.
b) Response Message Generation(응답 메시지 생성)
Figure 112019117650037-pat00126
을 수신한 로그 서버는 도 11에 도시된 알고리즘 6을 실행하여 응답 메시지
Figure 112019117650037-pat00127
를 생성한다. 리프 노드
Figure 112019117650037-pat00128
에 대하여, 로그 서버는
Figure 112019117650037-pat00129
Figure 112019117650037-pat00130
를 계산한다. 다른 비리프 노드에 대하여, 알고리즘 6은 매칭 인텍스 집합(matching index set)
Figure 112019117650037-pat00131
를 생성한다.
Figure 112019117650037-pat00132
는 타겟 인증서를 갖는 치드런 노드들의 인덱스의 집합을 의미한다. 인증서는
Figure 112019117650037-pat00133
에 의해 마스킹되었기 때문에, 로그 서버는 간단한 비교를 통해 칠드런의 요구되는 인덱스를 찾을 수 없다. 따라서, 로그 서버는
Figure 112019117650037-pat00134
내의
Figure 112019117650037-pat00135
에 대한 경로
Figure 112019117650037-pat00136
를 획득하고
Figure 112019117650037-pat00137
Figure 112019117650037-pat00138
를 연산한다. 여기서, N은
Figure 112019117650037-pat00139
상에서 버킷들을 포함하는 블럭을 의미한다. 그리고, 로그 서버는 연산된 두 값을 비교한다. 두 값이 일치하는 경우 블럭은 집합 내에 포함되고, 그렇지 않은 경우 블럭은 집합 내에 포함되지 않는다. 그런 다음, 로그 서버는 입력
Figure 112019117650037-pat00140
을 가지고 모든
Figure 112019117650037-pat00141
에 대한
Figure 112019117650037-pat00142
를 계산하기 위하여 재귀적으로 알고리즘 6을 실행한다. 대응되는 복구 값
Figure 112019117650037-pat00143
를 이용하여, 알고리즘 6은 최종적으로
Figure 112019117650037-pat00144
을 획득한다. 여기서,
Figure 112019117650037-pat00145
이고, 라그랑지의 계수(Lagrange coefficient)
Figure 112019117650037-pat00146
Figure 112019117650037-pat00147
에 의해 정의된다.
c) Certificate Verification(인증서 검증)
Figure 112019117650037-pat00148
Figure 112019117650037-pat00149
를 수신한 사용자는 도 12에 도시된 알고리즘 7을 이용하여 두 개의 값
Figure 112019117650037-pat00150
를 계산한다. 사용자에 의해 요청된 인증서가 로그에 존재한다면, 위 두 개의 값은 아래와 같이 계산된다.
Figure 112019117650037-pat00151
따라서,
Figure 112019117650037-pat00152
가 동일하다면 알고리즘 7은 참을 반환하며, 이는 대응되는 인증서가 로그에 존재함을 의미한다. 그렇지 않은 경우, 인증서는 로그 내에 존재하지 않는다.
Consistency Proof(일관성 증명)
일관성 증명의 목적은 두 개의 버전의 인증서들이 서로 일치함을 보장하는 것이다. 본 발명에서는 사용자가 t와 t+1의 시각에 두 로그의 일치를 체크하고자 하는 것을 가정한다. 이를 검증하기 위하여, 사용자는 t와 t+1에서의 복구 값
Figure 112019117650037-pat00153
의 해쉬 값과 t와 t+1 사이에 삽입된 인증서에 대한 복구 값
Figure 112019117650037-pat00154
의 해쉬 값을 필요로 한다. 복구 값
Figure 112019117650037-pat00155
에 대한 새로운 해쉬 값은 이전의
Figure 112019117650037-pat00156
과 새롭게 삽입된
Figure 112019117650037-pat00157
의 해쉬 값들로 구성되기 때문에, 사용자는 아래 식의 성립 여부를 판단함으로써 용이하게 검증할 수 있다.
Figure 112019117650037-pat00158
여기서, j는 t+1 시점에서 새롭게 삽입된 인증서의 개수를 의미한다.
Figure 112019117650037-pat00159
Figure 112019117650037-pat00160
이 동일하다면 두 로그의 일관성은 보장되고, 그렇지 않은 경우 로그는 오염되었다.
이상에서 설명된 장치는 하드웨어 구성 요소, 소프트웨어 구성 요소, 및/또는 하드웨어 구성 요소 및 소프트웨어 구성 요소의 집합으로 구현될 수 있다. 예를 들어, 실시 예들에서 설명된 장치 및 구성 요소는, 예를 들어, 프로세서, 콘트롤러, ALU(Arithmetic Logic Unit), 디지털 신호 프로세서(Digital Signal Processor), 마이크로컴퓨터, FPA(Field Programmable array), PLU(Programmable Logic Unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(Operation System, OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술 분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(Processing Element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(Parallel Processor)와 같은, 다른 처리 구성(Processing Configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(Computer Program), 코드(Code), 명령(Instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(Collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성 요소(Component), 물리적 장치, 가상 장치(Virtual Equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(Signal Wave)에 영구적으로, 또는 일시적으로 구체화(Embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시 예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 좋ㅂ하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시 예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM, DVD와 같은 광기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-optical Media), 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시 예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성 요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성 요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 인증서 투명성 시스템에 있어서,
    인증서를 발행하는 인증서 발행 서버;
    상기 인증서 발행 서버로부터 상기 인증서를 포함하는 인증서 등록 요청을 수신하고 상기 인증서를 공유 값 트리(Shared Value Tree, SVT) 구조의 로그에 등록하는 로그 서버; 및
    상기 로그 서버로부터 상기 인증서에 대한 해쉬 값을 수신하고 비밀키를 이용하여 상기 인증서에 대한 해쉬 값에 대한 서명을 생성하고 상기 인증서에 대한 해쉬 값에 대한 서명을 상기 로그 서버로 송신하고, 상기 로그 서버로부터 상기 인증서에 대한 공유 값을 수신하여 상기 비밀키를 이용하여 상기 공유 값에 대한 서명을 생성하고 상기 공유 값에 대한 서명을 상기 로그 서버로 송신하는 모니터링 서버를 포함하고,
    상기 인증서 투명성 시스템의 글로벌 파라미터(global parameters, GP)는 수학식 1과 같고,
    상기 수학식 1은
    Figure 112021093133398-pat00219
    이고,
    상기
    Figure 112021093133398-pat00220
    는 소수
    Figure 112021093133398-pat00221
    를 위수로 갖는 겹선형 군이고, 상기
    Figure 112021093133398-pat00222
    는 상기
    Figure 112021093133398-pat00223
    의 생성원이고, 상기
    Figure 112021093133398-pat00224
    는 상기 모니터링 서버의 비밀키이고, 상기
    Figure 112021093133398-pat00225
    는 상기 모니터링 서버에 의해 선택되는,
    인증서 투명성 시스템.
  2. 제1항에 있어서,
    상기 인증서 발행 서버로부터 수신한 인증서에 대한 검증을 위한 질의 메시지를 상기 로그 서버로 송신하고, 상기 로그 서버로부터 수신한 응답 메시지에 기초하여 상기 수신한 인증서를 검증하는 사용자 단말을 더 포함하는,
    인증서 투명성 시스템.
  3. 제2항에 있어서,
    상기 로그 서버는 상기 인증서 등록 요청에 응답하여, 상기 인증서가 위치할 패스 ORAM(Path ORAM) 기반의 검색 트리의 인덱스
    Figure 112021093133398-pat00168
    와 SCT(Signed Certificate Timestamp)를 상기 인증서 발행 서버로 송신하는,
    인증서 투명성 시스템.
  4. 제3항에 있어서,
    상기 질의 메시지(
    Figure 112019117650037-pat00169
    )는 수학식 2와 같고,
    수학식 2는
    Figure 112019117650037-pat00170
    Figure 112019117650037-pat00171
    이고,
    상기
    Figure 112019117650037-pat00172
    ,
    Figure 112019117650037-pat00173
    ,
    Figure 112019117650037-pat00174
    Figure 112019117650037-pat00175
    는 수학식 3을 이용하여 연산되고,
    상기 수학식 3은
    Figure 112019117650037-pat00176
    이고,
    상기
    Figure 112019117650037-pat00177
    는 상기 사용자 단말에 의해 선택되는,
    인증서 투명성 시스템.
  5. 제4항에 있어서,
    상기 응답 메시지(
    Figure 112019117650037-pat00178
    )는 수학식 4를 이용하여 생성되고,
    상기 수학식 4는
    Figure 112019117650037-pat00179
    (
    Figure 112019117650037-pat00180
    )이고,
    상기
    Figure 112019117650037-pat00181
    는 수학식 5에 의해 정의되는 라그랑지의 계수(Lagrange coefficient)이고,
    상기 수학식 5는
    Figure 112019117650037-pat00182
    이고,
    상기
    Figure 112019117650037-pat00183
    는 상기 패스 ORAM 기반의 검색 트리에서 검증 대상 인증서를 갖는 차이드 노드들(child nodes)의 인덱스 집합을 의미하는,
    인증서 투명성 시스템.
  6. 인증서 투명성 시스템을 구성하는 로그 서버에 있어서, 상기 로그 서버는,
    인증서 발행 서버로부터 인증서를 포함하는 인증서 등록 요청을 수신하고,
    상기 인증서에 대한 해쉬 값을 모니터링 서버로 송신하고,
    상기 모니터링 서버로부터 상기 인증서에 대한 해쉬 값에 대한 서명을 수신하고,
    상기 인증서에 대한 공유 값을 상기 모니터링 서버로 송신하고,
    상기 모니터링 서버로부터 상기 공유 값에 대한 서명을 수신하고,
    상기 인증서를 공유 값 트리 구조의 로그에 등록하고,
    상기 인증서 투명성 시스템의 글로벌 파라미터(global parameters, GP)는 수학식 1과 같고,
    상기 수학식 1은
    Figure 112021093133398-pat00226
    이고,
    상기
    Figure 112021093133398-pat00227
    는 소수
    Figure 112021093133398-pat00228
    를 위수로 갖는 겹선형 군이고, 상기
    Figure 112021093133398-pat00229
    는 상기
    Figure 112021093133398-pat00230
    의 생성원이고, 상기
    Figure 112021093133398-pat00231
    는 상기 모니터링 서버의 비밀키이고, 상기
    Figure 112021093133398-pat00232
    는 상기 모니터링 서버에 의해 선택되는,
    로그 서버.
  7. 제6항에 있어서,
    상기 로그 서버는 상기 인증서 발행 서버 또는 사용자 단말로부터 인증서에 대한 검증을 요청하는 질의 메시지를 수신하고,
    응답 메시지를 생성하고 상기 응답 메시지를 상기 인증서 발행 서버 또는 상기 사용자 단말로 송신하는,
    로그 서버.
  8. 제7항에 있어서,
    상기 로그 서버는 상기 인증서 등록 요청에 응답하여, 상기 인증서가 위치할 패스 ORAM(Path ORAM) 기반의 검색 트리의 인덱스
    Figure 112021093133398-pat00191
    와 SCT(Signed Certificate Timestamp)를 상기 인증서 발행 서버로 송신하는,
    로그 서버.
  9. 제8항에 있어서,
    상기 질의 메시지(
    Figure 112019117650037-pat00192
    )는 수학식 2와 같고,
    수학식 2는
    Figure 112019117650037-pat00193
    Figure 112019117650037-pat00194
    이고,
    상기
    Figure 112019117650037-pat00195
    ,
    Figure 112019117650037-pat00196
    ,
    Figure 112019117650037-pat00197
    Figure 112019117650037-pat00198
    는 수학식 3을 이용하여 연산되고,
    상기 수학식 3은
    Figure 112019117650037-pat00199
    이고,
    상기
    Figure 112019117650037-pat00200
    는 상기 사용자 단말에 의해 선택되는,
    로그 서버.
  10. 제9항에 있어서,
    상기 응답 메시지(
    Figure 112019117650037-pat00201
    )는 수학식 4를 이용하여 생성되고,
    상기 수학식 4는
    Figure 112019117650037-pat00202
    (
    Figure 112019117650037-pat00203
    )이고,
    상기
    Figure 112019117650037-pat00204
    는 수학식 5에 의해 정의되는 라그랑지의 계수(Lagrange coefficient)이고,
    상기 수학식 5는
    Figure 112019117650037-pat00205
    이고,
    상기
    Figure 112019117650037-pat00206
    는 상기 패스 ORAM 기반의 검색 트리에서 검증 대상 인증서를 갖는 차이드 노드들(child nodes)의 인덱스 집합을 의미하는,
    로그 서버.
KR1020190147131A 2019-11-15 2019-11-15 인증서 투명성 시스템 KR102322447B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190147131A KR102322447B1 (ko) 2019-11-15 2019-11-15 인증서 투명성 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190147131A KR102322447B1 (ko) 2019-11-15 2019-11-15 인증서 투명성 시스템

Publications (2)

Publication Number Publication Date
KR20210059545A KR20210059545A (ko) 2021-05-25
KR102322447B1 true KR102322447B1 (ko) 2021-11-09

Family

ID=76145734

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190147131A KR102322447B1 (ko) 2019-11-15 2019-11-15 인증서 투명성 시스템

Country Status (1)

Country Link
KR (1) KR102322447B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114124486A (zh) * 2021-11-09 2022-03-01 弥达斯科技(深圳)有限公司 一种用于拜占庭共识机制中提升节点安全性的方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100843072B1 (ko) * 2005-02-03 2008-07-03 삼성전자주식회사 무선 네트워크 시스템 및 이를 이용한 통신 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120053929A (ko) 2010-11-18 2012-05-29 이혜지 전자서명키 이중 암호화를 이용한 전자서명 대행 시스템과 웹 저장소에 저장을 특징으로 하는 그 방법
KR101976006B1 (ko) 2012-11-08 2019-05-09 에이치피프린팅코리아 유한회사 웹 서버의 자체 서명 인증서를 이용한 사용자 인증 방법, 이를 수행하기 위한 클라이언트 장치 및 웹 서버를 포함하는 전자 장치
KR101797571B1 (ko) 2014-09-29 2017-12-12 주식회사 한컴시큐어 전자 서명 값의 생성이 가능한 클라이언트 단말 장치 및 상기 클라이언트 단말 장치의 전자 서명 값 생성 방법, 컴퓨터 판독 가능 기록 매체 및 저장매체에 저장된 컴퓨터 프로그램

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100843072B1 (ko) * 2005-02-03 2008-07-03 삼성전자주식회사 무선 네트워크 시스템 및 이를 이용한 통신 방법

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
B. Laurie 외 2명, Certificate Transparency, IETF RFC: 6962 (2013.06.)*
Madala, D. S. V., Mahabir Prasad Jhanwar, and Anupam Chattopadhyay. "Certificate Transparency Using Blockchain." 2018 IEEE International Conference on Data Mining Workshops (ICDMW). IEEE (2018.11.20.
Phan, Vy-An. "Private Queries on Public Certificate Transparency Data." arXiv preprint arXiv:1905.09478 (2019.05.13.)

Also Published As

Publication number Publication date
KR20210059545A (ko) 2021-05-25

Similar Documents

Publication Publication Date Title
US8302170B2 (en) Method for enhancing network application security
Dacosta et al. Trust no one else: Detecting MITM attacks against SSL/TLS without third-parties
US11095635B2 (en) Server authentication using multiple authentication chains
US10541991B2 (en) Method for OAuth service through blockchain network, and terminal and server using the same
Dykcik et al. BlockPKI: An automated, resilient, and transparent public-key infrastructure
KR20210134655A (ko) 보안 시스템 및 관련 방법
CN112671779B (zh) 基于DoH服务器的域名查询方法、装置、设备及介质
US20100250949A1 (en) Generation, requesting, and/or reception, at least in part, of token
CN110545285B (zh) 一种基于安全芯片的物联网终端安全认证方法
Dhar et al. Proximitee: Hardened sgx attestation by proximity verification
Mao et al. Painless migration from passwords to two factor authentication
Szalachowski et al. RITM: Revocation in the Middle
Sadasivam et al. A novel authentication service for hadoop in cloud environment
Huang et al. A token-based user authentication mechanism for data exchange in RESTful API
Li et al. The weakest link of certificate transparency: Exploring the TLS/HTTPS configurations of third-party monitors
JP2022534677A (ja) ブロックチェーンを使用するオンラインアプリケーションおよびウェブページの保護
Stark et al. Certificate transparency in google chrome: Past, present, and future
KR102322447B1 (ko) 인증서 투명성 시스템
KR101358704B1 (ko) 싱글 사인 온을 위한 인증 방법
Kwon et al. Certificate transparency with enhanced privacy
KR102321934B1 (ko) 보안성 향상을 위한 ssl 기반의 프록시 서버
JP2024504719A (ja) ゼロトラストエンドポイントネットワークセキュリティデバイス
Jesudoss et al. Enhanced certificate-based authentication for distributed environment
Khoury et al. Implementation of blockchain domain control verification (B-DCV)
KR20200112771A (ko) 블록체인 기반의 권한 인증 방법, 단말 및 이를 이용한 서버

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant