Here's random stuff related to what I am working on or interested in during my work day or in my personal life. I'm a nerd. The content will be nerdy.
Wednesday, November 9, 2016
Thursday, May 15, 2014
Thank You Satya Nadella, for Saving the Internet... for a while
That said, MS decided to release the big Internet Explorer patch and include XP. This is a particularly big bug and would be devastating to the web, if left unpatched.
I am curious how those who are paying millions for XP support feel about the rest of us getting this for free.
Thank you Satya Nadella for saving the web. I look forward to the next XP security update. I know you will do the right thing when the next big bug comes.
Friday, February 21, 2014
Tech Job Postings are Funny! Post 1 Amazon.com
I've decided to start posting some of these with commentary. The one that finally made this decision for me is from Amazon.com . A copy can be found here. I've added bold for emphasis.
The almost certainly illegal and super ageist posting title is what caught my eye: "Systems Engineer - AWS Simple Storage Service (S3) -University Candidate: May 2014 Grads Only".
It was the wonderful nonsequitur requirements for job experience that really hooked me.
- Experience running and maintaining a 24x7 Internet-oriented production environment, preferably across multiple data centers, involving (preferably) at least hundreds of machines.
- Demonstrable expertise around specifying, designing, and/or implementing system health, performance monitoring tools, and software management tools for 24x7 environments.
- Experience with very large distributed systems such as multi-terabyte storage farms, and/or horizontally scaled request processing fleets
Sunday, February 9, 2014
Will Satya Nadella Save the Internet on April 8th 2014?
If you have worked for Microsoft, or any huge company, this will be no surprise; Microsoft has many groups working against each other or at least spending dollars in one department that could save or make millions in another. It’s not easy to align everything in a large company, especially when it has been run by the worst CEO in America for so long. Microsoft is regularly in the news “shutting down botnets” and doing other great pro-bono work to make the web safer. I applaud this!
Yet, in the core operating systems orgs, they have let Windows XP, still the second most used desktop OS, lag behind in security and will stop issuing patches in April of 2014. There is nothing wrong with XP, even the MS page on its retirement makes it clear that they don’t have to support it, by law, so they won’t. There are no claims related to it not being good or safe. I read it as, “There is no money in it for us, so we will spend the resources in a money making area”. If you add no context, this is a totally rational business decision. I won’t pretend to have all the data on the financial and opportunity costs of patching XP and enhancing it. I have no idea how much money it costs Microsoft to fund the groups that take down botnets. I also don’t know who the users of XP are, but I expect they are those who can’t afford to upgrade. This may be due to the cost of the OS, lack of skills to safely upgrade, or in the case of businesses, economy of scale making it very expensive.
Figure 1 All OSs on the Web

Figure 2 Windows OS Breakdown

Here is what I do know. MS will continue to support Server 2003 until July 2015. XP and Server 2003 are mostly built on the same code base, so patching XP isn’t a complete diversion from their business. If MS stops patching the OS that is nearly 30% of the desktop market, XP will become the most researched and exploited OS on the web in fairly short order. The MS team that is taking down botnets will sure have their hands full then. Maybe MS thinks that the fear of no patches will finally get users to upgrade. In the case of the enterprise, I would think so. In the case of small businesses and individuals, I expect this to be a boon for little IT shops; removing viruses and selling cheap fixes like host based firewalls, more anti-virus, anti-malware, and Advanced Persistent Controls.
Considering that Microsoft has zero legal or contractual obligations to improve or maintain XP, perhaps they can write off the cost of not turning the internet into a XP infested filthy virus zone. OK, intentional hyperbole aside, I vehemently urge Mr. Nadella to throw his predecessor under the bus and take up the cause of keeping XP healthy. This doesn’t just mean patching; it means a few basic enhancements that are needed.
OK, when I say, “there is nothing wrong with XP”, I know, it doesn’t have Address Space Layout Randomization and User Account Control, and many other benefits of post-XP OSs. Let’s not confuse the “need” for the next best OS for an actual need to get off a dangerous OS. I guess XP will be that OS soon, if Mr. Nadella doesn’t reconsider.
My in-depth focus on security is mainly around applied cryptography and identity management, so I welcome other suggestions in the comments. Below is my wish list for XP enhancements.
Upgrade to schannel. XP does not support Server Name Indication and TLS 1.2 with AES cipher suites. There are some patches for 2003 that add AES cipher suites, but with TLS 1.1 and below are vulnerable to BEAST attacks, as the added cipher suites use CBC mode. Make all these changes part of critical updates, not hotfixes. No one applies hotfixes unless they know about the issue.
Force stronger NTLM settings as part of a Critical Update, rather than simply issuing advisories. Nobody reads the advisories; they apply patches and cross their fingers.
Saturday, January 11, 2014
Godaddy Asks People NOT TO USE ITS HOSTED EMAIL and May Not Even Use It Themselves

-->
Monday, May 20, 2013
Demystifying Certificate Requirements in Mutual TLS
Understanding Certificates and SSL/TLS long ago became an IT fundamental.
Somehow, the industry seems to have not noticed. In my quest to take fewer calls on this stuff, here is my attempt to help demystify all the certificates involved in Client SSL/Mutual TLS. I seem to be spending 2+ hours a day on the phone talking web and server admins through this stuff.
The reason I am doing this is because Google failed me. There are a lot of docs that focus on all the other aspects of the SSL/TLS negotiation, but none of them focuses on the certificates and what they do for us. Microsoft has one of the better papers on SSL/TLS, but there is a lot lacking around the certificates and the SSL/TLS handshakes are overly summarized.
Here is the handshake that MS shows us.

While this may be a four message handshake, there are a few different conversations taking place, simultaneously, in the handshake. The conversations and their certificate requirements are more easily understood when they are pulled out of the stick context of the message format.
I will say that I am doing a bit of summarizing. SSL/TLS has four major components: authentication, message integrity, key negotiation and encryption. This post focuses heavily on the authentication aspect. I am lumping SSL and TLS together as the basic functions of the negotiations are the same, only the implementation details vary a bit. I am also leaving out a bit about session key generation.
I break the handshake down into 4 different conversations.
A. Hellos
a. The client tells the server that it wants to go secure and offers the suite of ciphers it supports.
b. The server selects a cipher from the list.
c. No certificates are involved here.
B. Server Certificate presentations
a. The server sends over the SSL certificate AND the chain.
b. The server must have the private key for the SSL certificate.
c. If the chain, (CA hierarchy) is not sent, negotiation MUST fail.
d. The client SHOULD perform full cert and chain validation against these certs, making sure they chain to a Root CA that is trusted explicitly by the client.
C. Key Exchanges
a. The client and server exchange data that allows the negotiation of session encryption keys.
b. If EDH is used, then the RSA/DSS key is used to block MITM of the key negotiation.
c. If RSA key negotiation is used, the client encrypts its initial key material with the public key on the server SSL certificates, assuming cert and chain validation succeeded.
D. Client Certificate presentations
a. The server issues a Certificate Request. This lists the key types allowed on the certificate and a list of Distinguished Names (DNs). These DNs are used as a hint to help the client determine which of its many possible certificates is the “right” one.
b. The client selects a certificate, for which it MUST have the private key, and sends the certificate to the server.
c. The client sends data that is signed using its private key, proving it holds the certificate in question.
d. The server checks the signature. If the signature passes, the server may be configured to pass/fail the client based on data in the certificate. Often the certificate serial number or Subject DN must match a static list, or the certificate must be one that is on file. The decision to pass/fail the client cert is not specified in any RFC.

More below
Certificates Needed
|
|
Client |
Server |
|
A - Hellos |
None |
None |
|
B - Server Certificate |
Root CA Cert for Trust |
SSL Cert and Chain to send |
|
C - Key Exchange |
Public key from Server Cert |
Private key for Server Cert |
|
D - Client Auth |
Client Cert and Private key |
Client cert for explicit trust or CA cert to implicit trust. Cert values MAY be checked. |
Client and Server Perspective
One often forgotten part of this is that when there are two parties, the role of client and server may change. For instance, let's say A pushes a full DB copy every night to B, and then B pulls deltas hourly during the day. In this scheme, at night, B is the server, but during the day, B is the client. This means that both parties need a cert and a server cert with chain, and they need to know how to implicitly or explicitly trust other clients, and they need Root CA certs so they can trust the server cert when they are the client.
Summary
Take the time to understand how your connections are established and it is fairly easy to figure out which certificates are used when. When it comes to figuring out what is wrong, you can usually figure out the issue by where the handshake fails. The handshake failures usually can only be seen via packet captures.
Friday, March 29, 2013
Hello IT Person, Welcome to the Security Organization
This is a post that is long overdue. The IT industry went through a revolution and most people in IT missed it and are still missing it.
If you are in any form of IT related job, you are in the information security field.
You may say, “No, I’m just an IT Project Manager (analyst, whatever), security is another team”. You are wrong and your career is heading towards a cliff.
It only takes a tiny bit of Googling to realize that everyone is getting hacked. Even the biggies, RSA, Microsoft, Facebook, Symantec, and Apple aren’t immune. There are too many actors with too many motivations. If it is connected to the web, there is either money in hacking it, or it can be used as a foothold to hack for money. If it’s connected to the web, there is probably someone with a social or political agenda that makes it a target and if not, it is a platform for the hacktivists to leverage. On top of the myriad of highly skilled and motivated attackers, there are thousands off wannabe hackers simply looking for low hanging fruit to test their skills or to get a thrill. Even if you don’t have a penny to your name, your computing power is a commodity if it can be added to a botnet. Hopefully, you already know that it’s a given that everyone is a target. If you still need persuading on this point--don’t worry, there are plenty of Wal-Marts that need greeters. Get your app in early. (That’s “app” as in “application”, which is a paper form you will fill out with a pen. You won’t need LinkedIn for this.—The Editor)
So, why is security your job? Every day (week if you are a slacker?) you make decisions that impact security. It doesn’t matter if you specialize in a niche, like UI or UX; or something broad, like program or project management. If you are working with data in any way, that data has value to your organization. There will certainly be negative impact if the data is compromised or corrupted. Even if you run or maintain a static website in which the content is public and can easily be restored if lost, you don’t want your system to be a foothold into your important systems or take part in a DDoS attack.
Your Role
Backup Operators – Don’t lose the data and don’t lose those unencrypted backup files. This role should be a no brainer. This role has Confidentiality, Integrity, and Availability components.
Systems Administrators – Once again, this is a no brainer. SAs have all the access themselves and they configure access to ALL of your data. Remember, all of your applications sit on a host that an SA “owns”.
DBAs and DBOs – Please, for the love of all that is good, you guys MUST know you have to protect that data. Do you??
Project and Program Managers – I know lumping you guys onto one line will get me all sorts of hate mail. You guys decide things like what use cases exist, for what users, accessing what data. You decide whether to engage formal security teams for assistance. You decide to cut product or project scope, and everyone knows security is the first to get cut.
Developers – You guys are the worst. Yeah, I’m saying it. Inventing your own “cryptography”, passwords in log files, backdoors, assuming users will use your apps the way you want them to, and on and on. Seriously devs, get your acts together.
Network Engineers – I think this is the only role that most folks actually think of as a security role. In fact, this role is the least interesting in terms of security roles. Read those manuals and change those default passwords. And stop using self-signed certs. Can you really not remember how a MITM attack works long enough to say to a manager: “Wait, we need a real cert on that appliance admin portal page”? You know what, if you can’t explain to a manager what a MITM attack is and why your choice of cert matters, you’re part of the problem.
Your day to day job may be focused on something else, but it is only a matter of time until IT folks start getting fired for massively bad security lapses. If it is on the OWASP Top 10 or the SANS Top 25 and you don’t know a bit about it, you may want to pick up that Wal-Mart job app. No one is asking you to figure everything out about security, but you need to at least understand some basics and keep your eyes out. If you do run a system, you’d better become a security expert in the context of that system.