티스토리 뷰
이 글을 읽고 있는 독자중에 ASN.1 이라는 것에 대해서 알고 있는 분이 얼마나 될까를 생각해봅니다.
물론 잘 알고 계시는 분도 있겠지만.. 잘 모르는 분들에게 도움이 될까 연재를 해보려구요..
얼마나 오래 할지.. 저도 잘 모르겠지만.. 제 글을 보면서 많은 도움이 되었으면 좋겠네요..
시작에 앞서 본 연재는 기본사항을 배제하고 연재를 해볼까 합니다.
기본적인 사항은 인터넷 어디를 찾아봐도 볼수가 있기 때문에.. 제가 또 그것에 대해
장왕하게 설명하는 것은 시간 낭비이기도 하니까.. 제외하겠습니다.
기본적인 사항을 보시고 싶으시면 아래의 하얀하늘 님의 블로그를 보시는 것도 도움이 될 듯 합니다.
http://blog.naver.com/gldmsl?Redirect=Log&logNo=20102620
또한 ASN.1 과 관련되어 도움이 될만한 사이트는 아래와 같습니다.
http://www.itu.int/ITU-T/asn1/ [ITU-T의 ASN.1 프로젝트를 진행하는 곳]
http://asn1.elibel.tm.fr/en/standards/index.htm#x680 [ASN.1 에 관한 표준문서를 받을수 있는 곳]
http://asn1.elibel.tm.fr/introduction/index.htm [ASN.1 에 관한 기본적인 설명이 되어 있는 곳]
http://lionet.info/asn1c/ [OpenSource 형태로 ASN.1 Compiler 개발이 진행되는 곳]
그리고 ASN.1 과 관련된 e-book을 꽁자로 구할수 있는 곳은 다음과 같습니다.
http://www.oss.com/asn1/dubuisson.html [ ASN.1 Reference Book]
http://www.oss.com/asn1/larmouth.html [ASN.1 Complete]
마지막으로 ASN.1 과 관련되어 도움이 될만한 유틸이 있는 곳은 다음과 같습니다.
http://www.oss.com/products/syntax1.html [ASN.1 Syntax Checker 프로그램]
http://homepage.mac.com/aramperez/berviewer.html [BER 인코딩 파일 뷰어 프로그램]
http://www.codeproject.com/csharp/Asn1Editor.asp [DER 인코딩 파일 뷰어 프로그램]
http://www.obj-sys.com/products_asn1ve.php [ASN.1 Viewer/Editor 프로그램]
이상입니다.
이 정도의 정보면 ASN.1 의 정보를 상당히 많이 얻을수 있을 것으로 판단됩니다.
자... 이제 시작해 봅시다.
=================================================================================
ASN.1 는?
ASN.1 은 Abstract Syntax Notation number One 의 약자이며 ITU-T를 통해서 표준화가 되었고, 네트워크 분야, 정보보호 분야, 모바일 분야 및 기타 다양한 분야에서 사용되고 있습니다.
ASN.1 의 필요성은 ?
우리는 인터넷을 통해서 다양한 시스템을 접속할 수 있게되었습니다. 그 시스템들은 MS Windows 계열에서 부터, Sun Solaris, IBM AIX, HP-UX, Mac OS X, Linux, FreeBSD 등등 수없이 많은 운영체제하에 운영되고 있습니다.
이러한 이기종 시스템들이 혼재한 환경에서는 상호간에 까다로운 구조의 데이터를 전송하면서 대화하기에 상당한 문제점을 가집니다.(물론 우리가 많이 사용하는 웹 브라우저를 이용한 HTTP통신, Telnet 통신, FTP 통신과 같은 통신 프로토콜은 제외하구요..)
즉, 이기종 시스템간에는 데이터를 메모리에 저장하는 특성이 틀려 복잡한 데이터를 주고 받을때 상대방 시스템에 잘못된 데이터를 받을 가능성이 높습니다.
이러한 문제점을 해결하기 위해서 공통화된 데이터 표현 문법을 만들게 되었고 이를 통해서 ASN.1 이 생겨나게 되었습니다.
ASN.1 은 무엇인가?
ASN.1은 앞에 설명한대로 데이터 구성을 표현하는 문법(언어)입니다. 이러한 문법에 대한 표준이 ITU-T X.68x 계열의 문서에 표현이 되어 있으며, 다음과 같은 문법으로 표현이 됩니다.
Order ::= SEQUENCE {
header Order-header,
items SEQUENCE OF Order-line}
Order-header ::= SEQUENCE {
number Order-number,
date Date,
client Client,
payment Payment-method }
위의 첫번째 에서 Order라는 것은 다음의 내용을 포함하고, 또 Order-header는 그 다음의 내용을 포함한다고 설명하는 것입니다.
(문법만 봐서는 뭔지 모르겠죠? 그냥 넘어갑시다.. 나중에 설명하죠..)
ASN.1 을 사용하는 사례는?
우리가 쉽게 접할수 있는 것은 바로 인터넷 뱅킹입니다.
인터넷 뱅킹을 사용하면서 보면 인증서라는 것을 사용하죠?
바로 인증서가 ASN.1 을 사용하는 대표적인 사례입니다.
인터넷 뱅킹에 사용되는 인증서가 ASN.1에 의해서 표현된 문법구조를 따라서 데이터가 구성되고 이것이 Encoding 되어 인증서라는 파일로 존재하게 되는 것입니다.
[참고] 인증서 표준
- RFC2549 - http://www.ietf.org/rfc/rfc2459.txt?number=2459 ,
- RFC3280 - http://www.ietf.org/rfc/rfc3280.txt?number=3280
위의 참고 문서를 보면 아시겠지만..(내용은 읽어볼거 없습니다. ^^ 머리 아플테니까요..)
아래로 아래로 이동해 보면 아래와 같은 형태를 보실수 있을 껍니다.
Certificate ::= SEQUENCE {
tbsCertificate TBSCertificate,
signatureAlgorithm AlgorithmIdentifier,
signatureValue BIT STRING }
TBSCertificate ::= SEQUENCE {
version [0] EXPLICIT Version DEFAULT v1,
serialNumber CertificateSerialNumber,
signature AlgorithmIdentifier,
issuer Name,
validity Validity,
subject Name,
subjectPublicKeyInfo SubjectPublicKeyInfo,
issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,
-- If present, version shall be v2 or v3
subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,
-- If present, version shall be v2 or v3
extensions [3] EXPLICIT Extensions OPTIONAL
-- If present, version shall be v3
}
이것이 인증서의 기본적인 포맷이랍니다.
그럼.. 우리의 인증서를 살펴 봅시다.. (기본적으로 인증서는 C:\Program Files\NPKI\ 하위에 인증기관 밑에 Users 디렉토리에 자신의 인증서가 있습니다.)
위의 그림은 인증서를 BerViewer를 통해서 본 내용입니다.
위의 내용을 보면 빨간색으로 쓴 곳들의 일부가 위의 ASN.1 내용과 동일한 것을 볼수 있습니다.
'보안 > 일반' 카테고리의 다른 글
Pretty Good Privacy From Wikipedia (0) | 2007.07.06 |
---|---|
Web of trust From Wikipedia (0) | 2007.07.06 |
PKI 환경에서 공개키 서명 생성과 확인 방법 (0) | 2007.07.06 |
Composite Key Management for Ad Hoc Networks (0) | 2007.07.06 |
[본문스크랩] WSN - Sybil Attack (0) | 2007.07.06 |
- Total
- Today
- Yesterday
- 지루박멸연구센타
- 열정의 힘을 믿는다
- Le4rN TO Cr4cK
- 디버깅에관한모든것(DebugLab)
- sysinternals
- FoundStone
- hashtab
- 보안-coderant
- 디바이스드라이버 개발자 포럼
- dualpage.muz.ro
- osronline.com - 드라이버 관련 정보 사이트
- NtInternals - NativeAPI Refere…
- pcthreat - spyware 정보 제공
- rootkit.com - 루트킷 관련 정보
- www.ntinternals.net
- WINE CrossRef. - source.winehq…
- tuts4you
- hex-rays
- idapalace
- idefense
- immunityinc
- threatexpert
- hdp.null2root.org
- www.crackstore.com
- crackmes.de
- www.who.is
- www.cracklab.ru
- community.reverse-engineering.…
- video.reverse-engineering.net
- SnD
- 클레이 키위
- reversengineering.wordpress.co…
- www.openrce.org
- www.woodmann.com
- PEID.Plusins.BobSoft
- roxik.com/pictaps/
- regexlib.com
- spyware-browser.com
- www.usboffice.kr
- regulator
- www.txt2re.com
- ietab.mozdev.org
- zesrever.xstone.org
- www.heaventools.com/PE-file-he…
- www.heaventools.com
- www.innomp3.com
- 울지않는벌새
- exetools.com-forum
- exetools.com
- utf8 conv
- robtex - IP trace
- onsamehost - same IP sites
- JpopSuki
- jsunpack.jeek.org
- wepawet.iseclab.org
- www.jswiff.com
- www.hackeroo.com
- winesearcher.co.kr
- khpga.org
- malwareurl.com
- anubis.iseclab.org
- www.crummy.com-eautifulSoup
- malwarebytes.org/forums
- bbs.janmeng.com
- blackip.ustc.edu.cn
- eureka.cyber-ta.org
- exploit-db.com
- 주식
- 공공인프라
- 자동트래이딩
- 피봇
- logrotate
- 주택구매력지수
- 전세매매지수
- 군함도
- 미국주식
- ROA
- 주식트래이딩
- PIR
- 실시간트래이딩
- ubuntu
- 신한저축은행
- Pivot
- 사회간접자본
- SBI저축은행
- hai
- systemd
- ElasticSearch
- 레고랜드
- INVOICE
- CriticalSection
- 매매가격지수
- O365
- 맥쿼리인프라
- 다올저축은행
- 시스템트래이딩
- ChatGPT
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |