Login seguro en WebApp

Buen día a todos.

Actualmente me encuentro un poco enredado respecto a como implementar un login que sea seguro.
La aplicación permitirá conectar a usuarios tanto de la intranet como de internet. Lo que me preocupa es respecto a los usuarios de internet.
No quiero parecer fatalista, y tal vez algunos conceptos los tenga equivocados, pero en caso de que un atacante aplique sniffing a la red del usuario, este podría obtener su contraseña, ¿o me equivoco?
Por ahora, lo que hago, es aplicar SHA3 de 128 bits a la contraseña que ingresa el usuario, por lo menos ahora el atacante no la ve como texto plano.
Pero, supongamos que el atacante hace uso de FireBug (o alguna herramienta parecida) y tiene la contraseña del usuario pero digerida con SHA3. ¿Es posible que el atacante haga un debug del javascript con el que hago submit del formulario y cambie el valor de la contraseña que envió para poner en su lugar la que ya ha sido digerida con SHA3?

No se si me expliqué, espero que si y que me puedan orientar un poco.
Gracias de antemano, un saludo.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Hola que tal JulioSchezar en

Hola que tal JulioSchezar en tu aplicación utilizaste alguna librería para la encriptación, me gustaría saber cual. O como envías una contraseña encriptada a través de internet saludos.

Jamás envíes la contraseña

Jamás envíes la contraseña del usuario de regreso al cliente, ni en plano ni codificada ni nada. Lo único que necesitas es usar HTTPS y dejar que el browser y tu webserver se encargue de esa información.

Del lado del servidor todo lo que quieras y si necesitas comparar los valores, vuelves a codificar lo que el usuario te mande y lo comparas con lo que tengas almacenado.

Dejar la lógica de encripción de lado del cliente es como cerrar con llave la casa y dejar las llaves pegadas en la puerta.

FireBug??

FireBug?? Bueno, siempre he dicho que Google es tu mejor amigo (suponiendo que utilizas las palabras claves o frases adecuadas). Para muestra, basta un botón:

Una disculpa por la taaaaaaaaardanza.

Les agradezco mucho por las respuestas, y también ofrezco una disculpa por que no le di continuidad a mi pregunta.

OscarRyz, en efecto, la contraseña la paso por el SHA3 desde javascript, la envió al servidor y ahí mismo comparo lo que tengo en BD con lo que me manda el usuario, jamás la regreso al navegador. Respecto a lo de HTTPS, la realidad es que desconozco mucho del tema. Según entiendo, se debe "comprar" el certificado y no sé que tan caro sea eso, ¿o me equivoco con este tema?. Para el caso de una pequeña empresa creo que sería cuestión de valorar. Te agradezco cualquier orientación que me puedas brindar.

jpaul, firebug me pareció lo más simple como para saltarse el SHA3 del javascript, imagino que debe haber muchas más técnicas para ejecutar un buen ataque. Te agradezco los links, a la brevedad los reviso.

Carlos García, espero que aún te sea de utilidad, disculpa la demora. Utilicé Google CryptoJS v3.1.2. Para enviar la contraseña con SHA3, lo hago por medio del formulario del login, usando el método POST.

Saludos.