text:
Articles and Blog
Brief Exemplar of Social Engineering
to Google (an Ongoing Series)
Data Forecast for the Week
Marshmallow's Terrible, Horrible, No Good, Very Bad MP3 Player
S/MIME Setup in Thunderbird
CompTIA Security+ Certification Study Notes
ideas come from (and where they go)
BOINC: A Screen Saver Module
Observations and Thoughts
Fun in
the Sun: A Solar Powered Laptop
LAMP, the Linux and Everything
Horribly Helpless Twitter Peons
Conversion - Episode III: A New Nope
WordPress Conversion - Continued
Conversion - Prologue
The Sony Hack, Strategic Questions and Options
Human Factor in Tech Models
HOWTO: Linux, Chromium and Flash Player
Kill a Mockingbird, Once and Only Once
Kill Switches and Other Mobile Realities
HOWTO: Automate temperature monitoring in CentOS Linux (a/k/a Build your own Stuxnet Day)
Screensavers and Webcams, oh my!
HOWTO: Run BOINC / SETI@Home over a Samba Server
Thinking about Computer Privacy Models
Philosophy of Technology (Kickstarter project)
Motion Injuries and the Computer Mouse
HOWTO: Set up a Static IP on Multiple Platforms
Check if your Windows XP computer can be upgraded to
Windows 7 or Windows 8
Tweeting This Text and That Link (tweet2html.py)
Level Heads Will Roll - The Obama IRS Scandal
Kids and Personal Responsi-woo-hoo (on Reverse Social Darwinism)
Learning New Subjects on the Cheap
End of Life (of Windows XP)
Women's Magazines: In a Checkout Line Near You (for International Women's Day)
HOWTO: Blackberry as Bluetooth Modem in Linux
on Advanced Persistent Threats
Examining Technological Vulnerability
HOWTO: Install WinFF with full features in CentOS Linux
The Age
of the Technology License?
Systems: Where We are Today
Business Really Is Watching You
Quoth the Maven, Nevermore
July 4, 2017
The AT&T Go Phone ZTE Maven 2 (model Z831) is not a high end phone. Let's be clear on that. People who want lots of space for apps and downloads from Google Play are going to be disappointed. But, my first smart phone was a Blackberry. Every model I try is necessarily going to be compared to that standard. In fairness to the Maven 2 it is a reasonable basic communication device, if data is your goal and multimedia is an afterthought.
But the Maven 2 has some serious safety concerns. I am in the habit of sliding the phone into my side pocket and, when appropriate, turning on airplane mode. This last is as a result of a couple of years of advanced tech support experience with one of the major mobile carriers. Simply put, if you are in a place where signal is limited, leaving the phone live will not help you get signal. It will deplete the battery more rapidly as the phone struggles for signal, loses it again, etc.
So, a ZTE Maven 2 in airplane mode in an area with limited signal, slid into my pants pocket. That should be fine for the environment. But the ZTE Maven 2 has serious design flaws. The biggest is the fact that selfie mode is on the front side of the screen lock. So, if the screen is locked, selfie mode is still accessible as is 911 calling. As a tech geek I believe in device security like Baptists believe in the Bible. So my device, airplane mode or not, is always locked. No exceptions.
But ZTE has decided that certain functions should be accessible in front of the screen lock. These include 911 calls and, strangely, selfie mode. Emergency calling is perhaps understandable, but selfie mode is incomprehensible. And it causes plenty of problems.
The first problem was when the ZTE Maven 2, from airplane mode, silently and without my knowledge, called 911. In the screen capture we can see a missed incoming call to the Maven 2 from the local number for emergency medical response in response to the Maven 2's emergency call. Bogus calls to 911 are not only borderline illegal, but it's also morally questionable since it ties up responder resources when responding to what may actually be a real emergency. The outgoing call in the call log was my call, which I made when I discovered the bogus outgoing call, as a courtesy response to emergency services, advising them that there was no emergency.
The Maven 2 called 911 from airplane mode, screen locked and tucked into a pocket.
The second design flaw was, in another sense, entirely more serious. Again, in airplane mode, screen locked and tucked into a pocket, the ZTE Maven 2 activated a variety of functions. It turned on (apparently) selfie mode, settings, keyboard select and Bluetooth modes. I can only assess what was actually activated from the functions which I later had to deactivate or readjust. In any case the battery charge level went from approximately 90% to around 15% so something was activated and running most of the time the phone was locked, offline and in my pocket. And here's the problem with that...
When a phone is tucked into a pocket (so it's totally dark from the phone's perspective) and selfie mode activates, so does the camera light. My hands being full in a clean room environment at the time, I could not reach into my pocket and play with the phone when I felt first a tingling then a burning sensation on my leg. To do anything more than to shift the phone slightly was beyond the bounds of clean room protocol and corporate phone security policy. As a result, I ended up with this injury before I could get to a place where I could shut down the functions which had activated themselves.
This is a burn, an actual physical injury caused by the AT&T Go Phone model ZTE Maven 2.
This injury comes as a result of a poorly designed mobile phone; poorly designed in the sense that more than one function which should not be activating by itself does so. The results escalate from nuisance harassment of emergency services to actual user injury.
In my opinion, based on mobile industry and computer systems experience, this is inexcusable. This is a result of bad or indifferent design. Or maybe is goes beyond indifference and into negligence. That is to say, whomever approved the design specifications of the ZTE Maven 2 knew that the selfie function would be in front of the device security lock. This seems hardly inadvertent or an oversight.
Either way, the fact that a user is actually injured through ownership of a ZTE Maven 2 crosses a line that should not be crossed. I cannot recommend than anyone carry or use this device, as I sustained an actual injury from carrying one.
June 27, 2017
I titled this entry as I did because some minor inaccuracies in the ways big data has interacted with me recently caused me to start thinking about the improbability that big data will ever be able to meaningfully predict very much. This is not a completely new thought by any means. In the early days of computers, this was called GIGO, or garbage in, garbage out. This same idea is responsible for the ultimate failure to predict weather more than a few days forward, and even then with less than perfect accuracy. The novelty, if there can be said to be one, is in the observation that big data suffers these same limitations: small variables ultimately skew the whole model.
Nobody championing big data as the wave of the future necessarily wants to hear that the model is, and likely will remain severely limited. Perhaps big data will improve slightly in relevance as the sorting algorithms improve, but in the end, as the data increases beyond the scope of human interpretation, thereby requiring automation to assess value, the inherent flaws are baked in, proportional, and inevitable. A couple of examples should suffice.
I have an email address I use for various purely transactional purposes. As such it is not my name, it is more on the format generic.function-at-domain.com. Now when I get email addressed to 'Dear generic.function' it hardly establishes the warm and fuzzy personalized relationship the writer intended. In fact, just the opposite: it tells me that a computer spammed me and a million others. Consequently I am more likely to take the communication lightly, or, if the email content requires me to believe that the email was personalized when I know it was not, to discount the message entirely.
Another example comes courtesy of Google. As a computer geek, I have access to a variety of systems and configurations used for a variety of different tasks. I recently logged into a virtual Android device and received the following missive from Google as a result.
This communication is flawed on a couple of levels. It references a device which in itself does not exist, worse, it attempts to establish a personalized relationship on that basis, and worst of all, fails to recognize its own error. In fact this communication has the exact opposite of the intended effect.
As a final example I offer a conscious act on my part. As an incentive to stay healthy, a concern with which I have a relationship recently sent me a card good for discounts on over the counter pharmaceuticals. Nice, but I do not need it at all. I generally take good care of my health and fitness, and unlike too many Americans I do not have prescription medications or even require very many over the counter remedies for anything at all. So I gave the card to a friend who lives the more classic American model and is more likely to use the card.
Even as I handed over the card, I was aware that big data would suffer the consequences, as databases which get informed of such things would know, or think they know, that I need the blue pill, the pink pill, etc. I was also aware of a potential for such a database informing a potential future employer or insurance company of my 'needs'. In any case, what I did was to provide big data with a serving of garbage in, which will no doubt, to some degree, result in garbage out somewhere.
One can imagine a smart TV of the future, touching the pharmacy database, deciding that I need more OTC medication advertising. As a human, it will simply mean that I will be away from the TV, ignoring useless (to me) marketing, which is most certainly not what the advertiser intended. The same is true of self driving cars, smart phone/GPS interfaces, etc. To the degree that garbage goes in, garbage comes out. (Note in the above email, Google attempted to sell me on its map service having already advised me that they got the substantive content of the email completely wrong.)
All of this is not to disparage the attempt and vision of big data. It merely points out the inherent, insurmountable limitations, which must increase as the variables increase which attempt to delimit and understand human behavior.
The forecast for big data is cloudy with a chance of GIGO.
Marshmallow's Terrible, Horrible, No Good, Very Bad MP3 Player
January 14, 2017
Android Marshmallow has two ways to play MP3 music included by default: The quasi-online Google Music and the standard stand-alone MP3 player. One can sympathize with Google for preferring that people use the online version because, after all, Google's business is data, and the more online interaction, the better Google likes it. So it appears that the stand-alone player doesn't get very much love (or debugging).
In fact there are good and bad things to be said for the stand-alone MP3 player. First, I must be honest and address the bad things. To effectively use an offline MP3 app requires some technical knowledge, a willingness to take the time to apply it, and a bit of obsessive neatness does not hurt, either. If you do not have these abilities or tendencies, what is fairly straightforward (if time consuming) to a geek may be unappealing. (As an example of how unappealing such an approach may be, I note that my spell checker doesn't even recognize the word 'playlist'.)
Technical knowledge includes the ability to use a command line (to create m3u playlists), to use Libre Office Calc (or MS Office's Excel, or equivalent) to parse, sort and reorder playlist contents as required (more on why this is necessary below), the ability to zip/download/upload/extract playlists as required. As may be imagined, if the above skills are necessary, it may be necessary to actually understand and apply them, and parsing and replacing playlists can be a somewhat intensive task.
Obsessive neatness pays off if you will manage your own MP3 library and playlists. As an example, let's look at my playlist for Beethoven. Note that all of the titles are in order and have very similar names and order for the symphony number, etc. This took time on my part, but was worth it (in fact, it saved the day) when I ran afoul of the buggy MP3 player in Android Marshmallow.
On the positive side, offline playlists are completely flexible, totally under my control, not subjected to interpretation, sorting or categorizing by a piece of software which does not know what I want or how I think. I may include Beethoven's Fifth, Number 1 in my Beethoven playlist and also in my favorites short list without so much as a by-your-leave, sign-in or registration from or with any app.
The offline player also has another big positive aspect in two parts. A phone in airplane mode will not only play your MP3 playlists when signal is not available, but the battery usage is negligible. For those unaware...
Airplane mode means no radio signal, period. No cell signal, no Bluetooth, no wifi. The device is offline, so only local storage is available.
People often fail to appreciate this, but keeping a phone online (especially where signal is weak) appreciably drains the phone's battery, contrariwise, a phone in airplane mode can operate for an amazingly long time between charges. For example, I have personally played MP3s over more than 10 hours in airplane mode and had 87% of the charge left when I was finished and turned the radio back on. The upshot of which is, that while other people are tethered to a charger, I rock on (or Beethoven on as the case may be).
So, this long-winded introduction all to explain that I want my MP3s available in stand-alone fashion with my own playlists, in airplane mode (which means saved to memory card, obviously) and in the stand alone music player, not Google Music. So, acquiring an Android Marshmallow phone, I ignored Google Music entirely and made a beeline for the MP3 player. And started running afoul of the bugs (of which there are many).
The first bug I noticed was that a standard m3u playlist played backwards. Yep. No way around it, it played from the last track to the first. That's fine with random rock and roll, but symphonies, soundtracks, talking books from Librivox (shameless plug!), and the like cannot be played in any old random order (or completely backwards). The one, the only, way to play these items is in numerical order.
So, okay, having the obsessively neat quality, I had my MP3s named in such a fashion that I could use a text editor and Libre Office Calc to relatively painlessly reverse my playlists, back to front. [At the same time, Google!, I note that having to do this was a bit weird.] So I went in and reversed all of my playlists, back to front. Hint: To do the following the Data>Sort function(s) will be helpful...
(Also a brief note, in case you did not know... here's a quick way to generate a reverse playlist--yeah, in Linux.)
So all set, right? Wrong. Not even close. My hacking past the first bug showed up the second. To explain, obviously, I used a regular mp3 playlist, in correct order, only to discover that the first bug required playlists to be in reverse order. I reversed the playlists to accommodate the first bug and discovered the second bug: the default Android Marshmallow MP3 player retains ghosts of playlists past. So if my original playlist was called Beethoven - playlist.m3u and I called a reversed version the same thing or Beethoven-Playlist.m3u (notice the spacing here, designed to drive one playlist the to the top of a list over another) either way, the MP3 player presented ghosts of playlists which were added and later deleted. The normal Android tricks of deleting app cache and data were ineffective, and shy of rooting a phone I am not inclined to risk bricking at this point, my playlists were now populated with both existing and once extant playlists. Annoying, even very annoying, but okay, I can live with it until I have time to figure out another workaround (and again, no rooting of the phone, that would be cheating since I otherwise don't want to risk bricking the phone).
So I decided that since I will only load a playlist rarely and listen to it for a far longer proportion of the time, I could live with the ghosts of playlists past. So I did. Until...the third bug. When I had some time I looked (very briefly) at Google Music as an alternative. As expected, it was, compared to what I have, relatively sloppy and less than useful, to say it kindly. So almost as quickly as a I loaded it, I closed it and forgot about it. Too late. The default music player at that point decided that it could no longer find my MP3s without a specific path designation. (I see no reason whatsoever why the attempt to use the one should effect the other...I am not attempting to explain the phenomenon, I am attempting to resolve it.)
Note that originally I neither had nor required a path in the m3u playlist. I just had the obsessively precise file names. The Android Marshmallow MP3 player was satisfied at being pointed to the correct folder, and even if it showed ghosts of playlists past, it also showed current playlists. No longer.
So I thought about this, and decided that if I adapted the playlists yet a third time to include a path I would still have three (two ghosts and one current) playlists, and decided that enough was enough. I decided to try something entirely different. Here's how I worked through fixing Android Marshmallow's terrible, horrible, no good, very bad MP3 player finally (and I hope) for good...
I used a variety to tools to extract the music/MP3 player from a Lollipop tablet, port it to my Marshmallow phone and install it. It has the same file name and internal linkages, so the upshot is, it replaces the Marshmallow kludge (I want a royalty on that if anyone introduces a snack called Marshmallow Kludge, just saying). I also archived and sent to my Linux box all of my playlists from the Marshmallow phone (no, it's not optional, back your stuff up before you start hacking).
So, my playlists were on my Linux box, and I was free to work. Using a combination of the command line, text editor and Libre Office Calc (as seen above) I reversed all of the existing playlists (yet again) and appended a full path to the MP3 files. I deleted all of the m3u playlists from the phone manually, and I installed the music player I extracted from Lollipop. (Note: Installing an extracted Android installer (called an .apk) requires you to permit your Android device to install from second party [Non-Google Play] sources).
Then I said "Hail Mary Fulla Grace" and kicked the whole mess back onto the phone.
Here's my bad boy. Or to quote Ford Prefect, "Dah-dah-dah-dum!"
Now. Read this next bit most carefully, please. It has not escaped my notice that everything mentioned above with the exception of the Android Lollipop music player installer is freely and readily available. Since Android is itself open source, I will provide the Lollipop installer, on terms....
I have virus scanned the living Hell out of this .apk with more than one product. I believe it to be clean. Nonetheless, if you want this Lollipop installer, you download at your own risk. For those inclined to verify, the md5sum of the file is 5208d8cd9645ae5ebdc99cf74b4beeaf.
Installing a third party installer is always a danger to a non geek (there's a reason we're called geeks). If you install this and brick your device, be it on your own head. I'm telling you explicitly NOT to do this unless you are personally willing to accept the consequences.
Installing this version brings up a working music player replacement for me. That includes all of the obsessive neatness, parsing of playlists, etc., described above. If you expect instant gratification, you do not want to even vaguely consider changing your MP3 player version.
Having said the above, for the geeks, here is the Android Lollipop Music Player apk. On my Marshmallow phone it replaces the buggy Marshmallow player and seems to work fine. Enjoy.
The (other) CSI Effect
January 4, 2016
Police, lawyers and judges have been said to hold their heads and moan when faced with the CSI Effect as believed by the public at large. The CSI Effect is the belief among a portion of the public that if a case is valid, it can be proven beyond a shadow of a doubt; if it cannot be proven to such a degree, replete with indisputable scientific testimony, the case is unproven. Preponderance is an awfully long word, especially since CSI makes their cases unquestionably every week, there for millions of viewers to see.
In the early days of television this was called the Perry Mason Effect, named again after a television show in which attorney Mason's brilliant cross examination in court inevitably led to a confession on the stand by the real criminal. Like the CSI Effect, the Perry Mason Effect said that if you could not get a confession maybe you didn't really have a strong case. After all, Perry Mason could do it.
The CSI Effect got me thinking about computers, and what users expect from them. From watching intrepid crime fighters pull up a computer and dash from email to web site to database and back again in a matter of seconds, people have come to expect blazing fast connectivity from their ISP, no lag from third party advertising and content servers, and no latency (swapping, drive seeking) from the computer itself. It never occurs to people that what they are seeing on television is a movie in itself, and that the hero typing away is having no effect at all on what is being shown on the computer monitor. Someone crafted this mini movie using a fully loaded (and very, very expensive) Macintosh, which cost far in excess of the computer most people use from day to day (for some of the more technical looking data crunching sequences, a handful of Linux tools are sometimes used, but again, not by the hero at the keyboard).
As a result of this other CSI Effect, people have come to believe that when their $500 PC on a residential internet connection does not perform as fast as a CSI special effects sequence, something is definitely wrong (and that a tech needs to do something about it, pronto).
Well, we can discuss it, but it's never going to be as fast as the computers on CSI, and it's going to cost you.
HOWTO: S/MIME Setup in Thunderbird
January 1, 2016
Happy New Year! I am starting the year newly CompTIA Security+ certified, so I thought I would try something new which is related to the topic of cybersecurity. First, I have to confess, I am a PGP guy. I have been playing with PGP since Pegasus Mail in Windows 98 and in reality, the need for encrypted email being virtually non-existent for me, I never really bothered with S/MIME. However, S/MIME has, shall we say, captured the public imagination to a degree PGP has not, and so I decided that I would at least get S/MIME up and running. Since I am presently using Thunderbird for email, I decided to set up S/MIME for that client.
To begin, it will perhaps be most helpful if you have a generic idea of the process before we get into the actual details. That way when you see the individual steps of the process you will have a better point of reference. The basic process (just a summary, we'll move on to details in a moment) is this:
Firefox (the browser) gets certificates from Comodo (a Certificate Authority or CA for short) but installs them into Firefox. Seamonkey (Firefox is a stripped down version of Seamonkey...see my article below for more detail on the beautiful thing which is Seamonkey) works the same way. This is not practical for our purposes. We need the certificate to be used in Mozilla Thunderbird, not in Firefox (or Seamonkey). At the same time, Thunderbird cannot retrieve the certificates we need from Comodo by itself. So in summary, what we are doing is:
At this point, you might be scratching your head about the fourth step. Why must the browser install the certificates to itself? Would it not be easier and simpler to simply download the certificates to the user's desktop and give the user instructions on the process for installing the certificates to the email program?
The answer is unfortunately, 'no'. By installing your certificates into an email program (by the way, Thunderbird is not the only email client out there which can accept digital certificates), you are using certificates for a new and specific purpose. However, your browser has been using certificates ever since the day you installed it. Every time that you visit a secure website, everything from eBay to Paypal and your online bank, in fact every time you see a lock icon on the address bar, you are visiting a site which has a certificate of some sort. The next time that you visit such a site, roll your mouse over the globe or lock icon and you will see a reference to Comodo, Verisign, Thawte, or other CAs. This indicates that both the site you are visiting and your browser have a certificate that they can agree is secure and can use to protect your online transaction.
The point is that your browser already uses certificates, and not only does it use them, it does so without any user interaction. Imagine if the opposite were true. Instead of signing into your bank or shopping site, what if you had to manually approve or install a certificate to do so every time? Instead, your browser does what it is programmed to do, that is, it imports a certificate when you direct it to one. This not only simplifies dealing with certificates in the long run, but also assures that your certificate is delivered to you in a secure manner. Another way to put it is that it your retrieval of an email certificate is the unusual or out of scope transaction in the operation we are looking at; your browser is doing what comes naturally for the handling of certificates.
I should also add a disclaimer at this point that Comodo is not the only CA out there, and I am not necessarily advocating them as a CA above any of the others. At this point, Comodo is the only CA which offers free S/MIME certificates which last a year. There are other CAs out there, and depending on your needs for S/MIME as a regular necessity you may decide that it is worth it to you to pay for a certificate from another vendor. In fact, it is also possible to generate your own keys as your own certificate authority, however such a process is advanced, will cause difficulty with other users being able to use your keys, and is well beyond the scope of this article. For our purposes, if we can find a trusted certificate authority which will generate a certificate which both ourselves and our correspondents can use quickly and easily, and does not charge us for the privilege, let's use that one.
First start with Comodo. Comodo which will generate a certificate for your email address which lasts one year. Note that you want to permanently keep these certificates wherever you keep data files safe, even after they expire. This is important because if you ever have to reinstall Thunderbird or move to a new computer you will not be able to read saved email encrypted with the old certificates if they are not incorporated in the new installation.
I mention this especially in light of a Mozilla wiki item which suggests deleting an expired certificate before replacing it with a current one (remember, your S/MIME certificate expires in one year). As a general rule you do not want to ever delete a certificate in the sense that it is lost and gone forever. Even if you should delete a certificate out of Thunderbird, or have to do so in order to resolve a program error message or limitation, make very sure that you back it up (export it from Thunderbird) first.
This is an important principle. Suppose that you password protect a file and burn it on to a CD. Even if you do not touch that CD for years to come, you will always have to use the password that you used for that file in order to access it. So it is with certificates. If one expires, you will no longer be able to use it to encrypt or to digitally sign new emails, but you will want it to read email which were sent before it expired. Having a new certificate will not change already existing emails in any way. Network administrators customarily will disable a user account of a past employee rather than deleting it because they do not want to lose the ability to access files created with certificates under that account.
Having some grounding in the basics, we will now look at the specific steps which accomplish the summarized steps above. The first thing that we will want to do is to apply to Comodo for a S/MIME certificate.
First complete Comodo's application for a S/MIME certificate. Email response is almost instantaneous and includes a link to retrieve your Comodo S/MIME certificate. So far, so good, except that Thunderbird will open the email link in the default browser, and Mozilla Firefox (as well as Seamonkey and Opera) immediately imports the certificate into the browser and does not give you a chance to save it to disk. Thunderbird, being a separate application, does not have the certificate. And it's worse still. Your certificate is validated by Comodo, but the Comodo email validation certificate (that is to say the certificate which validates the certificate) is also trapped in the browser if it exists at all.
This is a situation to which many posts and blogs are dedicated. Even if you manage to export your email linked certificate from the browser, Thunderbird may pop an error message that the certificate is not trusted (and as a result will not be imported or usable) when you attempt to import it because it cannot validate the certificate with Comodo. The solution is to export (from your browser) and import (into Thunderbird) not one, but two certificates. Like this...
The first certificate is your certificate you just applied for with Comodo. It is linked to your email address, and it is the certificate that most instructions sets online are referencing when they describe troubleshooting this process. Export this certificate from you browser and save it to your desktop in two parts. The first part is a file which ends in .p12. This is your private key and should be guarded as securely as you guard any other passwords. In fact you will be asked to password protect this file when you save it. Choose a strong password, this certificate says that all email that it is used with comes from you and only from you. You do not want anyone to be able to pose as you in such an irrefutable manner. Protect your certificates like you would protect a credit card number.
The second part is a file which Firefox will by default call 'X509 certificate (PEM)' You can save this with a .crt extension to your desktop. This is your public certificate linked to your email address.
The other certificate you will be exporting is the (wider, broader) Comodo certificate which validates your (narrow, specific) email address certificate. But how do you know which Comodo certificate Thunderbird will need? This part is a bit tricky, because the broader Comodo certificate which validates your email address certificate might not be in your browser! It doesn't exist to export, so you can't have it to import into Thunderbird...yet. Here's how we get that elusive Comodo certificate.
In the screen capture we see the specific URL of the Comodo certificate (the URL starts with http:// and ends with .crt). That's the Comodo certificate which Thunderbird needs to validate your personal email certificate. Since you have a full URL, copy it and paste it into a new tab in your browser. Your browser will take you to Comodo, grab the certificate and install it into your browser (as with your own certificate before, it would perhaps make life easier if you could just save the file, but your browser won't let you without modifications you won't want to make). Now that you have installed the Comodo certificate in the browser, and also have seen what it is called, you can go through a similar process as with exporting your own certificate above. This time there is only one file to save, and for consistency you probably want to save it with a .crt extension.
Now in Thunderbird, import the Comodo certificate first . Under Preferences > Advanced > Certificates > View Certificates your will have the option to Import (a certificate). Import the Comodo certificate first and you will see a box which asks what the certificate should be able to validate. Since this certificate is for email digital signatures and encryption only, in keeping with the security principle of least privilege, only select the box for validating email.
Once this certificate is imported, you will be able to import the certificate for your email address with no errors and encryption and digital signing will be available. As you can see, the email is both signed and encrypted with S/MIME.
One of the correspondents in the test email protected with S/MIME was a Gmail account. Since Gmail has a webmail interface, we can check that the email was encrypted by looking at the email through the web based client. As we can see, there is no readable text in the mail body because Gmail cannot decrypt the message...only the certificate in Thunderbird can do that.
This does bring a warning to mind: if you are used to forwarding your unencrypted email every which-way, to a tablet or a phone in addition to your computer-based client, encrypted email won't be readable on email programs which do not have your certificate installed, and you may well see error messages that a digital signature is invalid or untrusted, again because the certificate which validates the digital signature is not available on that device.
Of course, encryption and digital signature verification only works if both sender and recipient can use it. If someone you know is using S/MIME already, digitally sign a message to them (when writing a new email choose Options > Digitally Sign This Message) and they will receive your certificate in the normal course of things. You can also post your certificate on a website simply by opening the .crt certificate for your email address in Notepad and copy/pasting it wherever you need it. [It should be impossible for you to do, but as a warning and reminder, never distribute the file ending in .p12. This is your private key.]
That's it, you're done. You should now be able to digitally sign and encrypt email with S/MIME in Thunderbird.
December 31, 2015
Yesterday I passed the CompTIA Security+ Certification examination, and today my certification was validated. I thought it might be helpful to mention some of the study notes and tips from preparing for the experience. I passed the examination on the first attempt, but from reading various comments online, I gather that not a few test takers are not so fortunate. Therefore, some specific preparation may be helpful if you would seek such a certification.
I chose the so-called 'self study' track, meaning in large part that I got a book and I read it. The book at I bought was CompTIA Security+: Get Certified Get Ahead: SY0-401 Study Guide by Darril Gibson. I bought the Amazon Kindle edition, at this writing priced at $9.99. In the book itself Gibson offers a discount code for a CompTIA examination voucher, which worked for me when I used it and discounted the examination price by $30. So, first off, purchasing this book at $9.99 literally saved me $20.01, plus, I had the book for study. About that book...
I have to say that there were parts of it I did not like. These were few and far between, but I did disagree on a few finer points on his interpretations of security principles. Therefore, I had a good deal of cybersecurity knowledge going into the study phase. You should, too. If you think that Gibson's book alone will teach you everything you need to know if you have no prior information on the subject of cybersecurity, it will not. If you have enough knowledge in the field to disagree on some of the finer points philosophically, then you are at a good starting point.
Gibson's book is hobbitsy and tricksy, it plays gamses with wordses in its practice questionses, until more than once I daydreamed about reaching through the tablet and shaking him. That's the bad news. The good news is that if you can get a passing score (let's call it over 90%) on Gibson's full length practice tests, you are probably ready for the real examination.
Gibson suggests making flash cards for mobile study, and in my own fashion I did do this. Specifically, I noted different acronyms, obscure ports, and systems relationships, and reviewed them on the fly over the month between buying the book and the examination. Rather than review all subjects all of the time, I picked a card/subject per day and thought about everything I knew about it in depth.
Gibson offers two full length practice examinations in the book and suggests doing one before reading and one after. I did not do this. Rather, I read the entire book and completed the questions at the end of each chapter, and kept my answer sheets. At the end, I could tell which chapter I needed to review, did so, then took one full length practice examination two days before the real one. I scored over 90% and determined that the couple of questions I missed were due to missing the tricksy wording. I took the last practice test one day before the real one and did better still. I was as ready as I could be.
Work out beforehand if you exercise, get enough sleep, reserve an adequate time window to get to the test site early. A friend asked if I really needed six hours (including travel to and from the test site) for the examination. My response was that I wanted to be like Caine in Kung Fu: so calm that I could walk the rice paper and leave no trace. You should be as well. That means no traffic jams or trouble finding the right building or parking, etc.
Best of luck with your exams.
Bedtime story for a puppy
September 27, 2015
(As told to my friend's new puppy)
Once upon a time...
There was a restaurant owner named Mister Vinh. Mister Vinh ran a Vietnamese restaurant, and his delighted customers would come from miles around to exclaim and marvel at the meat he served. "Mister Vinh, I don't know how you do it! I have never had meat like that before!" they would exclaim. Mister Vinh would nod and beam.
Now some say that Mister Vinh had his own idea of 'puppy chow'. Others say that's nonsense. Mister Vinh's is a puppy paradise, they say. Why, when puppies go to dinner with Mister Vinh, they like it there so much that they don't even come home. Ever. Again.
So be a good puppy and stop pooping in the hallway, because if Mister Vinh hears that you're a BAD puppy, he just may send a dinner invitation for YOU!
The End
Where ideas come from (and where they go)
September 26, 2015
Very often in life we act and think as we do because we are following conditioned behaviors. Uninterrupted, we will continue to follow this conditioning from cradle to grave without ever stopping to consider whether there is another, better way. Often it takes a catastrophe to jolt us out of our way of thinking and make us consider such ideas as free will, and responsibility to ourselves, and to the planet, and to future generations. But you can change your life without having disaster strike, and maybe in the bargain avoid disaster in the first place.
Mickey Spillane wrote his first Mike Hammer novel in 1947. Times, values and beliefs were different. The 1940's Hammer drank whiskey from the bottle, smoked unfiltered Luckies and food was whatever he could toss into a frying pan. About one in four Americans of that and later generations would still die from heart disease or other diet or lifestyle related problems, but the data hadn't been convincingly collated at that time, and people in general had not yet made the necessary mental connections.
Fast forward to 1989, and Mike Hammer was a reformed smoker and lite beer drinker who minded his diet and worked out in the health club. This change probably reflected Spillane's own health awakening, but it also illustrates the importance of a little perception and perspective.
What is perceived as normal is normal today. It may not have been normal yesterday and will not necessarily be normal tomorrow. A hundred years ago the pseudoscience of phrenology said that you could determine personality and abilities by the shape of someone's head. A hundred years from now people of today may be perceived as being frighteningly primitive to accept either twenty-five percent mortality from heart disease or a lifestyle in which bad habits are offset and cobbled together by every type of prescription imaginable.
It is possible for one person to change their own behavior within their own lifetime. To some degree, social norms will help, for example the negative attention tobacco use receives today as opposed to forty years ago. But you cannot and should not rely on changing social norms to define your reality for you.
Entirely too often social norms are dictated by corporate or political entities which may not have your best interest at heart. Who would have thought that the expanded awareness that many of the wholly avoidable medical ills which befall Americans would be answered by a slew of pills as a lifestyle augmentation? Would it not have been expected that such an awareness would have led to changing habits instead? Unfortunately, that did not happen, but there's a lesson to be learned nonetheless, and that lesson is that only you must be the final arbiter of which social norms you believe and follow.
The philosopher David Hume argued that there may be no such thing as free will. It's a tricky proposition because, if Hume is to be believed, everything that we know and believe is a combination or extension of what we already are or know or have experienced. Even the pursuit of knowledge itself is not exempt from this reasoning. So that, if one is conditioned to believe what they are passively taught, to go along to get along, that social and political systems will always work for the greater good, then it follows that these people will be unlikely to question the status quo or to accept responsibility for their life as they know it (unless their conditioning tells them that they are responsible, of course, in which case they go straight down Alice's rabbit hole trying to make sense of the logical inconsistency).
If current social norms trend toward conformity, this leads to a flawed model in which people go to one or another extreme, of either following social norms and denying that own actions and lifestyle in any way are responsible for any resulting discomfort, or accepting that something is wrong somewhere, but desperately seeking something, anything, to blame as long as it absolves them from any need to personally take dramatic action to improve themselves. Of course, neither extreme being a particularly good choice, many people spend an inordinate amount of time trying to make sense of what society tells them steadfastly must be true, even while common sense whispers that there's something wrong with the reasoning. The worst thing of all about where this reasoning leads is that you cannot reasonably expect to change this behavior for all or even most people who accept such conditioning.
The good news is that you can change your behavior for yourself and at least hope to impact what constitutes knowledge for those you care about. The very fact that you are reading this is information. Even if David Hume was correct and we are and can only be a product of existing knowledge and experience, now that you are aware of it, you have a responsibility to yourself to expose yourself to as much knowledge as you can, in order to become the most well rounded person that you are capable of being.
Of course, it really goes without saying that you are also volunteering to be an outsider to the degree that you think for yourself, and when that thinking leads to choices outside of the mainstream. That in itself is not a bad way to live, but it is worth mentioning if for no other reason than when you first experience any such social ostracization, you really have two choices to address it: to reassess your actions and decide that they are correct after all, or to scurry back to a safe level of social acceptability and like Shel Silverstein's Giving Tree, be happy (but not really).
It was a pleasure to tweet
August 30, 2015
It was a pleasure to tweet. And to text and to Facebook, too.
Read a book and you spend hours of your life, and it may not even end the way you would have it end. Hours you cannot get back and no guarantee of the result. But tweet or text! Why if it doesn't work out, you've spent 140 characters of time! Not satisfied? Send another. And again, and again. Sooner or later, your fingers move of their own accord. Autonomic tweets, automatic texts.
Nobody will read them, hell, nobody can possibly read them all. It doesn't matter, in fact, it's better that way. Cognitive dissonance. Believe that your tweets matter, know that they won't be read. Good feelings without responsibility. Why, responsibility itself is fourteen letters. It uses up a tenth of your tweet, just like that! Six syllables, ridiculous. Think of all you can fit into six syllables and fourteen letters if you don't waste 'em! Now! Wow! Click! Pic! Blink! Link!
Cursive writing isn't taught in school any more. Cursive comes from the same root as discursive, discursive means a flow of ideas, cursive is a flow of writing. Cursive only matters when there is a flow of words to communicate; who knows where that may lead! Learn the physical skill and you may use it. Develop ideas. Independently, how boring. To say nothing of unsocial. And how will you ever tweet them? You won't! You would have to write a book, and there you are tying up hours, stealing hours of someone's life, and you cannot even guarantee satisfaction.
Censorship isn't real. You learned that in school. "Censorship', 'government', 'bad'. There was a test. Say the words. Pass the test. You're educated. If it is not done by a government, it cannot be censorship. Does not 'censorship' mean 'government' plus 'bad'? When the news is censored by the news sellers, why it can be anything at all! Restraint. Protection. Good taste! As long as it fits into 140 characters. Blast! Passed! Past!
Here's a secret. Back when people read and thought, they didn't necessarily learn. Uncle Tom's Cabin: People do what they will and organized religion, depending on those same people for funding justifies from the pulpit what people wanted to do anyway. A hundred and fifty years ago, and still today my God can beat up your God. The only thing worse than no knowledge is nobody learning. The only thing worse than nobody learning is when you learn alone and shout into the wind and nobody hears you. Don't learn. It's painful and frustrating. Tweet! It's neat! It can't be beat!
People with computers want to sell you things. Other people with computers want to keep you safe. Doesn't work if we're not all the same. Make everyone the same. Reduce ideas to cliches, communication to a handful of letters. If nobody knows where ideas lead, they are blank slates waiting to be told. Don't tell them too much. They're not equipped and not interested. Easy! Breezy! Pleased!
Mark Twain and Google
July 28, 2015
Re-reading Huckleberry Finn, and never having actually precisely clarified the matter before, I decided to look up Jackson's Island to see exactly where it is on a map.
In the old days this would have to wait until I had a map or atlas available of sufficient scale as to show detail such as a small island; these days one can look at Google Maps and get a map on the same device as the book (hence my curiosity to precisely locate the landmark)...
...A map covered in a red banner with Google complaining about my tablet configuration and inviting me to start jumping through hoops (downloads, privacy policies, and the like) to see a map until it was quicker and less painful simply to give up.
Mark Twain would be perhaps unsurprised to note that human bureaucracy and confusion is keeping pace with technological progress quite nicely. Thank you, Google, for that confirmation of human nature.
Bitcoin: Observations and Thoughts
June 6, 2015
I recently had the opportunity to observe and consider some of the elements involved in the acquisition and use of Bitcoin (BTC). Other than the relatively minor positive element that using Bitcoin makes one appear to be a technical wizard with a depth of obscure knowledge, there did not appear to be much if any serious benefit to Bitcoin. From the perspective of people experienced with using, moving, and accounting for money in the real world, it's nothing new, and in some ways a lot worse. Quite possibly, that's even the point: If you are working with someone with their head in the technological cloud, they are probably less experienced with the more subtle points of money and accounting, making them comparatively more attractive targets. What follows are some of the actual elements observed.
Upwards of 40% in fees. Euphemize it, slant it, blame one party or another for fees, the reality is this: Converting US dollars to BTC and then spending them came with an average of more than 40% in fees. The euphemism chosen is irrelevant. If a credit card charged 42% to use it for purchases in another currency, how long would you continue to use it? What is paid to use a thing, no matter how the cost is categorized, is the rational basis for measurement.
Some paranoia required. It was necessary to play a drawn out cloak and dagger game, including use of once-off ciphers, and sending selfies holding identification documents to complete a BTC purchase. For a currency which is touted to be fringe and counter culture, it was a Byzantine identification process, ironically requiring identification issued by the very governments Bitcoin users by and large claim to distrust. Also, some less savory people hailing from a variety of (principally) eastern European countries fairly regularly recruit in, or come to the US and western Europe to engage in, a variety of credit card and banking fraud, siphon off a little or a lot of money, and scurry back home. Sending identification copies to the wrong person may well give whomever purchases it somewhere down the line what John Le Carre called a legend, a convenient identification to adopt on these forays.
Even once you have Bitcoin it's not anonymous. Virtually everyone who moves Bitcoin takes a slice of every transaction as a fee. Most often this process is automated, and must be in order to be practically applied. Consequently, often the Bitcoin address receiving the fee is well known (and would be, being hard coded into whatever software wallet's algorithm slices the fee off of each transaction). If you know a) the customary address or addresses receiving transfer fees, b) the amount of the fee, c) the customary fee percentage, and d) the time stamp of the fee, then it becomes a straightforward task to e) calculate the original transaction amount, f) inspect the block chain for that transaction, and g) track the transaction from start to finish. Not only can accountants do this easily, they actually like doing that sort of thing, it's their meat and drink.
[Lest there should be any lingering question about anonymity and Bitcoin, MultiBit, a popular Bitcoin wallet, appears to say a big "hello!" to a server shared with the New Zealand government when MultiBit is installed. New Zealand, being one of the so-called Five Eyes, even installing a Bitcoin client would seem to be grounds for surveillance, and Bitcoin users might consider themselves officially on a list. This is a screen capture from a Wireshark session run while installing MultiBit.]
Not everyone cares about the anonymity of Bitcoin. To some it just seems a cool, techie thing to do. It's a fair descriptor, but at a 42% markup, Bitcoin had better be extraordinarily cool and techie. Also, with the identification process, it's fundamentally no different than using Paypal (and a lot more drawn out, dangerous, and expensive).
Bitcoin faucets today are largely confidence games. The Bitcoin faucet was originally conceived to get people to consider Bitcoin, and painlessly try it out without investing their own money. That concept has evolved into myriad sites which claim to pay fractions of a bitcoin for playing games, completing surveys, watching promotional videos, etc. There are several issues with the modern Bitcoin faucet which, cumulatively, may permit them to be safely classified largely as scams.
A bitcoin may be divided into thousands or millions of units. A faucet will pay a couple millionths of a bitcoin for completing a survey, watching a video or participating in whatever service it purveys. However, when you convert millionths of a bitcoin into, for example, US dollars, that comes to fractions of a penny for each video watched, survey completed, etc. That's a fair deal if you go into it with your eyes open. However, many faucets also have a minimum withdrawal limit on balances, meaning that for practical purposes, a user may have to spend an inconvenient number of weeks or months watching videos and completing surveys to acquire the minimum balance for withdrawal, which at that time may convert to a dollar or so.
If that isn't enough to discourage most users from sticking around long enough to actually collect, most faucets viewed pay bitcoin into their own proprietary wallets. Bitcoin is designed to not require this, which in turn indicates that this is intentionally added convolution which avoids what should be a fairly straightforward payment process. In short, bitcoin faucets appear to require considerable user interaction, while at the same time making an extraordinary effort to avoid paying amounts calculable in pennies. [In fairness, there was one site viewed which actually did, quickly and without qualm, send the .000457 BTC ($0.11 US) promised for the hour of surveys completed, videos watched, etc.]
In summary, at best Bitcoin is average or slightly below average in performance. Fees can be reasonably classified as excessive in many cases, meaning that there are significantly less expensive payment methods. Bitcoin does offer a cachet of technical savvy, perhaps offset by a perception of naivete about the real world. Anonymity is a myth to anyone who understands accounting. Scams and, to some degree justifiable, paranoia attach to it. Bitcoin would not seem to be a serious competitive currency.
Coming Soon: Goatcam!
May 12, 2015
I never imagined that I'd see myself writing this, but yes, Goatcam! is coming soon. I have a friend who started with a goat and added a variety of other farm-type animals to the menagerie, and I thought it would be an interesting technological challenge to set up Goatcam! to monitor it all live. The technical constraints made it interesting for me: it had to be free or nearly so, since Goatcam! is a fun project and not a serious commercial endeavor. That meant that it had to use existing or repurposed equipment and free or existing web services exclusively.
Goatcam! uses an old (now repurposed) Android device running over wifi. The Android device can use an app called IP Webcam (or IP Webcam Pro), which has various useful qualities including a comprehensive configuration interface, persistence on device reboots, local network wifi presence, and the ability to generate a still picture. The picture is processed on the back end in Linux, then sent to a Picasa album which is embedded in Goatcam! as a slideshow. This meets the needs of functionality (low bandwidth for a residential internet connection uploading content to a free service) and price point (in this case, nothing). A surprisingly consistent tendency among the non-technical is the belief that this sort of thing is, as a rule, free (it is, as a rule, not free). Being based on free products and services, I cannot guarantee permanency, but it will/does work now.
The technical side is essentially completed and is going through some final testing and adjustments. There are a few logistical details to be resolved both on the technical side, and on the, well, goat side. After that Goatcam! will be on the web. Watch this space for a link when it goes live!
Update: Goatcam! has had a minor setback in the timetable to going live, and is especially in need of a donated older Android device. If you have an older Android device sitting around and are willing to donate it to the cause, please contact me with the Contact link below. The Android device needed does not have very high requirements at all, but it does need the following minimum requirements to be useful:
If you have such a device laying about, don't know what to do with it, and are willing to donate it to the cause, please let me know. Goatcam! will thank you!
Windows: Then and Now
April 17, 2015
Short post today. I was on Windows 7 earlier and it brought to mind a little joke from the Windows 95/98 days.
It seems there was a man flying a plane, he's almost out of fuel and has to land right away, but he can't find the airport. He sees a large office building, so he writes a note which reads "WHERE AM I?", sticks it against the window and flies low past the office building. He loops around and flies past again and the office workers have written "YOU ARE IN A PLANE AT LOW ALTITUDE FLYING PAST OUR BUILDING." Then the man knew he was at Microsoft and could find the airport from there.
The more things change...
Fun in the Sun: A Solar Powered Laptop
April 01, 2015
It's that time of year when the snow melts, Spring has sprung and people take themselves back outside after the long hibernation. In that spirit, here's an easy to build solar powered laptop charger designed to keep you computing when you're out and about.
LAMP, the Linux and Everything
March 26, 2015
LAMP (Linux, Apache, MySQL, PHP) operates as a bundle. There are exceptions to be sure, Linux can be replaced by Windows or Mac. But if you want what would be considered a 'clean' install for development, LAMP with a Linux is the way it's spelled. I recently set up a LAMP stack, and this post is a response to that experience.
In fact, this post is a little bit of a rantlet, a small rant. Several problems were wholly avoidable and lay squarely at the feet of various Linux distros. My problem was that I had faith for too long and kept trying to make work what can only be described as a kludge. When I gave up on that approach, I had LAMP up and running in no time.
- All attempts were done in virtual machines (VM). This is not a bad idea if you do not have requirements which prevent it, and in fact should cause no problems as a rule. The host OS in all cases was CentOS 6 64-bit. The VM environment was VirtualBox.
- First I tried Fedora 20 ("Captain Comic Book"). I nicknamed it that since it seems to have veered toward something which is glossy, light, locks users out of things the OS feels users should not be accessing, and is generally inconvenient to use and no longer a serious Linux distro. Add to this limitation a peculiarity of certain Linux purists: that if the packagers feel that the 'true open source purity' of a piece of software is somehow compromised by a logo or license or corporate entanglement, that software may not be included in their Linux distribution in its original form.
This was the case with MySQL in Captain Comic Book. MySQL is apparently insufficiently pure to be included in the distro, and has been replaced (poorly) by something called maria. This replacement is poor in that it uses (some but not all) different folder names and file locations for some files, installed into a distro which would prefer that poor dumb users not access the system level files at all (and manifests that preference by making it awfully difficult and roundabout to do so).
Add to that what is in fact probably a bug in MySQL and not a Fedora issue: There are, at last count roughly 42,000 Google hits for a certain MySQL install error in a variety of Linux MySQL installations. Captain Comic Book did not cause this error, but it is fair to say that between its new philosophy of inaccessibility and purist hissy fits, Fedora 20 definitely exacerbated the problem significantly. After probably a total of 24 hours (on and off over the course of a week) trying to work around these limits, I dumped the Fedora 20 VM entirely and moved on.
- Next I tried Ubuntu 12.04 LTS. No, it's not the 'latest' version. But that LTS label stands for long term support and Ubuntu was up to date. That didn't bother me; what concerned me is that Ubuntu has also gone the way of dumbed-down Linux (although Ubuntu has always tended toward dumbed-down by default, so it wasn't as long a trip in Ubuntu's case). This time I only dedicated a couple of hours to attempting LAMP in this environment. In the end, the limitations of dumbed-down Linux (Gnome 3, fighting against access limitations even an alternate GUI cannot overcome, and the same MySQL error which essentially requires system level access to a degree Ubuntu resists) were too great to overcome. As with Fedora 20, Ubuntu also did not cause the MySQL error, but Ubuntu did render it essentially not resolvable.
- Last I tried CentOS 6 32-bit in a customized, stripped down developer-oriented VM. MySQL popped the same error as in Fedora 20 ("Captain Comic Book") and Ubuntu. Fine, I had pretty much decided that the error was a MySQL issue in any case. However, here's the difference. CentOS has not messed around with folder names; MySQL is still MySQL. CentOS has not messed around with accessibility; root access is still root access. Therefore while MySQL installed in CentOS experienced the same exact error as with the other distros, I was able to fix it in around five minutes. Literally. Five minutes, and move on.
A couple of hours without a Linux distro resisting every inch of the way and the LAMP stack is customized and ready to work.
As I noted, LAMP (Linux, Apache, MySQL, PHP) operates as a bundle. If one component does not work as needed, none of it works. When the M has an error it does not matter what the cause is. If the L prevents fixing the M, the A and the P might as well not be there at all. Various dumbed-down Linux flavors are shooting themselves in the foot by rendering entire bundles like LAMP inoperative. That should be seen as a caution to those distro developers. It should also be seen as a caution to CentOS on where not to go as Gnome 2 support approaches end of life.
Closing thought. When making a complex construction like a LAMP stack, backing it up is like the Chicago ward boss said about voting: you can never do it too many times.
(Through 3 May 2015, the LAMP stack virtual machine is available at Amazon and eBay.)
A Dollar Donated via PayPal
March 14, 2015
A dollar donated via PayPal may possibly be a dollar lost.
Today's post is dedicated to all of those people who have provided exceptional content online, ask to get a small amount of recompense, deserve to receive it, and possibly never will. I have seen software applications, WordPress plugins, Mozilla plugins and blogs offering high quality items essentially for free, with the request, not a demand, that the user may, at their option, donate a little something to the project developers. Given the quality of some of these offerings, the users are getting an excellent deal in exchange for an optional donation.
But there are a couple of problems with the model. First understand what PayPal will permit the developer (blogger, etc.) to do. The developer may:
Here is what the developer may not be able to do:
To receive actual money received as a donation through PayPal (that is, not to have money lodged in a PayPal account, but actually to withdraw it, put it in your pocket and spend it) the recipient of a 'donation' must:
The problems with PayPal donations, then are these:
Four points remain to be considered. What to do about it, whether small developers have been cheated, why it's set up that way, and why I am bothering to write this up on my blog.
Also, test your work by paying yourself a dollar or whatever amount you charge for your excellent project. Make sure the transaction registers as a payment and that you can get the actual withdrawal completed. Remember, simply receiving the money at PayPal (or in any other online account anywhere) is essentially meaningless; no one can ever truly be said to have been paid until the check clears.
With a small developer getting a few dozen or couple of hundred dollars a year in 'donations' it will be long time before the small developer discovers that they were not supposed to accept 'donations'.
Also, once the small developers do discover a difference of definitions, there would be still more time during which Banco Philly would graciously wait for the small developer to provide legal paperwork or other evidence of charitable intent (which Banco Philly knows the small developer likely can never produce).
their undeniable excellence,
This last may mean a small developer patiently watching a donation balance grow, only to discover that requesting a 'donation' violated a clearly stated policy and that the developer may receive nothing for their efforts. This blog post is my 'donation' to small developers everywhere who may have picked the wrong category for their PayPal account, who set out the virtual tip jar expecting some small well deserved consideration for excellence.
For the gal who wrote the wallpaper, for the guy who wrote the plugin, and the other one who had that truly awesome tweak for VirtualBox, and who all had a 'donation' option on their pages, and for thousands like them, this one's for you.
[1] PayPal. Donation Buttons. Retrieved March 13, 2015. https://www.paypal.com/us/cgi-bin/?cmd=_donate-intro-outside.
Tweons: Horribly Helpless Twitter Peons
March 12, 2015
This is, well, not the story, but another chapter in why social media outlets self destruct. It's happened before, it will doubtless happen again. In that sense, the story does not have a beginning and an end. It just goes on and on...
Today's chapter is about a $30 billion company called Twitter. That's billion, with a B. For perspective, Twitter could buy a stealth bomber and not even miss the cost.
But Twitter, for all of its abundant dollars is helpless to assist its customers. They say it right here.
Yes, when it comes to allowing Google to post tweets as part of a Google search, Twitter appears to have fallen prey to that all too popular American business model, the helpless peon syndrome. Their options would be to make a meaningful effort to protect Twitter users and negotiate an opt out with Google, considerably more involved and a potentially expensive option, or to opt for policy by one-liner exemplified in the helpless peon syndrome: we can afford an air force larger than that of some countries, but "we have no control."
A subtlety, an optional variant of the helpless peon syndrome, is to refer any customer you have no intention of helping to somewhere, anywhere, elsewhere as soon as possible. Blame anyone, everyone, someone else! One way Twitter leverages this subtlety is by linking to Google. Dealing with Google on a one-on-one basis is, as always, a difficult exercise (although they do have some relatively convincing bots responding to emails), but is also not really the point here. The point is the $30 billion company arguing a position of helplessness. Is that an argument you really want to win?
Another quite popular variant is to blame the user. Play Behind the Iron Curtain, says Twitter. Change your user name and hope that you cannot be linked to existing content. Twitter itself is powerless to assist you. The point is that when a multi-billion dollar company tells its customers how anyone, everyone, someone else is responsible, it says something fundamental about the company's values and sense of worth they hold for their customers.
One of the biggest problems with the helpless peon customer service model is the tempting immediate success and eventual failure inherent in the model. The helpless peon model succeeds in that it brings fast, fast, relief. Unhappy customers go away. However, customers go away unhappy, and that is the long term flaw in the model.
Twitter is no exception to the rule. The helpless peon policy successfully sends customers away, undoubtedly true, but it sends them away unhappy. It logically follows that built into that policy model is the assumption that it is acceptable to have unhappy customers. In the end, it matters not at all if Twitter is to blame or not, Twitter ultimately assumes the responsibility for unhappy customers. As Facebook and My Space may attest, a social network accepts an unhappy customer model at its long term peril.
WordPress Conversion - Episode III: A New Nope
March 9, 2015
Mail. I got mail about the last blog post. Thought provoking comments, all. What the internet is supposed to be all about. I'll address some of the highlights here.
I got references to several SEO and monitor type tools. I have not assessed them yet, so I will not go into names of applications. For SEO and monitoring tools to be useful, it follows (or precedes, as is actually the case) that one must first develop a site worth deploying or monitoring. Since I have not produced anything in WordPress which would not make me cry for shame, deployment is out of the question at this point.
One response addressed my assertion that WordPress sites appeared 'cookie cutter' in appearance. I was working with WP theme Twentythirteen because it was so well commented, but tendency toward that theme may be the reason that WP sites overall seem to be so similar. I accept the reasoning, but that leads, in my opinion, to a conflict. If one theme tends to be a choice because it is well commented and therefore more readily comprehensible, how does one justify using a theme which is not well commented? Or does one even justify it at all? There were three tangents to the response which addressed the conundrum with (again, my opinion) varying degrees of efficacy.
The first option was to accept the cookie cutter appearance if the commenting of the theme was so important to the ability to design that it made a critical difference. I accept the logic, but personally feel that if the result is a similarity of sites to the degree that a non-WordPress user can visually identify WP sites, that might make WP a lot less attractive in the long term. Still, it's a working option, so, noted.
The next option was to learn WP and accept that code in WP templates will not be commented. The argument goes that comments in code must be loaded as a web site loads. Therefore the comments slow down the loading of the site every time that a comment exists. Also, real professionals do not comment code; in fact that's how to identify the code as the product of a professional. I have a couple of responses to these arguments.
State of the Code:
For one, I have done some coding, and I hate to comment it. It works as coded, so what's the problem? The problem is exactly what I am addressing in trying to work with WP templates. The developer designs the theme, hands it off to someone else (myself, the developer of the specific site) who in turn finds it difficult to use because the code is not commented. Without comments in the code, using the code which is handed off means that what should by all rights be a simple process becomes a bizarre ritual.
Sorry, we're going to have to agree to disagree on this one. If you code it, comment it. If you don't comment it, it logically would not and should not be used as often as well commented code, especially when a theme is designed to be a template, is designed with the explicit understanding that it is to be further modified. As for the argument about website load times increasing from having to load pages including full comments, I don't buy it. You can run Netflix inside of Firefox inside of Windows inside of VirtualBox inside of enterprise Linux and still watch a movie. A medium sized JPEG graphic is in the 25-50K range. Bandwidth, processing and memory are sufficient these days that loading 5 or even 10K of extra code which includes comments won't even be noticed.
And if the concern about comments remains, by all means, write a script to cleanse pages of comments when ready for deployment. But don't stick a template with 10,000+ lines of code online, 5% of which is commented, and wonder why it's not useful. Last but not least, there's the option used by Twentythirteen: name your theme's variables something rational compared to what the variables do. That lowers code which must be loaded on the user's browser and still leaves a usable theme for website developers.
The argument that commenting code is passe, that the need for code comments reflects the ignorance of the web site creator and not a fundamental flaw in the code itself is lovely, wholly, robustly, modern American. You have two choices: Comment your code properly (a lot of work), or, take offense that someone would be offended, tweet it thereby making it real, and go have a latte (a lot less work, and the choice 4 out of 5 Americans recommend most).
Meanwhile, here is the realistic state of the code comments: Thousands of blog entries exist, each addressing a particular snippet of code as someone discovered and resolved the effect of that single specific uncommented code snippet. The very fact that there are thousands of individual pages from thousands of individual users addressing thousands of individual code snippets should indicate that there is a fundamental flaw in the product, when thousands of separate pages exist in no rational order, essentially writing the documentation piecemeal which should properly exist in the first place.
You've Been Here Before:
I would like to pretend that I am not shouting into a hurricane with my observation, but I realize that I probably am. Take Linux and Python as examples. Both are lovely examples of what they do. Both have, to put it charitably, substandard docs (again, applying my definition: that tens of thousands of piecemeal blog entries dealing with heretofore undocumented or poorly documented functions, documented and posted independently by thousands of individual bloggers as they are discovered and figured out does not equal quality documentation).
WordPress is unfortunately technically in the same situation, and in fact the situation is worse. WP is every bit as poorly (but not necessarily more poorly) documented, true, but WP now has precedence. WP can say, 'Look at Linux, look at Python. Whomping out 10,000+ lines of uncommented code with cryptic variable names or poorly described functions is perfectly acceptable, it's the end user's fault, I'm offended that you do not see the Christlike perfection of the project, and that's a tall skim latte.'
WordPress Frameworks:
Another mail comment was to seek out a WordPress Framework. Being experimental at this point, I looked into free options. The comment which I received was along the lines that with such a tool, it would not even be necessary to touch code. Awesome. I looked for a Framework. Now I may be using them wrong, but these Frameworks are essentially just themes. They have a default appearance for your page (kind of a cross between Microsoft and a coloring book in appearance) and thousands of uncommented lines of code, documented piecemeal in thousands of blogs, etc., etc. In fairness, the framework/theme I have played with the most does add one (and only one) 'codeless' feature to the dashboard to disable the otherwise exceptionally well hidden "Proudly created in WordPress" blurb (which, by this point, is in itself no bad thing). Otherwise, the framework is just the same as any other theme: accept a cookie cutter design or stumble through thousands of undocumented lines, blah, blah, blah.
One Approach:
My approach to this attempt at WordPress conversion is to go into these themes and disable as many options as possible. Let's look at the options realistically.
Option 1:
Option 2:
The problem with Option 2 is of course, the WP theme becomes so limited in functionality that it may as well be HTML. All of the undocumented features are simply disabled. So why not simply do HTML and be done with it? I am not exactly sure why not, and that is the beginning of deciding that WordPress just may not be worth the bother. However, I'll keep plugging away at it awhile yet, not because I am sure at this point that WordPress has something to offer, but more as a matter of will.
To Be Continued:
As a closing thought for this episode, there is another factor which must honestly be considered regarding the utility of WordPress, especially with regard to disabling features. All too many of the newly revamped WordPress pages I am seeing use the WordPress equivalent of pop-ups. I'm not sure what the WP terminology is for these sliding, fading panels, and it's not really important at this point.
What is important, is that these are, label notwithstanding, pop-ups (of a variety which browser pop-up blockers have yet to block). So, then, the advanced WP features (and the reason that I should want to use WordPress?) is to enforce on my site the very annoyances which make me leave other websites when I encounter them? The annoyances which, in a different web technology model, have long since been addressed? It does not really matter whether it is labeled as a pop-up or a Persistent Interactive Sliding System Engaging Multiple Optional Fill-in Fields (PISSEMOFF) or a User Parameter Yielding Objective Usage Research Statistics (UPYOURS), it is a pop-up by any other name, and it is as annoying today as ever it was.
WordPress Conversion - Continued
February 25, 2015
I spent many hours getting to know quite a lot about WordPress, with an eye to converting pkcarlisle.com to that format. The following are some observations about that ongoing journey.
About like I suspected it would be. Abundant, but unstructured and ad hoc. A lot of people with a lot experience making their best educated guesses. And they were guesses. Sometimes one person would suggest hacking one system level configuration file, and somebody else would suggest another hack altogether. One or both of the suggestions would sometimes work, other times neither would work.
I found a free resource which, while short, was worth a quick read. There is a book on Google Play called WordPress in 12 Easy Steps which was a nice way to get my feet wet in WP. And you can't beat the low, low price of nothing.
There's also WordPress Codex, supposedly the ultimate WP how-to. Advantage, everything WordPress is at least referenced in there somewhere if not explained well. Disadvantage, the assumption behind the model is self contradictory. If one has multiple years of WP experience, one will not need basic documentation. If one does not have multiple years of WP experience, the Codex is not so very useful. (General rule of thumb: if someone has to tell you how easy their product is, it's probably not.)
I bought a motorcycle technical manual one time. I found out that I could not do most of the procedures in the manual. This was because most of the procedures outlined started with the same first instruction, to wit: Go into your well stocked professional auto mechanic's garage and put the bike on the lift. WP documentation is kind of like that, to wit: extending on your years of existing WP experience, this process is simple enough... This is similar to the style of open source documentation everywhere, and while it's always a bit disingenuous, in fairness it is not specifically a WP thing.
Apparent Philosophy of WordPress:
I thought about why people may want WordPress, what WP is and what it is not. WP reminded me of a line from the old M*A*S*H television series in which Larry Linville whined that being an individual was fine as long as everyone all did it together (pause for laughter). WP is much like that. It is a cookie cutter approach to web page creation, and all who use WP are all individuals...together. In fact, I only decided to sit down and bother to learn to use WP because I started seeing so many lookalike web sites which were obviously done in WP that I started to wonder what was happening.
Cookie cutter approach:
WordPress is essentially a cookie cutter model, but can it ever crank out the cookies fast. Advantage, quick to use once the template page is set up, disadvantage, someone else has largely decided what the limitations of the template will be, as a result lots of web sites end up with a suspicious lack of individuality. For example, I note that many sites created with WP retain the built in search bar/magnifying glass combination lurking somewhere even when the function is not used (try it on a few WP sites). However, it is coded into a lot of WP themes and difficult (but not impossible) to remove, so it's left there hanging uselessly like the appendix.
On the subject of cookie cutters and individualized pages, consider WP themes. In my case, I already have a website and content, and don't really want to start over from scratch. So a theme which would not easily permit incorporation or conversion of existing content would be less useful. Therefore, I made the assumption that for a conversion, the primary goal would be to remove elements from a cookie cutter template as much as or more than adding elements. This turned out to be true, and since it was true, a WP theme which facilitated that approach was preferred.
WordPress Themes:
A WordPress theme is a template. It has elements included in it by default, some of which may be removed or changed, and others which are resistant to removal or change. Once a theme is customized to taste (or customized as much as WP will allow and therefore settled for), it is fairly quick to copy/paste and save-as for each new page of a site. However, if each new page is ultimately unsatisfactory because the template has elements which are not easily removed or altered, the site as a whole is a little unsatisfactory. And that's a shame. I do not want to have that grungy feeling about my website.
The WP theme I recommend is called Twentythirteen. Just like that, one word. Twentythirteen is a bit limited in the sense that is does not have sliding panes by default or a lot of the visual bells and whistles people tend to associate with WordPress, but it has one major advantage: the variables are sanely named. With WP, realistically you have two options: accept the templates and plugins as provided and learn to live with the limitations (that grungy feeling), or get on your code hacking boots. Twentythirteen, as a WP theme, facilitates code hacking enough to be a major selling point.
Twentythirteen has style sheet code which looks kind of like this:
.site-header {
color: #000000;
display: none;
.site-header .search-form {
color: #000000;
display: none;
.site-footer {
color: #000000;
display: none;
Access to the code can be good or bad depending on individual ability, but either way, the functions of the above code are reasonably guessable, even to someone just starting out with WP code hacking. On the other hand, consider this code from another theme's style sheet:
/* logo and controls */
#colophon #wordpress-logo {
background: transparent url(images/wordpress-logo.png) no-repeat scroll 0 0 ;
bottom: 0;
height: 30px;
left: 220px;
overflow: hidden;
position: absolute;
text-indent: -999em;
width: 100px;
This sample is from a 1,500 line style sheet, and that's all you get for this function. This is the code which does a task and the comment which describes it. For 1,500 lines. Of one file. There are several other configuration files which may also need code hacking to get the expected result. All equally if not more poorly commented.
Since a WordPress creation will be done online, each code hack will take at least a minute to update a server so that you can reload the page and see the results of that hack. Hack, upload, repeat. Also, some code segments impact other code segments (What? That's not commented. No, it's not commented, but it's true.) With each code hack, style sheet update and page refresh taking even a couple of minutes, guessing how a few segments of poorly commented code interact with one another and customizing to taste can quickly expand to consume an inconvenient number of hours.
Twentythirteen, as a WP theme with meaningful variable names in the style sheet code, is much quicker to hack. If you are going to go the route of code hacking the style sheet to address the WP cookie cutter, adequate code comments or meaningful variable names is enough to drive a choice of themes. (Disclaimer: There are dozens if not hundreds of WordPress themes available, and I did not examine the code on more than a handful. If a WordPress user out there in cyberspace can identify a theme with a better named variable scheme or comments, please drop me an email.)
I have said it before and I'll say it again. Back up early, back up often. If you are looking at major conversion (HTML to WordPress qualifies as major) make sure that you can put things back or wait to bring the new attempt online. WP will not harm existing HTML code or web pages, but somewhere along the line you may be tempted to copy/paste one thing or hack another thing 'just a little bit'. Back up early, back up often.
When doing a major conversion, don't assume that things will work out okay, assure it with appropriate backups. I use the schema ., .pop, .gpop and sometimes .ggpop (so I have blog.html, blog.html.pop, blog.html.gpop, and even sometimes blog.html.ggpop, respectively, the current active file, the father, the grandfather, and the great-grandfather versions). Use .html, .html.father, .html.son, .html.holyghost. It doesn't matter as long as the schema is consistent in naming. Have at least three generations of an absolutely crucial file. In case of disaster, everything can be put back. That's the point.
The same will go for your WordPress pages. Download and save your preferred theme in case you need to reinstall it. Back up any original configuration files before you start to code hack that file. Back up style sheets, especially before and after major or uncertain hacking of the code. (Can you give me a style.css.orig, and a style.css.pop? Amen, brother.) Without a backup, you are relying on someone else to not update your WP theme or software in a way you may not like. No one ever has your best interest at heart as much as you do.
Comment, comment and comment some more. The WordPress style.css code sample
.site-header .search-form {
color: #000000;
display: none;
properly commented, should read
.site-header .search-form {
/* orig. color modded by pkc */
/* color: #FFFFFF */
color: #000000;
/* display: none added by pkc to temp. disable display of this item */
display: none;
Now I know what I modified each time (did you see that there are two code hacks there?) and why and how to put it back the way that it was. I also have working samples which I may use later for another code hack elsewhere. It's more work, but comment, comment, comment.
Next Steps:
If I go there, the next installment of this WordPress journal may be on the conversion of this blog to WP. It occurs to me that I have been writing on the subject of a WP conversion and I haven't converted anything to show. In fact, I did convert the main page of this site, but I was not really delighted with the result, and I feel that the original HTML is still better on several levels.
It is possible to mix HTML and WordPress pages on a site, in fact in some cases such a mix may be desirable. For the record, WP can create static pages (www.pkcarlisle.com/index.html is a relatively static page) as well as dynamic (rapidly updating) blogs. Greater flexibility may be more preferred on some static pages, while cookie cutter rapidity may be more desirable for a blog. So, if WP essentially says, here's your mandatory magnifying glass and search bar, everyone else has one and they don't use it either, so live with it, you may be justified in deciding that some pages on a site will merit WordPress' structured approach while other pages definitely will not.
WordPress Conversion - Prologue
February 23, 2015
I am labeling this section Prologue, because I strongly suspect that this post will extend significantly and have several tangents or potentialities. This first section will simply address intent. Specifically, my intention is to look at the option of converting pkcarlisle.com to WordPress. I am going into this cold, however, and I already see some significant issues with the process.
One issue is the contrast between quantity and quality which is all too often apparent in the documentation of not a few open source projects. In fairness, this contrast must be considered in light of the fact that the project is open source, and therefore largely supported by volunteer efforts. The reality is that coders code, and as a rule hate documentation. As a result, some of the best coders (WordPress or otherwise) do not contribute to existing documentation at all, or, when they do, they contribute ad hoc, they are not too concerned about editing or categorization, and if that reduces the utility of the documentation, one must be grateful that such documentation exists at all.
I will attempt to keep reasonable notes about the conversion process in an attempt to streamline the process. By streamline, I mean to reduce the vast quantity of documentation to arrive at something approaching quality. Of course, it must be noted that the items I see as quality may differ from the requirements of others. The exception is so noted.
Last but not least, this prologue exists as an advisory: any formatting irregularities or missing sections apparent on pkcarlisle.com in the next days, weeks, or months may be attributable to the conversion process.
Je Suis Charlie
January 7, 2015
On this date, three Islamic fundamentalists attacked the offices of a French satirical weekly called Charlie Hebdo and killed a dozen people in the name of their god. It is not necessary to go into details of the attack, there are plenty of resources to recount the gritty details. My French is at the level Agatha Christie called 'Shopping and Hotel', I can read it passably well, but not well enough to have been able to read CH on a regular basis. However, in fact I had read CH regularly for several years and was and still am a staunch supporter of satire.
Once there was a now defunct monthly magazine called National Lampoon. NL offended everybody equally. They took shots at Jews and Muslims, Christians, Catholics, gays, straights, the left, the right. They were an equal opportunity offender. And it was satire. To create effective satire, you must have an understanding of truth, and understand that yours is only one perspective. Truth as you see it, truth as the subject of the satire sees it, as society at large sees it, and how the differences between varying viewpoints leads to different courses of action, lifestyles, etc., and how those opposing perceptions of reality may come to collide in a democratic society. It's no coincidence that some of the best comedians were philosophy majors in college.
Somewhere in there, examining the different definitions of truth, you may be able to laugh. Somewhere in there you may learn something about others or even (this is where it gets complicated) the truth as you yourself see it. That's what good satire does: it examines truth for what is enduring truth, what the cliche, and whether people are motivated by understanding or conditioning, be it social, religious, educational or that of any other institution. Maybe as a result, you break out of your conditioned perspective and come to an individual conclusion and set of values. And that's called knowledge, that's called enlightenment, that's called philosophy.
So Muslims as a group have to suffer with a handful of extremists who cannot credibly express their beliefs in words and must resort to the machine gun. It makes you understand how Italians feel about the Mafia or Christians about Westboro Baptist Church, Catholics about the Inquisition or Jews about the Irgun. Maybe it's human nature: there is all too often one group willing to push things too far, and another group willing to paint with too broad a brush. For the short term, all that can be said is this too shall pass, in the meantime the broader community of Muslims must consider their extremists their crescent to bear (that's satire).
Yet a distinction must be observed and noted. In response to National Lampoon's regular blast of offense the American religious right threatened lawsuits (regularly), condemned NL as filth (constantly) and even (it was rumored) plotted to buy up NL in order to close it (to NL's laughing delight). Machine guns as a response to offense never even vaguely came into the picture. The difference is that the opponents (NL versus the American Right) both fundamentally believed that the system worked, that attacking the underlying system for the sake of a single goal was not a rational value judgment.
Muslims, Jews, Christians, Catholics, gays, straights, the left, the right, raise your children well. Tell them that the candle isn't worth the game, that the system in which they will live and interact will be filled with people who will not understand them or have their values. These others will sometimes be offensive, sometimes in satire, sometimes in ignorance, sometimes because of utterly divergent and conflicting values. Teach them to question the values of others and the values of themselves. Educate them to understand their own values well enough to live those values and to express those values without recourse to the machine gun. Teach them, now and forever, for all of their lives, that if we have the courage nous sommes Charlie.
The Sony Hack, Strategic Questions and Options
December 26, 2014
"Shall we play a game?" "Love to. Let's play Global Thermonuclear War!" -- War Games, 1983
The December, 2014 attack on Sony by person or persons unknown has been attributed to North Korea, Anonymous, and a cast of thousands. At this point nobody really knows who is responsible. Some theories suggest that the attackers mimicked North Korean data origins and linguistic style to give the appearance of a North Korean attack. Anonymous would hardly be likely to attack resources that they themselves value, except that they have done so before and even the most brief perusal of their statements to the world show a boggling lack of understanding of cause and effect and lack of a cohesive strategy or goals. I suggest that it doesn't matter at all who is behind the attack on Sony and a cheap comedy, which, had it not achieved publicity through the Sony hack would have been entirely forgotten in three months' time.
Today, we'll play a game. We'll look at one, and only one, attack strategy which, should a nation-state such as North Korea be inclined to attack the United States, would be ever so much more effective. I stress one because it is crucial to appreciate the quantity of interrelated systems which support American infrastructure, and the need to secure them. I quoted the movie War Games at the start, and I refer viewers to the scene near the end in which the WOPR computer runs through its attack scenarios as a simulation. To a movie-goer it's time to finish off the Milk Duds and fish for the car keys. To a computer person it's all too plausible and scary as hell.
Let the games begin, and may the odds be, well, you know...
Problem Setup (Inventory):
A major big box retailer uses Just in Time (JIT) inventory to streamline costs. A large retailer has two inventory model options. They can warehouse their inventory as received or they can employ a JIT model.
Warehousing has positives and negatives. On the plus side, the retailer can stockpile an inventory of goods which means they can say definitively how much they have of which products. Because inventory is physical, the retailer can say how long they expect their inventory to last, and an interruption of the supply chain does not mean an immediate interruption of inventory. On the negative side, physical inventory means additional logistics to arrange, and that means increased cost. The retailer has to ship goods to a storage facility, offload into a warehouse, pay for the expanded storage facility and employees to operate it, sort for delivery based on inventory needs, and load a second time to ship to a retail location.
A JIT model does not entirely eliminate the costs involved with a warehouse inventory model, but it reduces those costs significantly. In the JIT model, with a sufficiently well developed computer system, the retailer holds much less physical inventory in stock. The computer notifies the retailer about inventory as it begins to run low in various locations and replacement orders are placed 'just in time' to replace depleted stocks in the retail locations.
So, if in the Cleveland retail location it requires forty-seven days to restock diapers, twenty-nine days to resupply aspirin, and fifty-three days to restock athletic socks, the computer tracks and advises on low supplies, orders are placed, orders are received and shipped and in the retail stores just in time (before current supplies are exhausted). This requires an amazingly complex information system which must track inventory, anticipated consumption, anticipated order time, delivery time from the manufacturers, and delivery time to the retail location. A sound system would pad these delivery windows and provide some extra time for unforeseen circumstances such as excess demand, weather delays, holidays, employee sick days, etc.
However, and here's the catch, in order for a JIT model to save the retailer significant costs, it is necessary to maintain a minimum of physical inventory. Stockpile too much and the retailer is back at a warehouse model and its attendant logistical requirements and costs, stockpile too little and the retailer does not have goods to provide to its customers.
Attack Setup (Infrastructure Dependence):
For our hypothetical retailer to follow through on their JIT inventory model, it is assumed that certain systems will function more or less according to expectations (again, the retailer builds some tolerance into their model). The retailer expects that the manufacturers will produce goods according to any contracts, that the goods will be shipped, timely shipment offload at the dock and forwarding to a sorting location, that the shipment will be sorted into individual quantities for specific retail locations, and that the individual shipments will be delivered to the retail locations, and that all of this will happen within the schedule specified by the JIT inventory system.
For all of these activities to take place as scheduled, underlying infrastructure must function as anticipated. Starting at the point at which the shipment is received in the United States, the receiving shipping port (let's pick the Port of Los Angeles, a major offloading point for shipments originating from Asia) must be operational. To 'be operational' the port must have electricity, fuel for delivery trucks, open and accessible roads for delivery vehicles, available labor, water and sewer service, food service, safety, support of fire and police services, warehouse security, local port-side logistics including human resources, order tracking, and communications access to manage logistics of shipments once received by delivery drivers. These are the minimum requirements.
Attack Setup: (Infrastructure Weaknesses):
California gets its electricity where it can. Without belaboring the physics, it is always cheaper and easier to provide and to consume electricity as generated rather than to store it. So the electricity supply which powers the Port of Los Angeles comes from a variety of sources, any of which may have excess capacity as required and available.
These remote electricity suppliers want the linemen and maintenance workers to be able to access the system quickly in order to move capacity from one part of the system to another as needed so that their customers have an uninterrupted supply of cold beer and the Simpsons (with any excess to be provided to the Port of Los Angeles). But the focus has customarily been on access and not on security. Spending money on security is always an exercise in proving a negative: that is, if a security breach does not happen, how can the company be sure that additional security prevented it, and that its money was therefore well spent?
So security upgrades are not always so attractive to management, employees are resistant to extra security procedures, stockholders and unions must be answered to, and installation and maintenance of security is an added logistical burden which interferes with the primary function of the utility supplier. So security upgrades do not always happen. Utilities from electricity to water and sewer and communications, including mobile communications, sometimes use hardware and software which has long been demonstrated to have security bugs, do not have redundancy built in, and in some cases, have been discovered to be using factory default passwords (readily available by downloading the manual(s) online).
Attack Strategy:
An attacker who proposes to take out significant infrastructure expects opposition. If an attacker would attack the US through its supply chain, the attacker would expect that the big box retailer including their primary logistical systems would have some protection. Similarly, an operation the size the Port of LA would have, or be expected to have, significant security awareness. So, in the classic hacker strategy, the attacker does not attack the main target(s) head-on, instead the hacker goes after the comparably weaker yet crucial infrastructure underpinnings. This is not a new or astounding approach: it is how attackers have approached complex system attacks since the beginning of hacking and the personal computer.
Attack Scenario:
In our list of minimum requirements for running a shipping port, taking out utilities for that port takes out electricity, fuel delivery, communications, ability to offload goods and the knowledge of where to put those goods or to send them. Loss of traffic controls make roads impassible even presuming it was possible to load trucks or that the trucks had fuel to operate. Employees cannot get to their jobs, and cannot do them properly even when they can get to them. Police and fire services are overwhelmed, so physical security is a problem.
The attacker has not attacked the target directly, but has attacked the systems on which the target relies to operate. Since our retailer relies on a JIT inventory model, supplies are already running low in retail stores (although it's not apparent to consumers yet). The rolling effect will be felt by nationwide shortages in under a month. Also, since the attacker is not attacking in the present tense, but rather has attacked in the past tense, there is not an enemy to target in the sense that destroying an attacker will stop the effect. The effect is inevitable once the attack is complete; it is a rolling effect which naturally follows from a collapse of infrastructure.
There are lessons we can learn from the above simulation.
First, unfortunately, humans tend not to learn by simulation. Therefore, the above will probably happen sooner or later. As a society Americans have built a complex and extraordinarily fragile structure on which they are dependent for their lifestyle as they know it. They do not secure it properly, as individual corporate entities within that structure cannot justify the additional cost or inconvenience of security. The rolling effects, once begun, are inevitable and the point of prevention (POP) has been missed.
People in silicon houses shouldn't throw stones. The systems which underpin the commercial and lifestyle model are many, varied, often unregulated, in some cases antiquated, and unappreciated in terms of the scope of their role in the overall system. To damage or destroy one element is to cripple the entire system at minimum to the degree that the system depends on that element. For America to lose its infrastructure is to lose a lot more than anticipated.
Decision makers act on the basis of motivation. If present imperatives, be they social or commercial do not sufficiently motivate decision makers to secure their systems, other motivational tools, be they financial or legislative, regulations or minimum standards linked to awarding contracts may be considered.
And, oh, yes, with all of this hanging over their heads, Americans are worried about a movie.
December 14, 2014
There is an underlying assumption to most technology models that all strategies will be possible. If a given technology exists, it exists in all places and for all users and can therefore be deployed. So in the face of ubiquitous technological opportunity, all technology is available for planning and implementation, and minimum standards of efficiency and even regulation are possible. However, a plan which requires that this universality of technology be an inevitable element fails the first time that this standard is proven to not be attainable.
A couple of examples should suffice. One user once subscribed to Amazon Web Service. For about 18 hours all together. They went through a fantastic smorgasbord of cloud options Amazon offered, signing up for selected features and envisioning a welding together into an amazing powerful new model of computing power and off site backup. Then reality kicked in. The internet bandwidth regionally, while technically high speed, was not sufficient to support continued robust connectivity required for AWS, nor was such a quality of service available (although it was certainly advertised). Scratch one technology model, compliments of the real world.
The same is or may be true of other technology models. Cell carriers with spotty coverage should not ethically (although they may in reality) offer a device or a service or aspects of service which assume constant or nearly constant connectivity. Chromebook performance was probably most impressive when tested in southern California, where you don't really need sunlight to get a tan, the wifi and cellular signal strength alone has to be enough to cook anyone medium rare. But it may not be the best place to test a technology which relies unequivocally on the availability and abundance of technology equal to that of test conditions for the model to be and remain successful.
This is especially true of mobile devices. By definition mobile devices are expected to move from place to place. Pick a U.S. mobile carrier at random, go to their website and browse their coverage map. Really zoom in and pan around. Think about how many contiguous miles are covered by areas of spotty coverage. Anyone doing business in the area or traversing the area on a regular basis cannot partake of the theoretical technology models no matter how advanced, or how impressive the advertising, for those models.
For a while I traveled through the area between Rockford, Illinois and Dixon, Illinois on a fairly regular basis. Based on where roads were physically located, regionally available carriers and signal strength, it is essentially a cell phone dead zone. Between one city and the other there was no cellular signal at all.
Like traveling through the desert, make sure that your car is in good shape and the spare tire has air because there is no help or way of calling for it for the next 50 by 40 mile block. Therefore GPS would work only if you had a map program which preloaded its map data. If reliant on the cell network for data, that feature also does not work. Nor does 911, AAA or calling your boss if you are running late. The model fails.
Soon this will be true of cars as well. One aspect of the Internet of Things (IoT) that technology writers love so much to tout is the connected car. Remember the Google self driving cars? They look very cool on the websites, all of the technicians standing around them in matching polo shirts and clipboards kind of brings a tear to the eye as a dream is realized and civilization takes that next leap forward. In practice the smart car probably won't be so smart after all whenever it drives out of coverage range. Will these smart cars, now dumb cars, be sold where there is not the infrastructure to service them? Absolutely. Should they be in a properly ethical environment? Probably not, at least not without a lot of disclosure.
In fact what will happen is this. Smart cars will be sold where there is not a chance in the world that infrastructure exists to let these cars be smart and companies doing the selling will hide behind what may be called the helpless peon syndrome, to wit, the companies which cannot service their products will staff the front lines of customer service with people neither empowered nor possessing sufficient technical knowledge to address customer complaints. (Nor in fact is technological education actually relevant in a scenario in which the infrastructure simply doesn't exist to provide the promised service.)
There was a televised news segment from the American South not too long ago. People who had businesses in the small town in question had what could charitably be called spotty internet service. The individual merchants had come up with a variety of workarounds even as they were all but crying with frustration that the only high speed provider was completely indifferent to the quality of service issues they experienced. And the frustration was deserved: customers were turning away, and actual measurable business was lost.
So the merchants had a calling network whereby they would call one another if they discovered that the internet was back up first; they had pre-printed signs they periodically hung in their windows that they could not process card payments for the time; they had the wiring strung up beside the cash register so they could lean over and disconnect their business phone(!) and plug in the card payment line. Into this brave new world the internet provider did not dash to fix the problem. Instead customers got empathy statements from unempowered peons in a deficient coverage model.
All of this is just to observe that sometimes, more often than may be thought, technology models are encumbered by lack of infrastructure, human nature, greed, indifference. These qualities don't appear anywhere on a Gantt chart when a system model is envisioned, but perhaps they need to have a place and value even as an intangible. Call it the anti-goodwill.
Banging the Rocks Together: A Life Skill for when the Internet fails
November 14, 2014
"Broadcasting around the galaxy, around the clock...we'll be saying a big hello to all intelligent life forms everywhere...and to everyone else out there, the secret is to bang the rocks together, guys." -- Hitchhiker's Guide to the Galaxy
The Israeli Homeland Security website addresses the security (or lack thereof) of the Internet of Things in an article dated November 12, 2014.[1] The thinking in this article correctly notes that all of the many current and future components of modern life which send information to and receive information from the Internet are vulnerable to attack. IHLS also observes (correctly) a paradox: Systems must be simple enough to secure, but require complexity for the current future application in the Internet of Things.
The problem is that this very paradox needs to be addressed realistically. IHLS insists that components critical to infrastructure be "completely clean, uncontaminated" but flexible enough to meet current future demands. This sounds rather like a middle manager banging his fist on his desk and yelling to just do something without understanding the system realities. It sounds like Dilbert. It probably looks great on a planning report, though. Let the legislators talk about a system which is secure and uncontaminated and flexible. They don't know what a realistic design parameter is anyway.
The IHLS theoretical system has the specifications that it is
- flexible and upgrade capable (that is, modular)
- minimalist (that is, simple enough to keep clean and protected)
- and let's add singular (that is, there is only one clean uncontaminated attack vector to defend)
What you have effectively designed is a system, the successful attack of which, will bring down an entire swath of infrastructure. Further, by limiting the attack vectors in such a system, you have virtually guaranteed that the limited vectors will be researched exhaustively by attackers. In information security (infosec) there is a truism that defense is always playing behind offense. In other words attackers always have the initiative, defense is always reactive. Putting all of your eggs in one basket, all of your faith in one component of a system, and a system with unrealistic requirements in the first place, virtually guarantees an eventual successful attack on infrastructure.
The better answer is dynamic redundancy with multiple and varied components to protect each critical infrastructure system and an infosec team to maintain it against the inevitable attacks. Then when the inevitable attacks impact one part of the system, there are redundancies to maintain infrastructure while the effects of the attack are repaired. Redundancy should not be confused with minimalist design parameters. Minimalism, that is, minimal system components are more desirable than complexity when the same or similar benefit results, and that should not be seen to conflict with the concept of redundancy. Unfortunately such a system will probably not happen for a couple of reasons.
First, non-technical (including legislators) people do not really want to hear that threats to a system are ongoing, and will continue into the indefinite future. They want to hear that a problem is resolved, not that it can never be; by contrast the IHLS proposal sounds more sexy.
Second, the cost of redundancy is not as easy to explain when the redundancies are guaranteeing a system rather than actually being responsible for its real time operation. Non-technical people (including legislators) only truly appreciate that a redundancy is necessary when it's not there.
Non-technical people (including legislators) do not want to hear about the details. They want the present and future benefits of systems, to lay out their requirements to systems designers while not understanding that their requirements are unrealistic, in some cases bordering on fantasy. Non-technical leadership may not want to hear the details, but the devil is in the details.
So I was outside for awhile today banging some rocks together in practice for the apocalypse this sort of thinking inevitably portends for a society reliant on Internet based infrastructure. It seemed more useful than banging a fist on a desk and shouting for an unrealistic infosec model.
[1] Lachman, Dov. Protecting Internet of Things from malicious attacks. Israel's Homeland Security Home. November 12, 2014. http://i-hls.com/2014/11/protecting-iot-malicious-attacks/
Why a Browser Blacklist?
November 11, 2014
I have a browser extension for Firefox and its full service big brother Seamonkey which permits me to block certain URLs or domains. Some reasons that people use browser blacklists are to block
a) pornography or other "objectionable materials",
b) phishing or other sites with bad security reputations, or
c) sites which interfere with productivity, such as kitten videos or online games.
These are fine reasons to block sites, and I understand them. However, I did not begin using a browser blacklist for any of the above reasons.
I began using a blacklist because of the advertising and statistics servers which all too often hang my browser. Web sites track their popularity, determine advertising rates and use geolocation services to serve 'locally relevant advertising'. Yet, at the same time, a news site's specialty is news, and entertainment sites hope to entertain. Neither are experts at serving 'relevant advertising' or generating the statistics they crave. As a result they often use outside services to collect this data and serve advertising for them. It can be annoying, and I won't say that I like it, but I do understand the concept of advertising based revenue.
However, a line is crossed when these sites a) use advertising or statistics services which are so slow to respond that the browser hangs for a notable period of time, and b) so poorly craft their sites that the page hangs until the remote advertising or statistics server responds, however long that may be. Further, these third party advertising and statistics services do not just serve a single site, they provide multiple sites with their services. In theory they should have enough server capacity and bandwidth to provide this function in real time to all of their client sites, so that all client sites load seamlessly, in practice that does not always appear to be so.
In response, I use the following model to determine whether an advertising or statistics or 'other' domain makes it into my blacklist.
- I do not blacklist such a service simply 'because I can' block advertisers or data miners. Life is too short for that.
- I blacklist such a service when it slows down a web site enough to get my attention, AND
- the 'hang time' is long enough for me to become annoyed, bring up an electronic sticky note, note the domain (see graphic)
If these last two elements are true, I feel no more guilt about dropping them into my blacklist than a site owner, advertiser or data miner feels about hanging my browser.
I am currently testing Silent Block 1.2.3 for Seamonkey and Firefox, and it seems to make a notable difference in browser speed. I have not used it sufficiently long to make a meaningful overall assessment of the extension, but it does seem comprehensive and flexible.
As of this writing, domains which have slowed or hung my browser long enough for me to comfortably note them without hurrying and are therefore (in my opinion) worthy of a place in my blacklist are:
Your mileage may vary. Also worth noting is that some third party domains serve actual content, albeit with agonizing slowness, and may in fact provide elements of a client site which you may want to see. Thus a site may load with errors, load incompletely, or appear to be incorrectly formatted if you block third party domains which provide that content. A manual blacklist may be a useful tool, but which domains to add to it is a matter of trial and error. A Google search for a domain is often enough to indicate if it's a data miner, advertiser or actual content provider. In the end, a third party domain has to really slow me down (in my opinion, so this is entirely subjective) and probably more than one time, before I bother to blacklist it.
On the Butlerian Jihad
November 9, 2014
"Once men turned their thinking over to machines in the hope that this would set them free. But that only permitted other men with machines to enslave them." -Dune, 1965
This an interesting perspective on a couple of counts. Dune was a novel from 1965; computers as we know them today did not exist. Despite the lack of modern computers, it was assumed that man would abuse their thinking machines to the detriment of other men. Although Dune does not provide a lot of detail on what was called the Butlerian Jihad in the novel, it is presumed that some sort of social backlash against this abusive control by computers was anticipated by the author.
The year 1965 was before the personal computer, before Bill Gates said that 640K ought to be enough for anyone, before the rise and fall of the Blackberry, before Google stated that anyone with anything that they wished to keep private ought not to be doing that thing. It was before the birth, short life and quiet death of the concept of opt-out, both on a commercial and governmental level. 2001: A Space Odyssey was still a couple of years away, and IBM's Watson, while quick at data regurgitation, but strangely limited where relationships on multiple levels were concerned, was still 50 years in the future. Despite its time, Dune was prescient about where computers would eventually go, as directed by the worst nature of their human operators.
One concept which Dune suggests is that computers will be used to abuse others. Multiple examples are apparent in the information systems of today. Governments now analyze all data generated by their own citizens just on general principles. Spyware and viruses steal information from computers through stealth. Corporations collude to create a social atmosphere for information systems in which all user privacy is compromised and all user data is made available for use or abuse by any group for any purpose regardless of vendor.
Another concept that is suggested even in the limited writing in Dune is that a backlash against the overreach and control by computer systems will come to be necessary. This suggests a concept which has proven true throughout history: that given the option to continually develop an abusive system or practice to one's own benefit, even to the detriment of others, such development will continue to a crisis point. It is ultimately a social or political restriction rather than a logical or technological constraint which eventually limits or adjusts the concept being developed.
There are secondary, but no less valid elements of such a paradigm. This is precisely the sort of relationship a Watson would miss and may not be completely understood by either data vendors or users. When a model becomes mandatory or quasi-mandatory it is an indicator of several things. First, no matter how such a paradigm is portrayed, if it is imposed unilaterally by a vendor or government, it is probably not desired by those on whom it is imposed. Second, if the paradigm is applied equally or mostly equally among all vendors, or by one's government, there is not really an opt-out option to be had. Third, the suggestion that the only way to avoid such an abusive paradigm altogether is to not use technology is disingenuous at best, cynical deception at worst. These elements, taken together, suggest that to use technology one must tacitly accept abuse.
Another interesting element, again, historically demonstrated, is that when a situation reaches a crisis point, the remedy is destructive of both the elements which caused the paradigm to become a crisis and also the underlying structure which would have survived had the paradigm not been pushed too far. A peripheral, but again no less valid element, is that although this historical reality is apparent in hindsight, in the present it is difficult (but not impossible) for the participants to say for certain when things have been pushed too far, and a crisis is imminent.
From World War II until the mid-1970s it was permissible to smoke anywhere. People could and did smoke inside hospital rooms, and Big Tobacco was one of the bluest of blue chip stocks. Times change and paradigms shift, and by the very nature of the concept the outcome will be unpredictable. Today, in certain cities you cannot smoke out of doors in many places, while cars still drive along spitting out orders of magnitude more pollutants than any smoker ever could. All of which is to say that a paradigm shift is not predictable in the details, or, as Michael Chrichton wrote, a paradigm shift is like death: you cannot see how it will work out until you are on the other side.
Certain elements are key indicators of an impending crisis, among them mandatory or quasi-mandatory participation and a strong social or political backlash should be warnings. Also, when the defense of the paradigm does not address the fundamental paradigm flaws precipitating the crisis, the impending crisis is not averted. For example, if a corporation or industry claims a right to free speech or that they have secured a user agreement with an excessive privacy policy in order to continue to violate the privacy of its users, that corporation or industry might be within current legal parameters, but at the same time has failed completely to understand or address the impending crisis. Interestingly, this is exactly the sort of missed opportunity that historians love to analyze in the wake of a crisis.
Certain behaviors and reactions are currently apparent. Corporations hide behind legal theory and lawyers rather than address the fundamental issues which cause customer dissatisfaction with their practices. This indicates awareness of the problem, disinclination to address same and suggests that further development of the same model will continue in a similar direction. Likewise, governments hide behind national security arguments, and like corporations, ignore the underlying concerns while the model develops further.
Ignoring the real underlying concerns of users, a willingness to test the limitations of current models, assumption that the status quo of generalized abuse will evolve and continue indefinitely, and ignorance of history, whether intentional or otherwise will precipitate a crisis in the information age. If history is any example, the pattern will continue, and be pushed beyond the brink until the crisis unfolds. After that crisis, there will be no going back to even a portion of the model which is rejected. Similarly, if history is any example, it will be impossible to make most people in any given present believe this until a crisis is inevitable.
November 14, 2014
I wrote on the Butlerian Jihad a day before U.S. Senator Ted Cruz tweeted on Net Neutrality in what can only be most charitably read as amazingly uninformed about what Net Neutrality actually is. The best response to Senator Cruz and summary explanation of Net Neutrality I have seen comes courtesy of The Oatmeal. See the Senator's tweet and The Oatmeal's response immortalized online (Warning: the language is PG-13 if that offends you).[1]
Net Neutrality in summary is a good thing. An Internet without it is uncomfortable to conceive. The Internet would not collapse without it, and information would still be available, it would just be more difficult to get balanced news, open source software and have reasonable media choices. For example, in the current environment, in which Net Neutrality can be said to exist, the video about Obamacare's economist calling American voters stupid still took several days to make it to center and left of center news media; open source software is normally donor funded and can't compete financially with a Microsoft, Apple or Google; Comcast already has shown with Netflix how choice of media could be restricted and prices raised arbitrarily.
Users would work around a lack of Net Neutrality, some more effectively than others, but most of them would definitely be unhappy about the new, skewed Internet. I am torn about the reality of an internet sans neutrality, and what it means for the Information Age in the long term. On the one hand, I am selfish; I want my balanced news, open source software, and media choices.
On the other hand, the current cyber environment has many problems of which Net Neutrality is but one. Even if Net Neutrality becomes the regulation of the land, there are still these other crucial concerns which the debate over Net Neutrality does not address. There are still concerns with corporate concepts of individual data privacy, national security, ever evolving cybercrime. None of these issues would be addressed by regulation in favor of Net Neutrality.
As I said above, historically humans have a tendency, in fact can be almost guaranteed, to push situations too far when things are going their way until a crisis point is reached. There is no reason the expect that an Internet without Net Neutrality should be any different. If Net Neutrality is defeated, one can expect higher prices, less choice, and countless models to build on and monetize the fact that users can be made to pay more for certain types of content or content from specific vendors. This will in turn result in a vast unhappy user base, lawsuits, uncertainty, and companies paying lip service to consumers but little else. This in turn might push the inevitable cyber crisis that much closer.
And that may be more beneficial in the long run than Net Neutrality.
[1] The Oatmeal. Dear Senator Ted Cruz, I'm going to explain to you how Net Neutrality ACTUALLY works. November 10, 2014. http://theoatmeal.com/blog/net_neutrality
Google and Chrome, Linux and Chromium, Firefox and Flash Player
October 31, 2014
Many Adobe Flash based videos and games will not operate properly in the Firefox browser for Linux any longer. This is due to Adobe's decision to no longer support the Linux operating system with a direct download browser plugin for Adobe Flash player. [1] Instead, Adobe is providing a Flash plugin called Pepper and is making it available only in the Google Chrome browser.
However there is a problem with this approach, and that problem is Google. As many users have noted, Google, for some inexplicable reason decided to not support CentOS/Red Hat/Scientific Linux with their recent version of the Chrome browser. In itself this is not a problem since Linux offers the Chromium browser for the Chrome fans out there, and no doubt the Linux community will eventually develop a Flash plugin of their own for all browsers. However, for the time being, the problems a Linux user must resolve to have a browser with updated Flash capability are these:
- Adobe does not offer a recently updated Flash player browser plugin for Linux, except as packaged in Google Chrome,
- Google has snubbed or ignored several of the major Linux distributions in the latest version of Chrome,
- Google does not currently offer previous versions of Chrome for download.
Here are some simple steps to get the Pepper Flash plugin from Chrome installed to Chromium. (I installed Chromium and the Pepper Flash plugin in CentOS 6 32-bit edition.)
First download and install the Chromium browser. If it is not available in your distribution natively, you can get it at http://people.centos.org/hughesjr/chromium/6/
Next download and save (do NOT install) the latest Google Chrome RPM installer available at http://www.google.com/chrome/
Now open the Google Chrome installer RPM with an archive manager. In other words, do not run the installer with Yum or Package Manager, instead open the RPM to browse its contents.
Next extract the folder /./opt/google/chrome/PepperFlash/ from the Google Chrome installer. It is generally a good idea to keep the folder name for clarity. So, you may save the extracted folder and contents as ~/PepperFlash/ or similar. If things went properly, you now have a folder called ~/PepperFlash/ or similar containing a file called libpepflashplayer.so. You can now close the Google Chrome installer RPM and delete it.
When you installed Chromium, Linux created a launcher shortcut. That shortcut launches Chromium with the command
/usr/bin/chromium-browser %U
Using our example, change that shortcut to read
/usr/bin/chromium-browser --ppapi-flash-path=~/PepperFlash/libpepflashplayer.so %U
Restart Chromium, and your Flash based content including games and videos should now be available.
That's it, you're done.
[1] http://www.adobe.com/devnet/flashplatform/whitepapers/roadmap.html
The New GIGO
September 29, 2014
Information systems originated the concept of garbage in, garbage out with that concept meaning that at the design phase of a computer system proper attention to the accuracy of information as well as the programming logic were necessary. This was not as obvious as it would seem on the surface, but nonetheless unavoidable. The cleanliness of programming logic was not in itself useful if the assumptions made about the data were inaccurate; similarly if the processing of fundamentally accurate data was incorrectly weighted by the programming code, the quality of the resulting information was suspect. Therefore neither the input data nor processing assumptions could be incorrect, and to the degree that they were (garbage in) the results were assumed to be flawed (garbage out).
But the concept of GIGO is in itself limited, and perhaps limited in a crucial area. GIGO makes the assumption that there is an interface singularity; an input phase; a stage at which an information system is tested as accurate with regard to data and processing assumptions, after which, garbage in having been protected against, garbage out will not occur. Information systems project managers know, on the other hand, that it is necessary to update a system more or less constantly, and in fact as soon as one cycle of systems development ends the efficient long term project essentially begins again. However, this is a long term development cycle. It fundamentally conflicts with a culture of the 140 character tweet, the 160 character text message, and the concept of immediate gratification.
This distinction is especially telling when one is attempting to understand and predict human behavior. Human behavior is in fact more like weather prediction than a straightforward, complete analysis. At one time it was assumed that given sufficient computing power to assess the variables, long range accurate weather prediction was possible. In fact, the variables were so many and incompletely understood, both in scope and impact, that weather prediction on the scale anticipated, ultimately failed.
It may be theorized that as human intelligence deteriorates in the face of a culture where a complete communication is contained in 140 or 160 characters, it logically follows that prediction of human thought will become more possible and precise. In fact, with fewer variables (less intelligence on the part of the subject, or ability to focus on minutiae) prediction will likely become more probable. However, the standard of probable makes predicting human behavior ultimately no more accurate than long range weather prediction.
In addition, like weather prediction, once one improperly quantified variable deviates from the prediction, all data based on that variable becomes inaccurate to some degree, further analysis yields not only increasingly inaccurate results, but also further inaccurate input, and the model inevitably skews to the point that the computer model bears no real resemblance to actual results. In other words as garbage in become an inevitability, so does garbage out become equally inevitable.
Having said as much, it must also be noted that complete, accurate predictability of either weather or human behavior may be seen as a philosophical aspiration but that that unattainable aspiration does not render the quasi-accurate prediction meaningless. Even though weather prediction cannot be made accurately into the indefinite future, and many predictions are grossly wrong, a weather forecast is still a generally useful tool, in context, and will full regard to its limitations. Possibly, and in fact probably, MIS or CRM systems which attempt to divine human behavior, motivations and reactions are doomed to hit the same point of inevitable deviation. Such models may be assumed to have the same conceptual degree of accuracy or inaccuracy, value and limits as a weather forecast. Similarly, such models may be seen to be generally useful, but neither all knowing nor completely reliable, and in fact subject to the occasional gross inaccuracy, and requiring constant reassessment.
Therefore, as with weather prediction, listen to the forecast, but like the old timer whose knee twinges when it's going to rain, the twinge may be no less useful a predictor. Thus management instinct may challenge the the best packaged MIS or CRM systems in terms of predictive ability.
To Kill a Mockingbird, Once and Only Once
September 19, 2014
Question: How is a rock and roll song like a great novel?
Answer: When it's a one hit wonder, it's still a hit.
Harper Lee, Bram Stoker, Mary Shelley, Margaret Mitchell. One hit wonders, all. That one time, that one magical time, they got all of the way under the ball and hit it out onto Ashland Avenue. But, when you manage, through brilliance, skill, luck, the beneficence of God or the universe or the Great Spirit, or what you will, to get not a piece of it, or a slice of it, but to get all of the way under the ball that one glorious time and to smack it completely out of the park, what you do not do, what you must not do, is to run out onto Ashland Avenue and try to hit the ball a little further. It's out of the park. It's gone. Na, na, hey, hey, kiss it goodbye.
Harper Lee rarely spoke of Mockingbird. True, she wrote to editors regarding the proposed censorship of Mockingbird by small minded school districts of her time. But her commentary on Mockingbird itself was limited, mainly consisting of the observation that the story was now told, that there was no more of that story to tell, and that any further attempt along that line would be an inferior rehash. In other words, na, na, hey, hey, kiss it goodbye.
It is surprisingly difficult for me to write on this topic, although I feel so strongly about it, simply because I understand the concept so intuitively and completely. It is, to me, so obvious a point as to be pointless to belabor it. It should not need to be said. To Kill a Mockingbird, Dracula, Frankenstein, Gone with the Wind. Their stories were told. They were not told well, they were told surpassing well, they were told superbly. So, na, na, hey, hey, kiss it goodbye.
In an age of sequels, prequels, and we-cannot-think-up-new-ideas-so-how-about-a-rehash-quels, in an age where we do remakes of existing stories rather than demand creative and original content, in an age in which some movie studio genius decides that three or five sequel movies maximizes ROI (and is right in that assessment!), I cannot help but appreciate someone who knows how simply to STOP telling a story when it is finished. To borrow from Pat Conroy, these stories have entered the bright and dazzling city of memory.
In that bright and dazzling city of memory, they will dwell, and there I will visit them occasionally. When I visit them there, they will bring me joy all over again. But their stories are told. Their stories are complete. If those stories expand over time, it is not the stories which have changed, it is I who have changed, and can more fully appreciate their tale.
So to Harper Lee, Bram Stoker, Mary Shelley, Margaret Mitchell, and all of the other one hit wonders who told a tale which changed me, thank you. If that one time was all that you had in you, what does that matter? That one time was enough. Na, na, hey, hey, kiss it goodbye.
May 12, 2014
Reading a news item on California's proposed mandatory kill switch for stolen mobile phones, one link led to another and I ended up at the The Wireless Association website, more commonly known as CTIA. Now, CTIA's site has a lot of good advice on securing your phone. I'm a big fan of password protecting phones, backing up the data, encryption and the like. Those are all good practices, and people should apply them.
CTIA describes itself as "an international nonprofit membership organization that has represented the wireless communications industry since 1984. Membership in the association includes wireless carriers and their suppliers, as well as providers and manufacturers of wireless data services and products." [1] In other words, this is a group which represents the mobile industry, which is in no way the same thing as representing consumers.
CTIA is generally opposed to a universal, irreversible kill switch for mobile devices. Their argument goes that a hacker could disable multiple phones with specially crafted SMS or other attacks, leading to the mobile equivalent of a DDoS attack. In the case of this single scenario, this one approach to mobile phone theft, they are correct. Such a kill switch could and most certainly would be abused. I would also add to hackers, abusive spouses, stalkers and other miscellaneous debased persons who would no doubt abuse such technology on an individualized basis.
In response to such a kill switch, CTIA suggests a kill switch app which would be reversible, so would give a reversible ability to the consumer to prevent their phone from being used on a mobile network. This sounds like a decent compromise on the surface, but it has some problems if it's the only mechanism offered to address the problem. First, it applies to mobile devices. By definition, these devices are moving from place to place with their owners. Yet consumers who would implement their kill switch app in the event of a theft or loss of a device, must have the internet available to invoke it, problematic since their immediate connection to the internet has just been lost or stolen (and in some cases, consumers cannot afford to maintain a second way to get online at all). Additionally, a kill switch app which is reversible suffers the same danger of becoming a tool of hacking and harassment as the irreversible version. Rogue SMS, abusive spouses, stalkers and the like could still use it effectively.
Where I differ from the CTIA's perspective is in the available options. CTIA seems to suggest that there are three major options: consumers using best practices (a great idea) or a universal, irreversible kill switch (which is problematic), or a kill switch app (equally problematic). From the perspective of a group which represents the mobile industry, this may be reasonable. After all, what these practices all have in common is this one simple element: They require almost no cooperation on the part of mobile providers. The effective limit of mobile providers' responsibility is essentially to request that mobile device manufacturers include a specific app in the pre-installed software they load onto their devices. That's about it.
A reality which the CTIA's limited viewpoint ignores is this: Mobile providers have been able to track the multiple serial numbers of a phone which accesses its services for years, for the most part.
Suppose that you were to call your mobile carrier and report your phone stolen, and even to contest the cost of international calls made on that phone during the period when you thought your phone was lost and not actually being used by a thief. The mobile provider will tell you that you are responsible for all charges until the time that you reported the phone stolen, and that they, the mobile provider, can prove the validity of the charges specifically because, if push comes to shove, they can document that a specific handset or handset-and-SIM-card combination made the calls and incurred the disputed charges.
The mobile provider can document these charges because they track the various serial numbers of mobile equipment making calls on their network. So the mobile provider can and will tell you that your handset, identified by serial number (called an IMEI or MEID depending on the technology), and/or your SIM card (again, technology dependent, not all U. S. mobiles use SIM cards) made the contested calls. In most cases that information exists on the providers' records.
An industry database to block reported stolen devices would not be a perfect system. Stolen phones are sometimes resold in other countries. There are even knock off copies of major brand phones from cheap manufacturers which do not have an industry standard serial number programmed into them. So there are cases in which a stolen phone may be used and slip through the cracks in an imperfect system created and maintained by mobile providers. Nobody is claiming perfection for such a system, but any such gaps would be both limited and understandable.
I say that information exists in the providers' records in 'most cases' because by their nature mobile phones move about, roam on a partner's network, and even travel out of the country. There are different levels of age, infrastructure, investment and compatibility of systems among these various networks, and some records will not have all device information documented completely or compatibly.
Therefore an industry database of lost and stolen devices would not be a perfect system. However, if the average thief or opportunist knows that a lost or stolen phone cannot be reactivated short of a lot of luck, technological expertise or the ability to resell a stolen device overseas, incidence of mobile theft would plummet.
A reversible kill switch app designed to disable a stolen device makes the assumption that the lost or stolen device has not been wiped or reprogrammed by the thief or purchaser. Software is ultimately changeable, but a hard coded serial number is much less likely to be changed and is therefore a far more secure tool for device identification. Additionally, leaving the identification of the device in the hands of the people more able to use the minutiae of mobile technology (the providers) is more effective than expecting consumers of varying levels of technological sophistication to be able to disable a phone effectively.
Looking at the various options potentially available, while a reversible kill switch app is, or can be at the consumer's discretion, a valuable addition to a mobile phone, the one most effective common point of control is the common point which incorporates both information and minimum standards of expertise: The mobile phone providers alone have the information and access to create, maintain, and effectively use an equipment serial number database, still the most effective means to block a lost or stolen mobile device.
Now all that is really needed is for mobile providers to step up and be responsible.
[1] CTIA. About Us. Retrieved May, 12, 2014. http://www.ctia.org/about-us.
HOWTO: Automate temperature monitoring in CentOS Linux (a/k/a Build your own Stuxnet Day)
April 29, 2014
Part I - Argument
This last April 25th was the day that I built my own Stuxnet and burned out a power supply. Stuxnet was a virus which in effect caused the hardware (centrifuges) used in the Iranian nuclear program to run so fast or irregularly that they burned out. This was said to be directly responsible for slowing down Iran's nuclear development process. For those with an interest in infosec, this is an interesting concept with potential applications all over the real world.
Power stations have been a special point of contention as many of them are still using legacy equipment with little or no security layer, and still others use the default passwords on control systems which directly control physical equipment. Some people are astounded that this equipment is not systematically attacked, and others believe that China, North Korea or other rouge nation states are simply accumulating an ever expanding database of vulnerable equipment while waiting for the most opportune moment to take down vast amounts of enemy infrastructure at one time.
Part II - Built my own Stuxnet
As for my Stuxnet experience, the other day I was fiddling with the computer and I went into my BOINC settings. I had noted that the BOINC client I run in Linux was only running at 50% efficiency and decided to see what it was capable of. In fairness to the people at Berkeley, they do warn on their settings page that CPU allocation percentage can be reduced to reduce CPU heat. So I noted this, and adjusted the CPU percentage up, but I watched it.
I was thrilled to see that I reached > 2 GFlops, but after considering the potential for overheating, I lowered the percentage again half a day later. Too late. When I next used a physical component (several hours after lowering the CPU speed to previous levels, I opened the CD drive), I burned out the power supply. Bang! Down went the system. One new power supply later, I am back online (and running BOINC at 50% efficiency).
A couple of interesting points occur from this lesson:
- Even though I decided to see what my system was capable of, I also believed that I had built a more robust system than normal (since I have some extra goodies in my Linux box, I also have three extra cooling fans in a gaming configuration),
- I could run the air conditioner 24/7 to offset the extra heat, but that is not practical and the electric bill would go through the roof; capability does not equal practice,
- I was using a civilian system (BOINC). Not something (too) specialized or exotic, and not something that one would think would or could likely render a computer inoperable,
- A civilian system, if hacked, could be used to burn out hundreds or thousands of computers simply by tweaking this setting because not all systems have sensors or software capable of monitoring temperature spikes (along with my new power supply, my Linux box now has temperature sensors and software up and running),
- Even a system which can monitor itself needs to be further specialized to take specific action in the event of certain conditions. Anything less requires human interaction and monitoring,
- This box was offline for the time it took to get a new power supply ordered, shipped and installed. I have other ways of getting online and backups of key files. One hopes that companies which have critical systems have the wherewithal (vendor lists, technicians on call, individuals authorized to go to vendors and purchase parts, leadership hierarchies, transportation plans, failover systems, in other words, common components of risk management) in place for rapid system recovery. From previous experience, I somehow doubt that these plans go far enough or consider all scenarios.
So, in the aftermath of BYOSD, I decided that I wanted my Linux box to have temperature monitoring active and to act without human intervention in the event that system temperature went too high. Which led to:
Part III - HOWTO: Automate temperature monitoring in CentOS Linux
- I started with a a box running CentOS Linux 6, Gnome 2 and Python 2.6 with tkinter installed,
- Install lm_sensors. lm_sensors is the generic sensor monitoring service, a separate GUI to monitor lm_sensor data is required,
- Run sensors-detect.sh as superuser. You can find it at http://www.lm-sensors.org. This script will offer to detect the correct temperature probe(s) in your mobo (that's Geekish for the English word motherboard) and write the correct .conf file,
- Optionally install gkrellm, which has a kind of decent interface for many things including lm_sensors, but runs as an opened application, not a taskbar icon. It's not what I wanted, but it's cute enough to mention,
- Install gnome-applet-sensors. This may not be found in your CentOS packages. If not, search online for gnome-applet-sensors-2.2.7-1.el6.rf.x86_64.rpm or equivalent for your system. With gnome-applet-sensors you will be able to add a monitor to your taskbar for the temperature probe(s) in your mobo.
You should see something like the following on your taskbar now.
Well and good, you can now monitor temperature on your taskbar, and that may be enough for many users. But, if you want Linux to monitor things for you, and take action if things get a little too hot, let's continue:
- Edit /etc/sudoers to give sudo permission to run /sbin/shutdown -- like this (as one possible example):
root ALL=(ALL) ALL
user ALL = NOPASSWD: /sbin/shutdown
- Next, create a Python script to a) pop up a graphic notification that the box is shutting down, b) mail an email warning to the root system mailbox, c) shutdown the system. This script will need a text file for the email and a custom .GIF graphic.
The .GIF just has any message to indicate that the box is shutting down because of high temps. Mine looks like this:
The text file is in this format:
Subject: Warning! This computer was shut down due to high temperature!
The python script for this process acted as required automatically.
Please monitor temperature.
The Python script looks like this:
import sys # allows for direct OS command execution
import os
import time # necessary to make program slow down if desired
from Tkinter import *
import tkMessageBox
import tkColorChooser
import base64
import urllib
root = Tk() # The base window, a canvas.
root.title('Shutdown Imminent!')
# This inserts a graphic/logo
# .gif format req'd, jpg and png not valid data types
URL = "/home/user/scripts/hitemp.gif"
link = urllib.urlopen(URL)
raw_data = link.read()
next = base64.encodestring(raw_data)
image = PhotoImage(data=next)
label = Label (image = image)
mailcommand = "sendmail email@example.com < /home/user/scripts/hitemp.txt&"
shutdowncommand = "sudo shutdown -h -v +1&" # causes shutdown in 1 minute, -v optional
root.mainloop() # Done creating main window
- Now use the command python /home/user/scripts/hitemp.py as an alarm in your gnome-applet-sensors preferences:
If you prefer gkrellm as a monitor, it has a similar launch-on-condition option:
If the alarm level temperature is reached, the Python script executes: notifies the system mailbox, pops the graphic, and shuts the box down a minute later. When you turn on your Linux box later, you'll have email to the effect that it was shut down because things got too toasty inside the case, and the computer protected itself.
Wallpaper, Screensavers and Webcams, oh my!
March 6, 2014
Short post today, if for no other reason than that the story is not so exciting, but the result is nice. I use a screensaver which has a module which will pull random images from the web into a collage. That's it, that's largely all that that module does. I was looking at the option of limiting that module to a webcam shot of Paris, London, New York, wherever there is a public webcam which has a good view. For technical reasons, that came be impractical at this time, so I changed around the code I had written and came up with something different, but still nice, and actually closer to what I was picturing in any case.
Submitted for your approval, a program called Paper Shaper. It randomly pulls a JPG image from a user maintained list of webcams, OR from your offline wallpaper gallery, OR randomly from one or the other and saves it to a specific file and location. Since the file name and location do not change, it can be selected for wallpaper and updates automatically. Simple enough. Here are the very basic technical specs.
[1] These applications should be
available with most if not all Linux distros.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
And here it
is: Download Paper Shaper from
Last thing... As always, enjoy!
Share this on witter or acebook.
A Tale of Two Printers (including Tricks and Counter Tricks in Windows 7)
September 19, 2013
My printer is one of those old dinosaurs which will probably still be operational at the turn of the next century. For my part, since I note that this printer was made in the days when plastic was not so thinly poured that planned obsolescence was implicitly understood, I will be hanging onto this printer just as long as I can do so. Getting it running was an interesting exercise.
The printer model is an Apple Laser Writer Select 360. Apple did not really 'make' this printer. In fact, except for an extra Apple specific port, this printer is actually an HP LaserJet III under the hood. Since I have a Linux box and a Windows 7 laptop, I did not specifically seek out an Apple printer. In fact, I took it in exchange for setting up a router for a rather attractive lady as a sort of Lady and the Tramp rolling-of-the-meatball gesture (which ended up going exactly nowhere). In fairness, I was told that the laser printer was broken, and by a near miracle I actually managed to repair it (a lot of people assume that if you know computers, you also can repair printers, monitors, phone lines, cable boxes, car stereos, etc., but as a rule I cannot repair laser printers, and don't even want to try).
Thus did I end up with an Apple printer which was sometimes not an Apple printer to run with Linux and Windows 7. Linux offers a driver for the Apple Laser Writer Select, and it set up quickly and easily. As usual, the joker in this deck was Windows 7. Windows XP included a Laser Writer Select driver, but Microsoft, in its never ending collusion to get people to buy new hardware, did not include a Laser Writer Select driver in Windows 7, nor did they include an HP LaserJet III driver by default. However, there is an extended Microsoft printer driver database which does include the Laserjet III. Here's how to access that extended driver database.
This was done in Windows 7 Professional Edition. The process includes the sort of insane backwards thinking that only Microsoft seems to manage consistently. When installing the printer, as noted, there was no driver for the Laser Writer Select nor for the LaserJet III. Making sure that the computer is online with the internet, install the wrong printer. Literally. I picked an HP printer just for the sake of making the concept as sane as such a thing could be, but since the LaserJet III was not available, I installed an HP LaserJet Something. Crazy as it seems, go through the entire installation process to install the wrong printer. Do not bother trying to print a test page, since you know that you have the wrong printer installed and the test page will hang forever then fail. Also, in my case, since I would be sharing the printer over a network, I also made sure that the Linux print sharing network was online.
Once the wrong printer was installed, under the printer's properties option, Microsoft let me change the driver, including offering an extended online driver database not offered in the original installation process. The extended database takes about five minutes to download, but includes an HP LaserJet III driver. I could then change the driver from the incorrect driver previously installed and bring the printer online with the network.
So I'm running an Apple printer on a Linux box and installed to a Windows 7 laptop as a networked LaserJet III, installed incorrectly then partially backed out. Simple, really.
Proper Thinking about Computer Privacy Models
July 3, 2013
When considering computer privacy in light of recent leaks regarding NSA data collection practices, there is some sloppy thinking going on, even among computer experts who should know better. In a human sense, this sloppiness is understandable. People want to 'solve' a problem. The NSA is monitoring online use, people object to it, a privacy solution is implemented, problem solved.
There are a couple of benefits to this reasoning. First, people for the most part have other things going on in their lives. Birthdays, graduations, college exams, etc. They are too busy and otherwise disinclined to play 'Behind the Iron Curtain' with the NSA on a semi permanent basis. They want the privacy problem SOLVED once and for all. There is also the mentality of so-called 'computer experts'. They want to provide the solution that people want. Therein lies their expertise. They do not want to admit (or do not know) that the issue of computer privacy is never truly 'solved'.
A good example are the huge number of articles that have come out after the news of NSA monitoring broke. The Internet has been flooded with articles examining and explaining the use of PGP, TOR, OTR, whole disk encryption, etc. Implement these, goes the reasoning, and you are all set. Computer users who for the most part did not know that these products were available, can download and install them and 'solve' the privacy question once and for all.
When I wrote an article proposing a different way of looking at privacy and why the privacy question may not be so easily 'solved' it made some people very nervous. If I made any error at all, it was to assume that computer experts would understand the privacy model I was suggesting implicitly, and not require an explanation explicitly. Therefore I present the following explicit examination of a more broad and probably more realistic definition of computer privacy.
I want to begin in the Middle Ages. An armored knight on an armored horse was a formidable weapon. Armored against attack and capable of attacking, to a knight an unarmed foot soldier was vulnerable to attack, while the knight was relatively speaking invulnerable. Therefore to the degree that you had armored knights on your side in a Middle Ages battle you had an advantage that could tip the balance in war. Let's call this model Middle Ages Battle Version 1.0.
Military strategists thought about the knight and saw a formidable armored opponent on an armored horse, and saw an effective weapon to be sure, but with some curious vulnerabilities. The knight was relatively uncoordinated, physically heavy and limited in reach. A knight could not maneuver rapidly; designed to confront other knights or sweep down on unarmored foot soldiers, such maneuverability was not necessary. A knight was heavy, knight, horse and armor for both would be in excess of 1000 pounds. A knight had to be close to his enemy to strike, and being large and heavy and uncoordinated, a more maneuverable or more distant weapon defeated the knight's strengths.
So strategies were evolved to take advantage of these perceived weaknesses. If a battle could be led to or staged in a muddy field, the heavy knight could become bogged down and a new weapon, designed expressly for the purpose could be used to unseat the heavy and unwieldy knight, who could not maneuver on foot as effectively. An archer might not be able to penetrate armor at a distance, but likewise could be placed at such a distance that the knight could not reach the archers, who could decimate the opponent's foot soldiers in relative safety. The knight while unquestionably deadly, could be defeated with an evolved strategy. And that is the critical point: Effectiveness of mounted knights became unimportant once applied methodologies were in place to defeat them.
In the Hundred Years War, the English used careful observation and thinking about the nature of mounted knights to come up with these attack vectors, while the French tended to follow the old model. To apply this to computer privacy, the French believed that they had 'solved' the issue and the English evolved their thinking in the face of the old model. There are a couple of examples of evolutionary thinking about computer privacy which demonstrate the truth of this appproach.
One example comes from computer hackers. One black hat hacker writes explicitly that "As attacks become more and more sophisticated, so do hardware and software prevention mechanisms." In the more legitimate realm, project managers call this model the System Development Life Cycle or SDLC. One depiction of the SDLC is as a process which ends in a Maintenance phase. That is, patching and fixing vulnerabilities, etc, with the major work essentially finished. Another depiction of the SDLC is as a loop, that is to say that the Maintenance phase is more than patching and fixing, it is also gathering information regarding needs, use, effectiveness and security of the current system version with an eye to development of the next system version. In other words, in this model the System Development Life Cycle never really ends.
As we saw in the Hundred Years War, the English applied this looped model of the SDLC very effectively. They did not send out knights against knights; they employed pikes and archers and tried to direct battles to muddy fields. Similarly, there is no reason whatever to assume that the NSA is ignorant of strategy. No reason except the spurious comfort that the privacy question can be 'solved' once and for all.
Let's consider this model of the SDLC in relation to the question of privacy. I wrote elsewhere in this blog about a theoretical attack that should compromise PGP on many computer systems and open those systems which install PGP to more in depth monitoring by the NSA. I developed the theory that this would be a reasonable attack on the assumption that the NSA applies the SDLC and strategic thinking in their planning. That in the face of current privacy models which they could not breach, strategic thinking would require them to find a different approach.
Since the function of the NSA is to monitor and not to destroy an opponent, the assumption of a long term and evolving strategy applies. It is not reasonable to think that the NSA, in the face of PGP, TOR, OTR, etc., simply throw up their hands and admit defeat. They do the same thing that has been validated in military history, academia and the hacking community. They employ goal oriented strategic thinking in the model of the SDLC and find a way to change the status quo. However, they would be delighted to think that nobody believes that.
Now that we have looked at motivation thus far, we can continue on and look at a couple of options as regards methods with the next section, PGP in a Security State.
Thoughts on the Snowden/NSA Affair
June 27, 2013
Fundamental questions are raised by the Edward Snowden affair. By this time, sufficient coverage regarding the Snowden affair is available in so many venues that I will not recount the story here, except where specific details impact an examination of some of the deeper questions this affair raises.
Did Snowden commit a crime? Speaking without legal training, it appears so. He did admit that he took a job with Booz Allen Hamilton in order to obtain national security related information which he then took without authorization.[1] It therefore seems he engaged in conspiracy and espionage. So much for the opening act. Now let's look at motives, justification and relationships, not of Snowden, who is after all only in a supporting role in this drama, but of the American government and its citizenry.
I normally object strongly to the modern tendency to excuse any act because someone else does it as well. That tends to indicate that existing in a culture of corruption somehow morally justifies the next corrupt act; it's a ridiculous and irresponsible position. However, a comparison may be useful when the same party is involved in more than one comparable act.
In 1774 the British Parliament passed the Administration of Justice Act. This law essentially said that at the colonial governor's discretion any British official charged with murder or any other capital offense could have a change of venue up to and including transfer of the trial to Great Britain.[2] This obviously selective interpretation of law was so offensive that it came to be called one of the Intolerable Acts in the American colonies. Yet another complaint about the Administration of Justice Act was that it was passed without consent of the governed. Should law not be measured by the same standards when the victimized government also selectively interprets it?
Today, American national security law is interpreted in the same manner that the British government applied in the Administration of Justice Act. At the President's discretion, which is to say, by secret executive order, the constitutional concept of privacy is selectively interpreted as or if it conflicts with executive branch privilege. The executive branch in a security state (which speaks of the Bush and Obama administrations, lest this seem partisan) has invoked executive privilege to short circuit the legal process regarding a variety of issues.[3] The President himself has said that there has to be a compromise between privacy and security[4], but has unfortunately mentioned this philosophy after the fact and after the degree of compromise has already been decided and implemented. [Another question this raises, specifically as regards the Snowden affair and national security, concerns the possibility of a fair trial for Snowden. Given the executive branch's track record of invoking state secrets privilege to the detriment of the U.S. Constitution, it is probable that any and every argument Snowden might make regarding justification would be impermissible at trial. Therefore it becomes more understandable that Snowden might be disinclined to return to the United States in the current national security environment. This is a subtlety that current press coverage of the affair does not seem inclined to consider.]
There is also the consideration of representative law. If current law is passed by representatives of the people, is that not different from the environment of the Intolerable Acts? Unfortunately it may not turn out to be the case. Granted that the legislature passed the FISA Act, that could be said to be an act representative of the people. However, when the law is extended by secret executive order and enforced nonetheless, then what 'law' is exactly becomes both unknown and not a product of the legislature. Neither this process nor the result is conducive to trust.
There are a handful of other issues to address here, for two reasons. The first reason is that I have not seen some of these perspectives anywhere else on the Internet. Nonetheless these are arguments that I suspect many people would consider. The second reason stems from the first reason: the person expressing this opinion is not without resources or effectiveness. I am speaking about a hacker known online as the th3j35t3r.
th3j35t3r has, if reputation is to be believed, hacked jihadist websites the world over, outed Anonymous members and feuded with the Westboro Baptist Church over its take on the United States military. If this is true, then we accept that th3j35t3r is technologically capable and resourceful. th3j35t3r styles himself a patriot hacker, and therefore has much to say about both the technical and national security implications of the Snowden affair.[5]
th3j35t3r mentions Carnivore and Echelon (earlier government spying programs) and the capability of commercial smartphones to monitor users. Using th3j35t3r's own source, "[i]n 2001, the Temporary Committee on the ECHELON Interception System recommended to the European Parliament that citizens of member states routinely use cryptography in their communications to protect their privacy, because economic espionage with ECHELON has been conducted by the US intelligence agencies." (The original European report referenced in the Wikipedia article seems to be referring to intercepted fax and telephone communications as specifically regards U.S. interception efforts.)[6] However, the fact that some governments spy on citizens or that companies spy on customers in no way logically or morally justifies any one specific effort nor expansion of the practice.
th3j35t3r claims to be "aware of 40 foiled plots in just one year" as a result of programs like PRISM. The public is aware of one official who gave the 'least untruthful' answer in response to congressional scrutiny on the matter.[7] (The British said it better. In response to the Peter Wright/Spycatcher affair, a British minister admitted that he had been "economical with the truth".) This raises questions of trust and quality of life. Trust comes into play if, as has been suggested, government has used the Internal Revenue Service to harass conservatives or has read journalists' mail. Quality of life issues include whether it is better to accept a physical security risk, or risk of political abuse of an all encompassing intelligence network in conjunction with ever more sophisticated data mining processes.
Last, th3j35t3r as a patriotic hacker, above all else supports the military, law enforcement and intelligence communities "who do the same job no matter who is sitting in the big seat." Unfortunately, we do not know that, it is illegal to tell us that, and evidence tends to suggest that the job includes at least some degree of specialized work at the request of political or commercial interests. In this context, there are long accepted issues with the doctrine of 'just following orders'. First, we have no moral superiority in the face of hacking by other countries. Second, the examples of Nazi Germany and My Lai serve as historical guides that a soldier has some duty as regards determining whether following certain orders has a moral component. In the case of an American, this could be said to include consideration of whether certain orders are blatantly unconstitutional.
This is not to say that military espionage has no place. We definitely want to know how many planes, missiles, tanks (and computers) others have and how they are arrayed against us. We want to look to vulnerabilities in our infrastructure and to that of potential enemies, either physical or cyber. The problem comes in when or if a government feels that its own citizenry might be the enemy and targets it wholesale with its considerable espionage apparatus.
It would be a shame if the political realm can turn this affair into the Edward Snowden Show and deflect discussion of the important issues. For whatever reason it happened, it has happened. How we deal with Snowden isn't actually too important in the grand scheme of things. How we as a society deal with the issues that his actions raises is critical.
[1] Lam, Lana. "Snowden sought Booz Allen job to gather evidence on NSA surveillance." South China Morning Post. June 25, 2013. http://www.scmp.com/news/hong-kong/article/1268209/snowden-sought-booz-allen-job-gather-evidence-nsa-surveillance
[2] Avalon Project. "Great Britain : Parliament - The Administration of Justice Act; May 20, 1774." Yale Law School, Lillian Goldman Law Library. http://avalon.law.yale.edu/18th_century/admin_of_justice_act.asp
[3] Liptak, Adam. "Obama Administration Weighs in on State Secrets, Raising Concern on the Left." New York Times. August 3, 2009. http://www.nytimes.com/2009/08/04/us/politics/04bar.html?ref=statesecretsprivilege
[4] Spetalnick, Matt and Holland, Steve. "Obama defends surveillance effort as 'trade-off' for security." Reuters. June 7, 2013. http://www.reuters.com/article/2013/06/07/us-usa-security-records-idUSBRE9560VA20130607
[5] th3j35t3r. "So…About This Snowden Affair." Jester's Court Official Blog. June 26, 2013. http://jesterscourt.cc/2013/06/26/so-about-this-snowden-affair/
[6] Schmid, Gerhard . "On the existence of a global system for the interception of private and commercial communications (ECHELON interception system)." European Parliament: Temporary Committee on the ECHELON Interception System. July 11, 2001. http://www.europarl.europa.eu/sides/getDoc.do?pubRef=-//EP//NONSGML+REPORT+A5-2001-0264+0+DOC+PDF+V0//EN&language=EN
[7] NBC News Press Releases. "NBC News exclusive: Transcript of Andrea Mitchell's interview with Director of National Intelligence James Clapper." NBC News. June 9, 2013. http://www.nbcumv.com/mediavillage/networks/nbcnews/pressreleases?pr=contents/press-releases/2013/06/09/nbcnewsexclusiv1370799482417.xml
Philosophy of Technology (Kickstarter project)
June 26, 2013
I just started my first project at Kickstarter. If you are not familiar with the concept, Kickstarter is a crowdfunding platform. In a nutshell, that means that hundreds or thousands of people pledge any amount that they can afford toward a worthwhile project, and cumulatively enough money is hopefully found to fund that project. Since funding comes from multiple sources, no one sponsor has to be found who can and will fund the entire project alone. There are many good projects at Kickstarter and some really strange and funny ones (Chthulu books for children seem to be rather better represented than one might expect). Crowdfunding is a way to get money for a project when traditional means might not be a workable option. For example...
My project (or proposed project, as it remains until or unless funded) is to write a book on the philosophy of technology. This is an important project as it provides a basis for examining the decisions we make about technology, privacy, quality of content, and more (the scope being on some level related to the degree of funding). With examination hopefully comes understanding and better decisions about why we do what we do.
I have heard of Kickstarter for years but I have never taken the plunge and joined before. It's a little scary if truth be told, but exciting at the same time. It's a little scary simply because it is a new direction for me. It's exciting because suddenly it actually might be possible to tackle my project having adequate funding to do so. I could never go to a bank and say "I want money to research, write and publish a work of philosophy." Since such a thing would be so so pie-in-the-sky impossible, it only made sense to think about it abstractly, a daydream that we know cannot happen. It still might not happen, but imagine if it does.
With Kickstarter, I can at least pursue a dream, and it just possibly could happen. Imagine the awesomeness of suddenly being able to just do this project that really should be done, even though no commercial venture would ever fund it in their wildest dreams. I am not the only person out there with dreams, and whether my project gets funded or not, Kickstarter is definitely something I will follow from now on. There are always interesting projects and people to sponsor. The link to my Kickstarter project is here:
PGP in a Security State
June 18, 2013
PGP, or Pretty Good Privacy, encryption software for email has existed since 1991. From the time that PGP was first released, it has been under a variety of different forms of attack from an American government generally opposed to any communications that they could not read.[1] The Washington Post recently examined why, if so effective, people do not more readily adopt encryption like PGP.[2] Difficulty of use and immediacy were key concerns cited. Security of the PGP model was not seen as a cause for concern.
Since 1991, computing power has increased significantly. The 128 bit encryption standard used in online commerce has been broken in an academic setting. PGP encryption, offering the option to generate keys well in excess of a thousand bits if desired, would seem to be an as yet uncompromised method for secure email communication. That model may not be the case any longer.
For this examination we will look at several factors which may work, or be made to work in conjunction to together compromise PGP encryption. For our examination we will flesh out the requirements of a theoretical virus to handle the technical aspects of PGP compromise. We will examine the necessary properties of that virus, and determine whether the requirements to create and distribute such a virus are workable within the bounds of current technology and social and corporate access enjoyed by intelligence agencies, based on what is currently publicly known.
Cracking a PGP key in excess of a thousand bits would be a resource intensive task. It would require considerable computer power and even if a regularly reliable process, would tend to interfere with currency, in other words, it would presumably take some time to crack every encrypted communication netted using brute force techniques. Yet the focus on the security of PGP keys can also be a weakness of PGP. If your keys are secure, goes the wisdom, so are your communications. Given the focus on security of keys, let's assume that users' keys would tend to be secured, and bypass the need for possession of keys entirely, while also avoiding the resource requirements of the brute force approach to cracking encrypted communications.
PGP keys must be stored on a desktop or server associated with the user. PGP keys are identifiable by certain structural characteristics. Our properly tailored virus should scan a computer for the presence of PGP keys, wait until a piece of text is about to be encrypted or decrypted and copy that unencrypted text in the computer's buffer immediately before encryption or immediately after decryption. In other words, if the user feels it is sufficiently important to encrypt or decrypt a piece of text, the virus feels that text is sufficiently interesting to make a copy as well. This approach produces the result that the user expects to see since the PGP software itself operates normally with our theoretical virus operating externally to it, while completely bypassing any concern with possession of, or access to, PGP private keys.
Our theoretical virus developer should also infect every installer of PGP on every server that he can reach, anywhere in the world. We want to do this so that every user who installs PGP also activates our theoretical virus at the same time. We also want to do this in order to automatically put every computer which installs PGP into the NSA's surveillance net for any other use of the target computer. Several technical and legal characteristics of computer systems facilitate this attack vector.
Software installers on public servers are overall less hardened; they are made to be found and accessed. If Chinese military hackers can regularly access more hardened private servers the world over, access to relatively less secured and publicly accessible servers should be even less difficult. The best publicly available information is that the NSA has a working relationship with major software vendors which provides them with data on operating system and security software vulnerabilities unavailable to the public.[3] So our theoretical virus would more easily stay out of commercial virus scanner definition databases. Even considering that there are foreign based anti-virus providers to whom this relationship may not apply, the Stuxnet virus remained unidentified for a long time even without the cooperation of software security vendors.
If this seems technologically daunting thus far, it's not. The Stuxnet virus operated by identifying specific characteristics of the machines it was able to access, including selecting target machines by geographic region. The Stuxnet virus was both modular and an American creation, which further fulfills requirements of a dual purpose virus and ease of development. If, as believed, Microsoft and Apple are sharing information about operating system vulnerabilities with the NSA, this further facilitates development and distribution of our theoretical virus. Therefore our virus can not only capture PGP activity by the user, it also advises the virus maker of PGP activation on that local machine who can then can further fine tune aggressiveness or search criteia based on the location of the user.
Using Linux may not increase security against our virus. While our virus may not be able to effectively operate on a Linux system, end to end encryption requires the effective use of encryption software on the sending and receiving ends. In the scenario of our customized virus, if Alice runs a security conscious configuration of the Linux OS and encrypts securely, but Bob does not use Linux and is infected by our theoretical virus, the security of the communication is compromised at the decryption point in the overall transaction regardless of the security of Alice. Since in excess of 90% of the world uses an operating system other than Linux on the desktop, this is a significant attack vector. Therefore, not only may PGP be able to be compromised, it may be able to be compromised in such a fashion that a false sense of security is provided, even among users with good security practices.
In theory it would still be possible to use PGP securely even given the existence of our theoretical virus. You could use Alice for offline encryption/decryption. Alice never goes online. Bob does go online for transmission/reception. Now, how do you get the encrypted/decrypted content to/from Bob without connecting to Alice? Bluetooth, flash drives (Stuxnet's specialty) can be compromised. Connecting Alice to Bob over the network, in fact any electronic means, could potentially compromise Alice. You would have to do this:
Encrypt on Alice. Print a hard copy of the encrypt. Scan the hard copy into Bob with OCR software for transmission. For received encrypts, the same in reverse: Print a hard copy on Bob, scan onto Alice with OCR software for decryption. Of course, to prevent contamination completely, that means two scanners and printers as well.
While this might work, in practice most Americans are not likely to go to that length for security; the scenario starts to feel a bit like living in a Tom Clancy novel. Additionally, one of the key characteristics of the American model of online communications is immediacy. Intricate security processes take time to execute, which runs contrary to the concept of immediacy. Also, as above, this approach would only be effective assuming best practices on the part of all parties to the communication.
Similar models for security are suggested by more knowledgeable computer users which make use of virtual machines and other exotic configurations. As with the more extreme scenario, problems include lack of immediacy, and technical knowledge beyond that of the average end user. In addition, even knowledgeable computer experts will admit that they do not know the abilities of nation state actors, and cannot therefore, certify the security of the virtual machine model, whole disk encryption, etc.
It should nonetheless be considered that anyone involved in a criminal, terrorist, or other similar enterprise may well feel that security is more important then immediacy. Granted such reasoning, a nation state attack targeting encryption may produce false positives both in the sense that it unnecessarily captures more mundane communications while at the same time missing the most crucial ones. Thus the false sense of security regarding the security or vulnerability of PGP may apply to nation state actors as well as end users.
[1] Zimmermann, Philip. "PGP Source Code and Internals". MIT Press. 1995. http://www.philzimmermann.com/EN/essays/index.html
[2] Lee, Timothy B. "NSA-proof encryption exists. Why doesn't anyone use it?" Washington Post. June 14, 2013. http://www.washingtonpost.com/blogs/wonkblog/wp/2013/06/14/nsa-proof-encryption-exists-why-doesnt-anyone-use-it/
[3] Wainwright, Oliver. "Prism: the PowerPoint presentation so ugly it was meant to stay secret." Guardian, UK. June 12, 2013. http://www.guardian.co.uk/artanddesign/architecture-design-blog/2013/jun/12/prism-nsa-powerpoint-graphic-design
Repetitive Motion Injuries and the Computer Mouse
June 9, 2013
Repetitive motion
injuries are the product of any activity which is
repeated on a long term basis over an extended period
of time. Examples were first documented among
meat processing workers who performed the same slicing
motions over and over hundreds or thousands of times
per day, and in fact can result from any motion
repeated over an extended period of time. This
includes the use of a computer mouse over a long
period of time. I am not a doctor, and the
following should not in any way be construed as
medical advice, but I can say from personal experience
that the following provided noticeable results when I
tried it.
I had one
non-negotiable rule as I began. I would not go
into the computer settings and program the mouse for
lefty button use. Like with a can opener or
playing cards, the reality is this: the majority of
computers are programmed righty and either one does
not have the systems level access to program the mouse
on a work or public computer, or it is discourteous to
reprogram the righty mouse on a friend's
computer. Instead, went my reasoning, since I
could not mouse lefty at that point anyway, and since
mousing protocol is largely social programming of the
user in any case, it would be no more difficult to
learn to mouse lefty with a righty programmed mouse
than if I did reprogram the buttons, and, without
reprogramming the buttons, I was in a position to
quickly and easily switch off on any computer anywhere
and at any time. (For this reasoning I drew on the
experiences of a couple of other lefty mousers I have
known who have reprogrammed their buttons for left
handed use, and it causes them, and people who use
their computers, no end of frustration.)
This Text and That Link (tweet2html.py)
May 25, 2013
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
Share this on witter or acebook.
Deputy Level
Heads Will Roll - The Obama IRS
Let's examine a couple of actual examples from workers in one data and communications services company specifically with regard to the difference between what appears to be the policy and processes and what actually happens at the operational level. Capital P Policy certainly existed at this company, it was comprised of many hundreds of pages covering everything from billing to technical support. Since a Policy exists, therefore, goes the wisdom, there is no room for ambiguity or error. That assumption is a serious over-simplification, as a couple of quick examples should demonstrate.
In the first example,
this company's Policy stated that technicians were not
permitted to use any external resources or information
not in the official technical wiki to resolve
technical issues. Yet at the same time this
company had a new product line which was poorly
documented and on which the technical support staff
was even more poorly trained. One day a
consultant showed up from the home office and talked
at length to three specific technicians at one
site. These techs weren't in trouble, but the
home office really wanted to know how they had a 97%
resolution rate on the new product line while the rest
of the site averaged slightly under 30%.
The answer was that the in house wiki was not
sufficient or at least not well enough organized to
resolve tech support issues in most cases, so these
three technicians brought knowledge to the table
beyond the wiki, only using the wiki as one of various
resources, technically a violation of Policy since it
could result in inconsistency in the technical support
experience, whatever that means.
However, it is worth
noting that the company did not have an official
channel to suggest changes or a culture which
encouraged low level technicians to suggest changes or
to do anything except put in their workday and collect
their paychecks. There was no technical wiki
revisions point of contact, there was no way of
recording documentation and forwarding it for
analysis, and on site management was not
technologically knowledgeable. Last, in a
stringently numbers oriented production environment,
there was no time for supplemental activities such as
writing revised documentation proposals.
In the second
example, Policy said that referring customers to
outside vendors rather than resolving customer issues
directly was inefficient, frustrating to customers,
exorbitantly expensive to the company, was to be
avoided in all but the most extreme cases, and could
impact a technician's metrics, pay and their continued
employment. However as implied above the in
house technical wiki was somewhat lacking. A
handful of the top technicians addressed this
conflicting Policy by using a closely guarded process
to access a hole in the corporate firewall, through
which outside vendor websites and wikis could be
accessed. Of course, since this was prohibited,
it could not be referenced as a resource. Since
it could not be referenced as a resource, it could not
be suggested for assessment as a practical solution to
improving resolution numbers. (It should also be
noted that this scenario left a hole open in the
corporate firewall for at least a year after its
discovery, which helped the technicians even as it
left the company itself more vulnerable.)
So, in light of
certain realities in a certain type of production
let's consider the
IRS scandal from a worker's perspective. As a
low level IRS worker, you may:
Kids and Personal Responsi-woo-hoo
(on Reverse Social Darwinism)