Vikram Dham wrote:
Hi Vikram -
Doesn't the potential & practicability of this idea depend on the
capability of wireless cards and drivers supporting them? Do we know if
wireless network card would allow node to be part of Infrastructure
network and also transmit broadcast packets on another channel /
network? How much can a device driver control the wireless network card?
Can it control transmissions per packet basis?
That's right, everything depends first on getting the wlan card to do
what the protocol needs.
It's definitely not going to be possible to get normal operation from a
wireless card that is associated on a network if you keep changing the
channel. So if you share your network card with your private network
and Penumbra, you can only listen and send Penumbra packets on the same
wireless channel you are associated on. (If you alternatively, or in
addition, use a second wireless USB stick on its own channel, then you
can bridge Penumbra traffic between channels and listen on both for
Penumbra traffic.)
Every transmission from the wireless card is in fact a "broadcast", and
some parts of it are always unencrypted, including some MAC addresses at
the beginning. One of these MAC addresses is set to 11:22:33:44:55:66
to mark the packet as being a Penumbra packet.
The different cards have different levels of control over the packets,
some of them expect the 80211 stack to have done the crypto already and
some of them do hardware crypto after the packet leaves the CPU. The
three plans I have for dealing with the different situations are:
- Try to ship the packet out unencrypted and marked as unencrypted
- If the wireless card is going to insist on doing hardware encryption
after I give it the packet, then try to specify the IV (Initialization
Vector) for the packet, and pre-encrypt the payload with that IV and the
current local network key. Because RC4 is symmetrical, encrypting it
twice (once in the driver and again in the hardware) will AIUI have the
end result of getting it out unencrypted
- If neither of these will fly on particular hardware, then try to
specify Penumbra packets (only) be encrypted by WEP key 4, and specify
that WEP key 4 must be set to 0x0000...00 on systems participating in
Penumbra. The packets are marked with which of the 4 possible WEP keys
were used on them when they go out, so this can be decrypted
transparently by the receiving driver
For receiving, it seems the cards can operate in a promiscuous mode or
to filter by their MAC address only. In this case we have to switch the
card to promiscuous and filter in software for packets with the local
MAC address or the 11:22:33:44:55:66 one.
The current status is that I can send and receive unencrypted packets on
an unassociated zd1211 and send and receive encrypted packets on an
associated zd1211 and ipw3945 wlan with very light modifications to the
driver.
-Andy
_______________________________________________
p2p-hackers mailing list
[email protected]
http://lists.zooko.com/mailman/listinfo/p2p-hackers