Добавление данных в файл с синглом, открытым/близким из сценария оболочки

Что мешает кому-то MITM-напасть на запрос к центру сертификации для проверки сертификата?

Когда браузеру дарят сертификат, он не соединяется с центром сертификации (CA) издания для проверки сертификата; это должно уже доверять CA, априорно. В зависимости от сертификата, CA и браузера, это может соединиться с URL, содержавшимся в Сертификате CA проверке, если сертификат, представленный сайтом, был отменен (список аннулирования), но то соединение защищается сертификатом CA, а не сертификат представил сайтом. Насколько я знаю, большинство браузеров на самом деле не делает этого, хотя большинство может быть настроено к. Если сертификат CA будет поставлен под угрозу, то сертификат CA должен будет или быть вручную удален или удален патчем или новой версией кода браузера.

Браузер прибывает предварительно загруженный с открытыми ключами доверенных центров сертификации (таким образом, обеспечение аутентификации)?

Да. Больше, чем просто открытые ключи, хотя, это - на самом деле самоподписанные сертификаты от АВАРИИ, которые содержат открытые ключи, должен содержать URL для проверки самого Сертификата в дополнение к Спискам Аннулирования, и потенциально намного больше. В основном каждый производитель браузера должен решить, какая АВАРИЯ предварительно установить и которые не учесть, и это - тема большого обсуждения и большого бизнеса. Большая часть АВАРИИ генерирует много денежных сертификатов продажи, и она приносит пользу им, чтобы быть предварительно установленной в каждом браузере, таким образом, они борются на производителях браузера для установки их. Но степень доверия АВАРИИ является темой, которая может вызвать много дебатов среди людей безопасности.

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

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

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

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

Но существенно, Вы правы. В какой-то момент необходимо доверять кому-то. Это - важная вещь помнить о безопасности, сетях, бизнесе и жизни. Конечно, необходимо умерить это со здоровой дозой скептицизма и постоянно переоценивать доверительные отношения. И конечно, необходимо также иметь в виду некоторый мудрый совет от Gipper: "Доверие, но Проверяют" (или, если Вы предпочитаете: последуйте разумному совету старой российской пословицы: ""doveryai, никакой proveryai" [русский язык: Доверяй, но проверяй]"). Для реального обеспечения компьютера необходимо будет выключить его, демонтировать его, уничтожить компоненты, затем уничтожить оставление.

До установления доверительных отношений с кем-то еще идет, оно помогает иметь общего друга, который уже доверяет им. Это - самое главное позади "кольца доверия" В какой-то момент, у Вас должно быть немного веры. Как Вы знаете, что человек, который выпустил Вас Ваши водительские права, является ДЕЙСТВИТЕЛЬНО сотрудником состояния. Конечно, Вы могли генерировать свой открытый ключ, запомнить цифровой отпечаток и установить паб, включают целевую систему

Я понимаю это правильно?

Я не уверен, но я подозреваю так. Повторите все это назад мне, перефразируемый в Ваши собственные слова, и я сообщу.

Править: И действительно, как GregD указывает, все это является академическим, потому что большинство людей нажимает кнопку "Proceed anyway", когда их браузер предупреждает их, что не доверяет сертификату и затем это игра закончена. Конечно, если Вы работаете на предприятии и управляете системой, что пользователи выпущены, можно, вероятно, настроить ее так, она не представляет их, что кнопка, но необходимо будет иметь дело с выпадением. Единственное время когда-либо приемлемо нажать ту кнопку, - когда Вы не подключены к сети и имеете одиночный провод между Вами и системой, представляющей недоверяемый сертификат (и даже затем, это спорно).

2
задан 10 February 2013 в 11:07
2 ответа

Я не уверен, но думаю, вы хотите открыть файл журнала для записи только один раз, не так ли?

Если да, вам нужно использовать вспомогательную оболочку, выведите в STDOUT и отправьте его извне в файл журнала.

#! /bin/bash
log="loadlog.log"

(
for i in {1..10}; do
    n=$((100*$i))

    echo "## Users=$i  requests=$n ##"

    ab -n $n -c $i  http://mainserver.com/index.html

    ssh root@mainserver cat /proc/loadavg

    echo "======"
done
) >> $log

Также я рекомендую вам сделать что-нибудь со своим стилем кода - он нечитаем. И вам нужно использовать #! / Bin / bash , потому что в цикле используются конструкции, специфичные для bash.

4
ответ дан 3 December 2019 в 09:18

Использование команды exec с перенаправлением применяет это перенаправление ко всему сценарию. Итак, вы можете перенаправить весь стандартный вывод для добавления в файл журнала:

#!/bin/sh
log="loadlog.log"

exec 1>>$log

for i in {1..10}
do
   n=$((100*$i))
   echo "## Users=$i  requests=$n ##"
   ab -n $n -c $i  http://mainserver.com/index.html
   ssh root@mainserver cat /proc/loadavg
   echo "======"
done

Если вы все еще хотите отправлять данные пользователю, вы можете сначала сделать копию стандартного вывода:

#!/bin/sh
log="loadlog.log"

exec 3>&1     # file descriptor 3 is now stdout
exec 1>>$log

for i in {1..10}
do
    # ...
   echo "======"                  # this line will be appended to the log file
   echo "completed loop $i" >&3   # this line will be displayed to user
done

exec 1>&3     # fd 1 restored to stdout
exec 3>&-     # fd 3 is closed

echo "stdout now restored"
2
ответ дан 3 December 2019 в 09:18

Теги

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