Diffie-Hellman вместо SSL?

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

Вы могли всегда использовать стандартный метод JDK получения документа:

import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;

[...]

File file = new File("some/path");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse(file);

15
задан Jonathan Leffler 27 October 2009 в 19:26
поделиться

5 ответов

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

DH, сам по себе, только не позволяет другим читать передаваемые данные. SSL предназначен для установления значительно большего (но может использовать DH для предотвращения чтения потока другими). ​​

Просто в качестве очевидного примера, использование DH (самого по себе) для атаки Man in the middle довольно просто. Если я смогу заставить вас подключиться к моему серверу вместо того, который вы намеревались, я могу использовать DH, чтобы установить с вами «безопасный» сеанс. Затем я подключаюсь к серверу, который вы изначально намеревались использовать. Каждый пакет, который я получаю от вас, я расшифровываю, повторно шифрую с помощью ключа, который я использовал для подключения к этому серверу, и отправляю на этот сервер. Я делаю то же самое со всеми его ответными пакетами. Для вас все выглядит так, как будто оно было получено непосредственно с исходного сервера, и сделанная вами покупка (например) работает как обычно. Единственное, что изменится, это то, что я также сохраню номер вашей кредитной карты, и когда вы попытаетесь заправить свою машину на следующий день, плата отклонена, потому что тем временем я потратил весь ваш кредит.

Аутентификация в SSL, по крайней мере, предназначена для предотвращения этого. Если ваш браузер попытался подключиться (например) к www.amazon.com, он должен выдать вам предупреждение, если в моем сертификате SSL не указано, что он был выпущен на www.amazon.com, и ЦС не должен выдавать такой сертификат кому угодно кроме Amazon.

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

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

Фактически Diffie-Hellman является частью SSL. Но одна часть не заменяет другие.

Из здесь SSL Diffie-Helman используется для:

Это обмен ключами Diffie-Hellman в который сертификат сервера содержит публикацию Диффи-Хеллмана параметры подписанные сертификатом авторитет (CA). Это сертификат открытого ключа содержит Параметры открытого ключа Диффи-Хеллмана. Клиент предоставляет свой Diffie-Hellman параметры открытого ключа либо в сертификат, если аутентификация клиента требуется, или при обмене ключами сообщение. Этот метод приводит к фиксированный секретный ключ между двумя пирами, на основе Диффи-Хеллмана расчет с использованием фиксированной публичной ключи.

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

Вы можете использовать анонимное соглашение о ключах Диффи-Хеллмана с SSL. Это обеспечивает конфиденциальность на канале, но без аутентификации.

Конечно, без аутентификации у вас действительно не может быть конфиденциальности, потому что ваш частный канал может быть подключен к "человеку посередине". Вот почему анонимные наборы шифров DH не рекомендуются.

Если отсутствие сертификата мешает вам использовать SSL там, где он действительно необходим, получите бесплатный на startcom.org.

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

Обмен ключами Диффи-Хеллмана только для обмена ключами. Он не дает вам аутентификации (с кем вы разговариваете), для этого вам нужны сертификаты и PKI.

Так что да, вы можете использовать шифрование,

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

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

Вопрос:

  • Вы хотите зашифровать данные с помощью кто-нибудь вообще?
  • Вы хотите быть уверены в том, с кем разговариваете?

Как уже указывалось, SSL использует обмен ключами DH для установления сеансового ключа. Однако это также гарантирует, что программа на другом конце - это тот, кому вы доверяете (прямо или косвенно). Если вам не нужно беспокоиться о том, заслуживает ли другой человек доверия, вы можете просто использовать простой обмен ключами DH, а затем отправлять зашифрованные данные без сертификатов. Но ты выиграл

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

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