From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding:content-language; bh=r9NAxtlVorXfMCQk3N74BnTL4+OyeuZjZNVLPHXNGGQ=; b=BlshYyPciWK35DMevrpKi9og0GzeYOuk8IX/EksrYFspHdFooI+zr/4jTU64yqoUla 79VBNtiPfwkijX5Uhez8b/S8CHn0QL5Is5Tx7382ZFCIt8yRsvaoXXb5w6+JFbiGozx7 NQMEMgISZDmv5aHJK41z2etDUQ+b/Mhje3AVHQ+QLTT7Q2mF4/4YFzgDD6cVFzHViLN4 QyQn9yDRhlcxjKpcByfx02XtsYS+hfj+z22QgzFVuh/jJ8gbxaTrJd2f6VvGaK8ShdvY ugW1vcY3MTduqpC7Z3CdGW+JDIamY8O4bOl5iOxTi7I/TQY/tVXjXemixIuw0DtE0b1M lbVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=r9NAxtlVorXfMCQk3N74BnTL4+OyeuZjZNVLPHXNGGQ=; b=hRUOgiACCBKGAnHUMqfRDbx34u8f86LhJQo2gUANZUgU3p0bx7Uw98ZqihfjPrbMAO 1k4tpqSL3ARaI5RWy8YMGNW3+TsfrpeSmRZtsxCIkyUbXQGzHV4u324NLXlOvGDjXIjw R/tWQW/4QeSC853E4P9wRJphby0vO+SgcrIZY9KAvp2DtkuVRbRF4ZAMZxrzn5/nIOE8 O79Qbv81u1+WJ6BcWxZFi5FzSmX5M/PWOJWxZ9RwcPE/G5vjfhRl8aoAg2g9bmIryuTB i8rrLFuA2BFxF8uGIM1QbhuEFnwOugTnu7CcL77cb8moNHZRTuSCD2zmvBHeBelWJQME eJww== X-Gm-Message-State: APjAAAUA521pSr1ghjp6aH8p/5irTN4v1uAD6Ad6OVwKvonOh73WAtxI grbhfpt/J0PO68YRK1YEwU6W2LJ0 X-Google-Smtp-Source: APXvYqx9Ea5ZlHzEn6YdTwN1YIQPG1F++VAcrar/2tCYLwCUgy5rGTKscKxR6OpS4umNxHOzp0d+Jg== X-Received: by 2002:a2e:8050:: with SMTP id p16mr7098466ljg.160.1556237048648; Thu, 25 Apr 2019 17:04:08 -0700 (PDT) To: devel@lists.altlinux.org References: <20190425102859.GA12238@lks.home> <20190425221720.17ddacbf1039ac51c28fc7da@altlinux.org> <4825917.ZrCSt0kF7o@homerun.localdomain> <20190425192616.GE22790@imap.altlinux.org> From: Leonid Krivoshein Message-ID: Date: Fri, 26 Apr 2019 03:01:51 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 MIME-Version: 1.0 In-Reply-To: <20190425192616.GE22790@imap.altlinux.org> Content-Type: text/plain; charset=koi8-r; format=flowed Content-Transfer-Encoding: 8bit Content-Language: ru Subject: Re: [devel] rngd vs haveged vs crng X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Apr 2019 00:04:12 -0000 Archived-At: List-Archive: List-Post: 25.04.2019 22:26, Michael Shigorin пишет: > On Thu, Apr 25, 2019 at 10:21:20PM +0300, Denis Medvedev wrote: >> Кстати, довольно случайным, но полезным явилось перенесение >> генерации hostkeys из первого старта системы в ее инсталлер, >> в конец его работы - в это время в системе уже полно энтропии. > Это явно есть смысл утащить в installer (не забыв, > что sshd в целевой системе может и не быть, разумеется). Хотя вот это было написано не так давно: https://www.altlinux.org/Rescue/Recovery#Привязка_к_новому_"железу"_и_установка_загрузчика Все ноуты для школ и другие крупные развёртывания делались по той же схеме: ssh-keygen -A вызывался в самом конце процедуры. Мы с год назад обсуждали, что у нас в стартовых скриптах sshd эта команда запускается при первом старте в самом начале, но тогда решили оставить, как есть, потому что, если ключей нет, их надо первый раз сгененрировать. Пользуясь случаем, решил об этом напомнить -- есть повод для пересмотра такого поведения, раз некоторые считают, что на старте этого делать не следует. Однако замечу: по факту ssh-keygen -A берёт из ядра всего 32 байта через getrandom() с флагом 0. Делает он это для инициализации собственного ГПСЧ seed_rng(), строка #2463. Собран он у нас с libcrypto (OpenSSL). Весь выхлоп этой программы -- отнюдь не первородные Теодоровские нули и единицы! Да и getrandom() не просто синтаксический сахар, если кто забыл. Флаг 0 означает блокируемое чтение из не блокируемого /dev/urandom,  для запрошенных 32 байт это не прерываемый и не блокируемый вызов. В детали не углублялся, если кто просветит, буду признателен! Думаю, если на старте тут и пожирается реальная энтропия, то какие-то сущие крохи. Если мы не хотим вкорячивать rngd/haveged, чтобы не ухудшать криптостойкость большинства систем, и одновременно хотим искоренить проблему подвисания на раннем старте в отдельных редких случаях (сизифная сборка JeOS -- хорошо воспроизводимый пример, хотя может это нечто другое), нужно искать потребителей энтропии на раннем старте и решать, что с ними делать и возможно ли их вызов немного отложить, сделать остальное менее зависимым от них, итп. И вопрос к знатокам: как это лучше дебажить? auditd? fanotify? -- Best regards, Leonid Krivoshein.