<?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; Research</title>
	<atom:link href="http://javacard.vetilles.com/tag/research/feed/" rel="self" type="application/rss+xml" />
	<link>http://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>Proving code correct</title>
		<link>http://javacard.vetilles.com/2009/10/04/proving-code-correct/</link>
		<comments>http://javacard.vetilles.com/2009/10/04/proving-code-correct/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 16:47:18 +0000</pubDate>
		<dc:creator><![CDATA[Eric Vétillard]]></dc:creator>
				<category><![CDATA[Java Card 2.x]]></category>
		<category><![CDATA[Mobile Security]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://javacard.vetilles.com/?p=480</guid>
		<description><![CDATA[Most of us spent some time in school studying program proofs in a way or another. Many techniques exist, but in most cases, their most important use it to make students understand that, sometimes, a computation does not end. Proving programs is hard, but the hardness of the proof greatly depends on what you want [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Most of us spent some time in school studying program proofs in a way or another. Many techniques exist, but in most cases, their most important use it to make students understand that, sometimes, a computation does not end.</p>
<p>Proving programs is hard, but the hardness of the proof greatly depends on what you want to prove. We can split proofs in two groups:</p>
<ul>
<li><em>Proving generic properties on programs</em>. In that case, we are simply trying to prove that a given program (for instance, a Java Card program), satisfies a given property. This can be very simple. For instance, the property &#8220;The program does not use sharing&#8221; can be proven simply by ensuring that the program does not refer to <em>any</em> shareable interface. In such a case, a syntactical check (which does not look at all at what the program actually does) is sufficient. Sometimes, the proof is not as simple. For instance, the property &#8220;The program only sends SMS&#8217;s to French phone numbers&#8221; (on a MIDP program) is more complex to prove, because it requires an analysis of the data used by the program. In that case, the prover needs to simulate the way in which the program works in order to figure out all possible phone numbers that can be used to send SMS&#8217;s, and then analyze that. In that case, a semantic check (which somehow looks at what the program does) is required.</li>
<li><em>Proving that a program actually implements its specification</em>. Now, this is the hard part. The first difficulty is actually to write the specification in a way that can be understood by a prover (<em>i.e.</em>, a formal specification). Many languages exist to do that, and they are quite complicated. On Java Card, a famous result has been to prove that the verifier actually does its work and guarantees that programs run safely. Multos also had a similar result, in which they proved that running a program was safe(memory-wise). In both cases, it resulted to high-level security certifications (good for publicity and marketing). </li>
</ul>
<p>Now, how useful are these results?<br />
<span id="more-480"></span></p>
<p>The first kind of proof is called <em>static analysis</em>. We actually think about using this technique in the deployment of certified NFC applications, because it allows us to prove that an application does not interfere with other applications. And we also have been using this technique in the security evaluation of applications for years. Its main advantage is that is works on binary code, which means that it integrates easily in a signature scheme (a program is signed only if static analysis succeeds).</p>
<p>For formal proofs, we are not as close to direct exploitation. In the case of Java Card, it resulted in the discovery of a few interesting bugs in the specification of the Java Card Virtual Machine and API, which have been fixed in subsequent releases. This often occurs, as the construction of a formal specification forces developers to look into minute details of the spec, which often happen to be the source of issues and bugs.</p>
<p>In quite <a href="http://nicta.com.au/news/home_page_content_listing/?a=20796" class="liexternal">recent news</a>, an Australian team (NICTA) has announced that they have built a complete formal proof of an operating system kernel, which could be used in mobile devices. This piece of software represents 7500 lines of code, but the formal proof represents 200,000 lines, and it took 4 years to a team of 12 people to build it. Even if they didn&#8217;t work on this full time, this means that we are not going to see such proofs on a daily basis. However, this could become more common, because of the side results of this work, as explained by its leader in the press release:</p>
<blockquote><p>
â€œThis work goes beyond the usual checks for the absence of certain specific errors. Instead, it verifies full compliance with the system specification. The project has yielded not only a verified microkernel but a body of techniques that can be used to develop other verified software.â€
</p></blockquote>
<p>Hopefully, we will see more of it, since proving programs can definitely lead to more stable programs, and we need that.</p>
<p>Another good news is that the technology is apparently open source, and that it will be transferred to <a href="http://www.ok-labs.com/" class="liexternal">Open Kernel Labs</a>, a well-known Australian company in the field of mobile hypervisors.</p>
<p>Once again, it reminds us that mobile security is a hot topic, and there is still hope that our mobile devices will not become our next PC platform, ridden with vulnerabilities and malware.</p>
]]></content:encoded>
			<wfw:commentRss>http://javacard.vetilles.com/2009/10/04/proving-code-correct/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>e-Smart is back &#8230;</title>
		<link>http://javacard.vetilles.com/2009/09/19/e-smart-is-back/</link>
		<comments>http://javacard.vetilles.com/2009/09/19/e-smart-is-back/#comments</comments>
		<pubDate>Sat, 19 Sep 2009 13:54:13 +0000</pubDate>
		<dc:creator><![CDATA[Eric Vétillard]]></dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[e-Smart]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[smart card]]></category>
		<category><![CDATA[Smart Mobility]]></category>
		<category><![CDATA[Smart University]]></category>

		<guid isPermaLink="false">http://javacard.vetilles.com/?p=440</guid>
		<description><![CDATA[It&#8217;s that time of the year when summer turns in to fall (rather violently around here), and when smart card R&#038;D people gather in Sophia Antipolis for the Smart Event. I will be present throughout the week, with quite a busy schedule, between my own participations and the interesting sessions that I want to hear. [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s that time of the year when summer turns in to fall (rather violently around here), and when smart card R&#038;D people gather in Sophia Antipolis for the Smart Event. I will be present throughout the week, with quite a busy schedule, between my own participations and the interesting sessions that I want to hear.</p>
<p>Let me get you a biased timeline for this week, from Tuesday to Friday.<br />
<span id="more-440"></span></p>
<p>Let&#8217;s start by Tuesday:</p>
<ul>
<li>The <a href="http://www.strategiestm.com/conferences/smart-event/09/smart-university/program_javacard.htm" class="liexternal">Java Card 3.0 Programming</a> course at <a href="http://www.strategiestm.com/conferences/smart-event/09/smart-university/program.htm" class="liexternal">Smart University</a> lasts all Tuesday and Wednesday. My personal contribution in it is about security, on Tuesday afternoon. That should keep me busy for a full half-day.</li>
<li>If you are into contests (or if you are broke; this event is free), the new <a href="http://www.simagine.info/" class="liexternal">SIMagine</a> contest will be launched with a <a href="http://www.strategiestm.com/conferences/smart-event/09/workshops/index.htm#" class="liexternal">full-day conference</a> on Tuesday. This is not a Gemalto contest any more, but a wider contest, which is not limited to cards any more (even though I guess that involving a card in this could be a good idea). If you have a good mobile security idea (with a SIM card), that could be of interest.</li>
</ul>
<p>Wednesday will be very busy, in particular because there are events on the side of the main conferences:</p>
<ul>
<li>In the morning, the Java Card Forum organizes a meeting with academia, to see how we can help in promoting research about Java Card 3.0. This event is invitational, but if you are an academic, present at e-Smart, and you are interested, you are welcome at 10:00AM (I am not sure of the room, but I am sure that there will be an indication; follow the JCF logo).</li>
<li>In the morning, I like the title of Jacques Bus&#8217; keynote speech, <a href="http://www.strategiestm.com/conferences/smart-event/09/e-smart/program.htm#opening" class="liexternal">Trust in digital life</a>. I usually skip keynotes, but I may attend that one.</li>
<li>In the afternoon, There are also interesting speeches at e-Smart. First, one of my colleagues, Guillaume Dufay, talking about a formal model of really open cards (old topic, with a new twist), <a href="http://www.strategiestm.com/conferences/smart-event/09/e-smart/program.htm#p1a2" class="liexternal">around 3:00PM</a>. Later in the afternoon, there will also be a speech from G&#038;D about a secure runtime in the mobile; finally, Trusted Logic has a competitor in that field, moving forward to prove its interest.</li>
<li>Finally, almost all of <a href="http://www.strategiestm.com/conferences/smart-event/09/smart-mobility/program.htm" class="liexternal">Smart Mobility</a>&#8216;s <a href="http://www.strategiestm.com/conferences/smart-event/09/smart-mobility/program.htm#p1a1" class="liexternal">afternoon sessions</a> sound interesting, for various reasons. Tough choices ahead &#8230;</li>
</ul>
<p>Thursday will not be dull either, although I will finally be able to fully focus on the conferences:</p>
<ul>
<li>The <a href="http://www.strategiestm.com/conferences/smart-event/09/e-smart/program.htm#p2m1" class="liexternal">morning</a> at e-Smart will be a combination of NFC Security and Trusted Personal Devices. Two topics of interest for me, so I may be surfing between sessions.</li>
<li>Smart Mobility will bring us some discussions about the NFC ecosystems (TSMs and more), and about user experience. Interesting, but I have the feeling that there a few more new things at e-Smart (I may be wrong, though).</li>
<li>The first part of the afternoon is a no-brainer, at least for me. I will be on the stage, talking about Java Card 3.0 and Smart Card Web Server Security. My co-presenters, from Gemalto/Eurosmart and from Inside, will also have interesting speeches about cloud computing and about convergence.</li>
<li>If this is not you cup of tea, the <a href="http://www.strategiestm.com/conferences/smart-event/09/e-smart/program.htm#p2a1" class="liexternal">other session</a> of e-Smart could be very interesting, about state-of-the-art security. I am likely to join that session after break.</li>
<li>On the Smart Mobility side, my choice would go to the <a href="http://www.strategiestm.com/conferences/smart-event/09/smart-mobility/program.htm#p2a2" class="liexternal">Mobile banking</a> session, but mostly because I know about mots of the things presented in the other session.</li>
</ul>
<p>Friday is morning only, but that is quite a dense morning:</p>
<ul>
<li>At e-Smart, it is the <a href="http://www.strategiestm.com/conferences/smart-event/09/e-smart/program.htm#p3m1" class="liexternal">Java Card</a> session. The first part is quite introductive, with the amusing PlaySIM project (already discussed <a href="http://javacard.vetilles.com/2009/06/04/live-from-j1-the-playsim-project/" class="liinternal">here</a>). The second part includes two speeches about attacks; expect to find me there.</li>
<li>In parallel, Smart Mobility has a special TL session, with 4 consecutive speakers from Trusted Logic and Trusted Labs. I may miss some of them because of the Java Card session, but they are all worth it.</li>
</ul>
<p>Finally, I will try to be connected, like usually in conferences. I will be on Twitter (<a href="http://twitter.com/evetillard" class="liexternal">evetillard</a>), with the tag <a href="http://twitter.com/#search?q=%23esmart" class="liexternal">#esmart</a> (join me using it), and I will also try to blog live about the most exciting things.  </p>
]]></content:encoded>
			<wfw:commentRss>http://javacard.vetilles.com/2009/09/19/e-smart-is-back/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
