티스토리 뷰

Network

[ASN.1] ASN.1 format

Tribal 2019. 6. 10. 10:14

  여러 네트워크 프로토콜들을 분석해보면 ASN.1 format을 사용하는 것을 자주 볼 수 있다. 와이어샤크에서는 ASN.1에 대해서 알아서 파싱해서 처리해 버려서 이런 부분은 프로토콜 분석 내용이 표시하지 않고, 헥스 창 아래에 별도로 표시하고 있다. 

 

  ASN.1에 대해 요약 내용은 https://nacamp.tistory.com/17 를 참고하면 될 것 같다.

 

  ASN.1 format 자체는 어떤 데이터를 어떤 크기만큼 보내는지 명시하는 추상적인 형태의 표준이기 때문에 이를 실제로 네트워크로 보내기 위해 변환시키는 형식은 따로 있다. 

  • BER : Basic Encoding Rules
  • CER : Canonical Encoding Rules
  • DER : Distinguished Encoding Rules
  • XER : XML Encoding Rules
  • PER : Packed Encoding Rules
  • GSER : Generic String Encoding Rules

  ASN.1의 format은 Type, Length, Data로 3 부분으로 나눠진다.

  • Type : 데이터가 어떤 데이터인지 명시(integer, floot, string, boolean, oid....), 이에 대해서는 별도의 값으로 정의가 되어 있다.
  • Length : 데이터의 길이를 명시, 0x7f 이하의 길이는 1바이트를 사용하고, 길어지는 경우 확장 길이를 명시해서 사용한다.
  • Data : 실제 데이터를 명시

  Length는 위에서 설명하였듯이 0x7f 이하는 단순 1바이트로 표현하고 이 이상인 경우는 0x80의 값에 Length의 바이트 크기를 or(|) 연산하여 명시(길이의 크기이기 때문에 nlength 라고 함)한다. nlength를 명시한 뒤, nlength에 명시된 바이트 크기만큼 실제 Length가 추가된다. 

Length가 4인 경우 : 0x04
Length가 300인 경우 : 0x82 0x01 0x2c

 

 

DER(Distinguished Encoding Rules)

  • net-snmp
DER Type
Type Value
boolean 0x01
integer 0x02
bit string 0x03
octet string 0x04
null 0x05
object id(oid) 0x06
sequence 0x10
.... ....

 

 

참고

 

댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31