Subject: [VIPR] Hashing the Caller-ID to increase privacy in PVP

From: Marc Petit-Huguenin <[email-masked]>
Date: Tue, 18 Oct 2011 12:46:29 -0700

During the last conference call, the proposal for using hash to protect the
privacy of the caller in VIPR was summarily dismissed.  I would like to give it
another shot.

The idea is that when using method "a", the Caller-ID is hashed using the bcrypt
hash algorithm[1], and the resulting hash is passed in the login of the SRP-TLS
transaction.  On the PVP server side the code retrieves the list of all calls
made to the called number (which is in clear), extracts the salt from the hash,
rehashes the Caller-ID of the calls selected, and selects the most recent call
that have a Caller-ID that matches the hash received.

Now a VIPR domain that would want to now the Caller-ID of the callers of a
specific phone number will have to hash a good part of the E.164 space to have a
chance to find the Caller-ID.  If the target is a 1800 number, so the attacker
can restrict the search space to the +1 prefix, it will need to hash in average
half this space, which is something like 1.3 billion numbers.  The beauty of the
bcrypt algorithm is that the number of rekeying rounds is configurable, and so
it can be increased as the hardware becomes faster.  For example on my computer,
it takes 1.3 ms to hash a US number when using 2^4 rounds, but 100 ms when using
2^10 rounds.  That means that it will take 4 years to hash half of the USA phone
numbers on one processor (adding more processors decreases the hash time
linearly).  The number of rounds could be a parameter of the VIPR overlay.

Here's what the login could look like:

a:vs=7f5a8630b6365bf2;op=$2a$10$uhNBlMT5O063n5/YMlg3Y.xTmZuHMeAFbSxhwSacX87aujFxPvoxG;tp=+16504614667;r=1000;

Exercise for the skeptical:  Make a phone call to the originating phone number
in this example...

[1] http://www.usenix.org/event/usenix99/provos/provos.pdf

- -- 
Marc Petit-Huguenin
Personal email: [email-masked]
Professional email: [email-masked]
Blog: http://blog.marc.petit-huguenin.org