DER 바이너리 (.der)
ITU-T 표준DER(Distinguished Encoding Rules)은 ASN.1 데이터 구조를 위한 엄격하고 정형화된 바이너리 인코딩 표준으로, 보안 인증서와 암호화 키에 대한 모호하지 않고 비트 단위로 정확한 표현을 제공합니다.
DER을(를) PEM(으)로 변환
무료 브라우저 내 DER-PEM 변환기. 기기에서 파일을 즉시 변환하세요.
검사 및 메타데이터
운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 DER 파일을 식별합니다:
바이트 단위 헤더 시그니처 (매직 바이트)
운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 DER 파일을 식별합니다:
16진수 시그니처 (오프셋 0):
30 82ASCII 표현: 0\x82
표준화: ITU-T Recommendation X.690
기술 사양
| 컨테이너 아키텍처 | Strict canonical binary encoding of ASN.1 structures using Tag-Length-Value (TLV) triples |
| 압축 | Uncompressed binary data |
| 바이트 엔디안 | Big-Endian ASN.1 encoding |
| 색 공간 | N/A (Cryptographic Binary Stream) |
| 채널 및 구조 | Cryptographic keys, X.509 certificates, CRLs, and PKCS structures |
| 최대 크기 | Unbounded ASN.1 length |
| 투명도 | Binary ASN.1 data structure |
| 스트리밍 및 프로그레시브 | Deterministic single-pass canonical decoding |
기술 비교 매트릭스: DER 대 경쟁사
| 기술적 속성 | DER (현재) | PEM | CRT | P12 |
|---|---|---|---|---|
| 데이터 표현 | 엄격한 바이너리 ASN.1 인코딩 | Base64 ASCII 아머드 텍스트 | Base64 PEM 또는 바이너리 DER | 암호화된 바이너리 PKCS #12 아카이브 |
| 결정론적 해싱 | 100% 정형화된 비트스트림 | 공백/배너에 따라 다름 | 포맷팅에 따라 다름 | 솔트/IV로 암호화됨 |
| 파일 크기 | 가장 작음 (PEM보다 약 33% 작음) | Base64로 인해 더 큼 (+33%) | Base64로 인해 더 큼 (+33%) | 암호화 래퍼로 인해 더 큼 |
| 자바 및 하드웨어 지원 | 기본 표준 | 자바에서 변환 필요 | 자바에서 변환 필요 | 키스토어로 지원됨 |
일반적인 손상 모드 및 헥스 복구 가이드
OpenSSL 오류: 'asn1 encoding routines:ASN1_get_object:header too long'.
근본 원인: ASN.1 시퀀스 헤더의 손상된 TLV(Tag-Length-Value) 바이트.
복구: File2File 인증서 도구를 사용하여 트랜스코딩하여 유효한 DER 정형 바이트를 재구축합니다.
보안 분석 및 파서 공격 벡터
DER 디코더는 정수 언더플로우/오버플로우가 네이티브 암호화 라이브러리에서 버퍼 오버플로우를 유발할 수 있는 길이 서술자를 파싱합니다.
알려진 공격 벡터
- 깊이 중첩된 ASN.1 가변 길이 디코딩 중 정수 오버플로우.
- 잘못된 형식의 비트 문자열을 파싱할 때의 범위를 벗어난 읽기.
- 중첩된 ASN.1 재귀 폭탄을 통한 서비스 거부.
방어적 모범 사례:
역사적 배경 및 주요 이력
주요 장점
- 정형화되고 결정론적임: 동일한 데이터가 항상 정확히 동일한 바이너리 해시를 생성하도록 보장하므로 디지털 서명에 필수적입니다.
- PEM보다 더 컴팩트함: Base64 인코딩과 ASCII 배너를 생략하여 오버헤드를 약 33% 절감합니다.
- 하드웨어 보안 모듈(HSM), 스마트 카드 및 자바 키스토어의 기본 형식입니다.
기술적 제한 사항 및 단점
- 바이너리 형식은 텍스트 편집기에서 보거나, 편집하거나, 복사하여 붙여넣을 수 없습니다.
- 텍스트 기반 PEM/CRT 파일을 압도적으로 선호하는 웹 호스팅 환경에서는 상대적으로 드뭅니다.
- 엄격한 인코딩 규칙으로 인해 사소한 패딩 불일치라도 발생하면 파싱이 거부됩니다.
흥미로운 기술적 상식
- DER은 BER(Basic Encoding Rules)의 엄격한 하위 집합입니다. BER은 값을 인코딩하는 여러 유효한 방식을 허용하는 반면, DER은 정확히 하나의 정형화된 방식만 허용합니다.
- DER 파일을 Base64로 인코딩하고 '-----BEGIN CERTIFICATE-----'로 감싸면 표준 PEM 파일이 됩니다.
- 자바의 KeyFactory는 RSA 공개 키와 개인 키를 원본 DER 형식으로 제공하도록 요구합니다.
자주 묻는 기술 질문
DER과 PEM의 차이점은 무엇인가요?
DER은 인증서 또는 키의 원시 바이너리 형식입니다. PEM은 동일한 DER 파일을 '-----BEGIN...-----' 배너가 있는 읽기 쉬운 Base64 텍스트로 변환한 것입니다.
DER을 PEM으로 어떻게 변환할 수 있나요?
.der 파일을 File2File.app에 업로드하면 브라우저에서 바로 1초 만에 표준 .pem 텍스트 인증서로 변환할 수 있습니다.
Java에서 DER 키를 사용하는 이유는 무엇인가요?
JCA(Java Cryptography Architecture)는 네이티브 키 사양을 위해 DER로 인코딩된 PKCS#8 및 X.509 바이트 배열을 사용합니다.