Key Exchange
In TLS, the first step towards obtaining TLS session keys is to compute a shared secret between the client and the server by running the ECDH protocol. The resulting shared secret in TLS terms is called the pre-master secret PMS
.
With TLSNotary, at the end of the key exchange, the Server
gets the PMS
as usual. The Prover
and the Verifier
, jointly operating as the TLS client, compute additive shares of the PMS
. This prevents either party from unilaterally sending or receiving messages with the Server
. Subsequently, the authenticity and integrity of the messages are guaranteed to both the Prover
and Verifier
, while also keeping the plaintext hidden from the Verifier
.
The 3-party ECDH protocol between the Server
the Prover
and the Verifier
works as follows:
Server
sends its public key toProver
, andProver
forwards it toVerifier
Prover
picks a random private key share and computes a public key shareVerifier
picks a random private key share and computes a public key shareVerifier
sends toProver
who computes and sends toServer
Prover
computes an EC pointVerifier
computes an EC point- Addition of points and results in the coordinate , which is
PMS
. (The coordinate is not used in TLS)
Using the notation from here, our goal is to compute in such a way that
- Neither party learns the other party's value
- Neither party learns , only their respective shares of .
We will use two maliciously secure protocols described on p.25 in the paper Efficient Secure Two-Party Exponentiation:
A2M
protocol, which converts additive shares into multiplicative shares, i.e. given sharesa
andb
such thata + b = c
, it converts them into sharesd
ande
such thatd * e = c
M2A
protocol, which converts multiplicative shares into additive shares
We apply A2M
to to get and also we apply A2M
to to get . Then the above can be rewritten as:
Then the first party locally computes the first factor and gets , the second party locally computes the second factor and gets . Then we can again rewrite as:
Now we apply M2A
to to get , which leads us to two final terms each of which is the share of of the respective party: