ОТВЕТ: Я использую взаимную аутентификацию SSL. Теперь нет никаких проблем :)Проверка подлинности сокета с SSL
Я работаю над проектом сервера. Я попробовал аутентификацию клиента с помощью метода XOR encrypt-decypt, но это недостаточно безопасно. Я решил использовать SSL с моими сокетами, но я не могу этого сделать. У меня есть соединение на основе System.Net.Sockets.Socket. А именно, я хочу: если соединение Tcp является входящим, аутентифицируйте это соединение сокета нашего клиента. (каждый сокет не может подключить наш серверный сокет из нашего порта). Может ли кто-нибудь дать мне начальную точку или несколько примеров? (Это мертвая точка моего сервера, если я не могу это сделать, это будет отменено.!)
EDIT1: Моя система в настоящее время работает так:
Client подключен к серверу.
Сервер создан 16byte долго случайный ключ и шифрованный его serverKey (XOR), послал его клиент
Client расшифрованы данные с serverKey и шифрованный его clientKey и отправил его обратно
сервер расшифрованного данные и проверили там же
(При подключении клиента, таймер начал для Идент тайм-аут)
EDIT2: Теперь я использую другую криптологию. Когда клиент подключится, он будет отправлен, и клиент расшифрует его и отправит обратно. Криптология работает следующим образом:
Шифровать байт [] специальным методом (не профессиональный). После этого получите хэш-код байта []. Этот хэш-алгоритм написан мной, и, если кто-то этого не знает, никогда не пойму наш зашифрованный байт []. (уже хэш-выходы не могут вернуться). И, наконец, он объединяет хеш и зашифрованный (например, XOR, специальный метод).
С помощью этого метода никто не получает дешифрованные/треснутые данные. В противном случае существует асимметричный метод шифрования/дешифрования (http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange). Я могу обновить свою систему auth с помощью (жесткой) асимметричной криптологии позже (если этого недостаточно).
Итак, вы хотите убедиться, что только * ваш * клиент может подключиться к вашему серверу, но ни один другой клиент, который говорит по тому же протоколу? – dtb
См. Ответ здесь для некоторых соображений: http://stackoverflow.com/questions/12356785 –
@dtb yes, true. –