2015-11-14 7 views
0

Мы искали DER-кодированную последовательность SEQUENCE в исполняемом файле. После того, как вы использовали те, которые выглядели как действительные данные, закодированные DER, мы хотели проанализировать, как они используются.Идентифицировать неизвестные объекты ASN.1

X.509 Сертификаты и объекты CMS легко распознать (поскольку мы знаем о них), но мы также нашли действительные кодировки, из которых мы не можем сказать, для чего они используются.

E.g. Посмотрите на следующий выход openssl asn1parse (...):


0:d=0 hl=4 l=1804 cons: SEQUENCE   
    4:d=1 hl=2 l= 1 prim: INTEGER   :03 
    7:d=1 hl=4 l=1797 cons: SEQUENCE   
    11:d=2 hl=2 l= 20 cons: SEQUENCE   
    13:d=3 hl=2 l= 8 prim: OBJECT   :des-ede3-cbc 
    23:d=3 hl=2 l= 8 prim: OCTET STRING  [HEX DUMP]:0000000000000000 
    33:d=2 hl=2 l= 3 prim: PRINTABLESTRING :<OMITTED> 
    38:d=2 hl=2 l= 13 prim: UTCTIME   :<OMITTED> 
    53:d=2 hl=2 l= 1 prim: INTEGER   :01 
    56:d=2 hl=4 l=1748 cons: SET    
    60:d=3 hl=4 l= 830 cons: SEQUENCE   
    64:d=4 hl=2 l= 6 prim:  PRINTABLESTRING :PKRoot 
    72:d=4 hl=2 l= 13 prim:  UTCTIME   :<OMITTED> 
    87:d=4 hl=2 l= 5 prim:  OBJECT   :1.3.36.2.5.1 
    94:d=4 hl=4 l= 796 cons:  SEQUENCE   
    98:d=5 hl=2 l= 69 cons:  SEQUENCE   
    100:d=6 hl=2 l= 11 cons:  SET    
    102:d=7 hl=2 l= 9 cons:  SEQUENCE   
    104:d=8 hl=2 l= 3 prim:   OBJECT   :countryName 
    109:d=8 hl=2 l= 2 prim:   PRINTABLESTRING :<OMITTED> 
    113:d=6 hl=2 l= 31 cons:  SET    
    115:d=7 hl=2 l= 29 cons:  SEQUENCE   
    117:d=8 hl=2 l= 3 prim:   OBJECT   :organizationName 
    122:d=8 hl=2 l= 22 prim:   PRINTABLESTRING :<OMITTED> 
    146:d=6 hl=2 l= 21 cons:  SET    
    148:d=7 hl=2 l= 19 cons:  SEQUENCE   
    150:d=8 hl=2 l= 3 prim:   OBJECT   :commonName 
    155:d=8 hl=2 l= 12 prim:   PRINTABLESTRING :<OMITTED> 
    169:d=5 hl=4 l= 614 cons:  SEQUENCE   
    173:d=6 hl=2 l= 3 cons:  cont [ 0 ]   
    175:d=7 hl=2 l= 1 prim:  INTEGER   :02 
    178:d=6 hl=2 l= 1 prim:  INTEGER   :00 
    181:d=6 hl=4 l= 290 cons:  SEQUENCE   
    185:d=7 hl=2 l= 13 cons:  SEQUENCE   
    187:d=8 hl=2 l= 9 prim:   OBJECT   :rsaEncryption 
    198:d=8 hl=2 l= 0 prim:   NULL    
    200:d=7 hl=4 l= 271 prim:  BIT STRING   
    475:d=6 hl=2 l= 32 cons:  cont [ 1 ]   
    477:d=7 hl=2 l= 30 cons:  SEQUENCE   
    479:d=8 hl=2 l= 13 prim:   UTCTIME   :<OMITTED> 
    494:d=8 hl=2 l= 13 prim:   UTCTIME   :<OMITTED> 
    509:d=6 hl=2 l= 15 cons:  cont [ 2 ]   
    511:d=7 hl=2 l= 13 cons:  SEQUENCE   
    513:d=8 hl=2 l= 9 prim:   OBJECT   :sha256WithRSAEncryption 
    524:d=8 hl=2 l= 0 prim:   NULL    
    526:d=6 hl=4 l= 257 prim:  BIT STRING   
    787:d=5 hl=2 l= 105 cons:  cont [ 0 ]   
    789:d=6 hl=2 l= 103 cons:  SEQUENCE   
    791:d=7 hl=2 l= 15 cons:  SEQUENCE   
    793:d=8 hl=2 l= 3 prim:   OBJECT   :X509v3 Basic Constraints 
    798:d=8 hl=2 l= 1 prim:   BOOLEAN   :255 
    801:d=8 hl=2 l= 5 prim:   OCTET STRING  [HEX DUMP]:<OMITTED> 
    808:d=7 hl=2 l= 37 cons:  SEQUENCE   
    810:d=8 hl=2 l= 3 prim:   OBJECT   :X509v3 Subject Alternative Name 
    815:d=8 hl=2 l= 30 prim:   OCTET STRING  [HEX DUMP]:<OMITTED> 
    847:d=7 hl=2 l= 14 cons:  SEQUENCE   
    849:d=8 hl=2 l= 3 prim:   OBJECT   :X509v3 Key Usage 
    854:d=8 hl=2 l= 1 prim:   BOOLEAN   :255 
    857:d=8 hl=2 l= 4 prim:   OCTET STRING  [HEX DUMP]:<OMITTED> 
    863:d=7 hl=2 l= 29 cons:  SEQUENCE   
    865:d=8 hl=2 l= 3 prim:   OBJECT   :X509v3 Subject Key Identifier 
    870:d=8 hl=2 l= 22 prim:   OCTET STRING  [HEX DUMP]:<OMITTED> 
    894:d=3 hl=4 l= 910 cons: SEQUENCE   
    898:d=4 hl=2 l= 4 prim:  PRINTABLESTRING :Cert 
    904:d=4 hl=2 l= 13 prim:  UTCTIME   :<OMITTED> 
    919:d=4 hl=2 l= 5 prim:  OBJECT   :1.3.36.2.1.3 
    926:d=4 hl=4 l= 878 cons:  SEQUENCE   
    930:d=5 hl=4 l= 598 cons:  SEQUENCE   
    934:d=6 hl=2 l= 3 cons:  cont [ 0 ]   
    936:d=7 hl=2 l= 1 prim:  INTEGER   :02 
    939:d=6 hl=2 l= 1 prim:  INTEGER   :00 
    942:d=6 hl=2 l= 13 cons:  SEQUENCE   
    944:d=7 hl=2 l= 9 prim:  OBJECT   :sha256WithRSAEncryption 
    955:d=7 hl=2 l= 0 prim:  NULL    
    957:d=6 hl=2 l= 69 cons:  SEQUENCE   
    959:d=7 hl=2 l= 11 cons:  SET    
    961:d=8 hl=2 l= 9 cons:   SEQUENCE   
    963:d=9 hl=2 l= 3 prim:   OBJECT   :countryName 
    968:d=9 hl=2 l= 2 prim:   PRINTABLESTRING :<OMITTED> 
    972:d=7 hl=2 l= 31 cons:  SET    
    974:d=8 hl=2 l= 29 cons:   SEQUENCE   
    976:d=9 hl=2 l= 3 prim:   OBJECT   :organizationName 
    981:d=9 hl=2 l= 22 prim:   PRINTABLESTRING :<OMITTED> 
1005:d=7 hl=2 l= 21 cons:  SET    
1007:d=8 hl=2 l= 19 cons:   SEQUENCE   
1009:d=9 hl=2 l= 3 prim:   OBJECT   :commonName 
1014:d=9 hl=2 l= 12 prim:   PRINTABLESTRING :<OMITTED> 
1028:d=6 hl=2 l= 30 cons:  SEQUENCE   
1030:d=7 hl=2 l= 13 prim:  UTCTIME   :<OMITTED> 
1045:d=7 hl=2 l= 13 prim:  UTCTIME   :<OMITTED> 
1060:d=6 hl=2 l= 69 cons:  SEQUENCE   
1062:d=7 hl=2 l= 11 cons:  SET    
1064:d=8 hl=2 l= 9 cons:   SEQUENCE   
1066:d=9 hl=2 l= 3 prim:   OBJECT   :countryName 
1071:d=9 hl=2 l= 2 prim:   PRINTABLESTRING :<OMITTED> 
1075:d=7 hl=2 l= 31 cons:  SET    
1077:d=8 hl=2 l= 29 cons:   SEQUENCE   
1079:d=9 hl=2 l= 3 prim:   OBJECT   :organizationName 
1084:d=9 hl=2 l= 22 prim:   PRINTABLESTRING :<OMITTED> 
1108:d=7 hl=2 l= 21 cons:  SET    
1110:d=8 hl=2 l= 19 cons:   SEQUENCE   
1112:d=9 hl=2 l= 3 prim:   OBJECT   :commonName 
1117:d=9 hl=2 l= 12 prim:   PRINTABLESTRING :<OMITTED> 
1131:d=6 hl=4 l= 290 cons:  SEQUENCE   
1135:d=7 hl=2 l= 13 cons:  SEQUENCE   
1137:d=8 hl=2 l= 9 prim:   OBJECT   :rsaEncryption 
1148:d=8 hl=2 l= 0 prim:   NULL    
1150:d=7 hl=4 l= 271 prim:  BIT STRING   
1425:d=6 hl=2 l= 105 cons:  cont [ 3 ]   
1427:d=7 hl=2 l= 103 cons:  SEQUENCE   
1429:d=8 hl=2 l= 15 cons:   SEQUENCE   
1431:d=9 hl=2 l= 3 prim:   OBJECT   :X509v3 Basic Constraints 
1436:d=9 hl=2 l= 1 prim:   BOOLEAN   :255 
1439:d=9 hl=2 l= 5 prim:   OCTET STRING  [HEX DUMP]:<OMITTED> 
1446:d=8 hl=2 l= 37 cons:   SEQUENCE   
1448:d=9 hl=2 l= 3 prim:   OBJECT   :X509v3 Subject Alternative Name 
1453:d=9 hl=2 l= 30 prim:   OCTET STRING  [HEX DUMP]:<OMITTED> 
1485:d=8 hl=2 l= 14 cons:   SEQUENCE   
1487:d=9 hl=2 l= 3 prim:   OBJECT   :X509v3 Key Usage 
1492:d=9 hl=2 l= 1 prim:   BOOLEAN   :255 
1495:d=9 hl=2 l= 4 prim:   OCTET STRING  [HEX DUMP]:<OMITTED> 
1501:d=8 hl=2 l= 29 cons:   SEQUENCE   
1503:d=9 hl=2 l= 3 prim:   OBJECT   :X509v3 Subject Key Identifier 
1508:d=9 hl=2 l= 22 prim:   OCTET STRING  [HEX DUMP]:<OMITTED> 
1532:d=5 hl=2 l= 13 cons:  SEQUENCE   
1534:d=6 hl=2 l= 9 prim:  OBJECT   :sha256WithRSAEncryption 
1545:d=6 hl=2 l= 0 prim:  NULL    
1547:d=5 hl=4 l= 257 prim:  BIT STRING 

