외우지말고 이해하라.

외우는 것 보단 이해해서 내것으로 만들어 활용하기

IT Study/IT 상식

IT 보안 회사 (개발자) - 보안 용어 정리 (ASN1,BouncyCastle, X.509, SDK, CRL, OCSP, PKCS, RSA-OAEP, RSA-PSS)

hyg4196 2021. 10. 24. 13:53
반응형

01. ASN.1

ASN.1은 추상적인 구문 표기법 1(Abstract Syntax Notation One)을 의미.

다양한 환경(하드웨어, OS, Platform)에 의존성이 없는 데이터 구성 / 정의에 대한 추상적 언어라는 의미입니다.

전화망과 컴퓨터 네트워킹에서 데이터를 표현, 인코딩, 전송, 디코딩하기 위한 규칙과 구조체를 기술하는 표준과 표기법

 

BouncyCastle에서 전체 프로그램 구조를 살펴보다 보면 가장 먼저 눈에 띄며 가장 전체적으로 참조가 많은 부분이 (소스코드 내부에서 ) ASN.1 Crypto 라는 두개의 Namespace 입니다. 이 두 Namespace를 분석하기 전에 첫번째 항목인 ASN.1에 대해서 가볍게 살펴 보도록 하겠습니다.

 

BouncyCastle 란 ? 

암호화에 사용되는 API 모음입니다. Java 및 C # 프로그래밍 언어 모두에 대한 API가 포함되어 있습니다

 

ASN.1의 특징

- 추상적인 기본 데이터 양식을 통해 다양한 데이터를 정의하는 것이 가능

- 비트 단위의 Encoding 방식에 대한 정의로 인해 개발자가 확장하기 용의하지 않음

- 추상적인 개념이기 때문에 실제 전송을 위해서는 별도의 실제 Encoding / Decoding 작업이 필요함.

관련 표준안 : ISO 8824 (ASN.1 문법 자체에 대한 내용)

ISO 8825 (추가 Encoding /Decoding)

 

ASN.1은 특정 프로그래밍 언어와 독립적으로 복잡한 데이터 구조를 설명 할 수 있다.

 

ASN.1 컴파일러는 이러한 추상적으로 지정된 구조에 대한 규격을 만족하는 각각의 대상 언어 (C, C ++, Java) 로 된 Native한 파일 세트를 생성하고 변환을 수행 할 코드를 생성해준다. (구조체가 네트워크를 통해 전송되거나 외부 매체에 쓰여지는 경우 사용할 수 있음).

 

ASN.1 사용 예

* 공인인증서의 저장

* SNMP의 정보기술 및 Syntax 정의

* H.323의 인코딩 규칙 정의

 

 

  ASN.1은 ISO와 IEC, 그리고 ITU-T가 합동으로 표준화한 것으로 CCITT X.409:1984의 부분으로 1984년에 본래 정의된 것이다. ASN.1은 널리 사용되면서 1988년에 X.208로 다시 표준화되었다. 실질적으로 수정된 1995 버전은 X.680 시리즈에 의해 포괄되었다. X.680 시리즈의 최신 수정은 5.0판이며 2015년에 출판되었다.

 

 

02. X.509

X.509는 암호학에서 공개키 인증서와 인증알고리즘의 표준 가운데에서 공개 키 기반(PKI)의 ITU-T 표준이다.

 

03. SDK (Software Development Kit)

소프트웨어 개발 키트는 일반적으로 소프트웨어 기술자가 사용하여 특정한 소프트웨어 꾸러미, 소프트웨어 프레임워크, 하드웨어 플랫폼, 컴퓨터 시스템, 게임기, 운영 체제 등을 위한 응용 프로그램 등을 만들 수 있게 해주는 개발 도구의 집합이다.

 

SDK 없이는 모든 기능을 처음부터 만들어야 합니다. SDK는 새로운 도구를 효율적으로 만들 수 있게 할뿐만 아니라, 앱 개발과 관련된 모든 이들에게 미리 만들어진 도구를 제공함으로써 개발 과정을 더 쉽게 합니다. 따라서 SDK를 사용하면 추가하려는 새로운 기능이 현재 시스템과 호환되는지만 확인하면 됩니다.

 

03. CRL (Certificate Revocation List)

인증서 폐기 목록, CRL(Certificate Revocation List)은 공개 키 기반 구조와 같은 체계에서 해지되었거나 더 이상 유효하지 않은 인증서의 목록을 의미한다.

반응형