<?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>Pomcor</title>
	<atom:link href="http://pomcor.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://pomcor.com</link>
	<description>Research in Mobile and Web Technology</description>
	<lastBuildDate>Thu, 16 May 2013 05:59:23 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5</generator>
		<item>
		<title>Feedback on the Paper on Privacy Postures of Authentication Technologies</title>
		<link>http://pomcor.com/2013/05/15/feedback-on-the-paper-on-privacy-postures-of-authentication-technologies/</link>
		<comments>http://pomcor.com/2013/05/15/feedback-on-the-paper-on-privacy-postures-of-authentication-technologies/#comments</comments>
		<pubDate>Thu, 16 May 2013 05:59:23 +0000</pubDate>
		<dc:creator>Francisco Corella</dc:creator>
				<category><![CDATA[Identity]]></category>
		<category><![CDATA[Authentication]]></category>
		<category><![CDATA[privacy]]></category>

		<guid isPermaLink="false">http://pomcor.com/?p=674</guid>
		<description><![CDATA[Many thanks to every one who provided feedback on the paper on privacy postures of authentication technologies which was announced in the previous blog post. The paper was discussed on the Identity Commons mailing list and we also received feedback &#8230; <a href="http://pomcor.com/2013/05/15/feedback-on-the-paper-on-privacy-postures-of-authentication-technologies/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>
Many thanks to every one who provided feedback on the
paper on
<a href="/techreports/PrivacyPostures.pdf">privacy postures of
authentication technologies</a>
which was announced in the
<a href="/2013/05/05/comparing-the-privacy-features-of-eighteen-authentication-technologies/">previous
blog post</a>.  The paper was discussed on the
<a href="http://lists.idcommons.net/lists/info/community">Identity Commons mailing list</a>
and we also received feedback at the
<a href="https://www.identity.utexas.edu/id360">ID360 conference</a>,
where we presented the paper, and at
<a href="http://iiw.idcommons.net/IIW_16_Notes">IIW 16</a>, where we
showed a poster summarizing the paper.  In this post I will recap the
feedback that we have received and the revisions that we have made to
the paper based on that feedback.
</p>

<p>
Steven Carmody pointed out that
SWITCH, the Swiss InCommon federation,
has developed an extension of Shibboleth called
<a href="http://www.switch.ch/aai/support/tools/uApprove.html">uApprove</a>
that allows the identity or attribute provider to ask the user for
consent before disclosing attributes to the relying party.  Ken
Klingestein told us that the
<a href="https://spaces.internet2.edu/display/scalepriv/Scalable+Privacy">Scalable
Privacy</a> NSTIC pilot is developing a privacy manager that will let
the user choose what attributes will be disclosed to the the relying
party by the Shibboleth identity provider.  We have added references
to these Shibboleth extensions to Section 4.2 of the paper.
</p>

<p>
The original paper explained that, although a U-Prove token does not
provide multishow unlinkability, the user may obtain multiple tokens
from the issuer, and present different tokens to different relying
parties.  Christian Paquin said that a <i>U-Prove
credential</i> is defined as a batch of such tokens, created simultaneously by an
efficient parallel procedure.  We have added this definition of a
U-Prove credential to Section 4.3.
</p>

<p>
Christian Paquin also pointed out that a U-Prove token is a
mathematical concept that can be embodied in a variety of
technologies.  He sent me a link to the
<a href="http://research.microsoft.com/apps/pubs/default.aspx?id=166974">WS-Trust
embodiment</a>, which was used in CardSpace.  We have explained this
and included the link in Section 4.3.
</p>

<p>
Tom Jones said that what we call <i>anonymity</i> is
called <i>pseudonymity</i> by others.  In fact, column 9, labeled
&#8220;Anonymity&#8221;, covers both pseudonymity, as provided, e.g., by an Idemix
pseudonym or an uncertified key pair or a combination of a user ID and
a password when the user ID is freely chosen by the user, and full
anonymity, as provided when a relying party learns only attributes
that do not uniquely identify the user.  I think it is not
unreasonable to view anonymity (the service provider does not learn
the user&#8217;s &#8220;name&#8221;) as encompassing pseudonymity (the service provider
learns a pseudonym instead of the &#8220;real name&#8221;).
</p>

<p>
Nat Sakimura provided a lot of feedback, for which we are grateful.
He said that Google and Yahoo implemented OpenID <i>Pairwise
Pseudonymous Identifiers (PPID)</i>, i.e. different identifiers for
the same user provided to different relying parties, before ICAM
specified its OpenID profile.  We have noted this in 
Section 4.2 of the revised paper and changed the label of row 8 to &#8220;OpenID (without PPID)&#8221;.
</p>

<p>
He also said that OpenID Connect supports an ephemeral identifier,
which provides anonymity.  I was able to find a discussion of an
ephemeral identifier in the archives of the OpenID Connect mailing
list, but no mention of it in any of the OpenID Connect
specifications; so ephemeral identifiers may be added in the future,
but they are not there yet.
</p>

<p>
Nat also argued that OpenID Connect provides multishow unlinkability
by different parties and by the same party.  I disagree, however.  The
Subject Identifier in the ID Token makes OpenID Connect authentication
events linkable.  Furthermore, OpenID is built on top of OAuth, whose
purpose is to provide the relying party with access to resources owned
by the user by means of an access token.  In a typical use case the
relying party gets access to the user&#8217;s account at a social network
such as Facebook, Twitter or Google+.  It is unlikely that two relying
parties who share information cannot determine that they are both
accessing the same account, or that a relying party cannot determine
that it has accessed the same account in two different occasions.
</p>

<p>
Nat said that OpenID Connect can be used for two-party authentication
using a &#8220;Self-Issued OpenID Provider&#8221;.  We have added a checkmark to
row 11, column 1 of the table to indicate this, and an explanation to
Section 4.2.
</p>

<p>
He also said that OpenID Connect provides group 4 functionality by
allowing the relying party to obtain attributes from &#8220;distributed
attribute providers&#8221;.  We have mentioned this in Section 4.4 of the
revised version of the paper.
</p>

<p>
Finally, Nat said:
</p>

<blockquote>
<p>
Just by reading the paper, I was not very clear what is the
requirement for Issue-show unlinkability. By issuance, I imagine it
means the credential issuance. I suppose then it means that the
credential verifier (in ISO 29115 | ITU-T X.1254 sense) cannot tell
which credential was used though it can attest that the user has a
valid credential. Is that correct? If so, much of the technology in
group 2 should have n/a in the column because they are independent of
the actual authentication itself. They could very well use anonymous
authentication or partially anonymous authentication (ISO 29191).
</p>
</blockquote>

<p>
The technologies in group 2 are recursive authentication technologies.
The relying party directs the browser to the identity or attribute
provider, which recursively authenticates the user and provides a
bearer credential to the relying party based on the result of the
inner authentication.  In all generality there may be multiple inner
authentications, as the identity or attribute provider may require
multiple credentials.  So the authentication process may consist of a
tree of nested authentications, with internal nodes of the tree
involving group 2 technologies, and leaf nodes other technologies.
However, rows 5-11 (group 2) are only concerned with the usual case
where the user authenticates to the identity or attribute provider as
a returning user with a user ID and a password or some other form of
two-party authentication; we have now made that clear in Section 4.2
of the revised paper.  In that case there is no issue-show
unlinkability.
</p>

<p>
We have also made a couple of other improvements to the paper,
motivated in part by the feedback:
</p>

<ul>

<li>
We have replaced the word <i>possession</i> with the
word <i>ownership</i> in the definition of closed-loop authentication
(Section 2), so that it now reads: <i>authentication is closed-loop
when the credential authority that issues or registers a credential is
later responsible for verifying ownership of the credential at
authentication time</i>.  The motivation for this change is that, in
group 2, the credential is the information that the identity or
attribute provider has about the user, and is thus kept by the
identity or attribute provider rather than by the user.
</li>

<li>
We have added a distinction between two forms of multishow
unlinkability, a strong form that holds even if the credential
authority colludes and shares information with the relying parties,
and a weak form that holds only if there is no such collusion.  The
technologies in group 2 that provide multishow unlinkability provide
the weak form, whereas Idemix anonymous credentials provide the strong
form.
</li>

</ul>
]]></content:encoded>
			<wfw:commentRss>http://pomcor.com/2013/05/15/feedback-on-the-paper-on-privacy-postures-of-authentication-technologies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comparing the Privacy Features of Eighteen Authentication Technologies</title>
		<link>http://pomcor.com/2013/05/05/comparing-the-privacy-features-of-eighteen-authentication-technologies/</link>
		<comments>http://pomcor.com/2013/05/05/comparing-the-privacy-features-of-eighteen-authentication-technologies/#comments</comments>
		<pubDate>Mon, 06 May 2013 03:52:28 +0000</pubDate>
		<dc:creator>Francisco Corella</dc:creator>
				<category><![CDATA[Identity]]></category>
		<category><![CDATA[Authentication]]></category>
		<category><![CDATA[OpenID]]></category>
		<category><![CDATA[OpenID Connect]]></category>
		<category><![CDATA[privacy]]></category>
		<category><![CDATA[Shibboleth]]></category>

		<guid isPermaLink="false">http://pomcor.com/?p=666</guid>
		<description><![CDATA[This blog post motivates and elaborates on the paper Privacy Postures of Authentication Technologies, which we presented at the recent ID360 conference. There is a great variety of user authentication technologies, and some of them are very different from each &#8230; <a href="http://pomcor.com/2013/05/05/comparing-the-privacy-features-of-eighteen-authentication-technologies/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>
<i>
This blog post motivates and elaborates on the paper
<a href="/techreports/PrivacyPostures.pdf">Privacy Postures of Authentication Technologies</a>,
which we presented at the recent <a href="https://identity.utexas.edu/id360/">ID360 conference</a>.
</i>
</p>

<p>
There is a great variety of user authentication technologies, and some
of them are very different from each other.  Consider, for example,
one-time passwords, OAuth, Idemix, and ICAM&#8217;s Backend Attribute
Exchange: any two of them have little in common.
</p>

<p>
Different authentication technologies have been developed by different
communities, which have created their own vocabularies to describe
them.  Furthermore, some of the technologies are extremely complex:
<a href="http://www.microsoft.com/u-prove">U-Prove</a>
and
<a href="https://prime.inf.tu-dresden.de/idemix/">Idemix</a>
are based on mathematical theories that may be
impenetrable to non-specialists; and 
<a href="http://openid.net/connect/">OpenID Connect</a>, which is an
extension of OAuth, adds seven specifications to a large number of
OAuth specifications.  As a result, it is difficult to compare
authentication technologies to each other.
</p>

<p>
This is unfortunate because decision makers in corporations and
governments need to decide what technologies or combinations of
technologies should replace passwords, which have been rendered even
more inadequate by the shift from traditional personal computers to
smart phones and tablets.  Decision makers need to evaluate and compare
the security, usability, deployability, interoperability and, last but
not least, privacy, provided by the very large number of very
different authentication technologies that are competing in the
marketplace of technology innovations.
</p>

<p>
But all these technologies are trying to do the same thing:
authenticate the user.  So it should be possible to develop a common
conceptual framework that makes it possible to describe them in
functional terms without getting lost in the details, to compare their
features, and to evaluate their adequacy to different use cases.
</p>

<p>
The 
<a href="/techreports/PrivacyPostures.pdf">paper</a> that we presented
at the recent ID360 conference can be viewed as a step in that
direction.  It focuses on privacy, an aspect of authentication
technology which I think is in need of particular attention.  It
surveys eighteen technologies, including: four flavors of passwords
and one-time passwords; the old Microsoft Passport (of historical
interest); the browser SSO profile of SAML; Shibboleth; OpenID; the
ICAM profile of OpenID; OAuth; OpenID Connect; uncertified key pairs;
public key certificates; structured certificates; Idemix pseudonyms;
Idemix anonymous credentials; U-Prove tokens; and ICAM&#8217;s Backend
Attribute Exchange.
</p>

<p>
The paper classifies the technologies along four different dimensions
or facets, and builds a matrix indicating which of the technologies
provide seven privacy features: unobservability by an identity or
attribute provider; free choice of identity or attribute provider;
anonymity; selective disclosure; issue-show unlinkability; multishow
unlinkability by different parties; and multishow unlinkability by the
same party.  I will not try to recap the details here; instead I will
elaborate on observations made in the paper regarding privacy
enhancements that have been used to improve the privacy postures of
some closed-loop authentication technologies.
</p>

<h3>Privacy Enhancements for Closed-Loop Authentication</h3>

<p>
One of the classification facets that the paper considers for
authentication technologies is the distinction between closed-loop and
open-loop authentication, which I discussed in an
<a href="/2013/04/03/closed-loop-vs-open-loop-authentication/">earlier
post</a>.  Closed-loop authentication means that the credential
authority that issues or registers a credential is later responsible
for verifying possession of the credential at authentication time.
Closed-loop authentication may involve two parties, or may use a
third-party as a credential authority, which is usually referred to as
an identity provider.  Examples of third-party closed-loop
authentication technologies include the browser SSO profile of SAML,
Shibboleth, OpenID, OAuth, and OpenID Connect.
</p>

<p>
I&#8217;ve pointed out before that third-party closed-loop authentication
lacks unobservability by the identity provider.  Most third-party
closed-loop authentication technologies also lack anonymity and
multishow unlinkability.  However, some of them implement privacy
enhancements that provide anonymity and a form of multishow
unlinkability.  There are two such enhancements, suitable for two
different use cases.
</p>

<p>
The first enhancement consists of omitting the user identifier that
the identity provider usually conveys to the relying party.  The
credential authority is then an attribute provider rather than an
identity provider: it conveys attributes that do not necessarily
identify the user.  This enhancement provides anonymity, and multishow
unlinkability assuming no collusion between the attribute provider and
the relying parties.  It is useful when the purpose of authentication
is to verify that the user is entitled to access a service without
necessarily having an account with the service provider.  This
functionality is provided by
<a href="http://shibboleth.net/">Shibboleth</a>, which can be used,
e.g., to allow a student enrolled in one educational institution to
access the library services of another institution without having an
account at that other institution.
</p>

<p>
The core 
<a href="http://openid.net/specs/openid-authentication-2_0.html">OpenID
2.0 specification</a> specifies how an identity provider conveys an
identifier to a relying party.  Extensions of the protocol such as the 
<a href="http://openid.net/specs/openid-simple-registration-extension-1_0.html">Simple
Registration Extension</a> specify methods by which the identity
provider can convey user attributes in addition to the user
identifier; and the core specification hints that the identifier could
be omitted when extensions are used.  It would be interesting to know
whether any OpenID server or client implementations allow the
identifier to be omitted.  Any comments?
</p>

<p>
The second enhancement consists of requiring the identity provider to
convey different identifiers for the same user to different relying
parties.  The identity provider can meet the requirement without
allocating large amounts of storage by computing a user identifier
specific to a relying party as a cryptographic hash of a generic user
identifier and an identifier of the relying party such as a URL.
This privacy enhancement is required by the
<a href="http://www.idmanagement.gov/documents/ICAM_OpenID20Profile.pdf">ICAM
profile of OpenID</a>.  It achieves user anonymity and multishow
unlinkability by different parties assuming no collusion between the
identity provider and the relying parties; but not multishow
unlinkability by the same party.  It is useful for returning user
authentication.
</p>
]]></content:encoded>
			<wfw:commentRss>http://pomcor.com/2013/05/05/comparing-the-privacy-features-of-eighteen-authentication-technologies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Two Methods of Cryptographic Single Sign-On on Mobile Devices</title>
		<link>http://pomcor.com/2013/04/20/two-methods-of-cryptographic-single-sign-on-on-mobile-devices/</link>
		<comments>http://pomcor.com/2013/04/20/two-methods-of-cryptographic-single-sign-on-on-mobile-devices/#comments</comments>
		<pubDate>Sun, 21 Apr 2013 05:40:03 +0000</pubDate>
		<dc:creator>Francisco Corella</dc:creator>
				<category><![CDATA[Identity]]></category>
		<category><![CDATA[Authentication]]></category>
		<category><![CDATA[cryptography]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://pomcor.com/?p=658</guid>
		<description><![CDATA[This is the sixth and last post of a series discussing the paper A Comprehensive Approach to Cryptographic and Biometric Authentication from a Mobile Perspective. To conclude this series I am going to discuss briefly two methods of single sign-on &#8230; <a href="http://pomcor.com/2013/04/20/two-methods-of-cryptographic-single-sign-on-on-mobile-devices/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>
<i>
This is the sixth and last post of a series discussing the paper
<a href="/whitepapers/CryptographicAuthentication.pdf">A Comprehensive
Approach to Cryptographic and Biometric Authentication from a Mobile
Perspective</a>.
</i>
</p>

<p>
To conclude this series I am going to discuss briefly two methods of
single sign-on (SSO) described in the paper, one based on data
protection, the other on shared login sessions.
</p>

<h3>SSO Based on Data Protection</h3>

<p>
Section 5 of the 
<a href="/whitepapers/CryptographicAuthentication.pdf">paper</a>
explains how the multifactor closed-loop authentication method
described in the
<a href="/2013/04/08/defense-in-depth-of-cryptographic-credentials-on-a-mobile-device/">third</a>
 and 
<a href="/2013/04/12/strong-authentication-with-a-low-entropy-biometric-key/">fourth</a>
 posts of the series provides an effective mechanism for protecting
 data stored in a mobile device against an adversary who captures the
 device.  The data is encrypted under a data encryption key that is
 entrusted to a key storage service.  To retrieve the key, the user
 provides a PIN and/or a biometric that are used to regenerate
 an uncertified key pair, which is used to authenticate to the storage
 service.
</p>

<p>
An adversary who captures the device needs the PIN and/or the
biometric sample to regenerate the key pair, and cannot mount an
offline attack to guess the PIN or to guess a biometric key derived
from the biometric sample; so the adversary cannot authenticate to the
key storage service, and cannot retrieve the key.  For additional
security the data encryption key can be cryptographically split in
several portions entrusted to different storages services.
Furthermore a protokey can be entrusted to those services instead of
the data encryption key, the key being then derived from the protokey
and the same non-stored secrets that are used to regenerate the
authentication key pair as described in Section 5.4.
</p>

<p>
This data protection mechanism can be used to protect any kind of
data.  In particular, it can be used to protect credentials used for
open-loop authentication or one-factor closed-loop authentication to
any number of mobile applications or, more precisely, to the back-ends
of those applications, which may be have browser-based or native
front-ends.  As discussed in Section 5.5, this amounts to single
sign-on to those applications because, after the user enters a PIN
and/or provides a biometric sample, the data encryption key retrieved
from the storage service(s) can be kept in memory for a certain amount
of time, making it possible to authenticate to the applications
without further user intervention.
</p>

<h3>SSO Based On Shared Login Sessions</h3>

<p>
Whereas SSO based on data protection can be used for any collection of
applications, SSO based on shared login sessions, described in Section
7.5, is best suited for authenticating to enterprise applications from
a mobile device.  A dedicated PBB in the mobile device and a VBB in
the enterprise cloud are used to that purpose.  The PBB contains a
single protocredential shared by all the enterprise applications,
which is used to regenerate an uncertified key pair, in conjunction
with a PIN and/or a biometric sample supplied by the user.  The VBB
has access to an enterprise database that contains device and user
records and where the VBB stores shared session records, as
illustrated in Figure 8.
</p>

<p>
It is not difficult to share login sessions among a group of web-based
applications owned by an enterprise, using a mechanism readily
available on the web.  Once the user has logged in to one of the
web-based applications in the group, that application can set in the
browser a session cookie whose scope (defined explicitly or implicitly
by the domain and path attributes of the cookie) comprises the
applications in the group and no others.  The browser will send the
cookie along with every HTTP request targeting an application in the
scope of the cookie, thus authenticating the request without user
intervention.
</p>

<p>
But we want to share login sessions among a group of enterprise
applications comprising applications with native front-ends in
addition to web-based applications.  To that purpose we use the mobile
authentication architecture that I discussed in the
<a href="/2013/04/16/using-cryptographic-authentication-without-a-cryptographic-api-on-ios-and-android-devices/">previous
  post</a>, modifying it as follows.  
</p>

<p>
Recall that an authentication event in the architecture consists of a
cryptographic authentication of the PBB to the VBB, followed by a
secondary non-cryptographic authentication using a one-time
authentication token, which plays the role of a bearer token, as
illustrated in Figure 6 for the case of an application with a native
front-end, and in Figure 7 for the case of a web-based application.
The authentication token is only used once because of the risk of
a <i>Referer</i> leak in the case of a web-based application.  However
there is no such risk in the case of an application with a native
front-end.
</p>

<p>
To implement shared login sessions we replace the one-time
authentication token with a pair of session tokens, a <i>one-time
session token</i> and a <i>reusable session token</i>.  After
successful cryptographic authentication of the PBB to the VBB, the VBB
creates a pair of session tokens and a shared session record
containing the two tokens, and sends the two tokens to the PBB, which
stores them.
</p>

<p>
A native front-end obtains a reusable session token from the PBB and
uses it repeatedly to authenticate to its back-end until the back-end
rejects it because the session referenced by the token has expired
because an expiration time in the shared session record has been
reached or some other reason.  Then the native front-end sends the
reusable token to the PBB asking for a replacement.  If the PBB has a
different reusable token, it sends it to the native front-end.  If
not, it prompts the user for a PIN and/or a biometric sample,
regenerates the uncertified key pair, authenticates cryptographically
to the VBB, obtains from the VBB a pair of session tokens pertaining
to a new session, and sends the new reusable token to the native
front-end.
</p>

<p>
A web-based application obtains a one-time session token from the PBB
and uses it to locate a shared session record and retrieve a reusable
session token, which it sets in the browser as the value of a session
cookie.  After the PBB sends the one-time token to the application, it
erases the one-time token from its storage; and after the application
uses the one-time token to retrieve the reusable token, it erases the
one-time token from the shared session record.  The session cookie is
used to authenticate HTTP requests sent by the browser to web-based
applications in the group, until one of the applications finds that
the session referenced by the reusable token contained in the cookie
has expired.  Then that application sends the reusable token to the
PBB and asks for a one-time token.  If the PBB has a one-time token
paired with a reusable token different from the one sent by the
application, it sends the one-time token to the application.
Otherwise it authenticates cryptographically to the VBB as in the case
of a native front-end, obtaining a pair of fresh tokens and sending
the new one-time token to the application.
</p>

<h3>Pros and Cons of the Two Methods</h3>

<p>
The method based on data protection is more flexible than the method
based on shared sessions.  It can be used to implement SSO for any set
of applications, whether or not those applications are related to each
other.  By contrast, the method based on shared sessions can only be
used to implement SSO for a group of related applications: the set of
web-based applications in the group must be circumscribable by the
scope of a cookie; and, as explained in Section 8.2.2, native
front-ends of applications in the group must be signed with the same
code-signing key pair in Android, or must have the same Team ID in
iOS, so that the PBB can refuse requests from applications not in the
group.
</p>

<p>
On the other, the method based on shared login sessions has
performance and security advantages, as explained in Section 7.5.3.
In the method based on data protection, SSO is accomplished by making
cryptographic authentication transparent to the user, whereas in the
method based on shared login sessions cryptographic authentication is
avoided altogether; hence the performance advantage.  In the method
based on data protection, the data encryption key must be present in
the device while the user interacts with the applications, whereas in
the method based on shared login sessions the uncertified key pair is
only needed when a new session is created, and can be erased after it
is used; hence the security advantage.
</p>
]]></content:encoded>
			<wfw:commentRss>http://pomcor.com/2013/04/20/two-methods-of-cryptographic-single-sign-on-on-mobile-devices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Cryptographic Authentication without a Cryptographic API on iOS and Android Devices</title>
		<link>http://pomcor.com/2013/04/16/using-cryptographic-authentication-without-a-cryptographic-api-on-ios-and-android-devices/</link>
		<comments>http://pomcor.com/2013/04/16/using-cryptographic-authentication-without-a-cryptographic-api-on-ios-and-android-devices/#comments</comments>
		<pubDate>Tue, 16 Apr 2013 19:17:59 +0000</pubDate>
		<dc:creator>Francisco Corella</dc:creator>
				<category><![CDATA[Identity]]></category>
		<category><![CDATA[Authentication]]></category>
		<category><![CDATA[cryptography]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://pomcor.com/?p=655</guid>
		<description><![CDATA[This is the fifth of a series of posts discussing the paper A Comprehensive Approach to Cryptographic and Biometric Authentication from a Mobile Perspective. Everybody agrees that passwords provide very poor security for user authentication, being vulnerable to capture by &#8230; <a href="http://pomcor.com/2013/04/16/using-cryptographic-authentication-without-a-cryptographic-api-on-ios-and-android-devices/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>
<i>
This is the fifth of a series of posts discussing the paper
<a href="/whitepapers/CryptographicAuthentication.pdf">
A Comprehensive Approach to Cryptographic and Biometric Authentication
from a Mobile Perspective</a>.
</i>
</p>

<p>
Everybody agrees that passwords provide very poor security for user
authentication, being vulnerable to capture by phishing attacks or
database breaches, or by being reused at malicious sites.
Authentication using public key cryptography does not have any of
these vulnerabilities, and yet, after being available for several
decades, it is only used in limited contexts.  As computing shifts
from traditional PCs to mobile devices, everybody agrees that
passwords are terribly inconvenient on touchscreen keyboards, in
addition to being insecure; and yet I don&#8217;t see a rush to adopting
cryptographic authentication methods on mobile devices.
</p>

<p>
What obstacles stand in the way of widespread adoption of
cryptographic authentication?
</p>

<p>
One obstacle is no doubt the complexity of cryptography.  Implementing
cryptographic functionality is difficult even when cryptographic
libraries are available.  Using a cryptographic API is no trivial
matter, as documented by Martin Georgiev et al. in a recent paper
(reference [39] in the paper).
</p>

<p>
Another obstacle is poor support by web browsers for the deployment
and use of cryptographic credentials.  In particular, there are no
easy-to-use standards generally supported by browser vendors for
issuing cryptographic credentials to a browser and requesting the
presentation by the browser of particular credentials or credentials
asserting particular attributes.
</p>

<p>
In Section 7 the paper proposes an architecture for cryptographic
authentication on mobile devices that addresses these two obstacles.
It does that by encapsulating cryptographic authentication of a mobile
device to an application back-end inside a Prover Black Box (PBB)
located in the device and a Verifier Black Box (VBB) located in the
cloud, as shown in figures 6 (page 48) and 7 (page 54).
</p>

<p>
The PBB may contain one or more protocredentials for multifactor
closed-loop authentication, or credentials for single factor
closed-loop or open-loop authentication; and it takes care of proving
possession of credentials to the VBB.  After a cryptographic
authentication event in which the PBB proves possession of one or more
credentials, the VBB creates an authentication object that records the
event and contains authentication data such as the hash of a public
key or attributes asserted by a public key certificate, a U-Prove
token, or an Idemix anonymous credential.  The authentication object
is retrievable by a one-time authentication token, which the VBB
passes to the PBB and the PBB passes to the application back-end via a
native front-end or via the web browser.  The authentication token
plays the role of a bearer token in a secondary non-cryptographic
authentication of the native front-end or web browser to the back-end,
and allows the application back-end to retrieve the authentication
data.
</p>

<p>
In Figure 6 the native front-end of a mobile application receives the
authentication token from the PBB and uses it to authenticate to the
back-end of the same application, which presents it to the VBB to
retrieve the authentication data.
</p>

<p>
In Figure 7, the PBB sends the token via the browser to the back-end
of a web-based application, thus authenticating the browser to the
back-end, which again uses the token to retrieve the authentication
data from the VBB.  (As a matter of terminology, we view a web-based
application as having a back-end and a front-end, the back-end being
its cloud portion, while the front-end consists of web pages and
client-side code running in the browser.)
</p>

<p>
This architecture circumvents the two obstacles identified above to
the adoption of cryptographic authentication.
</p>

<p>
The browser obstacle is avoided in Figure 6 because no browser is
involved, and in Figure 7 because the browser is not involved in
storing or presenting credentials, and no modification of standard
browser functionality is required.
</p>

<p>
The obstacle presented by the complexity of cryptography is avoided by
the encapsulation of cryptographic functionality in the PBB and the
VBB and by making the PBB and the VBB accessible through
non-cryptographic APIs in a manner familiar to native and web-based
application developers.
</p>

<p>
In Figure 6, arrows (1) and (4) represent messages sent via the
operating system of the mobile device using inter-application
communication mechanisms available in iOS and Android; each message is
a URL having a custom scheme, with message parameters embedded as
usual in the query portion of the URL.  Arrow (6) represents an HTTP
POST request, and arrow (7) the corresponding response.  Arrow (5) is
internal to the application and can be implemented as part of a
standard web API through which the native front-end accesses its
back-end.
</p>

<p>
In Figure 7, arrow (1) represents an HTTP response that redirects the
browser to a custom scheme that targets the PBB, with parameters
included in the query portion of the URL; when the browser receives
the response, it forwards it to the PBB as a message, using the
inter-application communication mechanism provided by the operating
system.  Arrow (4) represents a message sent by the PBB using the same
mechanism, with scheme <i>https</i>; the operating system delivers it
to the browser, which forwards it as an HTTP GET request to the
application back-end.  Arrow (5) represents an HTTP POST request, and
arrow (6) the corresponding response.
</p>

<p>
The architecture is very flexible.  It covers a wide variety of use
cases, some of which are sketched out in Section 7.1.
<p>

<p>
A PBB-VBB pair may be used for returning-user authentication to one
particular application.  In that case the PBB contains a single
credential (for one-factor authentication) or protocredential (for
multifactor authentication).
</p>

<p>
Alternatively, a general purpose PBB may be made available to any
mobile application that has a native front-end on the device or is
accessed from the device through a browser, each application having
its own VBB.  In that case the PBB may contain any number of
credentials or protocredentials used for closed-loop authentication,
as well as credentials used for open-loop authentication.
</p>

<p>
An application may ask a general purpose PBB to prove possession of an
uncertified key pair to the application&#8217;s VBB for returning-user
authentication, or to the VBB of an identity/attribute provider or a
social network for third-party closed-loop authentication or social
login.  The VBB of an identity/attribute provider delivers the user&#8217;s
identity or attributes to the application back-end as authentication
data upon presentation of the authentication token.  The VBB of a
social network may instead deliver an access token that provides
limited access to the user&#8217;s account, thus allowing the application to
obtain the user&#8217;s identity and attributes from the user&#8217;s profile, to
issue social updates on behalf of the user, and more generally to
provide an alternative user interface to the social network.
</p>

<p>
An application may also ask a general purpose PBB to demonstrate that
the user has certain attributes by presenting public key certificates,
U-Prove tokens or Idemix anonymous credentials to the application&#8217;s
VBB in open-loop authentication.
</p>

<p>
For enterprise use, a PBB-VBB pair may be shared by a group of
enterprise applications, including web-based applications and
applications with native front-ends, with single sign-on based on
shared login sessions.  I will discuss this functionality in the next
post.
</p>

<p>
A security analysis of the architecture is provided in Section 8.
Among other security considerations, it discusses protection against
leaks through so-called <i>Referer</i> headers, protection against
misuse of an authentication token by its recipient to impersonate the
user, a countermeasure against a form of <i>Login CSRF</i>,
identification of the application that requests presentation of one or
more credentials kept by a general purpose browser, and
countermeasures against a malicious application masquerading as a
different application or as the system browser.
</p>
]]></content:encoded>
			<wfw:commentRss>http://pomcor.com/2013/04/16/using-cryptographic-authentication-without-a-cryptographic-api-on-ios-and-android-devices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Strong Authentication with a Low-Entropy Biometric Key</title>
		<link>http://pomcor.com/2013/04/12/strong-authentication-with-a-low-entropy-biometric-key/</link>
		<comments>http://pomcor.com/2013/04/12/strong-authentication-with-a-low-entropy-biometric-key/#comments</comments>
		<pubDate>Fri, 12 Apr 2013 17:54:08 +0000</pubDate>
		<dc:creator>Francisco Corella</dc:creator>
				<category><![CDATA[Identity]]></category>
		<category><![CDATA[Authentication]]></category>
		<category><![CDATA[Biometric]]></category>
		<category><![CDATA[cryptography]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://pomcor.com/?p=651</guid>
		<description><![CDATA[This is the fourth of a series of posts discussing the paper A Comprehensive Approach to Cryptographic and Biometric Authentication from a Mobile Perspective. Biometrics are a strong form of authentication when there is assurance of liveness, i.e. assurance that &#8230; <a href="http://pomcor.com/2013/04/12/strong-authentication-with-a-low-entropy-biometric-key/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>
<i>
This is the fourth of a series of posts discussing the paper
<a href="/whitepapers/CryptographicAuthentication.pdf">
A Comprehensive Approach to Cryptographic and Biometric Authentication
from a Mobile Perspective</a>.
</i>
</p>

<p>
Biometrics are a strong form of authentication when there
is <i>assurance of liveness</i>, i.e. assurance that the biometric
sample submitted for authentication belongs to the individual seeking
authentication.  Assurance of liveness may be relatively easy to
achieve when a biometric sample is submitted to a reader in the
presence of human operator, if the reader and the operator are trusted
by the party to which the user is authenticating; but it is
practically impossible to achieve for remote authentication with a
reader controlled by the authenticating user.  When there is no
assurance of liveness, security must rely on the relative secrecy of
biometric features, which is never absolute, and may be non-existent.
Fingerprints, in particular, cannot be considered a secret, since you
leave fingerprints on most surfaces you touch.  Using a fingerprint as
a login password would mean leaving sticky notes with your password
everywhere you go.
</p>

<p>
In addition to these security caveats, biometric authentication raises
acute privacy concerns.  Online transactions authenticated with biometric
features would be linkable not only to other online transactions, but also
to offline activities of the user.  And both online and offline
transactions would become linked to the user&#8217;s identity if a biometric
sample or template pertaining to the user became public knowledge or
were acquired by an adversary.
</p>

<p>
Yet, in Section 3, the paper proposes a method of using biometrics for
user authentication on a mobile device to an application back-end.
The method addresses the above security and privacy concerns as
follows:
</p>

<ol>

<li>
First, biometrics is not used by itself, but rather as one factor in
multifactor authentication, another required factor being possession
of a protocredential stored in the user&#8217;s device, and another optional
factor being knowledge of a passcode such as a PIN.
</li>

<li>
Second, the paper suggests using an iris scan, which provides more
secrecy than fingerprints.  (The scan could be taken by a camera on the
user&#8217;s mobile device.  The paper cites the work of
<a href="http://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-640.pdf">Hao,
Anderson, and Daugman</a> at the University of Cambridge, which
achieved good results with iris scans using a near-infrared camera.  I
have just been told that phone cameras filter our near-infrared light,
so a special camera may be needed.  The
<a href="http://en.wikipedia.org/wiki/Iris_recognition">Wikipedia
article on iris recognition</a> discusses the use of near-infrared
vs. visible light for iris scanning.)
</li>

<li>
Third, no biometric-related data is sent by the user&#8217;s device to the
application back-end, neither at authentication time nor at enrollment
time.  The biometric sample is used to regenerate a key pair on the
device, and the key pair is used to authenticate the device to the
back-end.
</li>

<li>
Fourth, neither a biometric sample nor a biometric template are stored
in the user&#8217;s device.  Instead, the paper proposes to use one of
several methods described in the literature, cited in Section 3.2, for
consistently producing a <i>biometric key</i> from <i>auxiliary
data</i> and genuine but varying biometric samples.  Only the
auxiliary data is stored in the device, and it is deemed unfeasible to
recover any biometric information from the auxiliary data.
</li>

</ol>

<p>
The resulting security and privacy posture is discussed in Section 4.4
of the paper.
</p>

<p>
As shown in Figure 3 (in page 22 of the paper), we combine the
biometric key generation process with the key pair regeneration
process of our protocredential-based authentication method.  The
biometric sample (the iris image in the figure) is a non-stored secret
(the only one in this case), and the auxiliary data is kept in the
protocredential as a non-stored-secret related parameter.  The
auxiliary data and the biometric sample are combined to produce the
biometric key.  A randomized hash of the biometric key is computed
using a salt which is also kept in the protocredential, as a second
non-stored-secret related parameter.  The randomized hash of the
biometric key is used to regenerate the key pair, in conjunction with
the key-pair related parameters.  The key pair regeneration process
produces a DSA, ECDSA or RSA key pair as described in sections 2.6.2,
2.6.3 and 2.6.4 respectively.  The public key is sent to the
application back-end, and the private key is used to demonstrate
possession of the credential by signing a challenge.  Figure 4 (in
page 23 of the paper) adds a PIN as a second non-stored secret for
three-factor authentication; in that case the auxiliary data is kept
encrypted in the protocredential, and decrypted by x-oring the
ciphertext with a randomized hash of the PIN.
</p>

<p>
The combination of biometric key generation with our
protocredential-based authentication method represents a significant
improvement on biometric authentication methodology.  There is an
intrinsic trade-off between the consistency of a biometric key across
genuine biometric samples and the entropy of the key, because the need
to accommodate large enough variations among genuine biometric samples
reduces the entropy of the key.  In the above mentioned paper by Hao
et al., the authors are apologetic about the fact that their biometric
key has only 44 bits of entropy when the auxiliary data is known.  But
this is not a problem in our authentication framework, for two
reasons:
</p>

<ol>

<li>
The auxiliary data is not public.  An adversary must capture the
user&#8217;s device to obtain it.
</li>

<li>
An adversary who captures the user&#8217;s device and obtains the auxiliary
data cannot mount an offline guessing attack against the biometric
key.  All biometric keys produce well-formed DSA or ECDSA key pairs,
and most biometric keys produce well-formed RSA key pairs.  To
determine if a guessed biometric key is valid, the adversary must
therefore use it to generate a key pair, and use the key pair to
authenticate online against the application back-end, which will limit
the number of guesses to a small number.  Forty-four bits of entropy
is plenty if the adversary can only make, say, 10 guesses.
</li>

</ol>

<p>
Therefore our authentication method makes it possible to use
low-entropy biometric keys without compromising security.  This may
enable the use of biometric modalities or techniques that otherwise
would not provide sufficient security.
</p>

<p>
Nevertheless we do not advocate the routine use of biometrics for
authentication.  As pointed out in Section 10, while malware running
on the user&#8217;s device after an adversary has captured it cannot obtain
biometric data, malware running on the device while the user is using
it could obtain a biometric sample by prompting the user for the
sample.  A biometric authentication factor should only be used when
exceptional security requirements demand it and exceptional security
precautions are in place to protect the confidentiality of the user&#8217;s
biometric features.
</p>
]]></content:encoded>
			<wfw:commentRss>http://pomcor.com/2013/04/12/strong-authentication-with-a-low-entropy-biometric-key/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Defense in Depth of Cryptographic Credentials on a Mobile Device</title>
		<link>http://pomcor.com/2013/04/08/defense-in-depth-of-cryptographic-credentials-on-a-mobile-device/</link>
		<comments>http://pomcor.com/2013/04/08/defense-in-depth-of-cryptographic-credentials-on-a-mobile-device/#comments</comments>
		<pubDate>Tue, 09 Apr 2013 00:15:34 +0000</pubDate>
		<dc:creator>Francisco Corella</dc:creator>
				<category><![CDATA[Identity]]></category>
		<category><![CDATA[Authentication]]></category>
		<category><![CDATA[cryptography]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://pomcor.com/?p=646</guid>
		<description><![CDATA[This is the third of a series of posts discussing the paper A Comprehensive Approach to Cryptographic and Biometric Authentication from a Mobile Perspective. Credentials based on public key cryptography provide much stronger security than ordinary passwords or one-time passwords. &#8230; <a href="http://pomcor.com/2013/04/08/defense-in-depth-of-cryptographic-credentials-on-a-mobile-device/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>
<i>
This is the third of a series of posts discussing the paper
<a href="/whitepapers/CryptographicAuthentication.pdf">
A Comprehensive Approach to Cryptographic and Biometric Authentication
from a Mobile Perspective</a>.
</i>
</p>

<p>
Credentials based on public key cryptography provide much stronger
security than ordinary passwords or one-time passwords.  But a mobile
device can be lost or stolen.  How can a credential kept in a mobile
device be protected if the user&#8217;s device is captured by an adversary?
Two methods are traditionally used:
</p>

<ol>

<li><i>Private key encryption</i>.  The private key is encoded as
  specified by 
  <a href="http://tools.ietf.org/html/rfc5958">PKCS &#x0023;8</a>,
  together with cryptographic parameters that typically include the
  public key or a public key certificate, and the resulting encoded
  string is encrypted under a symmetric data-encryption key derived
  from a passcode.  This method is used, for example to protect SSH
  credentials used to manage cloud-hosted virtual servers.  But as
  explained in Section 4.3.1 of the
  <a href="/whitepapers/CryptographicAuthentication.pdf">paper</a>
  this method requires a high-entropy password, which is exceedingly
  difficult to type on the touchscreen keyboard of a smart phone.</li>

<li><i>Tamper resistance</i>.  This is relied upon, for example to
  protect credentials in smart cards such as 
  <a href="http://csrc.nist.gov/groups/SNS/piv/standards.html">PIV</a>
  or
  <a href="http://www.cac.mil/">CAC</a>
  cards.  But few mobile devices have tamper resistant modules.</li>

</ol>

<p>
On an iPhone or an iPad one could think of relying on the data
protection method introduced in iOS 4, which encrypts data in a locked
device under a key derived from the passcode that the user enters to
unlock the device and a key embedded in a hardware encryption chip.
But, as explained in section 5.1 of the paper, that method has not
proved to be effective.
</p>

<p>
Instead, Section 2 of the paper proposes a method for using an
uncertified key pair for multifactor closed-loop authentication that
makes it possible to protect the key pair without relying on any
special hardware.  The method is generally applicable, but is
particularly useful for authentication on a mobile device.  The idea
is to store in the device cryptographic parameters obtained during
initial credential generation, at least one of them being a secret,
and later, at authentication time, to <i>regenerate</i> the credential
from the stored cryptographic parameters and non-stored secrets
supplied by the user such as a PIN and/or a biometric sample.  (The
non-stored secrets could be supplied by a physical uncloneable
function, a PUF, in the case of an autonomous device; but the paper is
not concerned with autonomous devices.)  We refer to the stored
parameters as a <i>protocredential</i>.  Possession of the
protocredential counts as one authentication factor, while the
non-stored secrets play the role of additional authentication factors.
</p>

<p>
The paper distinguishes between parameters related to the key pair and
parameters related to the non-stored secrets.  In the case where a PIN
is the only non-stored secret, illustrated in Figure 2, there is one
non-stored-secret related parameter, a salt used to compute a
randomized hash of the PIN.  (Two-factor authentication with a
biometric sample and three-factor authentication with a PIN and a
biometric sample are discussed in Figures 3 and 4.  I will discuss
biometric authentication in the next blog post.)  The key-pair related
parameters depend on the public key cryptosystem being used.  In the
case of DSA and ECDSA, the key-pair related parameters are
the <i>domain parameters</i> specified in the
<a href="http://csrc.nist.gov/publications/fips/fips186-3/fips_186-3.pdf">Digital
  Signature Standard</a>.  In the case of RSA, there is one key-pair
  related parameter, the least common multiple &#x03BB of <i>p-1</i>
  and <i>q-1</i>, where <i>p</i> and <i>q</i> are the prime factors of
  the modulus.  The key pair regeneration procedures for DSA, ECDSA
  and RSA are described in sections 2.6.2, 2.6.3 and 2.6.4
  respectively.
</p>

<p>
In a mobile device, once the key pair has been regenerated, it is used
by the device to authenticate to a mobile application with which the
device has been previously registered.  The application may have a
native front-end or use a web browser as its front-end.  The
application back-end has a database that contains a record for the
device, identified by a device record handle (a database primary key).
To authenticate, the device sends the device record handle and the
public key to the application back-end and demonstrates knowledge of
the private key by signing a challenge.  The back-end verifies the
signature, uses the device record handle to locate the device record,
computes a cryptographic hash of the public key, and verifies that the
hash coincides with a hash stored in the device record.  (A mobile
authentication architecture that allows application developers to
implement the authentication process without using a cryptographic API
is described in Section 7; I will discuss it in another post later in
this series.)
</p>

<p>
An adversary who captures the device and is able to read the
protocredential needs the non-stored secrets to be able to regenerate
the credential and authenticate.  The adversary can try to guess the
non-stored secrets.  If a PIN is the only non-stored secret and the
user chooses a 4-digit PIN, the adversary only has to try 10,000 PINs.
If the adversary can test each PIN offline, it is trivial to go
through all 10,000 PINs.  But all PINs (in the case of DSA and ECDSA)
or most PINs (in the case of RSA) produce well-formed key pairs.  If
the adversary does not know the public key (nor a hash of the public
key), the only way to test a PIN is to try to use the key pair that it
produces to authenticate online against the application back-end; and
the back-end can limit the number of guesses to a very small number,
such as 3 or 5 or 10.  A 4-digit PIN can then be deemed to provide
sufficient security, just as 4-digit PIN is usually considered secure
enough for withdrawing cash from an ATM, which also limits the number
of PIN guesses.
</p>

<p>
To ensure that the adversary does not know the public key, the public
key should be treated as a shared secret between the device and the
application back-end.  Treating a public key as a secret is an
unconventional and paradoxical use of public key cryptography.
Section 4.1 explains that a shared symmetric secret could be used
instead of a key pair but would result in a weaker security posture.
</p>

<p>
To prevent a man-in-the-middle attack, the device connects to the
back-end using TLS (or some other kind of secure connection).
Furthermore, the challenge signed by the device to demonstrate
knowledge of the private key includes the TLS server certificate
of the application back-end.  Section 2.1 explains how this prevents a
man-in-the-middle attack even if the adversary is able to spoof the
TLS server certificate of the back-end.
</p>

<p>
All this results in a very strong defense-in-depth security posture.
As discussed in Section 4.2 and summarized in Table 1, authentication
is secure even against an adversary who is able to:
</p>

<ol>

<li>Capture the user&#8217;s device and read the protocredential from the
  device storage; or</li>

<li>Breach the security of the database back-end and obtain the hash
  of the public key.  The adversary cannot mount an offline attack
  against a PIN used as single non-stored secret because the adversary
  does not have the protocredential, which contains at least one
  secret parameter.  Compare this to the effect of a breach of
  database security when the database contains hashes of passwords,
  all of which become vulnerable to offline dictionary attacks; or

<li>Breach network security and read the traffic from the device to
  the back-end (e.g. after the TLS connection has been terminated at a
  reverse proxy, in a misconfigured infrastructure-as-a-service
  cloud).  Again, the adversary cannot mount an offline attack against
  the PIN; or

<li>Spoof the TLS server certificate of the application back-end, as
  discussed above.

</ol>

<p>
Also, in use cases demanding exceptionally high security, by using a
high-entropy set of non-stored secrets, it is possible to achieve
security even against an adversary who breaches database or
communication security and then captures the device and obtains the
protocredential.
</p>

<p>
We have seen how to protect an uncertified key pair used for
closed-loop authentication.  How about other types of credentials?
Section 5 shows how the multifactor closed-loop authentication method
discussed above can be used to provide effective protection for data
stored in a mobile device, and in particular to provide protection for
any kind of credentials, including credentials used for open-loop
authentication, such as such as public key certificates, U-Prove
tokens or Idemix anonymous credentials.
</p>

<p>
In the next post I will discuss the use of a biometric sample as a
non-stored secret, and explain how it can achieve strong security
without putting at risk the confidentiality of the user&#8217;s biometric
features.
</p>
]]></content:encoded>
			<wfw:commentRss>http://pomcor.com/2013/04/08/defense-in-depth-of-cryptographic-credentials-on-a-mobile-device/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Closed-Loop vs. Open-Loop Authentication</title>
		<link>http://pomcor.com/2013/04/03/closed-loop-vs-open-loop-authentication/</link>
		<comments>http://pomcor.com/2013/04/03/closed-loop-vs-open-loop-authentication/#comments</comments>
		<pubDate>Wed, 03 Apr 2013 16:41:46 +0000</pubDate>
		<dc:creator>Francisco Corella</dc:creator>
				<category><![CDATA[Identity]]></category>
		<category><![CDATA[Authentication]]></category>
		<category><![CDATA[cryptography]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://pomcor.com/?p=642</guid>
		<description><![CDATA[This is the second of a series of posts discussing the paper A Comprehensive Approach to Cryptographic and Biometric Authentication from a Mobile Perspective. In this post I want to take the time to explain and emphasize the distinction made &#8230; <a href="http://pomcor.com/2013/04/03/closed-loop-vs-open-loop-authentication/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>
<i>
This is the second of a series of posts discussing the paper
<a href="/whitepapers/CryptographicAuthentication.pdf">
A Comprehensive Approach to Cryptographic and Biometric Authentication
from a Mobile Perspective</a>.
</i>
</p>

<p>
In this post I want to take the time to explain and emphasize the
distinction made in the paper between <i>closed-loop
authentication</i> and <i>open-loop authentication</i>.  This may seem
an unimportant matter of vocabulary, but the distinction is essential
for two reasons: first, because it helps understand the privacy
posture of authentication technologies; second, because it leads to
what we think is the best choice of cryptographic authentication
technologies for mobile devices.
</p>

<p>
The concepts of closed-loop and open-loop authentication are defined
in the introduction, and examples are given.  In open-loop
authentication, a party such as a certificate authority or, more
generally a credential authority, issues a cryptographic credential to
the user&#8217;s device, and then is &#8220;out of the loop&#8221; when the device
presents the credential to a relying party.  Credentials used in
open-loop authentication are typically public key certificates, but
could also be U-Prove tokens or Idemix anonymous credentials.  In
closed-loop authentication, on the other hand, the credential
authority is involved in the authentication process, taking care of
verifying possession of the credential by the device.  In third-party
closed-loop authentication, the credential authority is an identity or
attribute provider, which communicates user attributes to a relying
party after verifying that the device possesses the credential.  In
two-party authentication, there is only one party besides the user&#8217;s
device, so two-party authentication can only be closed-loop
authentication.
</p>

<p>
The distinction between closed-loop and open-loop authentication
makes it possible to make two observations.
</p>

<p>
The first observation is that closed-loop authentication can rely on
an uncertified key pair, i.e. a key pair that is not bound to any
attributes by a certificate.  (As a matter of vocabulary, we say that
an uncertified key pair is registered by the device with the
credential authority, rather than issued by the credential authority
to the device, because the credential authority plays no role in
generating the key pair; the paper refers to the credential authority
as &#8220;the party that issues or registers the credential&#8221;.)  An
uncertified key pair can be used because the credential authority can
store user attributes in its internal storage and retrieve them at
authentication time.  Therefore the attributes need not be included in
the credential.
</p>

<p>
The second observation is that, in third-party closed-loop
authentication, the credential authority, i.e. the identity or
attribute provider, is informed of the authentication transaction and,
typically, is told what relying party the user is authenticating to.
This impinges on the user&#8217;s privacy, especially if the user has no
choice of identity or attribute provider and does not trust the
provider.  This is not just a theoretical consideration.  The identity
providers most commonly used today have track records of privacy
violations, and users are wary of being spied upon.
</p>

<p>
Some time ago, before being concerned with mobile authentication, we
wrote a
<a href="/whitepapers/NSTICWhitePaper.pdf">white paper</a> proposing
to eliminate this privacy drawback by using the browser to hide the
identity of the relying party.  However, this would require
substantial modifications of core browser functionality.  More
recently, in an 
<a href="http://info.idmanagement.gov/2012/10/
challenges-in-operationalizing-privacy.html">ICAM blog post</a>, Anil
John has proposed hiding the identity of the relying party behind a
proxy.  But that complicates authentication and serves only to shift
the trust issue from the identity provider to the proxy.
</p>

<p>
Open-loop authentication, on the other hand, does not suffer from this
privacy drawback.
</p>

<p>
These observations led us to the following choice of technologies for
cryptographic authentication on mobile devices:
</p>

<ul>

<li>For the sake of simplicity, an uncertified key pair should be used
  for two-party authentication.

<li>For the sake of privacy, open-loop authentication should be used
  when attributes are asserted by a third party, except in special
  cases.  Credentials used in open-loop authentication could be public
  key certificates, U-Prove tokens, or Idemix anonymous credentials,
  depending on the privacy requirements, as explained in section 6.1.

</ul>

<p>
There are two special cases where it makes sense to use third-party
closed-loop authentication.  One is social login, where an application
is granted limited access to the user&#8217;s account at a social network
such as Facebook or Twitter and authenticates the user as side-effect,
by obtaining user attributes from the user&#8217;s profile.  In social
login, the social network is necessarily involved in the
authentication transaction.  The other is third-party login using as
identity provider a personal data repository service that emphasizes
privacy and is freely chosen and trusted by the user.  A company
participating in the
<a href="http://personaldataecosystem.org/">Personal Data Ecosystem
  Consortium (PDEC)</a>, for example, could play the role of identity
  provider.
</p>

<p>
However, this choice of technologies posed the problem of how to
protect the credentials used in open-loop authentication against an
adversary who captures the user&#8217;s mobile device, because the key pair
regeneration method, which I mentioned in the previous post and will
discuss in more detail in the next post, does not work for open-loop
authentication.
</p>

<p>
We were happy to find a simple solution to that problem.  As described
in Section 5, key pair regeneration can be used to implement effective
data protection against an adversary who captures the device, by
encrypting the data under a data-encryption key, entrusting the key to
a key storage service (or splitting it cryptographically across
multiple services), and authenticating to the service(s) with a
regenerated key pair to retrieve the key.  A credential used in
open-loop authentication can be protected as data in this way, thus
benefiting indirectly from the security provided by the key pair regeneration technique.
</p>

<p>
In the next post I will finally get into the technical details of the paper.
</p>
]]></content:encoded>
			<wfw:commentRss>http://pomcor.com/2013/04/03/closed-loop-vs-open-loop-authentication/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>New Research on Mobile Authentication</title>
		<link>http://pomcor.com/2013/03/29/new-research-on-mobile-authentication/</link>
		<comments>http://pomcor.com/2013/03/29/new-research-on-mobile-authentication/#comments</comments>
		<pubDate>Fri, 29 Mar 2013 16:25:46 +0000</pubDate>
		<dc:creator>Francisco Corella</dc:creator>
				<category><![CDATA[Identity]]></category>
		<category><![CDATA[Authentication]]></category>
		<category><![CDATA[Biometric]]></category>
		<category><![CDATA[cryptography]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Multifactor]]></category>

		<guid isPermaLink="false">http://pomcor.com/?p=634</guid>
		<description><![CDATA[This is the first of a series of posts discussing the paper A Comprehensive Approach to Cryptographic and Biometric Authentication from a Mobile Perspective In the next few posts I will be reporting on research that we have been doing &#8230; <a href="http://pomcor.com/2013/03/29/new-research-on-mobile-authentication/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>
<i>
This is the first of a series of posts discussing the paper
<a href="/whitepapers/CryptographicAuthentication.pdf">
A Comprehensive Approach to Cryptographic and Biometric Authentication
from a Mobile Perspective</a>
</i>
</p>

<p>
In the next few posts I will be reporting on research that we have
been doing over the last six months related to cryptographic and
biometric authentication, focused on mobile devices.  I have held off
from writing while we were doing the research but now I have a lot to
say, so stay tuned.  
</p>

<p>
By the way, in the last six months we have also moved from San Diego
to San Jose.  I used to work in Silicon Valley, so it&#8217;s nice to be
back here and renew old friendships.  If you are interested in
cryptographic and/or biometric authentication and you are based in
Silicon Valley or passing by, let me know; I would be happy to meet
for coffee and chat.
</p>

<p>
The starting point of the this latest research was the work we
presented at the NIST Cryptographic Key Management workshop last
September
(<a href="http://csrc.nist.gov/groups/ST/key_mgmt/documents/Sept2012_Presentations/CORELLA_DerivedCredentials.pdf">Key
Management Challenges of Derived Credentials and Techniques for
Addressing Them</a>) and at the Internet Identity Workshop last
October (<a href="/documents/NewAuthMethod.pdf">New Authentication
Method for Mobile Devices</a>), and wrote up in the paper
<a href="/whitepapers/MobileAuthentication.pdf">Strong and Convenient
  Multi-Factor Authentication on Mobile Devices</a>.  
</p>

<p>
In that early work we devised a mobile authentication architecture
where the user authenticates with an uncertified key pair, and a
method for regenerating an RSA key pair from a PIN and/or a biometric
key.  The architecture facilitates implementation by encapsulating the
complexities of cryptography and biometrics in a Prover Black Box
located in the device and Verifier Black Box located in the cloud,
while the key pair regeneration method protects the credential against
an adversary who captures the user&#8217;s mobile device, by preventing an
offline attack against the PIN and/or the biometric key.  The
architecture was primarily intended for mobile devices but could be
adapted for use in traditional PCs by means of browser extensions.
</p>

<p>
The early work left three questions open:
</p>

<ol>

<li>Can the key pair regeneration method be adapted to cryptosystems
  other than RSA?  This question is practically important because RSA
  can be used for encryption, and is therefore subject to export
  controls.  The export restrictions have been relaxed a lot since the
  nineties, but they are so complex that consultation with a lawyer
  may be required to figure out whether and to what extent they are
  applicable to a particular product.

<li>Can the mobile authentication architecture accomodate credentials
  other than uncertified key pairs, including public key certificates
  and privacy-enhancing credentials such as U-Prove tokens and Idemix
  anonymous credentials?  Uncertified key pairs are ideal for
  returning-user authentication, but they cannot be used to provide
  evidence that the user is entitled to attributes asserted by
  authoritative third parties.

<li>Does the architecture support single sign-on (SSO)?  SSO is an
  essential usability feature when multiple frequently used
  applications require multifactor authentication.

</ol>

<p>
I am happy to report that we have found good answers to all three
questions.  First, we have found efficient regeneration methods for
DSA and ECDSA key pairs; since DSA and ECDSA can only be used for
digital signature, they are not subject to export restrictions.
Second, we have found a way of extending the architecture to
accomodate a variety of credentials, including public key certificates
and privacy-enhancing credentials, without giving up on the strong
security properties of the original architecture.  Third, we found
have found two different ways of providing SSO, one of them well
suited for web-wide consumer SSO, the other for enterprise SSO; and
both applicable to a mix of web-based apps and apps with native
front-ends.
</p>

<p>
An unanticipated result of the research was the discovery of a defense
against an adversary who has succeeded in spoofing a TLS server
certificate.  Spoofing a certificate is difficult, but not unheard of.
The defense, which relies on a form of mutual cryptographic authentication,
prevents a man-in-the-middle attack and helps the user detect
that a server controlled by the adversary is masquerading as a
legitimate server using the spoofed certificate.
</p>

<p>
We have written all this up in a technical whitepaper,
</p>

<ul>

<li>
<a href="/whitepapers/CryptographicAuthentication.pdf">
A Comprehensive Approach to Cryptographic and Biometric Authentication
from a Mobile Perspective</a>.
</li>

</ul>
The paper is quite long, because we thought it was important to
describe everything in one place, showing how it all fits together.
It would be difficult to discuss the entire paper at once, but in the
next few posts I will go one by one over some of the topics in the
paper; hopefully that will make it easier to discuss each topic.
Watch for the next post in a few days.
</p>
]]></content:encoded>
			<wfw:commentRss>http://pomcor.com/2013/03/29/new-research-on-mobile-authentication/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Consistent Results from Inconsistent Data</title>
		<link>http://pomcor.com/2012/10/07/consistent-results-from-inconsistent-data/</link>
		<comments>http://pomcor.com/2012/10/07/consistent-results-from-inconsistent-data/#comments</comments>
		<pubDate>Mon, 08 Oct 2012 03:52:20 +0000</pubDate>
		<dc:creator>Francisco Corella</dc:creator>
				<category><![CDATA[Identity]]></category>
		<category><![CDATA[Authentication]]></category>
		<category><![CDATA[cryptography]]></category>
		<category><![CDATA[Data Protection]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[NIST]]></category>

		<guid isPermaLink="false">http://pomcor.com/?p=597</guid>
		<description><![CDATA[This post is a continuation of my report on the NIST Cryptographic Key Management Workshop. In the previous post I said I had more to say about Rene Struik&#8217;s presentation [1] because there are multiple connections between his talk and &#8230; <a href="http://pomcor.com/2012/10/07/consistent-results-from-inconsistent-data/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p> This post is a continuation of <a
href="http://pomcor.com/2012/09/25/report-on-the-nist-cryptographic-key-management-workshop/">my
report</a> on the <a
href="http://www.nist.gov/itl/csd/ct/ckm_workshop_2012.cfm">NIST
Cryptographic Key Management Workshop</a>.  In the previous post I
said I had more to say about Rene Struik&#8217;s presentation <a
href="#1">[1]</a> because there are multiple connections between his
talk and our own presentation <a href="#2">[2]</a>.  </p>

<p> Dr. Struik proposed to use a physical uncloneable function (PUF) to
generate a cryptographic key when the device is turned on.  A PUF is a
function implemented by a physical device that is difficult to predict
and difficult to duplicate in a different device.  One way of
implementing a PUF is by applying stimuli to a device such as a chip,
and reading responses that are not determined by the design of the
chip, but depend instead on small random variations of the
fabrication process within the tolerances of the process
specification.  For key generation, one stimulus is applied to the
device, viz. power, and one response is produced, an uncloneable key.
</p>

<p> One problem with this key generation method is that the response
of the chip will be slightly different each time the device is turned
on.  Struik proposed an elegant method of removing these differences
in order to obtain the same key consistently, and using these same
differences as an entropy source for true random number
generation. </p>

<p> I saw an interesting connection between Struick&#8217;s uncloneable key
and the hardware key used by Apple for data protection in iOS, which I
discussed during my talk. </p>

<p> Both keys are intended to be difficult to extract from the device
where they are used.  The hardware key is built into the silicon of a
hardware encryption chip, whose interface does not allow the key to be
exported from the chip; but no claims are made as to the chip being
tamper resistant, so a well-equipped attacker may be able to read the
key by probing the silicon.  By contrast, the uncloneable key is not
present in the device when the device is turned off and thus cannot be
extracted by probing the silicon; but custom code running on the
device could obtain the key when the device is turned on.  </p>

<p> The two methods could be combined.  For example, a device could
contain an encryption chip that would generate an uncloneable key when
power is applied, and the interface of the chip could prevent the key
from being exported.  However, custom code running on the device could
still make use of the key, just like forensic tools are able to use
the hardware key in the iPhone in brute-force attacks to crack the user&#8217;s passcode <a
href="#3">[3]</a> <a href="#4">[4]</a>.  </p>

<p> Another connection between the two presentations is that they
both proposed regenerating keys instead of storing them.  In Struik&#8217;s
presentation a symmetric key was regenerated from the physical
properties of the device.  In our presentation an RSA key pair was
regenerated from user input (a PIN and/or a biometric sample).  Our
regeneration method is not applicable if there is no user, while
Struik&#8217;s is; on the other hand, when used in a user-controlled mobile
device, our method has the advantage that the key pair caonnot be
obtained by custom code running on a device that has been lost or
stolen.  </p>

<p> But the most interesting connection, for me, was between Struik&#8217;s
method for consistently producing the same uncloneable key from a
succession of slightly different physical responses to power-on, and
the method of Hao, Anderson and Daugman <a href="#5">[5]</a> for
producing a consistent biometric key from a succession of genuine but
slightly different iris image samples.  (In our presentation, we
proposed to use the method of Hao et al. in two- and/or three-factor
authentication.)  Both methods are based on the same ingenious
adaptation of the error correction paradigm for producing consistent
results from inconsistent data (which was pioneered by Juels and
Wattenberg <a href="#6">[6]</a> for implementing <i>fuzzy
commitments</i> as explained below).  </p>

<p> Error correction techniques were originally intended, and are most
often used, for correcting errors caused by the transmission of data
over a noisy channel.  Redundancy added to the data at the source
makes it possible to correct a small number of errors at the
destination.  (A unit of data to which redundancy has been added is
called a <i>codeword</i>.)  </p>

<p> The small variations that occur between successive biometric
samples or between successive samples of an uncloneable key are similar
to errors produced by channel noise, but there is no correct source
data to which redundancy could be added to eliminate errors.  If fact,
no errors are involved because, although one particular sample may
serve as a reference, no sample is more correct than any other
sample.  </p>

<p> To remove data variations, error correction is used as follows:
</p>

<ol>

<li> A random codeword <i>c</i> is generated by adding redundancy to a
random string.  The random codeword is of same length as a data
sample, but is otherwise unrelated to any data sample.  </li>

<li> The random codeword <i>c</i> is bitwise x-ored with a reference
sample <i>r</i> to produce helper data <i>h</i>:
<center><i>
h = c </i>&#x2295;<i> r.
</i></center>
</li>

<li> When a new sample <i>s</i> is obtained, it is bitwise x-ored with
the helper data to produce 
<center>
(<i>c</i> &#x2295; <i>r</i>) &#x2295; <i>s</i>.
</center>
Since x-or is associative, this is the same as 
<center>
<i>c</i> &#x2295; (<i>r</i> &#x2295; <i>s</i>)
</center>
and since <i>r</i> and <i>s</i> are similar, i.e. differ only in a few
bits, the bit-string
<center><i>
d = r </i>&#x2295;<i> s
</i></center>
consists mostly of zeros.  Bitwise x-oring <i>c</i> with <i>d</i>
flips a few bits in <i>c</i>, thus having the same effect that could be
produced by transmitting <i>c</i> over a noisy channel.  </li>

<li> Error correction is applied to recover the random codeword <i>c</i> from <i>c </i>&#x2295;<i>
d</i>.  If desired, <i>c</i> can then be bitwise x-ored with <i>h = c
</i>&#x2295;<i> r</i> to obtain <i>r</i>.  </li>

</ol>

<p> What this accomplishes is that the same result is consistently
produced from the variable sample <i>s</i>, as long as <i>s</i> in not
too different from <i>r</i>.  Either <i>c</i> or <i>r</i> can be used
as the consistent result.  Struik uses <i>r</i>, but I believe he
could equivalently use <i>c</i>.  Hao et al. use <i>c</i>, as their
biometric key.  In biometric applications, it is important to use
<i>c</i> rather than <i>r</i> to avoid revealing the user&#8217;s biometric
sample <i>r</i>, which could be a privacy violation.  The codeword
<i>c</i> contains no biometric information.  </p>

<p> Juels and Wattenberg <a href="#6">[6]</a> used the same technique
for implementing fuzzy commitments; as far as I can tell, they were
the original inventors of the technique.  In a cryptographic
commitment scheme, a sender commits to a value by combining it with a
<i>witness</i> to produce a <i>blob</i>, and sends the blob to a
receiver.  The sender can later reveal the value by providing the
witness, which the receiver uses to compute the blob and verify that
it coincides with the one received earlier.  The receiver cannot
derive the committed value from the blob without the witness, and only
one value, the original committed value, can be successfully revealed
by the sender.  Juels and Wattenberg used the above technique to
devise a fuzzy commitment scheme that tolerates small variations in
the witness.  With the above notations (different from their own), the
committed value is the codeword <i>c</i>, the witness is <i>r</i>, and
the blob is an ordered pair consisting of a conventional cryptographic
hash of <i>c</i> and the helper data <i>h</i>.  When the sender
provides <i>s</i> to decommit the value, the receiver computes
<i>c</i> as above and verifies that the hash of the computed <i>c</i>
coincides with the hash in the blob received from the sender.  </p>

<p>In their paper <a href="#6">[6]</a>, Juels and Wattenberg made the
connection with biometric authentication, but not with physical
uncloneable functions.  </p>

<h3><i>References</i></h3>

<p>
<table>

<tr>
<td valign="top">
<a name="1">[1]</a>
</td>
<td>
Rene Struik.  <a
href="http://csrc.nist.gov/groups/ST/key_mgmt/documents/Sept2012_Presentations/STRUIK_NIST_KMW_2012.pdf">Secure Key Storage and True Random Number Generation &#8211; An Overview.</a> NIST Cryptographic Key Management Workshop, September 2012.
<br/>&nbsp;
</td>
</tr>

<tr>
<td valign="top">
<a name="2">[2]</a>
</td>
<td>
Francisco Corella and Karen Lewison.  <a
href="http://csrc.nist.gov/groups/ST/key_mgmt/documents/Sept2012_Presentations/CORELLA_DerivedCredentials.pdf">Key Management Challenges of Derived Credentials and Techniques for Addressing Them.</a> NIST Cryptographic Key Management Workshop, September 2012.
<br/>&nbsp;
</td>
</tr>

<tr>
<td valign="top">
<a name="3">[3]</a>
</td>
<td>
Andrey Belenko.  <a
href="https://media.blackhat.com/bh-us-11/Belenko/BH_US_11_Belenko_iOS_Forensics_WP.pdf">Overcoming
iOS Data Protection to Re-enable iPhone Forensics.</a> Black Hat USA, July-August 2011.
<br/>&nbsp;
</td>
</tr>

<tr>
<td valign="top">
<a name="4">[4]</a>
</td>
<td>
Jean-Baptiste Bedrune and Jean Sigwald.
<a href="http://conference.hackinthebox.org/hitbsecconf2011ams/materials/D2T2%20-%20Jean-Baptiste%20Be%cc%81drune%20&#038;%20Jean%20Sigwald%20-%20iPhone%20Data%20Protection%20in%20Depth.pdf">iPhone data protection in depth</a>.  HITB Security Conference, May 2011.
<br/>&nbsp;
</td>
</tr>

<tr>
<td valign="top">
<a name="5">[5]</a>
</td>
<td>
Feng Hao, Ross Anderson and John Daugman.
Combining Cryptography with Biometrics Effectively.
IEEE Transactions on Computers, volume 5, number 9, pages 1081 &#8211; 1088, 2006.
Available as a Cambridge Computer Laboratory <a
href="http://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-640.html">technical report</a>.
<br/>&nbsp;
</td>
</tr>

<tr>
<td valign="top">
<a name="6">[6]</a>
</td>
<td>
Ari Juels and Martin Wattenberg.
A Fuzzy Commitment Scheme.
ACM Conference on Computer and Communications Security, 1999.
<br/>&nbsp;
</td>
</tr>

</table>
</p>
]]></content:encoded>
			<wfw:commentRss>http://pomcor.com/2012/10/07/consistent-results-from-inconsistent-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Report on the NIST Cryptographic Key Management Workshop</title>
		<link>http://pomcor.com/2012/09/25/report-on-the-nist-cryptographic-key-management-workshop/</link>
		<comments>http://pomcor.com/2012/09/25/report-on-the-nist-cryptographic-key-management-workshop/#comments</comments>
		<pubDate>Tue, 25 Sep 2012 19:55:30 +0000</pubDate>
		<dc:creator>Francisco Corella</dc:creator>
				<category><![CDATA[Identity]]></category>
		<category><![CDATA[cryptography]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[NIST]]></category>

		<guid isPermaLink="false">http://pomcor.com/?p=582</guid>
		<description><![CDATA[This is a belated report on the Cryptographic Key Management Workshop that was held by NIST on September 10-11. Karen Lewison and I went to Washington DC for the workshop, where we presented a talk on techniques for addressing the &#8230; <a href="http://pomcor.com/2012/09/25/report-on-the-nist-cryptographic-key-management-workshop/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>
This is a belated report on the <a
href="http://www.nist.gov/itl/csd/ct/ckm_workshop_2012.cfm">Cryptographic
Key Management Workshop</a> that was held by NIST on September 10-11.
Karen Lewison and I went to Washington DC for the workshop, where we
presented a talk on techniques for addressing the key management
challenges of derived credentials.
</p>

<p>
Cryptographic key management may seem to be a dry topic, but the workshop
was quite interesting, especially the second day, which looked at the
future.  It was attended by about 50 cryptographers, and was webcast.
It began with a fascinating keynote address by Whitfield Diffie on the
history of cryptographic key management.  His <a
href="http://csrc.nist.gov/groups/ST/key_mgmt/documents/Sept2012_Presentations/DIFFIE_CKMW2012.pdf">presentation</a>
is online, but slides cannot do justice to the wealth of stories and
anecdotes that he narrated.
</p>

<h3>A Framework for Designing Cryptographic Key Management Systems</h3>

<p>
The main purpose of the workshop was to discuss the current drafts of
<a
href="http://csrc.nist.gov/publications/drafts/800-130/second-draft_sp-800-130_april-2012.pdf">NIST
Special Publication 800-130</a>, and <a
href="http://csrc.nist.gov/publications/drafts/800-152/draft-sp-800-152.pdf">NIST
Special Publication 800-152</a> and solicit comments on them.
(Instructions for sending comments on draft NIST publications can be
found at <a
href="http://csrc.nist.gov/publications/PubsDrafts.html">http://csrc.nist.gov/publications/PubsDrafts.html</a>.)
SP 800-130 is a comprehensive framework of topics that should be
considered by anybody who has to specify a Cryptographic Key Management
System (CKMS); since key management is an essential aspect of
cryptography, the framework should be invaluable to anybody designing
a system that incorporates cryptographic functionality.  SP 800-152
profiles the framework for cryptographic key management systems that
will be used in US Federal agencies, but goes beyond the systems
themselves to cover their procurement, installation, management, and
operation.
</p>

<p>
The two publications were discussed during the first day of the
workshop.  I cannot possibly go over the very detailed discussions
that took place, so I will limit myself to repeating one comment I
made regarding Section 4.7 of SP 800-130, &#8220;Anonymity, Unlinkability
and Unobservability&#8221;, and expanding upon it.  
</p>

<p> Anonymity, unlinkability and unobservability are privacy features
that may not be directly relevant to the authentication of Federal
employees in the course of their work, but they are very relevant to
the authentication of both consumers on the Web at large, and citizens
who access Federal information systems.  Traditional authentication by
username and password provides these three privacy features; but
passwords have well-known security and usability drawbacks, one of
them being the difficulty of remembering many different passwords.
One way of reducing the number of passwords to be remembered is to
rely on a third-party identity provider (IdP), so that one password
(presented to the IdP) can be used to authenticate to any number of
relying parties.  The Federal Government allows citizens to access
government web sites through redirection to several <a
href="http://www.idmanagement.gov/pages.cfm/page/ICAM-TrustFramework-IDP">Approved
Identity Providers</a>.  </p>

<p> But third party login has privacy drawbacks.  In usual
implementations, anonymity is lost because the relying party learns
the user&#8217;s identity at the IdP, unlinkability is lost by the use of
that identity at multiple relying parties, and unobservability is lost
because the IdP is informed of the user&#8217;s logins.  <a
href="http://www.idmanagement.gov/pages.cfm/page/ICAM-TrustFramework-Scheme">Profiles
of third-party login protocols</a> approved for citizen login to
government sites mitigate some of these drawbacks by asking the
identity provider to provide different identities for the same user to
different relying parties.  This mitigates the loss of anonymity, and
the loss of unlinkability to a certain extent.  (Relying parties by
themselves cannot track the user, but they can track the user in
collusion with the IdP.)  But the loss of unobservability is not
mitigated, because the IdP is still informed of the user&#8217;s activities.
</p>

<p> I believe that the Government should work to develop and promote
authentication methods that eliminate passwords while preserving
anonymity, unlinkability and unobservability.  Cryptographic
authentication with a key pair, using different key pairs for
different relying parties, can be a basis for such methods.  <p>

<h3>A Look at the Future</h3>

</p>
The second day of the workshop featured presentations on capabilities
of future cryptographic key management systems, ranging from
innovative to futuristic.  (Both days&#8217; presentations can be found in
the <a
href="http://www.nist.gov/itl/csd/ct/ckm_workshop_2012.cfm">workshop
web page</a>.)
</p>

<p> Tim Polk, manager of the Cryptographic Technology Group at NIST,
<a
href="http://csrc.nist.gov/groups/ST/key_mgmt/documents/Sept2012_Presentations/POLK_CKMW2012.pdf">motivated
the talks that followed</a> by going over challenges identified during
the development of the CKMS framework, related to interoperability
across security domains, algorithmic agility, constrained devices,
privacy, and scalability.  He also stressed the need to develop CKMSs
that are resilient to quantum computing attacks before it is too late.
</p>

<p>
Dennis Branstad of NIST discussed <a
href="http://csrc.nist.gov/groups/ST/key_mgmt/documents/Sept2012_Presentations/Branstad_Security_Policy.pdf">security
policies</a>, stating as a goal their automated specification,
negotiation and enforcement.
</p>

<p> Anna Lysyanskaya of Brown University discussed <a
href="http://csrc.nist.gov/groups/ST/key_mgmt/documents/Sept2012_Presentations/LYSYANSKAYA_nist12.pdf">her
work on anonymous credentials</a>.  She mentioned a new technique for
revocation of anonymous credentials that was presented at Crypto 2012
by Libert, Peters and Yung, and said she thought it deserved the best
paper award.  I believe a full version of the conference paper can be
found at <a
href="http://eprint.iacr.org/2012/442">http://eprint.iacr.org/2012/442</a>.
I haven&#8217;t read the paper yet.  Revocation of privacy-enhancing
credentials is practically difficult; I have discussed the topic in
several earlier posts.  </p>

<p> Paul Lambert of Marvell Semiconductors discussed <a
href="http://csrc.nist.gov/groups/ST/key_mgmt/documents/Sept2012_Presentations/LAMBERT_CKMW2012.pdf">authentication
and privilege management for devices connected by wireless area
networks</a>.  I was glad to hear him propose the use of a raw key
pair as a credential.  I later proposed the same thing in the talk on
derived credentials.  </p>

<p>
Lily Chen of NIST discussed the difficult key management problem of <a
href="http://csrc.nist.gov/groups/ST/key_mgmt/documents/Sept2012_Presentations/CHEN_Key_Management_Challenges_in_Mobility_Applications.pdf">handing
over a secure link</a> as a smart phone travels from one network to
another, when the networks use technologies that may be as different
as UMTS and WiFi.
</p>

<p>
Sarbari Gupta of Electrosoft discussed <a
href="http://csrc.nist.gov/groups/ST/key_mgmt/documents/Sept2012_Presentations/GUPTA_KMWSSep12_KeyMgmtinCloud.pdf">key
management in a cloud environment</a>.  She argued that the Federal
Risk and Authorization Management Program (FedRAMP) does not have
sufficient requirements for secure key management, and advocated the
establishment of a Federal Profile for Cloud Key Management.
</p>

<p>
Elaine Barker of NIST went over the intricacies and subtleties of <a
href="http://csrc.nist.gov/groups/ST/key_mgmt/documents/Sept2012_Presentations/BARKER_RBGs_Project_TUES.pdf">random
bit generation</a>, and solicited comments on <a
href="http://csrc.nist.gov/publications/drafts/800-90/draft-sp800-90b.pdf">Draft
Special Publication 800-90B</a> (entropy sources) and <a
href="http://csrc.nist.gov/publications/drafts/800-90/draft-sp800-90c.pdf">
Draft Special Publication 800-90C</a> (RBG Constructions, DRBGs and
NRBGs).  Comments are due December 3rd.
</p>

<p> Rene Struik discussed a method of <a
href="http://csrc.nist.gov/groups/ST/key_mgmt/documents/Sept2012_Presentations/STRUIK_NIST_KMW_2012.pdf">secure
key storage and true random number generation</a> using physical
unclonable functions (PUFs).  The idea is to use accidental properties
of a device to generate a unique key when the device is turned on.
(So I would say that his technique is closer to key generation than
key storage.)  Error correction is used to remove minor differences in
subsequent key generations.  As an additional benefit, those
differences are used for random number generation.  This very interesting
work is related in multiple ways to our own work on mobile
authentication and derived credentials; I plan to discuss it in more
detail in the next blog post.  </p>

<p> Mary Theofanos of NIST went over two case studies of <a
href="http://csrc.nist.gov/groups/ST/key_mgmt/documents/Sept2012_Presentations/THEOFANOS_keymanagement_usability_2012.pdf">usability
of key management procedures</a>: a PKI deployment, and a PIV pilot.
My personal getaways: the designer of a key management system must
know the users and their mental models of security; must provide
multiple authentication methods, e.g. by retaining username-password
as a backup for a cryptographic credential; and must not require
frequent PIN changes.  </p>

<p> The usability talk was followed by a panel that presented <a
href="http://csrc.nist.gov/groups/ST/key_mgmt/documents/Sept2012_Presentations/Panel_cross_domain_panel_CKMW2012.pdf">three
use cases of cross-domain interactions</a>.  Bob Griffin of RSA
discussed key management in the cloud.  Saikat Saha of SafeNet
discussed virtualized hardware security modules.  John Leiseboer of
Quintessencelabs discussed quantum key distribution; this was the
first presentation I&#8217;ve attended related to quantum cryptography, and
it motivated me to find out more about this futuristic topic.  </p>

<h3>Derived Credentials</h3>

<p>
Finally, I gave a presentation on <a
href="http://csrc.nist.gov/groups/ST/key_mgmt/documents/Sept2012_Presentations/CORELLA_DerivedCredentials.pdf">mobile
authentication and derived credentials</a>, co-authored with Karen
Lewison.  Even though this was the last presentation at the end of a
long day of talks, I was gratified that, as far as I know, nobody
snuck out early to the Dogfish Head brewery across the street from the
NIST campus <img src='http://pomcor.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  .  Derived credentials is a <a
href="http://csrc.nist.gov/groups/SMA/ispab/documents/minutes/2012-02/feb1_der_cred_ferraiolo_h_fips_201-2.pdf">NIST
concept</a> referring to credentials that, in the future, will be
installed in a mobile device after the user of the device
authenticates with a PIV card.  Our presentation went over three
techniques for implementing derived credentials that we proposed
earlier in a <a
href="http://pomcor.com/2012/08/22/techniques-for-implementing-derived-credentials-on-mobile-devices/">blog
post</a> and a <a
href="http://pomcor.com/whitepapers/DerivedCredentials.pdf">white
paper</a>, viz. public key cryptography without certificates, key pair
regeneration as an alternative to tamper resistance, and encapsulation
of cryptographic and biometric processing in a &#8220;prover black box&#8221; and
a &#8220;verifier black box&#8221; to insulate app developers from the
complexities of cryptography and biometrics.  
</p>

<p>
But we also went beyond derived credentials, in response to a request
made by Elaine Barker on behalf of Dennis Branstad before the
workshop.  We discussed extensions of our techniques, for
authentication across security domains, for social login without
passwords, and for data protection at rest without tamper resistance.
Since then we have put online a <a
href="http://pomcor.com/whitepapers/DataProtection.pdf">whitepaper on
the data protection work</a>.  We have not yet written whitepapers on
authentication across security domain or social login without
passwords.
</p>

<h3>Wrap-up</h3>

<p>
Tim Polk wrapped up the workshop by encouraging everybody to send
comments.  Although there is an official comment period for each draft
publication, NIST welcomes comments at any time.
</p>

<p>
Like the workshop on privacy-enhancing technology I attended last
year, this workshop was both enjoyable and very useful.  I&#8217;m glad to
be on the email distribution list, and I&#8217;m looking forward to the next
cryptography workshop at NIST.
</p>
]]></content:encoded>
			<wfw:commentRss>http://pomcor.com/2012/09/25/report-on-the-nist-cryptographic-key-management-workshop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
