Internet DRAFT - draft-procter-vipr-privacy-concerns

draft-procter-vipr-privacy-concerns






VIPR                                                          M. Procter
Internet-Draft                                                VoIP.co.uk
Intended status: Informational                          October 21, 2011
Expires: April 23, 2012


    Privacy Concerns relating to the PSTN Validation Protocol (PVP)
                 draft-procter-vipr-privacy-concerns-00

Abstract

   This document describes some issues with privacy leaks (real or
   imagined) associated with VIPR, and also some of the countermeasures
   that could be deployed to avoid them.

Status of this Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on April 23, 2012.

Copyright Notice

   Copyright (c) 2011 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.





Procter                  Expires April 23, 2012                 [Page 1]

Internet-Draft                VIPR Privacy                  October 2011


Table of Contents

   1.  Leaks during validation . . . . . . . . . . . . . . . . . . . . 3
     1.1.  Caller ID . . . . . . . . . . . . . . . . . . . . . . . . . 3
       1.1.1.  Mitigation: Hash the Caller ID  . . . . . . . . . . . . 3
       1.1.2.  Mitigation: Reverse the direction of the lookup . . . . 3
       1.1.3.  Mitigation: Use the times in the username instead . . . 4
     1.2.  Source IP identification  . . . . . . . . . . . . . . . . . 4
       1.2.1.  Mitigation: Anonymising the validation attempt  . . . . 4
     1.3.  Traffic statistics leakage  . . . . . . . . . . . . . . . . 4
       1.3.1.  Mitigation: Random validations  . . . . . . . . . . . . 5
   2.  Office Pranks . . . . . . . . . . . . . . . . . . . . . . . . . 5
     2.1.  Obtaining the PVP credentials . . . . . . . . . . . . . . . 5
       2.1.1.  Mitigation: Don't share validations between phones  . . 6
     2.2.  Increasing the time tolerances  . . . . . . . . . . . . . . 6
   3.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . 7
   4.  Informative References  . . . . . . . . . . . . . . . . . . . . 7
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . . . 7

































Procter                  Expires April 23, 2012                 [Page 2]

Internet-Draft                VIPR Privacy                  October 2011


1.  Leaks during validation

1.1.  Caller ID

   PVP[1] defines a validation method A that encodes the calling and
   called numbers in the username of a TLS-SRP secured session.  This
   seems to open up an interesting information leak, since the resulting
   username is sent in the clear.

   Let's assume EvilCorp registers its node-id against the hash of the
   sales number of its competitor, VictimCorp.  Then, whenever a ViPR-
   enabled caller tries to call VictimCorp to buy something, a few hours
   later their ViPR server will attempt to establish a connection to
   EvilCorp.  Even assuming that EvilCorp can't complete the handshake
   because it has no idea of the call details, EvilCorp still ends up
   with a list of Caller IDs for people who called their competitor's
   sales line.

1.1.1.  Mitigation: Hash the Caller ID

   To make the Caller ID harder to extract, we could hash it before
   constructing the SRP username.  We could choose an expensive hash
   such as bcrypt and using a key common to everybody, and a salt that
   is derived from the time of the day, modulo 48 hours.  Because the
   complexity of the bcrypt hash (and so the time it takes to generate
   it) can be increased as the processing power becomes available, we
   can define a minimum time that it will take to generate all the
   hashes for the E.164 space.  Changing the salt each 48 hours
   increases the difficulty of precomputing the hashes.  The key itself
   and bcrypt complexity can be stored in the RELOAD config file, and be
   changed in a safe way from time to time.

1.1.2.  Mitigation: Reverse the direction of the lookup

   This attack leaks information about who calls a specific number, in
   no small part because the calling party initiates the verification
   protocol.  We can easily avoid this by requiring the called party to
   perform the verification of the calling party instead.

   However, whilst this may prevent an attacker learning the Caller ID
   of calls to the attacked number, a trivial change to the attack will
   allow an attacker to learn what calls are made from the attacked
   number.  Instead of EvilCorp registering against VictimCorp's sales
   line, they could register against VictimCorp's CEO's number.
   Incoming PVP attempts would then correspond to calls made by the CEO,
   which might be used to inform a balanced investment portfolio.





