...и почему то же самое не сможет сделать человек, перехвативший сообщения
насколько я понимаю, это ключевой вопрос во всем этом :)
Ну, по идее, SSL (https) для того и нужен, чтобы подобные сообщения не перехватывались.
Во-вторых, я бы на вашем месте посмотрел в сторону реализации OAuth2 - насколько я понимаю, этот протокол решает схожую с вашей, задачу. Есть много туторов по нему с картинками, это еще одно его преимущество :)
В-третьих, посмотрите в сторону ДВУХ пар ключей. Т.е. и на стороне клиента открытый-закрытый, и на сервере то же самое. Тоже есть описания данной схемы в инете (ну, просто много тут писать рисовать надо).
Надеюсь поможет :)