Take the 2-minute tour ×
Information Security Stack Exchange is a question and answer site for Information security professionals. It's 100% free, no registration required.

I have a web app without SSL (I know it's not good, I try to take it as a challenge). The login is two step. First the admin sshs into the server and runs a maintenance companion program that provides a one-time (securely) randomized link. The one-time link leads to a login form. The one-time link is good for just 1 get of login form and 1 form submit.

Does this actually give me more security? Could I do better?

share|improve this question
3  
So you require a SSH login into your server every time you need access to your webapp....? –  Terry Chia Sep 5 '13 at 15:02
    
So, you have a strange 2-factor authentication where the second factor is on the web server itself? –  schroeder Sep 5 '13 at 15:04
    
The admin logs in with his username and password passed over clear-text but the login form changes location randomly? –  schroeder Sep 5 '13 at 15:06
    
@schroeder It's not two-factor if it all boils down to "something you know". –  Iszi Sep 5 '13 at 15:16
6  
Why is this being voted down? While I think that the proposal doe not provide any real security, I don't think it appropriate to vote down someone asking for an opinion on it. Nor do I think that it intrinsically lacks research effort. While it's not practical to enumerate all the things that make for poor security, that the lack of security has been explained in the answers (IMHO) makes this a valuable question. –  symcbean Sep 5 '13 at 16:08
add comment

2 Answers

up vote 6 down vote accepted

Without SSL, your connection can be preyed upon by eavesdroppers: they can see the data, they can also alter the data, and generally hijack your connection once you have authenticated. They can do that regardless of the authentication method.

If you assume that there is no malicious individual who can see and/or modify traffic in-transit, then... there is no security problem, and basic authentication (as in "show the password") would work equally well.

So I can sum it up as: your one-time link obtained over SSH does not provide any significant improvement on security. Without SSL, the App was weak and is still weak. So I'd say, don't bother with it, in particular because forcing a SSH connection whenever a user wants to use the App is a big usability issue.

Instead, use SSL.

share|improve this answer
    
I think that is an inappropriate answer: SSL and SSH suffer from the same vulnerability: is this the same person you spoke with the LAST time you spoke to them. SSH requires a new key everytime and our trust in the system relies on knowing when the key will have changed. SSL, has at least some 3rd parties handling the private keys. In the end, however, if you are able to get information from the server securely, then the server could run everything through a one-time pad. Neither is a great solution, SSL is better, but we need to start thinking of ways to make Cert Auths obsolete. –  Indolering Sep 5 '13 at 18:12
    
@indolering I'm not sure you read the question or the answer fully. Your comment does not seem to apply to the model used by an ssh connection as described by the OP –  schroeder Sep 5 '13 at 19:07
    
The "can I do better" suggests that he is open to alternate forms of authentication. I think knowing more about his constraints would help, "take it as a challenge" sounds an awful lot like a tech admin resigned to carrying out managements stupid IT decisions. –  Indolering Sep 5 '13 at 19:34
add comment

Could I do better?

Yes, use SSL. This is a solved problem. We know how to do HTTP security, and you're trying to invent your own scheme. It's a bad idea. Don't do it.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.