Come check out Mobile Computing Revealed, hosted tonight in Bellevue by Seattle Technical Forum. Event details and registration are here. I’ll be presenting Mobile Health Claims, including two of the demos that we did this year for RSA.
We (JW Secure) used cloud computing as the foundation for all four of the “live” security demos we showed at our booth at RSA last week:
- Mobile Health Claims: the backend consists of a consumer banking web service and a custom security token service (STS), both of which are running on Windows Azure. The frontend consists of a mobile checking app for Android and Windows Phone. Device identity is tightly bound to user identity, and only devices with up to date firmware and operating system versions are allowed to perform high-value transactions such as fund transfer.
- TPM Health Claims: the backend consists of a Windows web server running in Amazon EC2. The frontend is a web page with an ActiveX control. The control allows the user to sign into online checking only from a host that meets a certain security bar (anti-malware signatures are up to date, firewall is on, etc.). Health data is submitted in the form of SAML claims, signed by a private key protected by the client Trusted Platform Module (TPM).
- Secure Boot and Remote Attestation: the backend consists of a line of business (LOB) web service and an STS, both in Azure. The web service implements a purchase order submission and approval workflow and interfaces with a front-end Metro-style GUI. Purchase orders can only be approved if the host TPM is trusted and the boot log is clean.
See a recurring theme? LOB services deployed to the cloud. This is the new state of the art when it comes to Rapid Application Development (RAD). If you’re an LOB development shop and you’re not taking advantage of the latest toolkits (Ruby on Rails, ASP.NET MVC) and cloud application fabrics (Heroku, Azure), then you’re probably not deploying new business capabilities as quickly as you could be.
Microsoft gave a sneak peek at some of the cool upcoming security features of Windows 8 at the recent BUILD conference. One of the notable areas of innovation is building on the Trusted Platform Module, or TPM, which is a tamper-resistant security chip that has been built into many PC motherboards for the past several years (or, more recently, integrated as firmware into system-on-a-chip architectures).
Of the TPM-related features, one of my favorites is “measured boot”. It’s introduced in this video from BUILD, Building hardware-based security with a TPM.
If you install the Win 8 developer preview build on a TPM-capable machine (for example, I’m using a 64-bit HP ProBook 6360b), the measured boot feature is on by default. You’ll need a third party tool to view the data, or you can build your own from an SDK sample Microsoft has provided. Back to that in a second, though.
What does measured boot do? In short, it computes a cryptographic hash of the operating system boot loader and boot drivers. This is critical for blocking malware such as rootkits, which load early in the boot cycle in order to effectively become invisible to antivirus software which loads much later.
Once the cryptographic loader and driver hashes have been computed, and the system is booted, a log file which lists those hashes can be generated. This is where things get interesting. The hash of the boot loader is protected by the TPM itself. Further, the TPM can be provisioned with a cryptographic key which can be used to sign a measured boot log file. Thus, if you trust the TPM key, and you trust that a user can’t muck with the TPM itself (generally considered to be very hard, but not impossible), then you can establish a hardware-rooted trust chain for all of the drivers in the log file.
Measured boot has limitations. For one thing, it only protects early-boot drivers (including an optional Early-Load Anti-Malware, ELAM, driver which is expected to be provided by antivirus vendors – see the “Secured boot architecture” slide in the above presentation). For software higher in the stack, including most device drivers and anything loaded in user mode (e.g. browser plug-ins), you’re trusting your antivirus software to protect you. Second, the measurement part of measured boot only happens at boot time (see the “TPM basics” slide in the above presentation). After that, until the next reboot, you’re trusting your antivirus software to do its job.
The ELAM/anti-malware opportunity is cool, but where measured boot really shines is in the context of remote attestation, another TPM-based feature discussed at BUILD. Remote attestation is just a fancy, albeit descriptive name for the process of taking the signed log file described above and sending it off-box for verification. The ramifications of that ability may not be immediately obvious, but they’re significant, since the main weak point of authentication schemes today is, “How do we really know that the client PC is acting on behalf of the user?”
In current authentication schemes, a server has no way of knowing whether a rootkit has been installed on a remote client. Why should it care? Compromised client computers are more likely to be used in fraudulent transactions. With remote attestation, a trusted TPM, and a trusted antimalware/ELAM solution in place, the server can with higher assurance authorize the user to perform high-value transactions (transfer money, get a driver’s license, etc).
So much for the fine print; let’s see measured boot in action. The easiest way to do so is to download and build the Platform Crypto Provider sample from MSDN. It builds pcptool.exe, which offers a command-line interface for interacting not only with measured boot, but also with other TPM-related features discussed in the BUILD presentation. Unfortunately, building pcptool.exe seems to require the full Developer Preview version of Visual Studio 11, rather than just the Express version.
Once pcptool.exe is built, you can retrieve the binary version of the measured boot log data as follows:
>PCPTool.exe GetLog c:\temp\bootlog.out
Then, to convert the binary into XML:
>PCPTool.exe DecodeLog c:\temp\bootlog.out > c:\temp\bootlog-decoded.txt
Finally, it’s instructive to examine the contents of the XML log file.
<ImageSize Size=”8″>1286144<!– 0x000000000013a000 –></ImageSize>
… <AuthoritySHA1Thumbprint Size=”20″>
<!– …………….XW.. –>
The above log entry shows the hash and signer information for the Windows boot loader. Again, combined with remote attestation, this information can be evaluated by a remote server to establish cryptographically that early system boot components have not been modified.
Measured boot is a powerful security feature of Windows 8, and we’re looking forward to integrating it into customer protocols and applications.
Computer hackers based in Iran are believed to have hacked Dutch certificate authority company DigiNotar with the intent of using compromised certificates to read other people’s Gmail.
Although the incident was discovered in late August, the details just keep getting better. (And, as an aside, you really cannot make stuff like this up. I’m sure the Hollywood version will add a love triangle between the hackers and the spies, but other than that I’d say it’s good to go.) The attack has had broad impact, affecting most deployed versions of Windows and Firefox, not to mention the Dutch government.
Notably, users accessing Gmail via the latest version of Chrome were already protected. Way to go, Google!
Finally, recall Stuxnet, the internet worm from mid-2010 which is believed to have been specifically designed to attack nuclear processing equipment in Iran.
Check out some fine print here, though. The issue is that the public programming model for WP7 is relatively restrictive, compared to Android for example. So there’s little AVG can do in terms of real security checks. Microsoft only lets the mobile carriers – i.e. companies who sign big expensive licensing deals – to have access to the full capabilities of the phone operating system. The rest of the world, including companies like AVG, can only produce simple app store applications such as web-based games.
This is limiting, particularly if you’re a software company trying to do something other than gaming. Antivirus is a great example of that. Plus, even though WP7 is a consumer play, employers these days have little choice but to support employee-supplied devices, and hence there’s a gap in enterprise capability. That is, many business-related connectivity and productivity scenarios require features above and beyond those currently available in WP7 in order to meet a typical bar for IT security, compliance, and manageability.
There’s a flip side to Microsoft’s strategy there, though. For one thing, simple web-based games, and other utility applications with similar capabilities, are the 80% case when it comes to what consumers are expecting to find on the app store. And there’s no debating that it’s consumers who are making the purchasing decisions here, not employers. So, in theory, by focusing on that 80% case, Microsoft can better compete. Marketplace diversity is good.
It has also been argued that this reduced programmability is actually good for consumer security, since it means that app store apps are less likely to be able to damage the phone, steal data from other apps, etc. However, that argument is misleading, since an app store app can just as easily prompt the user for a password, credit card number, SSN, or whatever, and then do anything with it. Phone apps can also load any website, so all of the usual web-based attacks are possible.
A rich and well supported extensibility model has historically been the competitive strong suit of Microsoft’s platforms. The current WP7 strategy notwithstanding, I don’t think that aspect of the market has changed. Android itself is proof of that. I eagerly await these capabilities in the next releases of Windows Phone.
New article, by the above title, published in Microsoft TechNet Magazine.
The biggest complaint voiced by IT managers today when it comes to cloud computing is loss of control. Take our advice, though: proactivity is the key for retaining control. Don’t wait for cloud computing to run you over; get it front of it by learning how to create controls and guidelines which allow your organization to realize significant cost savings while protecting business-critical data and resources. Achieve control!
Microsoft Research is offering an SDK (Beta) for the Kinect, the motion and audio camera which launched last year for the Xbox. The SDK has some pretty cool features even for those who are just getting started: you can track the body motions of up to two people, identify which person is talking, and even hook up to a speech-to-text SDK to figure out what they’re saying.
I can only imagine what sort of industrial applications – not to mention new gaming experiences – people are going to come up with using this. How about a system which can actually detect nervous fidgeting in the security line at the airport? Or maybe computer-driven patient rehabilitation?
JW Secure has just released our first Beta version of SecurEntity™, an open-source .NET data protection library for EntityFramework. When combined with an on-premise web server and SQL Azure, SecurEntity offers a killer combination:
- Rapid application development, maintainability, and supportability benefits of EntityFramework
- Easy provisioning, scale-up, scale-down, and OpEx pricing benefits of SQL Azure
- Government-class data encryption and tamper resistance, backed by our world-class security development expertise
The benefits of using SecurEntity include:
- Easy integration with EntityFramework “code first” based applications. Although a schema change is required, the code change is minimal and completely isolated from business logic.
- String-type SQL columns are encrypted and never leave the application server in plaintext form. This exceeds the capability of the Cell-Level Encryption feature of MS SQL, which processes plaintext data within the DBMS.
- All columns, regardless of data type, are automatically protected by a “row wide” cryptographic integrity check.
- Compatibility with MVC 3, EF 4, SQL Azure, and SQL Server 2008 R2 (hosted on-premise or on Amazon EC2).
- Permissive open-source licensing, in addition to a closed-source library option. Premium support is also available.
Source code is availabe here.
Hot new article carrying the above title has just been published on the Microsoft Security TechCenter here. Written by Tom Jones and me, the synopsis is this: as we move to the cloud, IT professionals mustn’t throw out the baby (= traditional security management technologies such as Active Directory) with the bathwater (= old capex infrastructure). Want to stay relevant? Don’t forget everything you’ve learned. Instead, adapt as you adopt.
The piece is part of the Microsoft Trustworthy Computing team’s May 2011 Security Newsletter.