Procter                  Expires April 23, 2012                 [Page 3]

Internet-Draft                VIPR Privacy                  October 2011


1.1.3.  Mitigation: Use the times in the username instead

   The current proposal uses the calling and called party numbers along
   with the start and end times of the call to validate both parties.
   The times are used as the shared secret, and the numbers as the
   username in the TLS SRP handshake.  We could swap this information
   around so to use the times as the username and the numbers as the
   shared secret.  Sending the times in the clear is less of a problem
   since they are generally not as sensitive as the Caller ID.

   In the pranking scenario (discussed below), the calling and called
   party numbers are generally known in advance.  The only thing to
   prevent calls being intercepted for prank purposes is that the call
   timing information is not trivial to obtain.  By sending the timing
   information as the SRP username, pranking becomes almost trivial to
   achieve.

1.2.  Source IP identification

   Assuming the Caller ID can be obscured by some means, there is still
   a leak of the source IP address for the validation attempt.  EvilCorp
   is likely to be able to identify medium and large organisations by
   simply performing a 'whois' lookup on the source IP address of the
   validation attempt.  Smaller organisations may be identifiable from
   the reverse DNS, or even a traceroute, depending on how their ISP
   configures their network.

1.2.1.  Mitigation: Anonymising the validation attempt

   It should not be too difficult to define a RELOAD Link Layer that
   uses TURN TCP to hide the source of a PVP connection.

   As the PVP stream will go through the TURN node, it is susceptible to
   eavesdropping.  Therefore we may want to be sure that there is no
   difference between a successful and a failed validation when looking
   at the encrypted stream (packet length for example).

1.3.  Traffic statistics leakage

   Assuming the source IP address of a validation attempt could be
   obscured, the fact that a validation attempt is being performed leaks
   statistical information.  Spotting a noticeable spike in competitor's
   sales line traffic following one ad campaign, but not another, is
   perfectly feasible and useful once you have a statistically
   significant number of calls.  No doubt far more information can be
   extracted given time and inspiration.





Procter                  Expires April 23, 2012                 [Page 4]

Internet-Draft                VIPR Privacy                  October 2011


1.3.1.  Mitigation: Random validations

   An additional protection could be that VIPR servers have a standard
   process that randomly select VIPR registrations and try to establish
   a PVP connection that will always fail.  That should add enough noise
   so the real origin of a validation cannot be pinpointed.

   Measuring and removing the background noise from this sort of
   approach would be quite straightforward, unfortunately.  Registering
   a couple of numbers for which no service is provided would give a
   baseline noise figure to subtract.  Far more powerful statistical
   methods also exist to remove noise since this is a common problem in
   many fields.


2.  Office Pranks

   VIPR offers some interesting possibilities for playing jokes on
   colleagues.  Whilst this attack is described in terms of a prank, the
   underlying mechanisms may be used to eavesdrop or misroute calls for
   less benign reasons.

   PVP[1] method A requires knowledge of the called number, calling
   number, and call start and end times.  Method B dispenses with the
   calling number.  The VIPR Overview [2] hints at the problems of
   securing this information within a typical enterprise environment in
   the last paragraph of section 6.2, but the full scale of the problem
   is not explored.

2.1.  Obtaining the PVP credentials

   If a colleague makes a call, then a moderately dedicated prankster
   will find the called and calling numbers easy to discover.  The
   called number can be obtained from the phone's dialled call list
   (next time the victim makes some tea, for example), and the calling
   number is easy to obtain since it will almost certainly be fixed for
   calls from that deskphone.  If this isn't already locally known, a
   quick test call to a mobile phone will suffice.  All that remains are
   the start and end time of the call.

   Since PVP only requires times to be accurate to the nearest two
   seconds, this isn't too difficult.  A prankster in an open-plan
   office, or an adjacent cubicle should have little difficulty in
   determining the start and end times with a stop-watch to sufficient
   accuracy.  Improved timing might be possible if the office uses
   bridged line appearances, or busy lamps.  For the more technical
   prankster, a dialog event package[3] subscription to the victim's
   deskphone will provide all the necessary details with more than



Procter                  Expires April 23, 2012                 [Page 5]

Internet-Draft                VIPR Privacy                  October 2011


   enough accuracy.

   Once these details have been collected, the prankster will have an
   hour or so to enter them in a website such as
   http://prank.your.coworker.example.com, which will make the necessary
   entries in the DHT and await the validation attempts.  Once
   validated, the prank server may perform a number of amusing pranks
   for future calls, including forwarding to another SIP URI, or onward
   routing to the original called number with media copied to the
   prankster.

2.1.1.  Mitigation: Don't share validations between phones

   To prevent a compromise of one phone affecting all phones within an
   enterprise, we can ensure that validations are not shared between
   phones.  This protects against certain types of attack (e.g. abusing
   a visitor's phone in reception to set up a VIPR route to catch later
   calls from the CEO's office), but doesn't protect against in-house
   prank attacks as described above, which use the victim's own phone,
   and indeed a call made by the victim themselves.  Not sharing
   validations also may give rise to odd situations when enhanced calls
   are available to some destinations from certain phones but not
   others.  Whether this is an acceptable trade-off will depend very
   much on the nature of the enterprise.

2.2.  Increasing the time tolerances

   PVP at present transforms the start and end times into pairs of times
   rounded to the nearest second, which represent a 2-second interval
   which spans the measured start or end time.  These are called
   Tstart-1, Tstart-2, Tend-1 and Tend-2.  To handle a certain amount of
   uncertainty in timing, four validation attempts are made, with
   different combinations of start and end times.  These are given in
   the draft as:

      1.  Try Tstart-1 and Tend-1.
      2.  Try Tstart-2 and Tend-1.
      3.  Try Tstart-1 and Tend-2.
      4.  Try Tstart-2 and Tend-2.

   A server answers each of these four attempts with the start and end
   times rounded down to the nearest second.  For prank purposes, these
   are best guesses, and we will call them Gs and Ge.  If they were good
   guesses, then one of these four attempts will succeed.

   Since the group of four validation attempts will be performed against
   each registration in the DHT, we can take advantage by registering
   multiple times and trying variations on Gs and Ge.  For example,



Procter                  Expires April 23, 2012                 [Page 6]

Internet-Draft                VIPR Privacy                  October 2011


   registering twice will get a second set of validation attempts, which
   would allow us to try Gs, Ge+2.  Two more registrations would allow
   us to test Gs+2, Ge and Gs+2, Ge+2 meaning that with four
   registrations, we have relaxed the accuracy requirements from 2
   seconds to 4 seconds. 9 registrations allows times within 6 seconds
   to work and 16 registrations will allow times with 8 seconds to work.
   Whilst further registrations will permit the timing to be relaxed
   even more, timing a call to the nearest 8 seconds is remarkably easy
   if you are in the same room.

   Finally, now that the start and end time guesses have been corrected
   (by successfully validating against a PVP client), these corrected
   times could be used to validate against the true owner of the called
   number, allowing the prank server to execute a Man-In-The-Middle
   attack, eavesdropping on all signalling and media during future
   calls.


3.  Acknowledgements

   Much of the text of this draft is taken from emails on the vipr list
   between myself, Marc Petit-Huguenin and Cullen Jennings.


4.  Informative References

   [1]  Rosenberg, J., Jennings, C., and M. Petit-Huguenin, "The Public
        Switched Telephone Network (PSTN) Validation Protocol (PVP)",
        draft-petithuguenin-vipr-pvp-00 (work in progress), April 2011.

   [2]  Jennings, C., Rosenberg, J., and M. Petit-Huguenin,
        "Verification Involving PSTN Reachability: Requirements and
        Architecture Overview", draft-jennings-vipr-overview-00 (work in
        progress), April 2011.

   [3]  Rosenberg, J., Schulzrinne, H., and R. Mahy, "An INVITE-
        Initiated Dialog Event Package for the Session Initiation
        Protocol (SIP)", RFC 4235, November 2005.













Procter                  Expires April 23, 2012                 [Page 7]

Internet-Draft                VIPR Privacy                  October 2011


Author's Address

   Michael Procter
   VoIP.co.uk
   Commerce House
   Telford Road
   Bicester, Oxfordshire  OX26 4LD
   UK

   Email: michael@voip.co.uk
   URI:   http://www.voip.co.uk








































Procter                  Expires April 23, 2012                 [Page 8]