<?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>On the road to Bandol &#187; SCWS</title>
	<atom:link href="https://javacard.vetilles.com/tag/scws/feed/" rel="self" type="application/rss+xml" />
	<link>https://javacard.vetilles.com</link>
	<description>A weblog on Java Card, security, and other things personal</description>
	<lastBuildDate>Mon, 18 Aug 2025 06:48:26 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.0.32</generator>
	<item>
		<title>Smart Card Web Server security</title>
		<link>https://javacard.vetilles.com/2010/06/02/smart-card-web-server-security/</link>
		<comments>https://javacard.vetilles.com/2010/06/02/smart-card-web-server-security/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 20:17:36 +0000</pubDate>
		<dc:creator><![CDATA[Eric Vétillard]]></dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[OWASP]]></category>
		<category><![CDATA[SCWS]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://javacard.vetilles.com/?p=581</guid>
		<description><![CDATA[UPDATED ON 04/06/10: Additional comments about security requirements Securing Web servers is hard work, as OWASP periodically reminds us. Of course, this applies to smart card web servers, regardless of the underlying technology. I received a comment from someone who noticed that some of the Java Card 3.0 Connected sample applications have really bad security. [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>UPDATED ON 04/06/10: Additional comments about security requirements</p>
<p>Securing Web servers is hard work, as <a href="http://www.owasp.org/" class="liexternal">OWASP</a> periodically reminds us. Of course, this applies to smart card web servers, regardless of the underlying technology. I received a comment from someone who noticed that some of the Java Card 3.0 Connected sample applications have <a href="http://blaufish.wordpress.com/2010/04/28/a-failure-of-imagination-javacard-3-0-xss-xsrf/" class="liexternal">really bad security</a>. Basically, all the attacks from OWASP&#8217;s book that can apply will apply.</p>
<p>Of course, one can claim that a piece of sample code is here to show a very basic implementation, not a fully secure application. On the other hand, I often claim that security should be built in from the ground up in applications. Now, here are the problems noticed by Blaufish:</p>
<ul>
<li>Servlet does not validate data in doGet(). That&#8217;s really bad, of course. Any HTML injection will work at that stage. The problem is that solving this issue is far from simple. The libraries that provide adequate protection against attacks are actually rather large and/or require significant resources, unless of course we oversimplify them, resulting in strong restrictions.</li>
<li>Servlet does not encode output in doGet(). That&#8217;s also bad, especially since nothing is done on input.  The problem is the same as above.</li>
<li>Servlet performs write upon GET, HTTP guidance violation. OK, this is typically due to sample code simplicity.</li>
<li>Servlet does not implement anti-XSRF tokens. This is actually rather easy to do in Java Card, and we would expect all SCWS applications to actually include a random string in request in order to avoid <a href="http://en.wikipedia.org/wiki/Cross-site_request_forgery" rel="nofollow" class="liwikipedia">XSRF</a> forgeries.</li>
<li>Database layer does not validate data. Combined with the absence of validation and encoding in doGet, this is of course unacceptable, since it would allow really terrible attacks. The issue is the same as for other validations, but a solution needs to be found.</li>
<li>No user authentication/authorization/session model. Here, my first thought was that there were other opportunities to add security in this application, in particular in the Web descriptor. However, since the operations are specified as query parameters, things may not be that easy. Except that the application is so &#8220;stupid&#8221; that any access control would be very basic, most likely a binary decision.</li>
</ul>
<p>So, what should we do? Including complex validation code in basic examples definitely isn&#8217;t the solution. However, mentioning that the application is a basic sample that doesn&#8217;t include the security measures required in any deployed application, regardless how simple, that could be done, and it may actually already be done. Also, we must recall that not all samples are that simple, and that some of them actually include some security (at least declarative security); we should make sure that there exists at least one example that include state-of-the-art security.</p>
<p>The real challenge, though, is to find appropriate countermeasures, <em>i.e.</em>, countermeasures that will work on real applications, running on real cards. That means that they must protect against major attacks, while allowing most uses, and fitting in the card.</p>
<p>Another issue is to identify which attacks actually apply, especially in the limiting context of OMA SCWS, where the mobile phone is the only possible client of the servers. Obviously, some attacks are not a problem: for instance, no risk of denial-of-service attacks. It also reduces the impact of some attacks, because the owner of the phone is the likely victim of most attacks, and many such attacks need to be performed by the owner. A SCWS Web application will not be as exposed as a classical Web application. However, depending on the usage patterns, there is a residual risk, which needs to be identified and countered.</p>
<p>Possibly not a minor challenge. I am not too worried about the first applications; we&#8217;ll manage to get them right (well, if we think about security in the first place). But if SCWS spreads, we will have to define a systematic way of including this security, which could be more difficult. Let&#8217;s see what happens.</p>
]]></content:encoded>
			<wfw:commentRss>https://javacard.vetilles.com/2010/06/02/smart-card-web-server-security/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cllient issues for Smart Card Web Servers</title>
		<link>https://javacard.vetilles.com/2009/04/30/cllient-issues-for-smart-card-web-servers/</link>
		<comments>https://javacard.vetilles.com/2009/04/30/cllient-issues-for-smart-card-web-servers/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 05:56:06 +0000</pubDate>
		<dc:creator><![CDATA[Eric Vétillard]]></dc:creator>
				<category><![CDATA[Discussions]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Mobile Security]]></category>
		<category><![CDATA[SCWS]]></category>

		<guid isPermaLink="false">http://javacard.vetilles.com/?p=309</guid>
		<description><![CDATA[Just like any other Web server, a Smart Card Web Server (SCWS) depends greatly on the capabilities of its clients. A presentation by Peter-Paul Koch to Google gives a very good overview of the capabilities of the various mobile browsers. What you can read in this presentation is quite sad. There have been many discussions [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Just like any other Web server, a Smart Card Web Server (SCWS) depends greatly on the capabilities of its clients. A presentation by Peter-Paul Koch to Google gives a very good overview of the capabilities of the various mobile browsers.</p>
<p>What you can read in this presentation is quite sad. There have been many discussions about portability issues for MIDP applications over different handsets, and these slides made me realize that the problems are just about the same for people developing mobile Web sites, even for very stupid issues.</p>
<p>Since SCWS primarily targets SIM cards, it means that these portability issues are going to creep in the SIM card. SIM Toolkit developers usually have many tales about the way in which handsets support SIM Toolkit in a variety of strange and unpredictable ways, but it seems that the situation is not getting any better as we move to another application model.</p>
<p>If we move in this presentation, we get to its core proposal, which is to use W3C widgets for mobile applications. And when we get there, the relationship with SCWS becomes completely different.<br />
<span id="more-309"></span></p>
<p>First, the issue that W3C widgets address concerns the flaky connections available on mobile networks (and in particular the sharing of bandwidth with people connected on the same cell). Naturally, SCWS also addresses the same issue, since a local Web server does not require any bandwidth.</p>
<p>Let&#8217;s look at this closer. If the two technologies address the same issues, they may actually be competing technologies. A W3C Widget is a small bundle including an HTML page with some additional content (JavaScript, images, &#8230;), and a descriptor. This is definitely something that Java Card 3.0 could do. Of course, the technologies are not equivalent, because Java Card 3.0 also provides the ability to locally generate content dynamically, and store data persistently.</p>
<p>The main competition between these two models is about the place where widgets should be stored. The &#8220;natural&#8221; place to store widgets is on the mobile, because that is what the people specifying W3C Widgets had in mind (widgets stored on the client). On the other hand, mobile operators may like the ability to push widgets to their users through their Java Card 3 SIM cards.</p>
<p>Enough for competition. One of the requirements from this presentation is the need for JavaScript Device APIs. Such APIs allow a Web application to access some features of the device, like the camera, the contacts, and many other things. Now, that could be interesting for Java Card 3. I can see a few interesting uses for pictures taken during the execution of a Java Card 3 application, or for accessing the contact list (that would actually be funny for the SIM to recover some access to the user&#8217;s contacts through this API).</p>
<p>A side effect of these Device APIs is that, since they provide an access to sensitive features, some security measures are required, such as a signature of the widgets or some interaction with the user when these widgets are installed. Then, as we have such signatures, it is tempting to extend the list of potentially sensitive things that become accessible. One of them would be to make mashups between a SIM-based application and outside application easier, by somehow allowing an exception to the &#8220;single origin&#8221; browser rule (possibly through a specific API).</p>
<p>There remains a number of issues to be addressed regarding widgets, including the security issue, but this approach sure is interesting, and I have the feeling that it is rather a step forward for client-side  Web servers such as SCWS, even though it can also be seen as a potential competitor.</p>
]]></content:encoded>
			<wfw:commentRss>https://javacard.vetilles.com/2009/04/30/cllient-issues-for-smart-card-web-servers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>We now have a phone</title>
		<link>https://javacard.vetilles.com/2008/11/18/we-now-have-a-phone/</link>
		<comments>https://javacard.vetilles.com/2008/11/18/we-now-have-a-phone/#comments</comments>
		<pubDate>Tue, 18 Nov 2008 21:17:14 +0000</pubDate>
		<dc:creator><![CDATA[Eric Vétillard]]></dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Gemalto]]></category>
		<category><![CDATA[LG]]></category>
		<category><![CDATA[SCWS]]></category>

		<guid isPermaLink="false">http://javacard.vetilles.com/?p=208</guid>
		<description><![CDATA[LG electronics has added support for Smart Card Web Servers in their latest phone model, the Renoir. Gemalto has jumped on the occasion to communicate about it. LG has a mini-site about their new phone (a pretty cool one, actually), but it does not mention this feature there. If you find a mention of Smart [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>LG electronics has added support for Smart Card Web Servers in their latest phone model, the Renoir. Gemalto has jumped on the occasion to <a href="http://www.gemalto.com/php/pr_view.php?id=437" class="liexternal">communicate</a> about it. LG has a <a href="http://renoir.lgmobile.com/" class="liexternal">mini-site</a> about their new phone (a pretty cool one, actually), but it does not mention this feature there. If you find a mention of Smart Card Web Servers on LG&#8217;s site, please let me know.</p>
<p>Even if LG is not talking about it, the news is still good, as it means that Smart Card Web Servers are not going the same way as NFC and USB-SIMs, waiting for years for handsets to support the technology. LG even wants to go further than a single product, as stated in the last interesting sentence of the press release:</p>
<blockquote><p>
Beginning in 2009, LG plans to have the SCWS feature available on most LG HSDPA handsets.
</p></blockquote>
<p>Of course, right now, we have to continue working with SCWS SIM card based on Java Card 2, becaues there is no existing Java Card 3.0 SIM card. So, if you want to see your SIM-based content displayed on a LG Renoir phone, you will need to write your site with byte arrays and other fun things. Good luck!</p>
]]></content:encoded>
			<wfw:commentRss>https://javacard.vetilles.com/2008/11/18/we-now-have-a-phone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
