-
Notifications
You must be signed in to change notification settings - Fork 70
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cryptographic issues #16
Comments
We analyzed the security of ptunnel (original version of the program) from a covert channel protocol perspective in this paper (open access): https://onlinelibrary.wiley.com/doi/full/10.1002/sec.1471 where we also highlight some attacks on ptunnel. Maybe they are applicable to ptunnel-ng, too (did not check it, yet). See Sections 4.3 for attacks and 5.1 for some ideas how to improve ptunnel. Section 6.1 covers the attack impacts on ptunnel. Thanks for keeping ptunnel project going with ptunnel-ng! Looking foward to see future releases! |
PS. Here is a survey (but from 2014) on how to design improved covert channel-internal control protocols (see Sect. 3): https://link.springer.com/article/10.1007/s12243-014-0423-x#Sec15 (again: not from a crypto perspective, but from an information hiding perspective). |
This is part of the TODO.
True, the insecure challenge response authentication was always an issue in ptunnel and ptunnel-ng.
Not true, the client adds of course a 24 byte random value to the challenge which is used for the generated password hash.
What is your definition of "easy and quick" for salted hashes?
You are not forced to use any cryptography at all at the moment. Just skip the
This contradicts your MitM statement and is also unnecessary since there is already a stable |
@cdpxe Thanks for this information. I will carefully read the paper. |
Sorry but I did not see any random values added to the response. I only see a sort-of HMAC with the random data sent by the server.
Within the ability to be cracked by a script kiddie with a few GPUs. The salting does prevent rainbow tables for being used, but does nothing against bruteforcing passwords. Heck, with just a bunch of 1080 you can easily beat a 8 letter password with caps, lower and number within less than an hour. |
see https://github.com/lnslbrty/ptunnel-ng/blob/master/src/challenge.c#L59-L73
I agree. But this is not a major issue since one can simply use secure passwords. |
FYI, in case you want to know, I've been glazing through the current cryptography a tiny bit, and I've found at least the following issues:
For 1 you could add an IV to every packet, and then HMAC-ing the data. For 2 and 3, I'd recommend to get some ideas from existing private-key authentication sequences, such as the three-way authentication Mifare Ultralight C NFC tags use (see 7.5.5). For 4, I'd recommend using PBKDF2, scrypt, Argon, or another well-known password-stretching functions.
Doing cryptography is really hard, and having a false sense of security is even worse than having no security at all. Thus in my opinion, I would recommend that you remove all existing authentication, and lock down the functionality to forwarding to a fixed service, and let it handle all the authentication+encryption. This would be the easiest route for you.
If you want to keep the ability to connect to several services, you may want instead to add an IP whitelist (such as only letting connecting to ocserv, SSH, OpenVPN, etc... and let them do the crypto)
The text was updated successfully, but these errors were encountered: