I heard that ASN.1, which is part of browser SSL libraries, introduces the potential risk of compromise our system even if we use no-script. but what is ASN.1 exactly doing? Why do we need to use something like ASN.1 to encode/decode data (such as text or images or binary) for encryption/decryption that put our computer in risk? because SSL is a protocol for encrypting data and sending it over internet.
Comment by user20883: in Wikipedia about ASN.1 says : If we want to transmit this :
myQuestion FooQuestion ::= {
trackingNumber 5,
question "Anybody there?"
We change it to this :
30 — type tag indicating SEQUENCE
13 — length in octets of value that follows
02 — type tag indicating INTEGER
01 — length in octets of value that follows
05 — value (5)
16 — type tag indicating IA5String
(IA5 means the full 7-bit ISO 646 set,
including variants, but is generally US-ASCII)
0e — length in octets of value that follows
41 6e 79 62 6f 64 79 20 74 68 65 72 65 3f
— value ("Anybody there?")
to make this and send over TCP :
30 13 02 01 05 16 0e 41 6e 79 62 6f 64 79 20 74 68 65 72 65 3f
But I say if we want send that message we can simply use UTF-8 or just binary encoding to encrypt that message instead of changing message to a software !!!
We can simply do this to make message ready for AES encryption :
myQuestion(space character}FooQuestion(space character}::=(space character}trackingNumber(space character}(space character}5,question(space character}(space character}"Anybody there?"
Update: now we have a simple block of dara to encrypt with AES directly and we don't need to make our message as a shell code !!! its just a message we like other messages we encrypt always and there is no need any encoding or exploit ...