I came back from my “cross-country bicycle trip”:http://1guy2biketrips.michaelaltfield.net to discover I could no longer send signed email because my key expired! I’ve also changed colleges from “SPSU”:http://www.spsu.edu/ to “UCF”:http://www.ucf.edu, and my old college is expiring my email address, so here’s what I need to do:
# Extend my key’s expiration another year # Add new email address to subkey # Save updates to key # Export a new public key
Background Information GPG
“GPG (GNU Privacy Guard)”:http://www.gnupg.org/ (used here) is a popular, cross-platform implementation of “OpenPGP (Pretty Good Privacy)”:http://en.wikipedia.org/wiki/Pretty_Good_Privacy defined in “RFC 4880”:http://tools.ietf.org/html/rfc4880. OpenPGP outlines a standard, open message format for maintaining the “confidentiality”:http://en.wikipedia.org/wiki/Information_security#Confidentiality and “integrity”:http://en.wikipedia.org/wiki/Information_security#Integrity of electronic messages.
Why Subkeys?
“Public Key Cryptography”:http://en.wikipedia.org/wiki/Public-key_cryptography is long, complicated, and well outside the scope of this post. However, one thing I never fully understood was the functional purpose of subkeys. Thankfully, “the GPG documentation”:http://www.gnupg.org/gph/en/manual.html is excellent.
So, there’s 2 major things I want to accomplish by using GPG with my email
# Confidentiality through encryption # Integrity through signatures
The designers of PGP viewed the signature role as indefinitely important while the encryption role as dynamic overtime. Therefore, when we first generate a keypair, 2 keys are created: 1 primary key for . . . → Read More: Extend GPG Key Expiration
Much to my surprise, I discovered that I have 25 registered users to this web blog. I’d like to take this opportunity to point out that I’ve since created another “blog specifically to document a ~3,000 mile bicycle trip that a friend and me are embarking on this summer (2010). The website is: 2guys1biketrip.com”:http://www.2guys1biketrip.com.
Although this new blog is (obviously) _mostly_ cycling-oriented, there are some technological posts as well. For example, I plan on “plotting our trek in real-time on a Google Maps mashup using a GPS-enabled cell phone”:http://2guys1biketrip.com/wp/?page_id=59. For more info, see “my ‘GPS Tracking’ post on 2guys1bike trip”:http://2guys1biketrip.com/wp/?p=69.
Also, one of the many obstacles I’m trying to dodge for this trip is “how to charge my batteries”:http://2guys1biketrip.com/wp/?p=51. I’ve considered “pedal-power”:http://blog.makezine.com/archive/2009/06/how-to_pedal-powered_phone_charger.html and solar power.
To monitor our progress as we prepare for this epic trip, be sure to subscribe to our “2guys1biketrip RSS feed”:http://2guys1biketrip.com/wp/?feed=rss2. I’m sure there will be some solar panel hacking posts on 2guys1biketrip in the not-too-distant future.
Also, if you’ve found any of these postings to be helpful or you just feel like being exceptionally nice, please consider “contributing to our trip”:http://2guys1biketrip.com/wp/?page_id=6. Donations of any amount will be _much_ appreciated (we are both college students, . . . → Read More: My Cycling Blog
Plausibly deniable encryption is a fascinating concept. For example, “TrueCrypt”:http://www.truecrypt.org/ (a FOSS for hard disk encryption) has a wonderful “Hidden Volume”:http://www.truecrypt.org/docs/?s=hidden-volume feature that provides “Plausible Deniability”:http://www.truecrypt.org/docs/?s=plausible-deniability. The concept is: you install 2 OS instances on your computer–1 in a hidden volume. If, for whatever reason, you were forced to reveal your encrypted data, you could give access to decrypt your fake, but seemingly legitimate, OS instance. If done correctly, this could prevent you from forfeiting your sensitive data.
What if you want to encrypt some data to a file, bury it on a thumbdrive somewhere, and make it appear to be just an obscure filetype (possibly corrupted)? I ran across “the answer”:http://old.nabble.com/Is-it-possible-to-decide-what-is-a-gpg-file–td26392408.html when studying for my Secure Computing final.
I haven’t had a chance to research this potential solution, but there seems to exist a project that builds onto the Blowfish cypher to achieve this plausibly deniable encryption: “Blowfish Updated Re-entrant Project (BURP)”:http://www.geodyssey.com/.
Exerpt from “burp.txt”:http://www.geodyssey.com/cryptography/burp.txt
Unlike many similar programs, BURP writes to the output file only the ciphertext (i.e., it writes no “file headers”, password verification data, system, program or content identification strings, etc.). Consequently, such file can not be “provably” identified as ciphertext, as long as the key . . . → Read More: Plausibly Deniable File Encryption
I’ve got a hellacious project due and finals all next week, but this was just too much fun to pass up. In any case, compiler optimization increases compile time, and anything that gives me more time to sword fight on $1000 office chairs is worth a little R&D.
I’m working on writing this cut-down MIPS processor simulator for my Computer Organization class at UCF. I googled “word alignments” to help me better understand the most efficient calculations for converting the Byte Aligned Program Counter address to the Word Aligned Memory array when I ran across an interesting article showing that the mere *order* of variable declarations in a C program can affect the amount of memory used by that program.
The article explained the situation very well, and it makes sense why this issue would happen, but I was surprised that the compiler wouldn’t try to optimize situations like this by re-ordering a set of concurrent variable declarations of alternating data types.
In any case, I continued to hack away at my project when I began to think about whether or not gcc translates multiplication and division operations where one of the operands is a power of 2 into simple . . . → Read More: gcc Optimizations for Arithmetic Operations using Bit Shifts
A couple of months ago I setup a cron job to automatically create timestamped snapshots of my zfs filesystem. Little did I know, there was a syntax error preventing my job from actually executing. Here’s the correct (yet not-so-intuitive) cron job to get a nightly, timestamped snapshot of the ZFS filesystem @tank@:
So, I got into a discussion with a friend of mine in my Computer Security class at UCF about this script. I’m posting this for historical and educational purposes only. As always, I never condone the implementation of any of my content for malicious intent. Moreover, this script has flaws that * would make it useless in such a scenario. Don’t do it!
Here’s a script I hacked up last semester when I was playing with MITM attacks and packet eavesdropping with ettercap:. This scripts will automatically:
fake its MAC Address get a new IP Address collect a list of hosts on the same subnet as itself iterate through and ARP poison: each of these hosts one at a time for 5 minutes each save all data collected in host-specific files in a timestamped directory repeat until the hard drive is full . . . → Read More: Iterative MITM Packet Sniffer
I really should be studying for my stat exam tomorrow, but I was logging into my.ucf to download my lecture notes, and while Blackboard Learning System (the really shitty replacement for WebCT) was stuck in an infinite loading loop (most probably caused by incompetent javascript) I decided to finally get Google Chromium (which apparently has an excellent javascript engine) working on my Sabayon Linux desktop.
Quite often, and for whatever reason, I go to play a sound in linux and I get a “device or resource busy” error. Restarting alsasound doesn’t work. Here’s what does:
I recently setup a cheap terrabyte server with an old Dell 2450, 3 1TB Hitachi drives, and this cheap MnssCool XWT-RC040 4-port Sata ‘high speed’ PCI Controller Card.
The best thing about this card was that it was cheap. I got it for $30 off of newegg. The worst part was that it pretty much comes broken. You have to flash the bios to make it work well.