SSL3.0/TLS Builtin Object Token관련 질문

twins99의 이미지

SSL3.0을 사용한 Server authentication을 구현하고 있습니다.

그런데 Server certificate가 좀 이상한게 있어서 문의 드립니다.

보통은 certificate가 chain형태로 엮여서 전송되는 것으로 알고 있습니다만,

어떤 경우는 단 한개의 certificate가 도착했는데, 여기에 builtin형태로 certificate가 녹아 있는 경우가 있는 것 같습니다.

제 프로그램에선 verification fail이 나는데, mozilla에서는 신기하게 정상적으로 verification이 이루어 지기에

certificate를 살펴보니 rootCA에 'Builtin Object Token:Verisign/RSA Secure Server CA'라고 적혀있더군요.

그렇다면, Builtin Object Token이란 것이 의미하는 바가 하나의 certificate속에 또다른 형태로 CA정보가 있다는 것 같은데,

정확한 내용을 알고 싶습니다.

또 만약 제 추측이 맞다면, 어떻게 추출하는지 알았으면 좋겠습니다. 전 gnuTLS를 사용하고 있습니다만, 어떤 것이든 상관없습니다.

---------------------------------
추가합니다..
Built-in 형태로 녹아있는다는 얘기는 틀린 말인 것 같습니다..일단 전송되는 certificate는 한개뿐인건 확실합니다.
그런데, issuer의 이름만을 보고 무엇인가 처리를 하는것 같은 생각이 듭니다.

issuer의 certificate없이 이름만으로 어떤일을 할 수 있는지 궁금합니다. certificate를 이 issuer의 이름만으로 추출할 수 있을까요?

다음은 openssl에서 s_client를 사용한 결과입니다.

0 s:/C=JP/ST=Tokyo/L=Shibuya/O=VISIONARE Corporation/OU=Technical Division/OU=Terms of use at www.verisign.co.jp/rpa (c) 04/OU=Authenticated by VeriSign Japan K.K./OU=Member, VeriSign Trust Network/CN=hd.visionare.co.jp
i:/C=US/O=RSA Data Security, Inc./OU=Secure Server Certification Authority

certificate는 하나만 전송되었고, 'i:'로 issuer가 RSA Data Security임을 말해주고 있습니다..
이 certificate로 어떻게 진행해야 하는지요. 혹 RSA Data Security에서 발급한 certificate를 따로 구해야 하는건지요?
궁금합니다.

twins99의 이미지

답변 부탁드립니다.

lovian의 이미지

감히 추측 한번해보겠습니다.
모질라 자체에 ROOT CA 인증서들을 보관하고 있는 것 아닐까요?

검증경로를 따라 인증서들을 얻어오려면 상당한 부하가 있지 않겠습니까?
뭐, 저라면 그렇게 했겠습니다만, 지금이 비슷한 경우가 아닐까 하네요. :)
-----------------
한글을 사랑합니다.

-----------------
한글을 사랑합니다.

twins99의 이미지

일반적으로 x.509 certificate chain을 보낼때 chain의 마지막 certificate는 self signed certificate를 보낸다고 합니다.

그런데, 이 self signed certificate가 없이 그냥 한개만 덜렁 왔을경우, 이 certificate를 trustedCA로 저장해 두고 다음 인증때 사용하여도

issuer를 모르니 또 승인하겠냐고 물어올 것 같습니다. issuer에 대한 certificate가 있지 않는 한 계속 verification fail이 날 것 같네요.

결론적으로 어떻게 하면 issuer의 certificate를 trustedCA상에 가지고 있지 않고서도 verificaion할 수 있느냐가 문제있것 같습니다.

좀더 자세한 답변 부탁드립니다.

lovian의 이미지

검증에 걸리는 시간을 줄이기 위해 브라우저들이 trusted CA들의 정보를 가지고 있습니다.
이 Builtin Object Token이란 녀석은 그러한 정보의 집합체로 보여집니다.
어찌되었든 최종 검증경로의 길이는 1이 줄어들게 되겠지요.

이러한 상황에서 검증이 필요한 인증서의 검증과정이 들어가면, 발급자의 인증서를 얻게 되고, self signed CA이나 trusted CA의 인증서를 얻을때까지 반복하겠죠.그러나 위에 언급하신 발급자의 정보를 가진 Token이 Firefox에는 존재하는군요. trusted CA를 찾았으니 검증은 완료되겠지요.

openssl에 과연 trusted CA의 정보를 가지고 있는가를 확인해보았는데, 존재하더군요. PEM파일로 (openssl-fips-1.0)
그리고 관련정보를 알아보다 보니까 fips 140-2 에 대한 내용이 자주 언급되는데, token관련 표준? 으로 보입니다. 알아보시는 것도 괜찮을 것 같지만, 귀찮을 수도 있겠네요 :)
-----------------
한글을 사랑합니다.

-----------------
한글을 사랑합니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.