Вопрос или проблема
У меня есть компьютер с Unix и старая бинарная версия OpenSSL (версия 1.0.2h). Я наткнулся на следующую ссылку:
https://github.com/cloudflare/sslconfig/tree/master
И она предлагает мне пропатчить мой OpenSSL, чтобы я мог включить шифр ChaCha20/Poly1305.
Я не знаю, как это сделать.
Я попробовал выполнить:
patch < openssl__chacha20_poly1305_draft_and_rfc_ossl102g.patch
потому что я думаю, что это для OpenSSL 1.0.2g, который на одну букву ниже моей версии.
Я получил следующий результат:
can't find file to patch at input line 48
Perhaps you should have used the -p or --strip option?
The text leading up to this was:
--------------------------
|From d21c75c622eb13a80080ed15fa30474f806a0a0f Mon Sep 17 00:00:00 2001
|From: Vlad Krasnov <[email protected]>
|Date: Fri, 12 Feb 2016 18:25:11 -0800
|Subject: [PATCH] Implementation of draft and RFC versions of CHACHA20-POLY1305
| ciphers
|
|---
| Configure | 48 +-
| Makefile.org | 4 +-
| apps/speed.c | 30 +-
| crypto/chacha20poly1305/Makefile | 97 +++
| crypto/chacha20poly1305/asm/chacha20_avx.pl | 408 +++++++++++
| crypto/chacha20poly1305/asm/chacha20_avx2.pl | 443 ++++++++++++
| crypto/chacha20poly1305/asm/poly1305_avx.pl | 732 ++++++++++++++++++++
| crypto/chacha20poly1305/asm/poly1305_avx2.pl | 984 +++++++++++++++++++++++++++
| crypto/chacha20poly1305/asm/poly1305_x64.pl | 281 ++++++++
| crypto/chacha20poly1305/chacha20.c | 162 +++++
| crypto/chacha20poly1305/chacha20poly1305.h | 79 +++
| crypto/chacha20poly1305/chapolytest.c | 470 +++++++++++++
| crypto/chacha20poly1305/poly1305.c | 287 ++++++++
| crypto/cryptlib.c | 10 -
| crypto/evp/Makefile | 7 +-
| crypto/evp/e_chacha20poly1305.c | 435 ++++++++++++
| crypto/evp/evp.h | 4 +
| ssl/s3_lib.c | 119 ++++
| ssl/ssl.h | 2 +
| ssl/ssl_ciph.c | 60 +-
| ssl/ssl_locl.h | 2 +
| ssl/tls1.h | 28 +
| test/Makefile | 17 +-
| 23 files changed, 4655 insertions(+), 54 deletions(-)
| create mode 100644 crypto/chacha20poly1305/Makefile
| create mode 100644 crypto/chacha20poly1305/asm/chacha20_avx.pl
| create mode 100644 crypto/chacha20poly1305/asm/chacha20_avx2.pl
| create mode 100644 crypto/chacha20poly1305/asm/poly1305_avx.pl
| create mode 100644 crypto/chacha20poly1305/asm/poly1305_avx2.pl
| create mode 100644 crypto/chacha20poly1305/asm/poly1305_x64.pl
| create mode 100644 crypto/chacha20poly1305/chacha20.c
| create mode 100644 crypto/chacha20poly1305/chacha20poly1305.h
| create mode 100644 crypto/chacha20poly1305/chapolytest.c
| create mode 100644 crypto/chacha20poly1305/poly1305.c
| create mode 100644 crypto/evp/e_chacha20poly1305.c
|
|diff --git a/Configure b/Configure
|index 4a715dc..f3ab6cd 100755
|--- a/Configure
|+++ b/Configure
--------------------------
Затем он спрашивает меня, какой файл пропатчить.
Что мне написать?
Ответ или решение
Как успешно патчить OpenSSL: Подробное руководство
Вам необходимо обновить ваш OpenSSL до версии, поддерживающей шифр ChaCha20/Poly1305. В данной статье мы рассмотрим процесс применения патча для OpenSSL 1.0.2h, который, как вы заметили, не удается выполнить из-за ошибок при использовании команды patch
. Следуя этому руководству, вы сможете успешно внести необходимые изменения в вашу установку OpenSSL.
Шаг 1: Подготовка окружения
Перед началом убедитесь, что у вас установлены все необходимые инструменты для сборки и компиляции, включая gcc
, make
, и patch
. Если они отсутствуют, можно установить их с помощью менеджера пакетов вашей Unix-системы. Например, для Debian-подобных систем:
sudo apt-get update
sudo apt-get install build-essential
Также вам может понадобиться скачать сам патч, если вы этого еще не сделали.
Шаг 2: Скачивание патча
Скачайте патч с GitHub по следующей ссылке, если вы этого еще не сделали:
wget https://github.com/cloudflare/sslconfig/raw/master/openssl__chacha20_poly1305_draft_and_rfc_ossl102g.patch
Шаг 3: Извлечение исходников OpenSSL
Необходимо извлечь исходные коды OpenSSL версии 1.0.2h. Если исходники у вас отсутствуют, их можно скачать с официального сайта OpenSSL:
wget https://www.openssl.org/source/old/1.0.2/openssl-1.0.2h.tar.gz
tar -xzvf openssl-1.0.2h.tar.gz
cd openssl-1.0.2h
Шаг 4: Применение патча
Теперь вы готовы применить патч. Зайдите каталоги с исходниками OpenSSL и выполните следующую команду:
patch -p1 < ../openssl__chacha20_poly1305_draft_and_rfc_ossl102g.patch
Если вы получаете ошибки, такие как "can’t find file to patch", это может означать, что команда patch
не может найти нужные файлы для изменения. Ваша версия OpenSSL должна находиться в каталоге, где вы выполняете команду. Также убедитесь, что вы находитесь в корневом каталоге OpenSSL при применении патча.
Шаг 5: Конфигурация и компиляция
После успешного применения патча выполните следующие команды для конфигурации и сборки OpenSSL с поддержкой новых шифров:
./config
make
sudo make install
Это установит OpenSSL на ваше устройство, включая шифры ChaCha20/Poly1305.
Шаг 6: Проверка установки
Чтобы убедиться, что ваш OpenSSL установлен правильно и поддерживает необходимые шифры, выполните следующую команду:
openssl ciphers 'CHAOS'
Если вы видите ChaCha20-Poly1305
в выводе, значит, вы успешно патчили OpenSSL.
Заключение
Теперь вы знаете, как успешно применить патч к OpenSSL и включить в него поддержку шифра ChaCha20/Poly1305. Патчинг программного обеспечения может быть сложным процессом, но с правильными инструментами и шагами вы сможете это сделать успешно. Не забывайте поддерживать ваше ПО в актуальном состоянии, чтобы защитить системы от уязвимостей.