19.11.2012 Views

A review of Proverif as an automatic security protocol verifier

A review of Proverif as an automatic security protocol verifier

A review of Proverif as an automatic security protocol verifier

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

The exact capabilities <strong>of</strong> the attacker are modelled according to the threat<br />

model <strong>as</strong> proposed by Dolev <strong>an</strong>d Yao, which is known <strong>as</strong> the Dolev-Yao threat<br />

model [21]. In short, this amounts to the following three <strong>as</strong>sumptions:<br />

– Encryption schemes are perfect - no keys leak from the key infr<strong>as</strong>tructure,<br />

the encrypted messages are unretrievable without the key, everybody h<strong>as</strong><br />

access to all public keys.<br />

– The parties in the network c<strong>an</strong> perform the encryption <strong>an</strong>d decryption operations<br />

themselves - they do not require <strong>an</strong> external party to perform these<br />

t<strong>as</strong>ks for them.<br />

– The attacker <strong>as</strong>sumes the role <strong>of</strong> <strong>an</strong> ‘active adversary’. More precisely, he<br />

c<strong>an</strong> intercept <strong>an</strong>d read <strong>an</strong>y message that is sent on the network <strong>an</strong>d inject<br />

<strong>an</strong>y message that contains information he knows through previous actions.<br />

When studying the accuracy <strong>of</strong> a tool for <strong>as</strong>sessing <strong>security</strong> properties, it is<br />

common to discuss the specificity <strong>an</strong>d the sensitivity 5 <strong>of</strong> the tool. The specificity<br />

is the extent to which the tool is able to declare that no attacks exist for a<br />

<strong>protocol</strong> that indeed does not allow attacks, i.e. to prevent false positives. The<br />

sensitivity is the ability <strong>of</strong> the tool to correctly recognize insecure <strong>protocol</strong>s. In a<br />

<strong>security</strong> context, it is clear that a high sensitivity is more import<strong>an</strong>t th<strong>an</strong> a high<br />

specificity. After all, we would rather have a hundred false positives reported<br />

on our <strong>protocol</strong> th<strong>an</strong> one potential attack that goes unnoticed. However, the<br />

usability <strong>of</strong> the tool greatly depends on both the sensitivity <strong>an</strong>d the specificity.<br />

If a tool always reports that <strong>an</strong> attack exists, it would be prudent, yet not very<br />

useful. In ProVerif, certain <strong>as</strong>sumptions <strong>an</strong>d abstractions are introduced. All <strong>of</strong><br />

these, however, only give more power to the attacker, thereby at most raising the<br />

number <strong>of</strong> false positives, yet never missing <strong>an</strong> attack that is indeed legitimate.<br />

For a discussion <strong>of</strong> approximations in ProVerif, see subsection 4.1.<br />

The algorithm behind ProVerif always terminates. This is not guar<strong>an</strong>teed <strong>automatic</strong>ally,<br />

but me<strong>as</strong>ures have been taken to <strong>as</strong>sure its termination. The most<br />

notable <strong>of</strong> these me<strong>as</strong>ures is the limitation to the depth <strong>of</strong> the nesting <strong>of</strong> terms<br />

in <strong>protocol</strong> messages. If a message exceeds this limit, the message is replaced by<br />

a new variable. Like the other approximations, this does lessen the sensitivity,<br />

since <strong>an</strong>y attack that exists in the non-limited c<strong>as</strong>e still exists in the depthlimited<br />

c<strong>as</strong>e.<br />

ProVerif is rele<strong>as</strong>ed under the GNU GPL 6 , which me<strong>an</strong>s that the source code<br />

<strong>of</strong> the program is freely available on the web. Works derived from the source<br />

<strong>of</strong> ProVerif must also be licensed under the GNU GPL. For such a program,<br />

this c<strong>an</strong> be a great incentive for potential new users, since they c<strong>an</strong> check the<br />

validity <strong>of</strong> the implementation. Second, it becomes possible to write additions<br />

<strong>an</strong>d extensions for ProVerif.<br />

5<br />

These terms are frequently used in the medical world. A further expl<strong>an</strong>ation in that<br />

context c<strong>an</strong> be found at [31].<br />

6<br />

GNU General Public License version 2, see for more details http://www.gnu.org/<br />

licenses/gpl-2.0.html.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!