Сначала организуется защищенный канал, потом клиент передает пароль на сервер, после чего сервер выдает клиенту сеансовый ключ, вот с ним и идет дальнейшая работа, пока жив сеанс.
Причем это все уже реализовано практически во всех используемых языках, берите и пользуйтесь.
Изобретать велосипеды можно, но сложно, и без четкого понимания и опыта они оказываются менее защищенными, чем стандартное решение.