Home DER과 JOSE
Post
Cancel
Preview Image

DER과 JOSE

DER

An HTTPS certificate is a type of file, like any other file. Its contents follow a format defined by RFC 5280. The definitions are expressed in ASN.1, which is a language used to define file formats or (equivalently) data structures.

  • HTTPS 인증서는 다른 파일과 마찬가지로 파일의 한 유형이다.
  • 그것의 내용은 RFC 5280에 의해 정의된 형식을 따른다.
  • 정의는 ASN.1로 표현되며, 이는 파일 형식이나 (동등하게) 데이터 구조를 정의하는 데 사용되는 언어다.

A set of ASN.1 definitions is called a “module.”

  • ASN.1 정의의 집합을 “모듈“이라고 한다.

The other important thing about ASN.1 is that it comes with a variety of serialization formats– ways to turn an in-memory data structure into a series of bytes (or a file) and back again. This allows a certificate generated by one machine to be read by a different machine, even if that machine is using a different CPU and operating system.

  • ASN.1의 또 다른 중요한 점은 인메모리 데이터 구조를 일련의 바이트(또는 파일)로 변환했다가 다시 되돌리는 방법 등 다양한 직렬화 형식을 갖추고 있다는 점이다.
  • 이를 통해 한 시스템에서 생성된 인증서를 다른 CPU 및 운영 체제를 사용하는 경우에도 다른 시스템에서 읽을 수 있다.

There are some other languages that do the same things as ASN.1. For instance, Protocol Buffers offer both a language for defining types and a serialization format for encoding objects of the types you’ve defined. Thrift also has both a language and a serialization format. Either Protocol Buffers or Thrift could have just as easily been used to define the format for HTTPS certificates, but ASN.1 (1984) had the significant advantage of already existing when certificates (1988) and HTTPS (1994) were invented.

  • ASN.1과 같은 일을 하는 다른 언어들도 있다.
  • 예를 들어, 프로토콜 버퍼는 유형을 정의하는 언어와 정의한 유형의 개체를 인코딩하는 직렬화 형식을 모두 제공한다.
  • Thrift는 언어와 직렬화 형식을 모두 가지고 있다.
  • 프로토콜 버퍼나 Thrift 중 하나는 HTTPS 인증서의 형식을 정의하는 데 그만큼 쉽게 사용될 수 있었지만, ASN.1(1984)과 HTTPS(1994)가 발명되었을 때 이미 존재하는 상당한 장점을 가지고 있었다.

ASN.1 has been revised multiple times through the years, with editions usually identified by the year they were published. This document aims to teach enough ASN.1 to clearly understand RFC 5280 and other standards related to HTTPS certificates, so we’ll mainly talk about the 1988 edition, with a few notes on features that were added in later editions. You can download the various editions directly from ITU, with the caveat that some are only available to ITU members. The relevant standards are X.680 (defining the ASN.1 language) and X.690 (defining the serialization formats DER and BER). Earlier versions of those standards were X.208 and X.209, respectively.

  • ASN.1은 몇 년 동안 여러 번 개정되었고, 보통 발행 연도에 의해 판본이 식별되었다.
  • 본 문서는 RFC 5280 및 HTTPS 인증서와 관련된 기타 표준을 명확하게 이해할 수 있도록 ASN.1을 충분히 가르치는 것을 목표로 하고 있으므로, 우리는 주로 1988년 판에 대해 이야기 할 것이며, 이후 판에 추가된 기능에 대한 몇 가지 주석을 가지고 이야기하겠다.
  • ITU 회원들만이 이용할 수 있다는 주의와 함께 ITU에서 직접 다양한 버전을 다운로드할 수 있다.
  • 관련 표준은 X.680(ASN.1 언어 정의)과 X.690(직렬화 형식 DER 및 BER 정의)이다.
  • 그러한 표준의 이전 버전은 각각 X.208X.209이었다.

ASN.1’s main serialization format is “Distinguished Encoding Rules” (DER). They are a variant of “Basic Encoding Rules” (BER) with canonicalization added. For instance, if a type includes a SET OF, the members must be sorted for DER serialization.

  • ASN.1의 주 일련화 형식은 “DER(Distuged Encoding Rules)“이다.
  • 표준화가 추가된 “기본 인코딩 룰” (BER)의 변종이다.
  • 예를 들어 형식에 SET OF가 포함된 경우 DER 일련화를 위해 구성원을 정렬해야 한다.

A certificate represented in DER is often further encoded into PEM, which uses base64 to encode arbitrary bytes as alphanumeric characters (and ‘+’ and ‘/’) and adds separator lines (“—–BEGIN CERTIFICATE—–” and “—–END CERTIFICATE—–”). PEM is useful because it’s easier to copy-paste.

  • DER로 대표되는 인증서는 종종 PEM으로 추가 인코딩되는데, 이 인증서는 base64를 사용하여 임의 바이트를 영숫자 문자(및 ‘+’와 ‘/’)로 인코딩하고 구분선(“—–BEGIN CERTIFICATE—–” 및 “—–END CERTIFICATE—–“)을 추가한다.
  • PEM은 복사 붙여넣기가 더 쉽기 때문에 유용하다.

DER은 Abstract Syntax Notation(ASN.1)의 다자간 데이터 공유를 위한 인코딩 포맷 중 하나다. ASN.1은 ITU(International Telecommunication Union)에서 표준화한 개방된 컴퓨터 시스템들 사이에 상호 통신이 가능하도록 개발한 일종의 언어로, 데이터의 규칙(Rule)이나 구조(Structure, 속성과 값)를 표현하는 유연한 추상 표기법이다. 이 ASN.1 형식은 인간 친화적이지만, ASN.1 형식이 개발된 당시의 컴퓨터 디스크 성능으로는 효율적으로 ASN.1을 처리할 수 없었기 때문에 ASN.1 구조 데이터를 기계 친화적으로 인코딩하는 BER 형식이 만들어졌다. 하지만 BER에도 문제가 있는데, 하나의 값에 대해 여러 인코딩 방식이 존재할 수 있다는 점이다. 그래서 BER을 근간으로 하여 ASN.1 값에 대해 유일한 인코딩을 제공하는 DER 형식이 만들어졌다.

JOSE

JOSE is a framework intended to provide a method to securely transfer claims (such as authorization information) between parties. The JOSE framework provides a collection of specifications to serve this purpose. A JSON Web Token (JWT) contains claims that can be used to allow a system to apply access control to resources it owns. One potential use case of the JWT is as the means of authentication and authorization for a system that exposes resources through an OAuth 2.0 model.

  • JOSE는 당사자 간에 (승인 정보 등) 클레임을 안전하게 이전할 수 있는 방법을 제공하기 위한 프레임워크다.
  • JOSE 프레임워크는 이 목적에 부합하는 규격의 컬렉션을 제공한다.
  • JSON 웹 토큰(JWT)은 시스템이 소유한 리소스에 액세스 제어를 적용하는 데 사용할 수 있는 클레임을 포함하고 있다.
  • JWT의 한 가지 잠재적인 사용 사례는 OAuth 2.0 모델을 통해 리소스를 노출하는 시스템의 인증 및 승인 수단이다.

References

This post is licensed under CC BY 4.0 by the author.

[영화] 사랑에 대한 모든 것 - 후기

[Spring] 1.16.1. BeanFactory or ApplicationContext?