Почему я должен аутентифицировать клиент, использующий сертификат?

Я реализую клиент с Python, скрутил, который проверяет сертификат SSL сервера при соединении, после в основном этого рецепта. Я видел во многих ПРАКТИЧЕСКИХ РУКОВОДСТВАХ, таких как этот сервер, проверяющий подлинность клиента через сертификат SSL также. В настоящее время я аутентифицирую свои клиенты, использующие уникальный идентификатор и 1 024 символьных строки (они - автоматизированные клиенты без человеческого взаимодействия).

То, что я не понимаю, - то, какая причина была бы, я должен использовать целую ssl вещь для этого вместо того, чтобы просто отправить "пароль" на сервер. После того, как все соединение уже ssl зашифровано, проверяя сертификат сервера и все. Это - подобный вопрос, но я хочу знать, почему люди используют ssl клиентские сертификаты и не, что лучший способ состоит в том, чтобы сделать это вместо этого.

15
задан Community 23 May 2017 в 12:02
поделиться

4 ответа

Сертификаты легко отозвать. Пароли можно украсть, но украсть сертификат клиентской стороны будет гораздо сложнее.

2
ответ дан 1 December 2019 в 05:19
поделиться

(из моего предыдущего комментария)

Можно нарисовать пользовательскую рамку окна, как описано в этой статье MSDN: http://msdn.microsoft.com/en-us/library/bb688195 (VS.85) .aspx , которая включает информацию о рисовании подписи окна шрифтом системной темы (которая может дать подсказки о доступе к другой информации о теме).

-121--3409464-

Неизвестно,

Вот пошаговое сообщение для создания приложения Silverlight, которое отображает карту Bing США и добавляет кнопку в каждом выбранном месте. И просто для удовольствия я добавил некоторые функции «hover», когда вы просматриваете pushpins.

Шаг 1 : Создание примера приложения Silverlight с помощью Visual Studio (Файл/Новый проект/Приложение Silverlight)

Шаг 2 : Добавление двух ссылок DLL Bing в проект приложения Silverlight

 Папка: C :\Program Files\Bing Maps SIlverlight Control\verlight\V1\
Файл 1: Microsoft.Maps.MapControl.dll
Файл 2: Microsoft.Maps.MapControl.Common.dll

Шаг 3 : Отредактировать MainPage.xaml и добавить следующее пространство имен наверху:

xmlns:Maps="clr-namespace:Microsoft.Maps.MapControl;assembly=Microsoft.Maps.MapControl"

Шаг 4 : Отредактировать MainPage.xaml и поместить следующий кодекс в Сетке UserControl:

<Maps:Map x:Name="x_Map" Center="39.36830,-95.27340" ZoomLevel="4" />

Шаг 5 : Отредактировать MainPage.cs и добавить следующее заявление использования:

using Microsoft.Maps.MapControl;

Шаг 6 : Отредактировать MainPage.cs и заменить класс MainPage следующим кодексом:

public partial class MainPage : UserControl
{
    private MapLayer m_PushpinLayer;

    public MainPage()
    {
        InitializeComponent();
        base.Loaded += OnLoaded;
    }

    private void OnLoaded(object sender, RoutedEventArgs e)
    {
        base.Loaded -= OnLoaded;

    m_PushpinLayer = new MapLayer();
    x_Map.Children.Add(m_PushpinLayer);
        x_Map.MouseClick += OnMouseClick;
    }

    private void AddPushpin(double latitude, double longitude)
    {
        Pushpin pushpin = new Pushpin();
        pushpin.MouseEnter += OnMouseEnter;
        pushpin.MouseLeave += OnMouseLeave;
        m_PushpinLayer.AddChild(pushpin, new Location(latitude, longitude), PositionOrigin.BottomCenter);
    }

    private void OnMouseClick(object sender, MapMouseEventArgs e)
    {
        Point clickLocation = e.ViewportPoint;
        Location location = x_Map.ViewportPointToLocation(clickLocation);
        AddPushpin(location.Latitude, location.Longitude);
    }

    private void OnMouseLeave(object sender, MouseEventArgs e)
    {
        Pushpin pushpin = sender as Pushpin;

        // remove the pushpin transform when mouse leaves
        pushpin.RenderTransform = null;
    }

    private void OnMouseEnter(object sender, MouseEventArgs e)
    {
        Pushpin pushpin = sender as Pushpin;

        // scaling will shrink (less than 1) or enlarge (greater than 1) source element
        ScaleTransform st = new ScaleTransform();
        st.ScaleX = 1.4;
        st.ScaleY = 1.4;

        // set center of scaling to center of pushpin
        st.CenterX = (pushpin as FrameworkElement).Height / 2;
        st.CenterY = (pushpin as FrameworkElement).Height / 2;

        pushpin.RenderTransform = st;
    }
}

Шаг 7 : Построить и Пробег!

Ура, Джим МакКарди

Софт и YinYangMoney

-121--2943706-

Сертификат клиента ограничивает доступ к людям, авторизованным с сертификатами. Предполагая, что ваши сертификаты распределены и управляются правильно, это затрудняет подключение из неавторизованного местоположения (или, скажем, из бот-сети), так как вам нужно больше, чем просто имя пользователя и пароль.

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

4
ответ дан 1 December 2019 в 05:19
поделиться

, владеющие сертификатами SSL, подписанные авторитетом сертификата, означает, что владельцы сертификатов SSL поступили через хлопот быть проверенным в том, что владелец кто они говорят, они есть. Например, если у вас есть магазин электронной коммерции называется widgetsdeluxe.com, и у вас есть сертификат для доменного widgetsdeluxe.com, который был подписан Verisign et. Al., Покупатели будут знать, что, когда они пойдут на этот сайт, и имя на сертификате соответствует фактическому доменному имени, которому они пошли, то они могут доверять, чтобы информация была обеспечена и исходит из домена Widgetsdeluxe.com (это предотвратить поддельные атаки и атаки человека).

-2
ответ дан 1 December 2019 в 05:19
поделиться

Проверка сертификата гарантирует, что вы подключаетесь к тому, к кому предполагаете подключиться. Это предотвращает атаку "человека посередине".

Смотрите http://www.thoughtcrime.org/software/sslsniff/ для соответствующего случая, когда клиенты некорректно проверяют цепочку сертификатов, в результате чего довольно легко использовать SSL с помощью атаки "человек посередине".

-2
ответ дан 1 December 2019 в 05:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: