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

Reply via email to