признает, кто, какие карты типа ASN.1 к этому?

Конечно, есть некоторые шаблоны (например, со смещением 98 или 930), которые легко распознать, но существует ли какой-либо «умный» способ идентификации неизвестных структур ASN.1?

Специальные поисковые шаблоны Google, веб-сайты, программное обеспечение и т. Д.?

Мы пробовали поиски Google, такие как * ::= SEQUENCE { * INTEGER } и т. Д., Без каких-либо успехов.

+1

* Кто-нибудь узнает, какой тип ASN.1 сопоставляется с этим? * - Некоторые люди, возможно, пытались определить, были ли вы поделились двоичным файлом для загрузки где-нибудь ... – mkl

+0

Да, бинарная копия будет лучше. – Crypt32

+0

Поскольку данные могут содержать информацию, которую наш клиент не хочет публиковать, мы лишили ее части - было бы легче подумать, извините за это. – duesee

ответ

0

Для меня этот дамп выглядит как своего рода сообщение PKCS # 7 (но это не PKCS # 7). Нет универсального способа привязки необработанных данных к произвольному объекту ASN без модуля ASN. Возможно, вам придется создавать свои собственные таблицы, сопоставлять необработанные данные и видеть, какая таблица выполнена успешно. Это не так просто, не зная каждое семантическое сообщение (которое определено в модуле ASN). Если вы находитесь на Windows, вы можете попробовать следующую команду:

certutil -dump path\fileWithUnknownAsn.ext

Certutil имеет несколько встроенных таблиц для представления общих объектов X509 и, может быть, это показывает, что это такое.

+0

Не повезло с 'certutil'. Он просто сбрасывает весь файл без дополнительной информации ... – duesee

+0

Я не могу сказать, что это такое. Я вижу два envolepes. Первый конверт указывает на симметричный алгоритм и (возможно) зашифрованные данные в OCTET_STRING. Outer SET содержит 2 объекта: несколько компонентов, подобных сертификату X.509, но это не сертификат, а сертификат X.509. Извините, я не могу определить объект на основе этого дампа. – Crypt32

1

Посмотрите на это: http://www.oid-info.com/get/1.3.36.2.1

oid-info.com в настоящее время имеет более 950,000 OID, но у него есть свой OID в вопросе до уровня 1.3.36.

Поэтому, запрашивая эту услугу, начиная с 1.3.36 даст вам, что этот OID зарегистрирован

TeleTrusT - IT Security Association Germany 

и запрашивая с 1.3.36.2 скажет вам, что это

Security information object 

и 1.3.36.2.1 скажет вам, что это

Certificate 

Однако есть нет информации о 1.3.36.2.5.1 или 1.3.36.2.1.3, это потому, что это не обязательно, поскольку после того, как 1.3.36 зарегистрирован TeleTrust, они имеют общую собственность на вспомогательные узлы.

Я не знаю, имеет ли служба регистрации службу, позволяющую вам запрашивать среди всех зарегистрированных OID, но на данный момент odi-info имеет около 1 миллиона запросов OID.

+0

О, спасибо. Очень полезно! Разумеется, нет доступных определений ASN.1://, но я спросил о погоде TeleTrust, которую они могут предоставить. – duesee

+0

Хорошо, это потрясающе –