Category: comp/tech

  • Wireless Mesh Networking As An Agent of Political Subversion

    Just putting this out there as a ‘ping’ to see if anybody else has thought about this. A recent post at One Free Korea inspired an interesting thought. The general idea is that wireless mesh networking technology being developed and deployed these days seems like an ideal foundation for a dissident network disseminating information in oppressed societies such as North Korea, Myanmar, Cuba, and others. Because discovery of a node by government authorities would almost definitely have severe consequences for the node operator, it’s important that node operators be hard to track down.

    Network desiderata:

    • Secure. Broadcasts must somehow be kept from prying government eyes. If activists plan an anti-government protest on compromised channels, the government will know exactly where and when to place riot police to shut it down. So security is essential. This means encryption, but it also means security at the human level. Before admitting a node to the mesh, appropriate measures should be taken to ensure it isn’t a government-sponsored infiltration attempt.
    • Opportunistic. Nodes know when they’re close to other nodes and take advantage of the opportunity to send and receive messages, within constraints.
    • Minimalistic. It’s important to maximize distribution of messages while minimizing the number of nodes each individual node is aware of. This achieves a sort of compartmentalization of information, which at least makes it more difficult for authorities to track down the rest of the network should one of the nodes be compromised.
    • Defensive. Should a node be compromised, measures should be taken to contain the damage. If the owner of the node is able, he can send a special broadcast alerting its neighbors to take precautions. Such precautions might include destroying or hiding of hardware, fleeing so as to avoid interrogation, etc. The alert could be forwarded to as much of the network as possible, prompting radio silence and reorganization of the network to isolate the security breech (moving the neighbors of the compromised node from the center of the mesh out to its periphery where they would do less damage if they, too, were compromised.)
    • Smart. If node A has already sent message 1 to node B, it should never send that message again.
    • Concise. The less time spent actually sending out data, the less the chances of being discovered by means of triangulation. Messages should use a minimal amount of broadcast to send a maximal amount of information. This means compression, and sending of mainly text as opposed to images, audio, or video (though these could have their place).
    • Intermittent. Messages need to be queued rather than being sent ahead immediately. If a node is silent most of the time and only broadcasts occasionally, it’s less likely to be discovered.
    • Location-Unpredictable. A node operator who always broadcasts from the same location is more likely to be discovered, so nodes should be able to broadcast from different locations, reducing the likelihood of discovery.

    Hardware characteristics:

    • Cheap. At least, cheap enough to be fairly widely deployed.
    • Mobile. Totalitarian regimes tend to deny their citizens freedom of movement, so when people do move, the network should take advantage of the opportunity provided to transfer information from one connected component to another. For example, suppose a Pyongyang resident were to visit Hamhung. The network nodes in Hamhung, being disconnected from those in Pyongyang, would not have received communications sent by Pyongyang nodes. But the visitor node, acting as an intermediary, could transmit the Pyongyang broadcasts to the Hamhung nodes.
    • Variable range. Never broadcast at higher power than necessary, yet be able to send very-long-range communications if needed.
    • (Depending on availability of electricity) Low power.
    • Ample storage. If two different connected components remain totally separated for years, a visitor node needs to be able to bring as many broadcasts with it as possible when it reconnects them.

    Software characteristics:

    • Localized. People should be able to easily enter messages in their own language and (hopefully) writing system.

    One of the key outstanding issues would be how such a mesh would be formed to begin with, given that the target population wouldn’t have many other channels by which to coordinate the setup.

    The main objectives of a network like this would be to enable political mobilization by otherwise-oppressed peoples; to provide information about the nature of the oppressive regime through grass-roots news reports, commentaries, etc.; and to provide a connection to the world beyond the nation’s borders. It would be extremely dangerous to deploy such a thing. People would be caught and executed for participating. But the long-run potential payoff of providing free and uncensored information flows could be immense: the liberation of an entire people—intellectually, spiritually, politically, physically, economically, culturally.

  • Boring But Useful Post: Printing to BYU Printers from Linux

    BYU uses the Pharos print system around campus. Unfortunately, there doesn’t seem to be direct Linux support for Pharos. But linuxers are in luck, because it is still possible to print to the campus printers.

    On Ubuntu 9.10 I did the following:

    1. Opened http://localhost:631/ in Firefox (not Chrome—this didn’t work for some reason)
    2. Clicked “Adding Printers and Classes”
    3. Clicked “Add Printer”
    4. Entered my regular username and password when prompted
    5. On the “Add Printer” page, selected “LPD/LPR Host or Printer” and clicked “Continue”
    6. In the “Connection” field, entered “lpd://USERNAME@isis.byu.edu/CampusBW” where USERNAME is my Route Y login (NetID)
    7. Clicked “Continue”
    8. Entered a name of “CampusBW” and an appropriate description and location, then clicked “Continue” again
    9. From the list next to “Make:” I chose “Generic” and clicked “Continue”
    10. From the list next to “Model:” I chose “Generic Postscript Printer (en)” and clicked “Add Printer”
    11. I don’t know if this is strictly necessary, but I clicked the “Query Printer for Default Options” button on the next page. It may or may not have actually worked.
    12. Last of all, under the “Maintenance” dropdown I chose “Print Test Page”. Then when I swiped my card at the Pharos kiosk, the test page showed up, ready to print.

    I hope somebody out there in the vast recesses of the Internet finds this information somehow useful.

  • This is for all you geeks out there

    I will liken my cleaning habits unto a garbage-collected memory management system. I store most objects in a heap (literally a heap on the floor next to my bed). When I have to allocate space to store a grocery receipt, a book I’m reading, or mail I don’t want to deal with yet, I put it on the heap. In my mind I try to keep a reference to each object, but slowly over time many of the references are lost and the objects become irrelevant.

    Then cleaning inspections come along, or maybe just a random cleaning urge. That’s when it’s time to collect the garbage—to deallocate the space taken up by stale old useless objects in order to make room for new useless objects! So I go through the heap, one object at a time, and when I come upon something that isn’t being used any more, I either shred it, recycle it, or trash it. Thus the garbage is collected, the heap size is decreased, and I can happily continue allocating space for random stuff with abandon.

    The main problem with this system is that I always have a huge heap of stuff on the floor, and I have to spend time sorting through it every once in a while. But boy it’s easy to use!

    More conscientious people probably manage space manually, thus keeping their heap size down (to the point of nonexistence, even) and avoiding the need to do periodic garbage collection. The danger there is the memory leak—if no system of periodic garbage collection exists, allocated space will just go on being used even if it’s forgotten about.

    But my metaphor is now way overextended. Ah, but we did just pass our inspection. Go GCMM!