С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
12 / 12 / 7
Регистрация: 09.10.2013
Сообщений: 222
1
.NET 4.x

Ssl/Tls криптография, аутентикация клиента

18.07.2014, 15:53. Показов 3757. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, вообщем, создал TcpListener, TcpClient, реализовал криптографию, всё работает, всё нормально. На данный момент все клиенты имеют один и тот же паблик ключ, а сервер - весь набор, как положено. Происходит аутентикация серверной части, т.е. проверяется название серверной машины. Вот только не происходит аутентикация клиентской части. Подскажите, как реализовать это? Необходимо, чтобы какие-то левые клиенты, имея паблик ключ - не могли подключаться к серверу.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.07.2014, 15:53
Ответы с готовыми решениями:

Ssl/Tls криптография, перехват пакетов
Вообщем, создал свой клиент - серверное приложение и использую Ssl/Tls криптографию. Попробовал...

Прием электронных сообщений, POP3, SSL/TLS
Добрый день, подскажите пожалуйста как реализовать прием писем с почты POP3 + SSL или TLS? Просто...

Ошибка: не удалось создать защищенный канал ssl tls
Создали сертификат на одной машине. Установил на другую в Личные. Приложением пытаемся подрубиться...

Could not create SSL/TLS secure channel
Добрый день! Следующая проблема: есть служба, есть объект httpwebrequest, создаем TLS соединение и...

3
12 / 12 / 7
Регистрация: 09.10.2013
Сообщений: 222
21.07.2014, 18:39  [ТС] 2
Ещё актуально...

Добавлено через 7 часов 47 минут
Может кто-то хотя бы может рассказать принцип валидации клиентской части? Как это происходит? Допустимые клиенты записаны в сертификате сервера? Или что вообще?
0
Ушел с форума
Эксперт С++
16478 / 7441 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
21.07.2014, 22:15 3
Аутентификация клиента выполняется также, как и аутентификация
сервера - по сертификату. В обычном HTTPS клиент проверяет сертификат
сервера, пытаясь строить цепочку сертификатов, которая приведет его к
доверенному центру сертификации - VeriSign, Thawte, StarSSL и т.д.
А здесь сервер точно таким же образом проверяет клиента.

Как это ни странно, по теме SSL/TLS очень мало источников в формате
"user guide", а то, что есть - очень поверхностно или обрывочно.
Даже в лучших книгах по HTTP этому вопросу уделяется от силы
несколько страниц.

В образовательных целях можно покурить вот этот RFC:

The Transport Layer Security (TLS) Protocol (Version 1.2)
http://tools.ietf.org/html/rfc5246

Еще поизучать исходники OpenSSL, например...
1
12 / 12 / 7
Регистрация: 09.10.2013
Сообщений: 222
22.07.2014, 10:32  [ТС] 4
Убежденный, спасибо, почитаю. Валидация сервера по идее - проходит на ура. А вот когда ставлю:
C#
1
SecureStream.AuthenticateAsServer(serverCert, true, SslProtocols.Tls, true);
- второй параметр true - значит Client Certificate Required, то есть, по идее - валидация клиента. На сервере же выскакивает ошибка: The remote certificate is invalid according to validation procedure.
- Как я ставил сертификаты - я создал новый сертификат в VS10 под паролем (BlaBlaBla_TemporaryKey.pfx), со всеми правами. Добавил его на серверной части в Trusted Root Certificate Authority. Затем я сделал с него экспорт PublicKey.cer. Данный паблик ключ я ставил на все машины, где используется клиент, так же в Trusted Root Certificate Authority.

Когда же я ставлю:
C#
1
SecureStream.AuthenticateAsServer(serverCert, false, SslProtocols.Tls, true);
- Всё проходит успешно, все данные нормально шифруются и расшифровываются - как на клиентской части, так и на серверной. (Проверял с помощью WireShark)


Может я что-то не так сделал? Могу скинуть код клиентской и серверной части, если надо.
0
22.07.2014, 10:32
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.07.2014, 10:32
Помогаю со студенческими работами здесь

POST запрос: Не удалось создать защищенный канал SSL/TLS
Что не так с POST запросом? Ошибка:System.Net.WebException: "Запрос был прерван: Не удалось...

Не удалось создать защищенный канал SSL/TLS
Всем привет. Народ, такой вопрос. Отправляю запрос и некоторые норм бегают, а некоторые...

Не удалось создать защищенный канал SSL/TLS
Есть программа которая сама заходит на сайт и отображает нужную мне информацию в удобном и...

Запрос был прерван:Не удалось создать защищенный канал SSL/TLS
Пишу бота, раз в час выдает исключение (System.Net.WebException: Запрос был прерван:Не удалось...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Что такое HCL Notes и как с ним работать
InfoMaster 10.01.2025
HCL Notes (ранее известный как IBM Notes и Lotus Notes) представляет собой комплексную платформу для совместной работы и обмена информацией в корпоративной среде. Это многофункциональное решение,. . .
Как работать с Git из Windows и Visual Studio
InfoMaster 10.01.2025
Работа с Git в Windows Работа с Git в операционной системе Windows может быть осуществлена с помощью различных инструментов, каждый из которых обладает своими уникальными возможностями и. . .
Аналог оператора switch case в Python
InfoMaster 10.01.2025
Оператор switch case используется в программировании для выбора одного из нескольких вариантов исполнения кода. Однако в языке Python этот оператор отсутствует. Понимание аналогов switch case в. . .
Отличия абстрактного класса от интерфейса
InfoMaster 10.01.2025
В современной разработке программного обеспечения существуют два основных механизма реализации абстракции: абстрактные классы и интерфейсы. Эти инструменты, хотя и схожи в своей основной цели -. . .
Как работать в Git
InfoMaster 10.01.2025
Git — это одна из наиболее популярных систем контроля версий, которая активно используется разработчиками по всему миру. Она позволяет эффективно управлять изменениями в коде, координировать работу. . .
Реализация передвижения персонажа в Unity3d на C#
InfoMaster 10.01.2025
Реализация передвижения персонажа в Unity3D начинается с правильной настройки проекта. Этот этап критически важен для создания отзывчивого и плавного управления. Рассмотрим основные шаги для создания. . .
Docker: руководство для начинающих
InfoMaster 10.01.2025
В современном мире разработки программного обеспечения контейнеризация стала неотъемлемой частью процесса создания и развертывания приложений. Docker, как ведущая платформа контейнеризации, произвела. . .
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru