Клиент-сервер SSL на C#

244
19 ноября 2017, 12:59

Дали в универе такое задание:

"Реализовать защищенное взаимодействие в архитектуре клиент-сервер, где принцип защищённого взаимодействия основан на использовании протокола SSL2."

Подскажите, пожалуйста, есть ли в C# стандартные классы, реализующие SSL?

Дайте, хотя бы, отправную точку,.. с чего начать,.. а то на просторах интернета все уж слишком разбросано... Ну, если Вам будет не сложно, то и от маленького примера я не откажусь)

Answer 1

SslStream класс. Там же есть и примеры. Вам понадобиться сгенерировать самоподписанный сертификат. Обычно это делают через openssl (который придется скачать отдельно), например вот так: https://stackoverflow.com/questions/10175812/how-to-create-a-self-signed-certificate-with-openssl

Answer 2

TcpClient и SslStream.

Сначала открываете соединение:

client = new TcpClient();
client.BeginConnect(ipAddress, port, OnSocketConnected, null);
private void OnSocketConnected(IAsyncResult ar){
    if (mClient.Connected){
            Auth();
    }
    else{
        mClient.EndConnect(ar);
    }
}

При успехе защищённое соединение настраиваете:

private void Auth(){
    sslStream = new SslStream(
        client.GetStream(),
        false,
        ValidateServerCertificate,
        null
        );
    sslStream .BeginAuthenticateAsClient(adress, ar =>{
        if (!mSslStream.IsAuthenticated){
            client.Close();
        }
        else{
            sslStream.BeginRead(mRecieveBuffer, 0, 4096, ReceiveCallback, null);
        }
    }, null);
}

Это, если очень-очень кратко. Можно на MSDN почитать официальный туториал.

READ ALSO
Не выводит колодки

Не выводит колодки

Не выводит две последние колодки, выводит только название и лого, а часы не выводит

212
Повтороная работа скрипта

Повтороная работа скрипта

У меня есть 5 блоков с ссылкамиПри нажатии на ссылку, должна появляться менюха в модальном окне

244
Как изменить выбранную опцию в select?

Как изменить выбранную опцию в select?

Доброго времени сутокКак можно выбрать соответствующую опцию в select при клике на одну из строк таблицы ? т

273
Как сделать задержку и анимацию между переключениями?

Как сделать задержку и анимацию между переключениями?

Здравствуйте! Есть такой фрагмент скрипта, который переключает вперед/назад блоки:

432