
(해석 또는 이해가 잘못된 부분이 있다면 댓글로 편하게 알려주세요.)
In this section, we talk about digital certificates, the “ID cards” of the Internet. Digital certificates (often called “certs,” like the breath mints) contain information about a user or firm that has been vouched for by a trusted organization.
이번 섹션에서는 인터넷에서의 신분증인 디지털 인증서에 대해 이야기할 것입니다.
디지털 인증서(cert)는 신뢰된 기관에 의해 보증된 기업이나 사용자의 정보를 포함합니다.
We all carry many forms of identification. Some IDs, such as passports and drivers’ licenses, are trusted enough to prove one’s identity in many situations. For example, a U.S. driver’s license is sufficient proof of identity to let you board an airplane to New York for New Year’s Eve, and it’s sufficient proof of your age to let you drink intoxicating beverages with your friends when you get there.
사용자는 다양한 인증 정보를 주고받습니다.
여권과 운전면허증과 같은 일부 신분증은 대부분의 상황에서 한 사람의 신원을 증명할 수 있을 만큼 신뢰도가 높습니다.
예를 들어 미국의 운전면허증은 새해 전야에 뉴욕행 비행기에 탑승할 수 있을 만큼 충분히 신원을 증명하며, 뉴욕에 도착해서 친구들과 술을 마실 수 있는 연령을 증명하는 데도 사용할 수 있습니다.
More trusted forms of identification, such as passports, are signed and stamped by a government on special paper. They are harder to forge, so they inherently carry a higher level of trust. Some corporate badges and smart cards include electronics to help strengthen the identity of the carrier. Some top-secret government organizations even need to match up your fingerprints or retinal capillary patterns with your ID before trusting it!
여권과 같이 보다 신뢰도가 높은 인증 정보는 특수 용지에 정부가 서명하고 도장을 찍은 것입니다.
이러한 정보는 위조하기 어려우므로 고수준의 신뢰를 가지고 있습니다.
일부 기업 배지와 스마트 카드는 신원을 강화하는 데 도움이 되는 전자 장치가 포함되어 있습니다.
정부 비밀 기관은 지문 인식이나 망막 모세혈관 패턴을 인식하여 신분증과 대조한 후 신뢰 여부를 결정하기도 합니다.
Other forms of ID, such as business cards, are relatively easy to forge, so people trust this information less. They may be fine for professional interactions but probably are not enough proof of employment when you apply for a home loan.
사원증과 같은 또다른 형태의 신분증은 상대적으로 위조하기 쉽습니다.
때문에 해당 정보는 신뢰도가 낮습니다.
전문적인 상호작용에서 사원증을 사용하는 것은 괜찮지만, 주택 대출을 신청할 때 사용하기에는 불충분한 신분증일 것입니다.
Digital certificates also contain a set of information, all of which is digitally signed by an official “certificate authority.” Basic digital certificates commonly contain basic things common to printed IDs, such as:
• Subject’s name (person, server, organization, etc.)
• Expiration date
• Certificate issuer (who is vouching for the certificate)
• Digital signature from the certificate issuer
디지털 인증서는 공식적인 "인증 기관(CA)"에 의해 디지털로 서명된 정보의 집합을 포함하고 있습니다.
일반적인 신분증과 유사하게 다음과 같은 기본 요소들을 포함합니다.
Additionally, digital certificates often contain the public key of the subject, as well as descriptive information about the subject and about the signature algorithm used. Anyone can create a digital certificate, but not everyone can get a well-respected signing authority to vouch for the certificate’s information and sign the certificate with its private key. A typical certificate structure is shown in Figure 14-11.
추가적으로 디지털 인증서는 대상자를 설명하는 정보와 사용중인 서명 알고리즘에 관한 정보뿐만 아니라 대상자의 Public Key까지 포함합니다.
누구나 디지털 인증서를 생성할 수 있지만 누구나 공신력 있는 서명 기관에서 인증서의 정보를 보증하고 Private Key로 인증서에 서명할 수 있는 것은 아닙니다.
인증서의 일반적인 구조는 Figure 14-11에 나타난 것과 같습니다.

Unfortunately, there is no single, universal standard for digital certificates. There are many, subtly different styles of digital certificates, just as not all printed ID cards contain the same information in the same place. The good news is that most certificates in use today store their information in a standard form, called X.509 v3. X.509 v3 certificates provide a standard way of structuring certificate information into parseable fields. Different kinds of certificates have different field values, but most follow the X.509 v3 structure. The fields of an X.509 certificate are described in Table 14-2.
하지만 디지털 인증서를 생성하기 위한 보편적인 단일 표준이 존재하지 않습니다.
디지털 인증서의 스타일이 조금씩 다를 수 있습니다.
마치 출력된 모든 신분증이 동일한 위치에 동일한 정보를 포함하지 않는 것과 같습니다.
다행인 점은 오늘날 사용중인 대부분의 인증서는 X.509 v3 표준 형태로 정보를 저장한다는 것입니다.
X.509 v3 인증서는 인증 정보를 파싱 가능한 필드 형태로 구조화하는 표준 방식을 제공합니다.
다양한 인증서가 다양한 필드값을 가질 수 있지만, 대체로 X.509 v3 구조를 따릅니다.
X.509 인증서의 필드는 Table 14-2에 나타난 것과 같습니다.


There are several flavors of X.509-based certificates, including (among others) web server certificates, client email certificates, software code-signing certificates, and certificate authority certificates.
When you establish a secure web transaction through HTTPS, modern browsers automatically fetch the digital certificate for the server being connected to. If the server does not have a certificate, the secure connection fails. The server certificate contains many fields, including:
• Name and hostname of the web site
• Public key of the web site
• Name of the signing authority
• Signature from the signing authority
오늘날의 브라우저는 HTTPS를 통한 보안 웹 트랜잭션을 생성할 때 연결중인 서버로부터 디지털 인증서를 자동으로 불러옵니다.
만약 서버가 인증서를 가지고 있지 않다면 보안 연결에 실패합니다.
서버 인증서는 다음과 같은 필드를 포함할 수 있습니다.
When the browser receives the certificate, it checks the signing authority.* If it is a public, well-respected signing authority, the browser will already know its public key (browsers ship with certificates of many signing authorities preinstalled), so it can verify the signature as we discussed in the previous section, “Digital Signatures.” Figure 14-12 shows how a certificate’s integrity is verified using its digital signature.
브라우저가 인증서를 받으면 먼저 서명 기관을 확인합니다.
이 기관이 공신력 있는 서명 기관으로 판단되면, 이전 섹션 "Digital Signatures"에서 이야기했던 것처럼 브라우저는 자신이 알고 있는 Public Key(브라우저는 여러 서명 기관의 인증서가 미리 설치되어 제공됨)를 사용하여 서명을 검증할 수 있습니다.

If the signing authority is unknown, the browser isn’t sure if it should trust the signing authority and usually displays a dialog box for the user to read and see if he trusts the signer. The signer might be the local IT department, or a software vendor.
서명 기관을 알 수 없는 경우, 일반적으로 브라우저가 서명 기관을 신뢰할지 말지 판단할 수 없습니다.
따라서 사용자가 서명 기관을 신뢰할 것인지 확인하기 위한 다이얼로그 박스를 제시합니다.
서명 기관은 로컬 IT 부서거나 소프트웨어 공급자일 수 있습니다.
: 공식적인 인증기관(CA)에 의해 디지털로 서명된 인증서
X.509 v3 인증서는 지금까지도 계속해서 사용되고 있는 표준이다. 책에서는 디지털 인증서를 통한 인증 방식을 쉽게 설명하기 위해 단순히 브라우저에게 제공받은 인증 기관의 Public Key를 사용하여 서명을 검증한다고만 이야기했지만, 사실 브라우저가 받는 대부분의 인증서는 브라우저가 알지 못하는 인증 기관으로부터 온다. 웹 브라우저에 미리 내장되어 있는 인증서는 보통 RootCA에 해당하며 사용자가 받는 인증서는 대부분 ICA(Intermediate CA)다.
오늘날의 인증서는 계층 구조로 이루어져 있다. RootCA는 최상위의 인증기관으로서 무조건 신뢰할 수 있는 기관으로 간주한다. RootCA의 하위 계층에 속하는 ICA의 경우 반드시 신뢰할 수 있다는 보장은 없지만 RootCA의 Public Key를 사용하여 간접적으로 신뢰를 보장할 수 있다. ICA가 인증서 발급을 요청하면ICA의 서명을 RootCA의 Private Key로 암호화한다. 이 값은 RootCA의 Public Key를 통해서만 복호화가 가능하다. 클라이언트가 ICA로 인증된 서버가 신뢰할 수 있는지 확인하고자 하는 경우 해당 서버의 인증서를 발급한 ICA의 digest를 복호화하여 ICA 인증서의 변조 유무를 확인할 수 있다. ICA 인증서가 변조되지 않았다면 Chain of Trust에 의해 해당 서버도 신뢰할수 있다고 간주한다.
정리하자면 X.509 v3 인증서는 계층 구조로 되어 있고, 보통 우리가 접근하는 서버는 ICA로부터 인증서를 발급받는다. X.509 v3 인증서는 여전히 건재하게 사용되고 있는 PKI라고 볼 수 있다.