<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Security Musings &#187; Tutorial Tuesday</title>
	<atom:link href="http://securitymusings.com/article/category/tutorialtuesday/feed" rel="self" type="application/rss+xml" />
	<link>http://securitymusings.com</link>
	<description>Rants and raves from information security professionals</description>
	<lastBuildDate>Mon, 07 May 2012 21:31:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>What good documentation looks like</title>
		<link>http://securitymusings.com/article/3194/what-good-documentation-looks-like</link>
		<comments>http://securitymusings.com/article/3194/what-good-documentation-looks-like#comments</comments>
		<pubDate>Tue, 27 Mar 2012 22:29:35 +0000</pubDate>
		<dc:creator>Benjamin Hartley</dc:creator>
				<category><![CDATA[rants]]></category>
		<category><![CDATA[Tutorial Tuesday]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://securitymusings.com/?p=3194</guid>
		<description><![CDATA[A few years back, I was working as a tech writer for a company which made medical software. We were trying to get an important certification that we’d need to sell our product. And a crucial part of that was good documentation: we had to show how it worked, what it did, how it tracked [...]]]></description>
			<content:encoded><![CDATA[<p>A few years back, I was working as a tech writer for a company which made medical software. We were trying to get an important certification that we’d need to sell our product. And a crucial part of that was good documentation: we had to show how it worked, what it did, how it tracked everything, how it was secure, etc. Well, that’s what you have a tech writer for, so all is good.</p>
<p>It’s important to know, I didn’t have any existing documentation to work with. There was a wiki which had the developers’ notes in it, but that’s it. Nothing by way of formal hand-it-to-an-outside-entity documentation.</p>
<p>Okay, that’s not too abnormal; tech writing is expensive, and many companies don’t bother with it until an auditor is breathing down their neck. Hardly <em>ideal</em>, but to be expected, and I did have time. So, I set to it.</p>
<p>Since there wasn’t any existing documentation to re-do, I based my organization around the expectations set by the certification. And, a good week before the deadline, I turned in the completed documentation, all 100-something pages of it.</p>
<p>And that’s when disaster struck. The auditors decided they wanted the documentation in a completely different format – they weren’t going to read our documentation, no. They wanted us to fill out a questionnaire. The questionnaire was very comprehensive, encompassing exactly as much material as my documentation covered. And I had less than a week to complete it. I told my boss “No problem.” And I gave him the completed questionnaire in 3 days.</p>
<p><strong><span id="more-3194"></span></strong>How? How could I turn an entire manual into a completed questionnaire in 3 days? If you’re thinking “An awful lot of copy and paste” you’re on the right track, but you haven’t fired up the engine yet.</p>
<p>Before I started the project, I had sought and gained permission to try something different. I decided to try Topic-Based Authoring. With topic-based authoring, rather than create complete documents I create small topic “nuggets” (I prefer to think of them as Lego bricks, but the technical term is modules) which consist of one or two standalone paragraphs on a single topic. I acquired some inexpensive software that integrated between Word and SharePoint, and after loading my nuggets into SharePoint I could assemble them in any form I desired, leaving me basically to write the introduction and conclusion to a given document and select what information should be included. Since I had determined what nuggets I would write based on the certification requirements, I knew I already had all the information they needed. So all I had to do was insert them into the questionnaire, check to make sure the formatting was correct and that each question was fully answered – or if not, edit the nugget in the database NOT in the document itself – and sing the praises of topic-based authoring.</p>
<p>Needless to say, I love topic-based authoring. It’s not just about being able to restructure documents quickly. It’s also about being able to rapidly change information. While I was working on the documentation, development was still ongoing. I was able to change single nuggets of information to reflect changes in the system, rather than going in and changing each document. And because I wasn’t sitting and staring at a given document for days or weeks, it reduced burnout. As an added bonus, I was even able to get some of the subject matter experts (SMEs, e.g. developers and system administrators) to write up about specific components, saving time and effort.</p>
<p>Topic-based authoring can be hard to implement. It’s not for everyone: the software can be expensive, the cost of changing documentation methods can be immense, and reusability may be very low. But whatever your documentation method is, you should think about being able to do what I did. Your documentation should always offer the following:</p>
<p>It should be <strong>accurate</strong>. I can’t say how many times I’ve found outdated documentation that simply doesn’t reflect current systems or processes. As an auditor, that tells me the documentation isn’t maintained, and that means I can’t trust any of it. That means my work will take longer, and ultimately that will cost you money.</p>
<p>It should be <strong>flexible</strong>. You never know when you’ll need to change formats, add data, or meet some other unexpected demand. A company’s ability to meet new demands is one of its most important skills.</p>
<p>It should be <strong>fast</strong>. “I’ll get back to you in a month” hasn’t been an acceptable answer since the 80s. No matter what it is, you’re going to have to generate new documentation at a pace that would have been considered simply impossible, regardless of resources, before modern computing.</p>
<p>It should be <strong>consistent</strong>. All of your documentation should reflect the same information. Anything less will reduce confidence and engender confusion. And that’s never a good thing, no matter who reads it.</p>
<p>Good documentation practices are life and death to any company. It’s always tempting to wait until you need documentation before hiring a tech writer. Let me resolve that quandary: you need good documentation Right Now. Because if you wait until you realize you need it, it could well be too late.</p>
<div class="tweetthis" style="text-align:left;"><p> <a class="tt" href="http://twitter.com/intent/tweet?text=What+good+documentation+looks+like+http%3A%2F%2Fsecuritymusings.com%2F%3Fp%3D3194" title="Post to Twitter"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter2.png" alt="Post to Twitter" /></a> <a class="tt" href="http://www.facebook.com/share.php?u=http://securitymusings.com/article/3194/what-good-documentation-looks-like&amp;t=What+good+documentation+looks+like" title="Post to Facebook"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://securitymusings.com/article/3194/what-good-documentation-looks-like/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using a Mac with VMWare vSphere (ESXi) 5</title>
		<link>http://securitymusings.com/article/3110/using-a-mac-with-vmware-vsphere-esxi-5</link>
		<comments>http://securitymusings.com/article/3110/using-a-mac-with-vmware-vsphere-esxi-5#comments</comments>
		<pubDate>Tue, 29 Nov 2011 21:07:14 +0000</pubDate>
		<dc:creator>Peter Hesse</dc:creator>
				<category><![CDATA[article]]></category>
		<category><![CDATA[general]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Tutorial Tuesday]]></category>
		<category><![CDATA[macintosh]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[vmware]]></category>
		<category><![CDATA[vmware macintosh client]]></category>
		<category><![CDATA[vsphere]]></category>
		<category><![CDATA[vsphere macintosh client]]></category>

		<guid isPermaLink="false">http://securitymusings.com/?p=3110</guid>
		<description><![CDATA[One of the biggest complaints I’ve had with VMWare vSphere and VMWare ESX/ESXi over the last few years is that managing my virtual machines from my Mac computer was a hassle. The VMWare management utilities are all Windows-only, and even the few web-based tools either do not work or are extremely limited from a Mac. While [...]]]></description>
			<content:encoded><![CDATA[<p>One of the biggest complaints I’ve had with VMWare vSphere and VMWare ESX/ESXi over the last few years is that managing my virtual machines from my Mac computer was a hassle. The VMWare management utilities are all Windows-only, and even the few web-based tools either do not work or are extremely limited from a Mac. While it isn’t perfect yet, VMWare vSphere 5 has made it so you can actually do just about anything you need to using a Macintosh computer; you just need to go through a few hurdles.</p>
<p>To enable the administration of your various virtual machines, storage, clusters, datacenters, and the like, you can now use the vSphere 5 Web Client. Before it can be used, it must be authorized; the best instructions I found for this are <a href="http://www.virtualizationadmin.com/articles-tutorials/vmware-esx-and-vsphere-articles/general/getting-starting-vsphere-5-web-client.html">here</a>. Follow the steps in the “<span style="color: #000080;">Authorizing the vSphere Web Client (Server)</span>” section. This is a one-time configuration necessary to enable the vSphere Web Client.</p>
<p>Once authenticated, you will see something that looks very similar to the Windows-based vSphere Client running in your browser.</p>
<p><a href="http://securitymusings.com/wp-content/uploads/2011/11/Screen-shot-2011-11-29-at-3.11.24-PM.png"><img class="aligncenter size-medium wp-image-3111" title="vSphere Web Client" src="http://securitymusings.com/wp-content/uploads/2011/11/Screen-shot-2011-11-29-at-3.11.24-PM-300x168.png" alt="vSphere Web Client" width="300" height="168" /></a></p>
<p>This will satisfy most of your management needs, but it leaves out an all-important capability; the ability to remotely view the console of the systems. There&#8217;s a Console button, but it won&#8217;t work on a Mac. Once you’ve installed a machine, you can typically enable some sort of remote desktop capability in the operating system, but what do you do before then? If you’re running Windows, you use the vSphere client and open a console, but on a Mac, you’re out of luck. Right? Wrong.</p>
<p>There is an under-documented feature of vSphere that allows the capability of opening up VNC connections from the host directly to the console of the virtual machine. To perform this, we first have to enable incoming connections to your vSphere server, as vSphere 5 has an integrated firewall. This is the one step you will actually need to use the Windows vSphere Client; everything else can be done using the Web Client. This step needs to be executed once for each vSphere or ESXi host running virtual machines you want to access using VNC.</p>
<p><span style="text-decoration: underline;">In the Windows vSphere client</span>, choose the host you wish to enable VNC connections on. Choose the <strong>Configuration</strong> tab and on the left choose <strong>Security Profile</strong>. On the right, next to <strong>Firewall</strong> click <strong>Properties…</strong> As VMWare does not include VNC as a protocol, it is not listed as an available option. However the ports allowed by the <strong>gdbserver</strong> protocol will suit our purposes. Check the box next to <strong>gdbserver</strong>. (<em>It is also wise to highlight the <strong>gdbserver</strong> line and click the <strong>Firewall…</strong> button and lock down where you will allow these VNC connections to take place from; in ours I restricted this to our intranet.</em>) Click <strong>OK</strong> and you’ve now enabled the incoming ports to be used for VNC.</p>
<p>Finally, enabling VNC access to the console machines is a matter of setting advanced configuration parameters on each virtual machine, which can only be done when the virtual machine is off. To open up the advanced configuration:</p>
<ul>
<li><span style="text-decoration: underline;">In the Windows vSphere client</span>, choose the machine, click <strong>Edit Settings…</strong>, click the <strong>Options</strong> tab, choose <strong>Advanced-&gt;General</strong> on the left, and click <strong>Configuration Parameters…</strong> on the right.</li>
<li><span style="text-decoration: underline;">In the Web client</span>, choose the machine, click Edit Settings… under the <strong>VM Hardware</strong> section, click <strong>VM Options</strong>, click <strong>Advanced</strong>, and click <strong>Edit Configuration…</strong>.</li>
</ul>
<p>In both cases, you now want to add three rows by clicking the <strong>Add Row</strong> button.</p>
<table style="background-color: #ffffcc; border: 1px solid black;">
<tr>
<td style="padding: 10px; border: 1px solid black;"><strong>Name</strong></td>
<td style="padding: 10px; border: 1px solid black;"><strong>Value</strong></td>
</tr>
<tr>
<td style="font-family: monospace; padding: 10px; border: 1px solid black;">RemoteDisplay.vnc.enabled</td>
<td style="font-family: monospace; padding: 10px; border: 1px solid black;">true</td>
</tr>
<tr>
<td style="font-family: monospace; padding: 10px; border: 1px solid black;">RemoteDisplay.vnc.port</td>
<td style="padding: 10px; border: 1px solid black;"><em>5900-5999 are the “standard” ports, choose one different from other VMs on the host.</em></td>
</tr>
<tr>
<td style="font-family: monospace; padding: 10px; border: 1px solid black;">RemoteDisplay.vnc.password</td>
<td style="padding: 10px; border: 1px solid black;"><em>the VNC password used to access the VNC session; only the first 8 characters are encrypted using the VNC protocol, and weakly at that. Don&#8217;t rely on this for security.</em></td>
</tr>
</table>
<p>Once you’ve added these rows and click OK, you can now use a VNC client to connect to the console of the machine. Power up the machine, and then using Finder on the Mac, choose Go-&gt;Connect to Server (or hit Command-K), and type the following:</p>
<p><strong>vnc://</strong><span style="color: #0000ff;"><em>&lt;ip or name of esxi host&gt;</em></span><strong>:</strong><span style="color: #800080;"><em>&lt;port chosen in configuration settings&gt;</em></span><strong>/</strong></p>
<p>and click <strong>Connect</strong>. You will be prompted for your password, and depending on your client/version of OSX you may receive a warning about how keystroke encryption is not enabled. Accept the warning, and you will see the console of the virtual machine! (And note, since Macs don’t already use the three-finger salute, you can safely just press Ctrl-Alt-Del in that VNC-window to log into Windows systems!)</p>
<p>Once you’ve installed the operating system of choice, and enabled that OS’ remote desktop capability, you may want to disable this VNC access. Just shut down the VM, go back into the advanced options and change the <span style="font-family: monospace;">RemoteDisplay.vnc.enabled</span> setting to <span style="font-family: monospace;">false</span>.</p>
<p>Hopefully at some point soon, VMWare will enable a true web-based console application (which doesn’t require host-specific plugins to be installed) to go with their nice new web client. Until then, this is a reasonable workaround for accessing virtual machines using a Mac.</p>
<div class="tweetthis" style="text-align:left;"><p> <a class="tt" href="http://twitter.com/intent/tweet?text=Using+a+Mac+with+VMWare+vSphere+%28ESXi%29+5+http%3A%2F%2Fsecuritymusings.com%2F%3Fp%3D3110" title="Post to Twitter"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter2.png" alt="Post to Twitter" /></a> <a class="tt" href="http://www.facebook.com/share.php?u=http://securitymusings.com/article/3110/using-a-mac-with-vmware-vsphere-esxi-5&amp;t=Using+a+Mac+with+VMWare+vSphere+%28ESXi%29+5" title="Post to Facebook"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://securitymusings.com/article/3110/using-a-mac-with-vmware-vsphere-esxi-5/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Snow Leopard to Lion upgrade and Filevault</title>
		<link>http://securitymusings.com/article/3095/snow-leopard-to-lion-upgrade-and-filevault</link>
		<comments>http://securitymusings.com/article/3095/snow-leopard-to-lion-upgrade-and-filevault#comments</comments>
		<pubDate>Tue, 01 Nov 2011 17:51:34 +0000</pubDate>
		<dc:creator>Laura Raderman</dc:creator>
				<category><![CDATA[Tutorial Tuesday]]></category>

		<guid isPermaLink="false">http://securitymusings.com/?p=3095</guid>
		<description><![CDATA[I recently acquired a new iMac at work to replace the 4yr old one I was using. The new iMac came with Lion on it, and since I had upgraded to Lion on my work machine, I went ahead and upgraded all of my home machines as well. My Macbook Air is my primary &#8220;workstation [...]]]></description>
			<content:encoded><![CDATA[<p>I recently acquired a new iMac at work to replace the 4yr old one I was using.  The new iMac came with Lion on it, and since I had upgraded to Lion on my work machine, I went ahead and upgraded all of my home machines as well.  My Macbook Air is my primary &#8220;workstation away from work&#8221;, and keeps client data.  Because it does, I use FileVault on it.  Under Snow Leopard, that only encrypted my home directory.  Under Lion, FileVault now encrypts the entire drive, not just $HOME.  However, if you upgrade, you have to explicitly convert your machine to use the new FileVault.  And you need a lot of disk space to do it&#8230;</p>
<p>I have a 250 GB SSD drive &#8211; not exactly the biggest drive &#8211; and I have 11GB of that left.  I wasn&#8217;t able to upgrade my machine to the new FileVault &#8211; until I moved the majority of my data to another computer and practically wiped my drive. I&#8217;m sure I&#8217;m not the only one in this situation &#8211; and generally, backups are not encrypted &#8211; Time Machine under Snow Leopard wasn&#8217;t, and most other backup options for home use are not either.  So you have sensitive data backed up off an encrypted drive, just to &#8220;upgrade&#8221; to a different disk encryption technology.  If I hadn&#8217;t upgraded, it wouldn&#8217;t have been a problem.  If I was content to just leave $HOME encrypted, it wouldn&#8217;t have been a problem.  But I wanted &#8220;bleeding edge&#8221;.  Luckily, I have an iMac at work to off-load all of the files to &#8211; encrypted with Lion&#8217;s FileVault from the start.</p>
<div class="tweetthis" style="text-align:left;"><p> <a class="tt" href="http://twitter.com/intent/tweet?text=Snow+Leopard+to+Lion+upgrade+and+Filevault+http%3A%2F%2Fsecuritymusings.com%2F%3Fp%3D3095" title="Post to Twitter"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter2.png" alt="Post to Twitter" /></a> <a class="tt" href="http://www.facebook.com/share.php?u=http://securitymusings.com/article/3095/snow-leopard-to-lion-upgrade-and-filevault&amp;t=Snow+Leopard+to+Lion+upgrade+and+Filevault" title="Post to Facebook"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://securitymusings.com/article/3095/snow-leopard-to-lion-upgrade-and-filevault/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cross-Site Scripting, Without the Scripting&#8230; or the Site</title>
		<link>http://securitymusings.com/article/3033/cross-site-scripting-without-the-scripting-or-the-site</link>
		<comments>http://securitymusings.com/article/3033/cross-site-scripting-without-the-scripting-or-the-site#comments</comments>
		<pubDate>Wed, 21 Sep 2011 21:34:06 +0000</pubDate>
		<dc:creator>Joey Tyson</dc:creator>
				<category><![CDATA[hacking]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Tutorial Tuesday]]></category>
		<category><![CDATA[Vulnerability]]></category>
		<category><![CDATA[xss]]></category>
		<category><![CDATA[yesimadaylate]]></category>

		<guid isPermaLink="false">http://securitymusings.com/?p=3033</guid>
		<description><![CDATA[I often talk about cross-site scripting (XSS), and that&#8217;s partly because I think it&#8217;s a pretty interesting type of vulnerability that many developers tend to overlook. It can be quite dangerous, but can also be quite misunderstood. For one thing, the name can be misleading: exploiting XSS does not always involve scripting, and the proliferation [...]]]></description>
			<content:encoded><![CDATA[<p>I often talk about cross-site scripting (XSS), and that&#8217;s partly because I think it&#8217;s a pretty interesting type of vulnerability that many developers tend to overlook. It can be quite dangerous, but can also be quite misunderstood. For one thing, the name can be misleading: exploiting XSS does not always involve scripting, and the proliferation of web technologies has taken XSS issues beyond the browser.</p>
<p>One example of script-less cross-site scripting affected some <a href="http://www.switched.com/2007/11/09/hacked-alicia-keys-myspace-page-could-leave-you-with-a-virus/">high-profile MySpace users</a> in 2007. Attackers were able to inject HTML into celebrity MySpace pages, but the service filtered out typical &lt;script&gt; payloads. Seemingly innocent &lt;a&gt; links were allowed, though, and adding a bit of CSS allowed one to create an invisible link that covered the entire page. In this case, clicking anywhere on an infected profile led to a malware download.</p>
<p>This attack could be one of the first prominent cases of <a href="http://en.wikipedia.org/wiki/Clickjacking">clickjacking</a>, though the term is usually applied to attacks that hijack clicks with malicious inline frames (iframes). Allowing &lt;iframe&gt; elements in user-controlled HTML opens up a range of issues more broadly known as UI redressing. For instance, an iframe that covers the entire page could render a fake login form that appears to be legitimate given the site&#8217;s address, leading to a powerful phishing attack. Frames and forms can also be used to bypass CSRF protections.</p>
<p>Of course, you can sometimes launch simple CSRF attacks using only images. By setting the &#8220;src&#8221; attribute of an &lt;img&gt; element to another page, the browser will still execute a GET request to that page when it tries to load the image. Without proper CSRF protections, such an attack may be possible without XSS to begin with. But images can also be a source of information leakage or tracking, since GET requests to a malicious server will also likely include a &#8220;Referer&#8221; header.</p>
<p>While most XSS payloads do capitalize on the power of JavaScript, keep in mind that a browser can load scripts from many places besides within script tags. Event attributes for other elements and certain CSS properties are just two examples of places a script could slip in. And don&#8217;t forget about the risks of browser plug-ins &#8211; Flash 0-day issues or malicious PDF files can also be sources of trouble.</p>
<p>Finally, an issue this week served to remind that XSS is no longer just a concern within the context of a web browser. As HTML and JavaScript become a greater part of developing apps built outside the browser, XSS may pop up on other platforms. On Monday, a security researcher with the handle <a href="https://superevr.com/blog/">superevr</a> disclosed <a href="https://superevr.com/blog/2011/xss-in-skype-for-ios/">an XSS vulnerability</a> in Skype for iOS. By inserting HTML into the &#8220;Full Name&#8221; of a user, one could send messages that when viewed would launch code capable of stealing the phone&#8217;s address book. And this wasn&#8217;t the first time XSS has been a problem for Skype &#8211; a vulnerability in desktop versions was found <a href="http://www.geek.com/articles/news/skype-vulnerability-makes-for-easy-pc-hijacking-20110715/">a few months ago</a>, and XSS with shared content could lead to problems <a href="http://www.computerworld.com/s/article/9057778/Update_Skype_plugs_critical_bug_with_temp_move">back in 2008</a>.</p>
<p>Alternate labels, such as &#8220;HTML injection&#8221; or &#8220;web content injection,&#8221; have been proposed to describe cross-site scripting, but the established term is likely here to say. Still, remember that protecting against XSS does not simply mean blocking script tags, and keep in mind the power of XSS when integrating web technologies with other platforms.</p>
<div class="tweetthis" style="text-align:left;"><p> <a class="tt" href="http://twitter.com/intent/tweet?text=Cross-Site+Scripting%2C+Without+the+Scripting%E2%80%A6+or+the+Site+http%3A%2F%2Fsecuritymusings.com%2F%3Fp%3D3033" title="Post to Twitter"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter2.png" alt="Post to Twitter" /></a> <a class="tt" href="http://www.facebook.com/share.php?u=http://securitymusings.com/article/3033/cross-site-scripting-without-the-scripting-or-the-site&amp;t=Cross-Site+Scripting%2C+Without+the+Scripting%E2%80%A6+or+the+Site" title="Post to Facebook"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://securitymusings.com/article/3033/cross-site-scripting-without-the-scripting-or-the-site/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The soft side of PKI</title>
		<link>http://securitymusings.com/article/2976/the-soft-side-of-pki</link>
		<comments>http://securitymusings.com/article/2976/the-soft-side-of-pki#comments</comments>
		<pubDate>Thu, 01 Sep 2011 19:04:09 +0000</pubDate>
		<dc:creator>Laura Raderman</dc:creator>
				<category><![CDATA[Tutorial Tuesday]]></category>

		<guid isPermaLink="false">http://securitymusings.com/?p=2976</guid>
		<description><![CDATA[SSL certificates have been in the news lately (again), and there&#8217;s a huge uproar. Is SSL still OK? Is PKI dead? While most people understand the technical side of PKI, I&#8217;ve found that the &#8220;soft&#8221;, or what I call the &#8220;political&#8221; side, is not as well understood. Anyone can set up the technical infrastructure to [...]]]></description>
			<content:encoded><![CDATA[<p>SSL certificates have been <a href="http://securitymusings.com/article/2969/certification-authorities-behaving-badly">in the news lately</a> (again), and there&#8217;s a huge uproar. Is SSL still OK? Is PKI dead?</p>
<p>While most people understand the technical side of PKI, I&#8217;ve found that the &#8220;soft&#8221;, or what I call the &#8220;political&#8221; side, is not as well understood.  </p>
<p>Anyone can set up the technical infrastructure to become a CA &#8211; but what makes the Root CAs found in your browser special?  And as a corollary, how do you get into that select list?  Each company officially has their own method of determining what CAs are in their list of Trusted Roots.  Mozilla clearly outlines <a href="https://wiki.mozilla.org/CA:How_to_apply">their requirements</a> on their wiki, and Microsoft has a <a href="http://technet.microsoft.com/en-us/library/cc751157.aspx">program</a> for inclusion.  In general, there are a few technical requirements, and &#8220;the audit&#8221; &#8211; usually a WebTrust audit.  I&#8217;ve audited CAs (not a WebTrust audit), and what you look for is compliance with the stated policies.  However, the stated policies might not be the best option for a Root CA.  WebTrust just requires that </p>
<blockquote><p>&#8220;Subscriber information was properly authenticated (for the registration activities performed by ABC-CA).<br />
The integrity of keys and certificates it manages is established and protected throughout their life cycles.&#8221; (http://www.webtrust.org/item27804.pdf)</p></blockquote>
<p>So, what is &#8220;protected&#8221;, what&#8217;s &#8220;properly authenticated?&#8221;  That&#8217;s left up to the CA to decide.  As long as the CP and CPS cover what the CA is doing, how they&#8217;re doing it, and the auditor thinks it&#8217;s &#8220;protected&#8221; or &#8220;properly authenticated&#8221;, it&#8217;ll pass the audit.  Generally, once the audit is passed, it&#8217;s almost trivial to get into the operating systems and browsers &#8211; just a paperwork exercise.</p>
<p>In the case of Diginotar, we can assume they&#8217;ve had a recent audit (not necessarily WebTrust) because they&#8217;re in Windows and Firefox (NSS), and the auditor felt that they were &#8220;secure&#8221; enough.  Something went wrong though in the subscriber identity proofing process (if it even happened).  The CA is just a tool, it can enforce some policies, but not all &#8211; it has no clue that the people requesting the certificate for *.google.com are not really Google &#8211; the RA function checks that then instructs the CA to issue the certificate(s).  If the RA function was bypassed (intrusion into the CA), then the CA will do as it&#8217;s told and issue the certificates.</p>
<p>Ideally, CAs have an off-line root CA &#8211; no network connection, generally turned off, and only able to be turned on by the folks who have control of the CA.  This is the Root CA that is in the operating systems and browsers.  Then, that Root can revoke its sub-CA certificates, and life moves on (except for folks who now have to get a new certificate), and most people won&#8217;t even know.  When an on-line root is compromised, it&#8217;s a bigger deal for everyone involved to revoke that CA &#8211; patches are issued, instructions go out on how to delete it or distrust it, etc.</p>
<p>Most people blindly trust the Root CAs in their browser/operating system &#8211; have you looked at the list in your OS/browser of choice?  Do you know anything about these CAs or are you trusting the folks at Mozilla, Apple, and Microsoft to tell you if they&#8217;re to be trusted?</p>
<div class="tweetthis" style="text-align:left;"><p> <a class="tt" href="http://twitter.com/intent/tweet?text=The+soft+side+of+PKI+http%3A%2F%2Fsecuritymusings.com%2F%3Fp%3D2976" title="Post to Twitter"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter2.png" alt="Post to Twitter" /></a> <a class="tt" href="http://www.facebook.com/share.php?u=http://securitymusings.com/article/2976/the-soft-side-of-pki&amp;t=The+soft+side+of+PKI" title="Post to Facebook"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://securitymusings.com/article/2976/the-soft-side-of-pki/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Security Tips from Australia&#8217;s DSD</title>
		<link>http://securitymusings.com/article/2948/security-tips-from-australias-dsd</link>
		<comments>http://securitymusings.com/article/2948/security-tips-from-australias-dsd#comments</comments>
		<pubDate>Wed, 24 Aug 2011 03:54:31 +0000</pubDate>
		<dc:creator>Nick Staples</dc:creator>
				<category><![CDATA[regulations]]></category>
		<category><![CDATA[risk management]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[Tutorial Tuesday]]></category>

		<guid isPermaLink="false">http://securitymusings.com/?p=2948</guid>
		<description><![CDATA[Sometimes it can be a daunting task to keep up with computer security best practices, especially when it comes to prevention. There is an almost unlimited amount of things to take into account, not to mention significant decisions on which risks you need to address and which aren&#8217;t worth the effort. In addition, many different [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes it can be a daunting task to keep up with computer security best practices, especially when it comes to prevention. There is an almost unlimited amount of things to take into account, not to mention significant decisions on which risks you need to address and which aren&#8217;t worth the effort. In addition, many different people have many different ideas about what&#8217;s important when it comes to baseline mitigation. This may explain why there are so many sources on the topic, often with different core focuses in mind. For example, Cisco&#8217;s Network Security Baseline is geared towards networking configuration, while the PCI-DSS regulations are focused on the technology surrounding credit /debit cards. The truth is that no one set of general rules will ever be ideal for all scenarios; in most cases, the best-fitting strategy would be a custom solution.</p>
<p>However, even an imperfect solution can be useful. This week I came across this list of 35 general mitigation strategies suggested by the Australian DSD (they&#8217;re sorta like the NSA). Many of these paint with a wide brush (patch all the things!), but some are directed at specific applications of technology and software. The approach is very proactive in targeting the most widely used components of modern attack vectors. On their <a href="http://www.dsd.gov.au/infosec/top35mitigationstrategies.htm">website</a>, DSD makes the claim that implementing the top 4 suggested strategies would have prevented 85% of the incidents they responded to in 2010. A bold claim (assisted by wide scopes):</p>
<ol>
<li>Update and patch Adobe products, Microsoft products, and Java.</li>
<li>Update and patch your OS</li>
<li>Be stingy with administrator/superuser access</li>
<li>Whitelist your programs</li>
</ol>
<p>I&#8217;m sure that taking these steps can eliminate much of the low hanging fruit, and doing all 35 would probably eliminate even more. But even if all 35 are not ideal for every scenario, it&#8217;s still all-around decent computer security advice. These strategies can be a great reference source when fleshing out a custom security policy for mitigating attacks. The rest of the list can be found <a href="http://www.dsd.gov.au/infosec/top-mitigations/top35mitigationstrategies-list.htm">here</a> (<a href="http://www.dsd.gov.au/publications/Top_35_Mitigations.pdf">pdf</a>).</p>
<div class="tweetthis" style="text-align:left;"><p> <a class="tt" href="http://twitter.com/intent/tweet?text=Security+Tips+from+Australia%E2%80%99s+DSD+http%3A%2F%2Fsecuritymusings.com%2F%3Fp%3D2948" title="Post to Twitter"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter2.png" alt="Post to Twitter" /></a> <a class="tt" href="http://www.facebook.com/share.php?u=http://securitymusings.com/article/2948/security-tips-from-australias-dsd&amp;t=Security+Tips+from+Australia%E2%80%99s+DSD" title="Post to Facebook"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://securitymusings.com/article/2948/security-tips-from-australias-dsd/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crockford&#8217;s History of JavaScript</title>
		<link>http://securitymusings.com/article/2880/crockfords-history-of-javascript</link>
		<comments>http://securitymusings.com/article/2880/crockfords-history-of-javascript#comments</comments>
		<pubDate>Tue, 28 Jun 2011 18:56:54 +0000</pubDate>
		<dc:creator>Joey Tyson</dc:creator>
				<category><![CDATA[cool]]></category>
		<category><![CDATA[general]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Tutorial Tuesday]]></category>

		<guid isPermaLink="false">http://securitymusings.com/?p=2880</guid>
		<description><![CDATA[Ever wonder about how we came to have the technologies and programming languages used today? Yahoo&#8217;s senior JavaScript architect Douglas Crockford gave a presentation in early 2010 that traces the developments which brought us the beloved and hated language that powers client-side web behaviors. The video is nearly two hours and only the first in [...]]]></description>
			<content:encoded><![CDATA[<p>Ever wonder about how we came to have the technologies and programming languages used today? Yahoo&#8217;s senior JavaScript architect Douglas Crockford gave a presentation in early 2010 that traces the developments which brought us the beloved and hated language that powers client-side web behaviors. The video is nearly two hours and only the first in a series on JavaScript, but Crockford relates many interesting stories about the history of computing and notes patterns in how technology tends to develop. Check it out if you want to learn more about the background of that quirky yet powerful bit of tech we call JavaScript:</p>
<p><a href="http://developer.yahoo.com/yui/theater/video.php?v=crockonjs-1">Crockford on JavaScript: The Early Years</a></p>
<div class="tweetthis" style="text-align:left;"><p> <a class="tt" href="http://twitter.com/intent/tweet?text=Crockford%E2%80%99s+History+of+JavaScript+http%3A%2F%2Fsecuritymusings.com%2F%3Fp%3D2880" title="Post to Twitter"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter2.png" alt="Post to Twitter" /></a> <a class="tt" href="http://www.facebook.com/share.php?u=http://securitymusings.com/article/2880/crockfords-history-of-javascript&amp;t=Crockford%E2%80%99s+History+of+JavaScript" title="Post to Facebook"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://securitymusings.com/article/2880/crockfords-history-of-javascript/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>LDAPS: SSL vs TLS</title>
		<link>http://securitymusings.com/article/2853/ldaps-ssl-vs-tls</link>
		<comments>http://securitymusings.com/article/2853/ldaps-ssl-vs-tls#comments</comments>
		<pubDate>Tue, 21 Jun 2011 10:00:35 +0000</pubDate>
		<dc:creator>Laura Raderman</dc:creator>
				<category><![CDATA[Tutorial Tuesday]]></category>

		<guid isPermaLink="false">http://securitymusings.com/?p=2853</guid>
		<description><![CDATA[LDAPS is used among security folks and developers pretty indiscriminately. The general gist is that the LDAP connection is encrypted between the client and server via SSL/TLS &#8211; with a lot of hand waving involved. But there is actually a slight difference in how SSL and TLS are negotiated over LDAP. TLS can be negotiated [...]]]></description>
			<content:encoded><![CDATA[<p>LDAPS is used among security folks and developers pretty indiscriminately.  The general gist is that the LDAP connection is encrypted between the client and server via SSL/TLS &#8211; with a lot of hand waving involved.  But there is actually a slight difference in how SSL and TLS are negotiated over LDAP.  TLS can be negotiated over the standard 389 port, rather than the 636 port we normally associate with SSL connections &#8211; although for the sake of convention, it&#8217;s generally done over port 636 as well.</p>
<p>LDAPS comes from LDAPv2 (retired in 2003) where the SSL negotiation takes place before any commands are sent from the client to the server.  With a TLS connection, the connection is negotiated (non-encrypted) before any commands are sent &#8211; but the first command is StartTLS, which tells the server to renegotiate the connection, but this time, use TLS for encryption and authentication.</p>
<p>Despite these protocols being technically different, the general usage of the term LDAPS implies at least one of the methods.</p>
<div class="tweetthis" style="text-align:left;"><p> <a class="tt" href="http://twitter.com/intent/tweet?text=LDAPS%3A+SSL+vs+TLS+http%3A%2F%2Fsecuritymusings.com%2F%3Fp%3D2853" title="Post to Twitter"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter2.png" alt="Post to Twitter" /></a> <a class="tt" href="http://www.facebook.com/share.php?u=http://securitymusings.com/article/2853/ldaps-ssl-vs-tls&amp;t=LDAPS%3A+SSL+vs+TLS" title="Post to Facebook"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://securitymusings.com/article/2853/ldaps-ssl-vs-tls/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sending and Receiving S/MIME Encrypted Email on iOS 5 (Beta)</title>
		<link>http://securitymusings.com/article/2828/sending-and-receiving-smime-encrypted-email-on-ios-5-beta</link>
		<comments>http://securitymusings.com/article/2828/sending-and-receiving-smime-encrypted-email-on-ios-5-beta#comments</comments>
		<pubDate>Mon, 13 Jun 2011 22:08:20 +0000</pubDate>
		<dc:creator>Peter Hesse</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[Tutorial Tuesday]]></category>
		<category><![CDATA[Encrypted Email]]></category>
		<category><![CDATA[Encryption]]></category>
		<category><![CDATA[iOS 5]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iPod Touch]]></category>
		<category><![CDATA[S/MIME]]></category>

		<guid isPermaLink="false">http://securitymusings.com/?p=2828</guid>
		<description><![CDATA[My last post on the topic of S/MIME on iOS 5 got a lot of helpful comments from readers filled in the gaps left by Apple’s current lack of documentation on this topic. The previous article is still the best place for information on how to set up your device to use S/MIME. This post [...]]]></description>
			<content:encoded><![CDATA[<p>My last post on the topic of S/MIME on iOS 5 got a lot of <a href="http://securitymusings.com/article/2808/using-smime-on-ios-5-beta#comments">helpful comments</a> from readers filled in the gaps left by Apple’s current lack of documentation on this topic. The <a href="http://securitymusings.com/article/2808/using-smime-on-ios-5-beta">previous article</a> is still the best place for information on how to set up your device to use S/MIME. This post has more information on actually <span style="text-decoration: underline;">using</span> S/MIME for encrypting email messages.</p>
<h2>Enabling S/MIME</h2>
<p>There’s a setting I missed in the previous post was pointed out by a commenter. After getting iOS 5 on the device and putting your certificates on there, you need to edit your email settings. Click Settings-&gt;Mail, Contacts, Calendars-&gt;Your email account-&gt;Account-&gt;Advanced. Scroll down to the S/MIME section and turn on S/MIME. (Note that this wasn’t required in order to read S/MIME encrypted email.) Enabling S/MIME causes two new options to appear, Sign and Encrypt. Selecting these will cause your iOS device to try and sign and/or encrypt each outgoing message. Make sure you <strong>enable the Encrypt option at this point</strong> to make your iOS device attempt to encrypt outgoing messages when possible.<span id="more-2828"></span></p>
<p style="text-align: center;"><a href="http://securitymusings.com/wp-content/uploads/2011/06/Screenshot-2011.06.13-16.31.43.png"><img class="aligncenter size-medium wp-image-2829" title="S/MIME Settings" src="http://securitymusings.com/wp-content/uploads/2011/06/Screenshot-2011.06.13-16.31.43-200x300.png" alt="S/MIME Settings" width="200" height="300" /></a></p>
<p>Immediately below the S/MIME section is a section called Certificates, which contains the certificates for which your device has private keys. You can select one of these certificates (clicking it puts a checkmark next to it) and this is the certificate that will be used to sign all outgoing messages (if you’ve turned on signing). <em>Note: you can select certificates that are not valid for the digitalSignature key usage value. I submitted a bug report (ID 9601006) to Apple about this today.</em></p>
<h2>Sending Encrypted Email With Exchange</h2>
<p>If you are connecting to a Microsoft Exchange Outlook Web Access server, and you have an enterprise public key infrastructure that publishes encryption certificates to users’ global address list (GAL) entries, you are in luck. Sending encrypted email could not be easier.</p>
<p style="text-align: left;">Simply enable the account <del>and ensure Contact syncing is being performed for the account</del><em><span style="color: #993300;"> for email and enable S/MIME (thanks, Allan)</span></em>. When you choose a contact, the iOS device will automatically attempt to download the recipient’s certificate from the GAL. If it considers it valid, you will see a lock icon displayed next to the “To” address like this:</p>
<p style="text-align: center;"><a href="http://securitymusings.com/wp-content/uploads/2011/06/Screenshot-2011.06.13-17.19.49-copy1.png"><img class="size-full wp-image-2831 aligncenter" title="Valid Recipient" src="http://securitymusings.com/wp-content/uploads/2011/06/Screenshot-2011.06.13-17.19.49-copy1-e1308002558454.png" alt="Valid Recipient" width="111" height="24" /></a></p>
<p style="text-align: left;">If it can’t find a valid certificate for your recipient, you’ll see something more like this:</p>
<h2 style="text-align: center;"><a href="http://securitymusings.com/wp-content/uploads/2011/06/Screenshot-2011.06.13-17.21.49-copy.png"><img class="size-full wp-image-2832 aligncenter" title="Invalid Recipient" src="http://securitymusings.com/wp-content/uploads/2011/06/Screenshot-2011.06.13-17.21.49-copy-e1308002625449.png" alt="Invalid Recipient" width="154" height="24" /></a></h2>
<h2 style="text-align: left;"><a href="http://securitymusings.com/wp-content/uploads/2011/06/Screenshot-2011.06.13-17.21.49-copy.png"></a><span style="font-size: 20px; font-weight: bold;">Sending Encrypted Email Without Exchange</span></h2>
<p>If you are not connecting to Exchange, there will need to be a bit more manual process to get certificates on to your device. If you’ve used S/MIME at all, you’re likely familiar with the “send me a signed email so I can send you an encrypted email” dance. iOS 5 is no exception. In order to send encrypted emails to recipients you will need their certificates, and as far as I can tell the only way to make that happen (aside from using Exchange) is through an exchange of signed emails.</p>
<p>Once your desired recipient has sent you a signed email, if the iOS device trusts the certificate used to sign it, you will see their name in the From field appear like this:</p>
<p style="text-align: center;"><a href="http://securitymusings.com/wp-content/uploads/2011/06/Screenshot-2011.06.13-17.29.51-copy.png"><img class="size-full wp-image-2833 aligncenter" title="Valid Signature" src="http://securitymusings.com/wp-content/uploads/2011/06/Screenshot-2011.06.13-17.29.51-copy-e1308002717361.png" alt="Valid Signature" width="137" height="24" /></a></p>
<p>If your device doesn&#8217;t trust them, it will look more like this:</p>
<p style="text-align: center;"><a href="http://securitymusings.com/wp-content/uploads/2011/06/Screenshot-2011.06.13-17.33.30-copy.png"><img class="size-full wp-image-2834 aligncenter" title="Invalid Signature" src="http://securitymusings.com/wp-content/uploads/2011/06/Screenshot-2011.06.13-17.33.30-copy-e1308002755265.png" alt="Invalid Signature" width="134" height="24" /></a></p>
<p style="text-align: left;">Click the sender’s name. If they are untrusted, you will see a reason why, and have a “Trust” button available to you to choose to trust this certificate from now on. In either case, you will see a “View Certificate” button. Click it.</p>
<p style="text-align: center;"><a href="http://securitymusings.com/wp-content/uploads/2011/06/Screenshot-2011.06.13-17.36.40.png"><img class="size-medium wp-image-2835 aligncenter" title="View Signer Certificate" src="http://securitymusings.com/wp-content/uploads/2011/06/Screenshot-2011.06.13-17.36.40-200x300.png" alt="View Signer Certificate" width="200" height="300" /></a></p>
<p>Click the “Install” button to install this certificate to your iOS device. Now when you reply to the sender’s email (or send them emails in the future), you will see a lock by their name indicating you will be encrypting the email to that individual.</p>
<h2>Hopeful Future Improvements</h2>
<p>I’d like to see some improvements. I’m filing <a href="https://bugreport.apple.com">bug reports</a> with Apple on each of these items, and I hope others will too.</p>
<p>First thing would be an improvement to the signing certificate selection, enabling you to (a) not choose encryption certificates for signing, and (b) make it clear what that selection is for anyway. The certificate selection option is enabled even when you choose Encrypt, which makes the setting user interface very confusing. (On a related note, on my device I could not see a Key Usage value for any certificate by looking at its details. I have also filed this as a bug.)</p>
<p>The second thing would be a capability to import certificates into the device which does not require Exchange or the signed email dance. I created a configuration profile containing public certificates for every user at my company. Unfortunately, iOS Mail did not have the capability to use these certificates for sending encrypted email. In fact, iOS could not even send <strong><span style="text-decoration: underline;">me</span></strong> an encrypted email until I first sent the device a signed email and imported it, even though my encryption certificate was on the device being used to read encrypted emails. Hopefully Apple will improve this in a future release.</p>
<p>Lastly, there should be a way to look in the contacts of the device to determine whether or not you have a (valid) encryption certificate for a user. If I am going to leave on a trip but I know I want to interact with a few people using encryption, I won’t know until I try to send them an email. The Address Book feature on my Mac already has this, it displays a little checkmark next to email addresses I can encrypt to.</p>
<p>Again, please let me know if you have any additional suggestions or feedback by entering a comment below!</p>
<div class="tweetthis" style="text-align:left;"><p> <a class="tt" href="http://twitter.com/intent/tweet?text=Sending+and+Receiving+S%2FMIME+Encrypted+Email+on+iOS+5+%28Beta%29+http%3A%2F%2Fsecuritymusings.com%2F%3Fp%3D2828" title="Post to Twitter"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter2.png" alt="Post to Twitter" /></a> <a class="tt" href="http://www.facebook.com/share.php?u=http://securitymusings.com/article/2828/sending-and-receiving-smime-encrypted-email-on-ios-5-beta&amp;t=Sending+and+Receiving+S%2FMIME+Encrypted+Email+on+iOS+5+%28Beta%29" title="Post to Facebook"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://securitymusings.com/article/2828/sending-and-receiving-smime-encrypted-email-on-ios-5-beta/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Using S/MIME on iOS 5 (Beta) UPDATED</title>
		<link>http://securitymusings.com/article/2808/using-smime-on-ios-5-beta</link>
		<comments>http://securitymusings.com/article/2808/using-smime-on-ios-5-beta#comments</comments>
		<pubDate>Wed, 08 Jun 2011 19:09:54 +0000</pubDate>
		<dc:creator>Peter Hesse</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[Tutorial Tuesday]]></category>
		<category><![CDATA[Encrypted Email]]></category>
		<category><![CDATA[Encryption]]></category>
		<category><![CDATA[iOS 5]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iPod Touch]]></category>
		<category><![CDATA[S/MIME]]></category>

		<guid isPermaLink="false">http://securitymusings.com/?p=2808</guid>
		<description><![CDATA[NOTE: I&#8217;ve updated this post in a few places below today, 6/13/2011, based on help from commenters. Also see the follow-up article Sending and Receiving S/MIME Encrypted Email on iOS 5 (Beta). During the 2011 Apple Worldwide Developer Conference keynote address, Scott Forstall indicated that iOS 5 would have support for S/MIME encrypted email. (Skip [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #993300;"><em>NOTE: I&#8217;ve updated this post in a few places below today, 6/13/2011, based on help from commenters. Also see the follow-up article <a href="http://securitymusings.com/article/2828/sending-and-receiving-smime-encrypted-email-on-ios-5-beta">Sending and Receiving S/MIME Encrypted Email on iOS 5 (Beta)</a>.</em></span></p>
<p>During the 2011 Apple Worldwide Developer Conference <a href="http://events.apple.com.edgesuite.net/11piubpwiqubf06/event/">keynote address</a>, Scott Forstall indicated that iOS 5 would have support for S/MIME encrypted email. (<em>Skip to 63:10 in the presentation.</em>) This morning I successfully upgraded to the iOS 5 Beta and started being able to read my S/MIME encrypted email. Here is how I did it.</p>
<p>What you need:</p>
<p>-       <a href="http://developer.apple.com/devcenter/ios/index.action#betadownloads">Xcode 4.2 and iOS SDK 5 beta</a> (requires iOS Developer Program account)</p>
<p>-       <a href="http://developer.apple.com/devcenter/ios/index.action#betadownloads">iOS 5 beta for your iOS device’s platform</a> (requires iOS Developer Program account)</p>
<p>-       <a href="http://developer.apple.com/devcenter/ios/index.action#betadownloads">iTunes 10.5 beta</a> (requires iOS Developer Program account)</p>
<p>-       <a href="http://support.apple.com/kb/DL851">iPhone Configuration Utility 3.3</a></p>
<p>-       Your S/MIME encryption and signature certificates exported in PKCS12 (.p12) format</p>
<p>(<em>Note there is some discussion about <a href="http://gizmodo.com/5809621/how-to-upgrade-to-ios-5-today-without-any-developer-account">not needing to pay for a developer program account to install iOS 5</a>. I went the legitimate route.</em>)</p>
<p>Click to read the whole walk-through of how I did it.<span id="more-2808"></span></p>
<h2>Installing iOS 5 Beta</h2>
<p>To install the iOS 5 Beta, make sure you have a backup; this will wipe your device. I used <a href="https://developer.apple.com/ios/manage/devices/howto.action">Apple’s guide</a>. First, install Xcode 4.2. Launch Xcode and plug in your iOS device. You should see a window similar to the following:</p>
<p style="text-align: center;"><a href="http://securitymusings.com/wp-content/uploads/2011/06/UseForDevelopment.jpg"><img class="aligncenter size-full wp-image-2809" title="New Device Detected" src="http://securitymusings.com/wp-content/uploads/2011/06/UseForDevelopment.jpg" alt="New Device Detected" width="400" height="222" /></a></p>
<p>Click “Use for Development”. If it doesn’t automatically bring you to the device organizer, click Window-&gt;Organizer. Your device should appear there in a Summary view. Under “Software Version”, click Other Version… and then choose the .ipsw file relevant to your device. Once you see the <strong>5.0 (9A5220p)</strong> choice under Software Version, click “Restore”. <strong><em>This will erase the contents of your iOS device including all pictures, music, videos, and apps. Make sure you have a backup.</em> </strong>Allow the restore to complete. Once it is complete, Xcode will again display the “New Device Detected” dialog, and you should click “Use for Development”. To complete the installation, launch iTunes 10.5 beta and set up the device.</p>
<p>Once you’ve set up the device, and either synced your Mail settings or manually configured them, go ahead and try and open up an encrypted email message. Here’s one that Joey sent me:</p>
<p style="text-align: center;"><a href="http://securitymusings.com/wp-content/uploads/2011/06/cantdecrypt.jpg"><img class="aligncenter size-medium wp-image-2810" title="Top Secret email I can't decrypt" src="http://securitymusings.com/wp-content/uploads/2011/06/cantdecrypt-202x300.jpg" alt="Top Secret email I can't decrypt" width="202" height="300" /></a></p>
<p>As you might guess, going to Settings &gt; General &gt; Profiles doesn’t do you much good. On my system, the only profile installed was the Provisioning Profile put there via my Developer account. So, we need to create one.</p>
<h2>Create and Install Configuration Profile</h2>
<p><span style="color: #993300;"><em>Note: If you don&#8217;t wish to deal with a configuration profile, you can also email yourself the .p12 file containing your certificate. Thanks to Oleg for the tip.</em></span></p>
<p>If you don’t already have it installed, install the <a href="http://support.apple.com/kb/DL851">iPhone Configuration Utility</a> and launch it. Make sure your iOS device is plugged in.</p>
<p>On the left side of the iPhone Configuration Utility, click on “Configuration Profiles”. Then click the “New” button at the top.</p>
<p style="text-align: center;"><a href="http://securitymusings.com/wp-content/uploads/2011/06/iphoneConfigUtil.png"><img class="aligncenter size-medium wp-image-2813" title="iPhone Configuration Utility" src="http://securitymusings.com/wp-content/uploads/2011/06/iphoneConfigUtil-300x171.png" alt="iPhone Configuration Utility" width="300" height="171" /></a></p>
<p>In the general section, it would be good to give your configuration profile a name. You will definitely need to provide a unique identifier for your configuration profile, so they are not confused across devices. While you can set a number of other required configurations on the device using this tool, the important one for S/MIME is the “Credentials” configuration. On the left scroll down to “Credentials” and click it.</p>
<p style="text-align: center;"><a href="http://securitymusings.com/wp-content/uploads/2011/06/config-credentials.png"><img class="aligncenter size-medium wp-image-2814" title="Configuring Credentials" src="http://securitymusings.com/wp-content/uploads/2011/06/config-credentials-300x171.png" alt="Configuring Credentials" width="300" height="171" /></a></p>
<p>Click “Configure” on the right-hand side to add your encryption certificate to the device. You will be prompted with a file selection dialog where you can choose your PKCS12 file containing your encryption certificate and private key.</p>
<p>Once your certificate appears in the window, you can scroll down and enter the password used to protect the PKCS12 file, or not. If you enter it, you will not be prompted to enter it when inputting the certificate on the device, but there will be a copy of your password stored with the profile. I chose <strong>not</strong> to enter my password at this time.</p>
<p>You should repeat this process for your signing certificate as well; click the + button toward the upper right to add a second certificate. In my experience, I could not read signed and encrypted emails unless I put both my signing and encryption certificates into the profile.</p>
<p>To install the configuration profile on your device, click your device on the left-hand side of the window, and go to the “Configuration Profiles” tab.</p>
<p style="text-align: center;"><a href="http://securitymusings.com/wp-content/uploads/2011/06/configurationprofiles.png"><img class="aligncenter size-medium wp-image-2815" title="Configuration Profiles" src="http://securitymusings.com/wp-content/uploads/2011/06/configurationprofiles-300x171.png" alt="Configuration Profiles" width="300" height="171" /></a></p>
<p>You should see the profile you just created. Click “Install” and your iOS device will beep or click at you. Look at the screen and you will see:</p>
<p style="text-align: center;"><a href="http://securitymusings.com/wp-content/uploads/2011/06/installprofileipod.jpg"><img class="aligncenter size-medium wp-image-2816" title="iOS Device Install Profile" src="http://securitymusings.com/wp-content/uploads/2011/06/installprofileipod-202x300.jpg" alt="iOS Device Install Profile" width="202" height="300" /></a></p>
<p>Click the “Install” button on your iOS device. You will get a warning that it will change settings on your device, click “Install Now”. You will then be prompted to enter the password used to protect your PKCS12 file if you didn’t save it as part of the configuration profile. Enter it, click “Return” and then “Done”.</p>
<p>Now when I re-launch Mail I can read Joey’s message:</p>
<p style="text-align: center;"><a href="http://securitymusings.com/wp-content/uploads/2011/06/reademail.jpg"><img class="aligncenter size-medium wp-image-2817" title="Encrypted Email" src="http://securitymusings.com/wp-content/uploads/2011/06/reademail-202x300.jpg" alt="Encrypted Email" width="202" height="300" /></a></p>
<p>Hooray! I’m reading encrypted email on an iOS device!</p>
<h2>Hopeful Future Improvements</h2>
<p>First, there is no indication on this encrypted email that it had been encrypted.<span style="color: #993300;"><em> <em>Note: See <a href="http://securitymusings.com/article/2828/sending-and-receiving-smime-encrypted-email-on-ios-5-beta">follow-up post</a> for how to fully enable and see these UI changes, thanks to Allan for pointing this out. </em></em></span>So, I don’t know if the sender thought it was sensitive. I think this will be changed in a future release. In the below still image I took from the keynote address, you can see a lock and the word “Secure” in the title bar of the message. Obviously it’s important that Apple provides this visual cue.</p>
<p style="text-align: center;"><a href="http://securitymusings.com/wp-content/uploads/2011/06/keynote-image-copy.png"><img class="aligncenter size-medium wp-image-2818" title="keynote-image copy" src="http://securitymusings.com/wp-content/uploads/2011/06/keynote-image-copy-161x300.png" alt="" width="161" height="300" /></a></p>
<p>Second is of course <span style="text-decoration: underline;">sending</span> encrypted and signed email. <span style="color: #993300;"><em><em>Note: Again, see <a href="http://securitymusings.com/article/2828/sending-and-receiving-smime-encrypted-email-on-ios-5-beta">follow-up post</a> for how to fully enable S/MIME. </em></em></span>Despite my best efforts (installing my CA as a root on the device, installing certificates for my co-workers, installing certificates for other email addresses of mine) I could not get the little lock icon to appear next to anyone’s name in the “To” field of any emails, nor could I get it to send encrypted emails.</p>
<p>I look forward to a future beta from Apple which has these features enabled. Stay tuned here, because once I figure them out I’ll document them.</p>
<p>Let me know if it worked for you, and please provide any other comments below!</p>
<div class="tweetthis" style="text-align:left;"><p> <a class="tt" href="http://twitter.com/intent/tweet?text=Using+S%2FMIME+on+iOS+5+%28Beta%29+UPDATED+http%3A%2F%2Fsecuritymusings.com%2F%3Fp%3D2808" title="Post to Twitter"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter2.png" alt="Post to Twitter" /></a> <a class="tt" href="http://www.facebook.com/share.php?u=http://securitymusings.com/article/2808/using-smime-on-ios-5-beta&amp;t=Using+S%2FMIME+on+iOS+5+%28Beta%29+UPDATED" title="Post to Facebook"><img class="nothumb" src="http://securitymusings.com/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://securitymusings.com/article/2808/using-smime-on-ios-5-beta/feed</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
	</channel>
</rss>

