Full Disclosure mailing list archives

Re: idea


From: Valdis.Kletnieks () vt edu
Date: Fri, 19 Sep 2003 23:05:24 -0400

On Fri, 19 Sep 2003 12:03:46 PDT, D B <geggam692000 () yahoo com>  said:
does an application exist that encrypts data via pgp
(gpg) then breaks that up into chunks .... then
connects to a remote computer via ssl and sends one
chunk , the order picked at random, then requests a
different port to be opened ....sends the second chunk
... so on to conclusion 

with the ports being a random selection , the size of
the chunks being random, and the only info passed
about the chunks to the other comp would be the order
they were supposed to go back into

Actually, you need to pass more info than that.  In particular, you need to
find some way for the two ends to agree what the next port to use is, and how
much data to transfer.  If one side is waiting to catch on port 9945 and the
other end sends on 18462, things get messy.  Similarly if one end is expecting
the next blob of data to be 19945 bytes and the other end sends 17594 and then
port-hops.  Two ways come to mind:

1) Use a shared secret between the two ends to initialize a pseudorandom
sequence at both ends, and have each "turn of the crank" pop out the next port/
length info.

2) Use a shared secret with a symmetric cypher such as IDEA, and just embed "go
to port N" or "next block length M" in your data stream.  If you were really
ambitious, you'd use Diffie-Hellman or some such to on-the-fly generate a
shared secret to initialize the symmetric cypher.

In addition, you'd want at least some basic authentication of some sort, so
both ends can satisfy themselves there's no MITM games going on...

Making it work through a firewall or NAT would be challenging - you might have
to settle for a list of 10-12 ports likely to be passed, and for each port
disguise that block as something reasonable for that port - an HTTP POST
request, encoded into NTP packets, on the SMTP port look like a random Outlook
virus, etc.....

Attachment: _bin
Description:


Current thread: