Podcast #128: We chat with Kent C Dodds about why he loves React and discuss what life was like in the dark days before Git. Listen now.

Questions tagged [key-exchange]

For questions relating to protocols for distributing public keys, and / or establishing session keys with another party. Examples of key exchange protocols include Diffie-Hellman and IKE.

Filter by
Sorted by
Tagged with
390
votes
14answers
58k views

How is it possible that people observing an HTTPS connection being established wouldn't know how to decrypt it?

I've often heard it said that if you're logging in to a website - a bank, GMail, whatever - via HTTPS, that the information you transmit is safe from snooping by 3rd parties. I've always been a little ...
257
votes
8answers
399k views

“Diffie-Hellman Key Exchange” in plain English

Can someone explain to me what Diffie-Hellman Key Exchange is in plain English? I have read in a non-tech news page that Twitter has just implemented this technology which allows two persons to ...
118
votes
4answers
105k views

Is there any particular reason to use Diffie-Hellman over RSA for key exchange?

I often see RSA being recommended as a method of key exchange. However, the Diffie-Hellman key exchange method appears to be secure as well. Is there any considerations one should take into account ...
99
votes
6answers
25k views

Why can't I MitM a Diffie-Hellman key exchange?

After reading the selected answer of "Diffie-Hellman Key Exchange" in plain English 5 times I can't, for the life of me, understand how it protects me from a MitM attack. Given the ...
48
votes
4answers
7k views

Why is key exchange necessary at all?

Let's say "Alice" and "Bob" want to communicate with each other over an insecure network. Using Diffie–Hellman key exchange, they can get the same symmetric key at last. However, as I understand, ...
34
votes
1answer
42k views

How to implement an API-Key-Mechanism

first of all: I am quite unsure about the title of the question, so if you have a better idea, please feel free to tell (: I would like to know about best-practise examples where services (like ...
29
votes
1answer
40k views

What key exchange mechanism should be used in TLS?

There are many key exchange mechanisms that can be used in TLS. Among them are RSA, ECDH_ECDSA, ECDHE_ECDSA, ECDH_RSA, ECDHE_RSA and others. Which of these are more cryptographically secure and can be ...
27
votes
1answer
11k views

Where do I get prime numbers for Diffie-Hellman? Can I use them twice?

I realise it's very hard to generate suitable prime numbers and generators for the Diffie-Hellman key exchange. What is the best way to generate them? And if I have one, can I use it twice? ...
22
votes
9answers
6k views

Are there any systems out there that use a one-time pad?

I'm still new to information security, but I have read a bit about the one-time pad. The point that sticks out to me the most is that it is supposedly unbreakable. Has this method of encryption ever ...
22
votes
2answers
27k views

Client-server encryption technique explanation (TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, 128 bit keys)

I opened a web page using https. When I looked at the page info provided by my browser (Firefox) I saw following: Connection encrypted: High-grade Encryption (...
22
votes
1answer
13k views

Ways to sign gpg public key so it is trusted?

I have a service through SSL which gives the user a code for a specific reason. I want to sign the code with the web server's private key (gpg --clearsign) and send the signed code along so that they ...
20
votes
1answer
15k views

How does SSH use both RSA and Diffie-Hellman?

SSH protocol 2 allows you to use DSA, ECDSA, ED25519 and RSA keys when establishing a secure connection to a server. (Keep in mind for this question that I'm only familiar with the procedure and ...
19
votes
3answers
6k views

Are open wireless networks unencrypted?

When you connect to an open wireless network (that is, a wireless network without any symmetric password set) is there any sort of secure key exchange going on, or is data sent back and forth ...
16
votes
2answers
21k views

What is the difference between DHE and ECDH?

I learned that perfect forward secrecy is implemented through DHE and ECDH but what is the difference between these 2 key exchanges? Also can someone explain how perfect forward secrecy works? I've ...
16
votes
2answers
31k views

DEK, KEK and Master key - simple explanation

This article is intended to be a simplified explanation sans drill-down for people wanting to understand these concepts/terms. What are DEK, KEK and MEK/Master key?
15
votes
4answers
6k views

What to do when you can’t protect mobile app secret keys?

We have a mobile app for iOS and Android available in the Apple and Google Play stores. The app communicates with our server’s Web Services over HTTPS. We have attackers able to spoof the app traffic....
15
votes
2answers
25k views

Are VPNS vulnerable to active man in the middle attacks?

I know that with SSL/TLS, man in the middle attacks are not possible. For example if Alice and Bob are trying to communicate and Trudy is trying to perform a man in the middle attack, then when Alice ...
15
votes
1answer
11k views

What are the OpenSSL standard Diffie Hellmann parameters (primes)?

I recently generated some custom Diffie Hellmann parameters which are basically just long (in the below case 4096 bit) primes. Those are then used in the key exchange process. I used the following ...
14
votes
3answers
5k views

How to exchange RSA public keys safely between two parties?

How to exchange RSA public keys safely between two parties via internet?
13
votes
6answers
5k views

Is (safe) encryption over compromised line impossible?

I realize something like this would be the holy grail of communications security and have never heard anything to suggest it has been done. Am just wondering. A lot of mathematicians and computer ...
13
votes
2answers
6k views

Which cipher suites with AES cipher provide forward secrecy?

Does standard AES with RSA (reported by Opera as TLS v1.0 256 bit AES (1024 bit RSA/SHA)) provide perfect forward secrecy? Which SSL3.0 and TLS1.0 ciphers do provide forward secrecy? Which ciphers ...
12
votes
2answers
924 views

Is it possible to have a key for encryption, that cannot be used for decryption?

For example, a server might have some encrypted logs or storage or whatnot, that would only be used for reference later. This way even if the server is hacked, everything is still OK until the hacker ...
11
votes
2answers
1k views

Unseen.is encryption claims revisited with their proprietary, patented “xAES” algorithm

I had asked last year about the encryption claims by the web service called https://unseen.is. The very same service that had claims of "beyond army level encryption", "4096 bit keys" etc. This is the ...
10
votes
2answers
9k views

Is 1024bit Diffie Hellman key exchange secure?

My system uses AES-256, 4096bit RSA CA key and 2048bit RSA keys for servers together with SHA-256 signing. Does using 1024bit DH key exchange lower its security? I read on one mailing list that ...
10
votes
1answer
703 views

Why does TLS 1.3 deprecate custom DHE groups?

According to the second draft of the TLS 1.3 specification, custom DH groups have been deprecated. As we all know, hardcoded DH groups are vulnerable to a precomputation attack that allows retroactive ...
9
votes
1answer
3k views

How do I store Diffie-Hellman parameters in a X.509 certificate?

In their paper Authentication and authenticated key exchange, Diffie, van Oorschot and Wiener recommend to insert the DH parameters into the certificate of Alice. As a result, an attacker can not ...
9
votes
1answer
571 views

Optimal variable sizes in the Secure Remote Password protocol

I am implementing the Secure Remote Password protocol: U = <username> --> <-- s = <salt from passwd file> a = random() A = g^a ...
9
votes
2answers
7k views

How to secure API (private key) for mobile apps

I am building a web service that has to be only accessible for iOS apps. In the future I want to expand to a mobile web-site to make my service also available for other mobile operating systems. Now,...
8
votes
3answers
4k views

Is this prime number large enough / too large for a Diffie-Hellman for AES-256?

I'm using a Diffie-Hellman key exchange to encrypt data using AES-256. The prime number I'm using is the one from the 8192bit group specified in RFC 3526 (page 6). Page 7 suggests that, with a 620 ...
8
votes
2answers
602 views

Is there a way to negotiate a secret between 2 parties with no prior knowledge?

Is there a way for 2 parties to negotiate a shared secret (for example, a session key) without having a pre-shared knowledge? SSL does this by using asymmetric encryption. Is there any other way to ...
8
votes
3answers
1k views

Which authentication at the end of the Secure Remote Password protocol?

For the the client and server to prove to each other that they have the same premaster shared key, the original author suggests this: M = H(A | B | K) --> <-- H(A | M | K) The ...
8
votes
1answer
563 views

distributing files to VPN partners

suppose i've created VPN certificates for a certain VPN-RoadWarrior-Client, expressed in the files VPN-RoadWarrior-Client.key and VPN-RoadWarrior-Client.crt*, however VPN-RoadWarrior-Client is ...
8
votes
1answer
286 views

Main difference between Yahalom and Needham-Schroeder key exchange protocols

I am just wondering what is the main difference between the Yahalom and Needham-Schroeder key exchange protocols? Which protocol uses less computational power?
7
votes
2answers
986 views

Can symmetric key cryptography provide identification?

I understand that PKI uses digital certificates to link a public key to an entity, but is there anything similar for symmetric cryptography. If, theoretically, PKI didn't exist, how do you know you ...
7
votes
2answers
3k views

Website: Pre-Shared-Key Authentication

We have this web-application with high valuable (business) data. All communication is encrypted through TLS/SSL. While I consider this a really safe protocol, it can still be compromised if someone ...
7
votes
2answers
1k views

Implementing Secure Remote Password: Constructing the verifier

The SRP protocol as described in RFC 2945 generates the password verifier: x = SHA(<salt> | SHA(<username> | ":" | <raw password>))` v = g^x % N I have three questions: why use SHA ...
7
votes
1answer
2k views

Diffie Hellman Key Exchange in a messaging application

I'm currently a student that is trying to develop a messaging application on android using java that will implement diffie hellman key exchange in order to ensure that they both will be able to ...
7
votes
3answers
896 views

How many keys are used in this specific TLS 1.2 connection?

That shows the mechanism of the connection. How many keys are being used in this connection? What are they? Who knows them? What is the purpose of each key?
7
votes
0answers
338 views

Can SRP be implemented using libsodium

I am using libsodium for cryptography and I want to use SRP for key exchange. The wikipedia page lists a python example, but I am not sure if and how I could convert this to libsodium function calls. ...
6
votes
3answers
632 views

DHE exchange and client authentication

If a server has a known public key and a Diffie-Helman exchange is performed and signed by that key, is there any benefit to authenticating the client before establishing a secure channel instead of ...
6
votes
1answer
3k views

ECDH and Forward Secrecy

I just read about ECDH and while getting a overview over the process, I noticed that this key exchange method does neither provide any forward secrecy, nor does it protect against replay-attacks, ...
6
votes
3answers
2k views

Using Secure Remote Password without sending the username in the clear

To initiate a key exchange using the SRP protocol the client sends the username so the server can look up the salt and password verifier. Is there a simple way to change this so that an evesdropper ...
6
votes
3answers
634 views

What steps can you take to make offline cracking of SRP harder?

In the aftermath of the Blizzard hack, what steps can I take to make offline cracking of SRP more difficult? My question assumes that your database is already gone and that you implemented SRP more ...
6
votes
1answer
484 views

Forward secrecy with GnuPG

I'd like to know how to implement forward secrecy using GnuPG, and I presume I need some kind of authenticated key exchange. Assuming that I have the following working already: Alice and Bob have ...
6
votes
1answer
5k views

How ECDHE is signed by RSA in ECDHE_RSA cipher

About ciphers that use ECDHE as Key Exchange and RSA as Authentication: How exactly this two algorithms work together, is ECDHE process encrypted by RSA public key? What are the DH parameters? ...
6
votes
1answer
9k views

How do I share my S/MIME public key?

I have setup S/MIME encryption for my email address, and I'd like to allow people to download the public key from my website, rather than having to first receive an email from me. I want the public ...
6
votes
1answer
1k views

Is this a safe way to verify public keys?

I want to verify a public key like this: Alice generates a public/private key pair for encryption Alice generates a public/private key pair for signing Alice signs a random 4-letter word + the public ...
6
votes
2answers
510 views

Public key for SSH over the internet differs from a key for SSH over the LAN

I have a Raspberry Pi and can access it via SSH (authentication via user password) when my laptop is in the same network. Now I want to access it over the internet. I already set my router to forward ...
6
votes
2answers
2k views

What are the performance differences (for client and server) between DHE and ECDHE in TLS?

My question is about the client and server performance for (EC)DHE. I am having difficulties in understanding this picture (which is based on numbers from Ivan Ristic' book "Bulletproof SSL and TLS"). ...
5
votes
2answers
10k views

Diffie Hellman c# implementation

Hallo all, For a test project I have tried to implement the (famous) Diffie Hellman algorithm for safe key exchange. Now I have written this in C#: using System; using System.Collections; using ...