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=-2.0 required=5.0 tests=BAYES_00,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=zksp2+0xuItfHw+bXxtsKSFa7d/E3iNn2ADQSlsahtk=; b=OO3548qXdHxzh1YUEK43LNMcOJ68YIo30RRrfyJQ8EugE3u69jct0WoqIDE4yqLGi8 ObFDVcauowbo3iwUnqHIGzmaM7l5qG1IdHtWMpf1MLzp2LhbbZZj+/8XWkgvbrmPa18A SD38uheGkuZJSsiAOqp25LrfuFwh5IeEKjxZy6hDMOTrwcEjNSi8O9uI5b16ziz8It1j 1MdK6bv8rfpvHizNgVbAv1DV/XJLSSVrOu06RNReUEopDk3kdMHsHIkbdzb8aFZE5n/G 1w9WCXDqCwe/2Mr9NVvC3rSVlKJ5+t+ZUwOcUaMrosugTM3fqeXQqvcJXil/5QBoJs6m ZG7g== 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=zksp2+0xuItfHw+bXxtsKSFa7d/E3iNn2ADQSlsahtk=; b=tNWqhLqW1iV5qvk47zlQA8YXCT5rMpEc6unTY0FhkzMQKhMn1AGwZV4akHtmoEt/Cu L4yWdLAsUJu/FnEI07IhZQUnIzW2eqVoPvCkW1u8XxLiw8XsBnR6kHCeBF+4UjSfcDLZ awLufUVIw2suJ7cfZTeZgb1gZfpFQKtks5FvyocLQwZE8XGJfFxxewiF/21fK+gkAG+/ az9oCdZU7446qw0Be5m/Huu0D5wEUD4TH5Z3ois5wLTwxA3lrFXG62A24IS0y6MZj8bX fgHPDWflzl3M803h39RUKzT4IploCVWILm2lGrmDUzog/HLb9BWI3kNcNEYJ60l4bqel D1hQ== X-Gm-Message-State: AGRZ1gJnMxK3BDoQprl9WVUemnwJsewxeDRe4b6XPofUpOId2BzTSIyT zy0CvnBP5XYycVUF6tTR7LbEcQNR X-Google-Smtp-Source: AJdET5dDAxIaWH9TXmj6wX+84xfQDkKvB14FI0/pwR3ykdRnXwED0tOwgGud7EbUC22tioVH8Z8d1w== X-Received: by 2002:a2e:9f0b:: with SMTP id u11-v6mr3286772ljk.99.1541436176356; Mon, 05 Nov 2018 08:42:56 -0800 (PST) To: devel@lists.altlinux.org References: <82b4938f-a23b-b51e-939d-9f74fa8703a2@altlinux.org> <4b5ab176-44ba-db98-e08b-b76146753494@gmail.com> <2612299.mELcP0gfiM@homerun.localdomain> <20181105082333.GB11681@altlinux.org> From: Leonid Krivoshein Message-ID: <1e505e97-6af8-d9cb-fe3f-abeead44cba6@gmail.com> Date: Mon, 5 Nov 2018 19:42:39 +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: <20181105082333.GB11681@altlinux.org> Content-Type: text/plain; charset=koi8-r; format=flowed Content-Transfer-Encoding: 8bit Content-Language: ru Subject: Re: [devel] =?utf-8?b?W3Npc3lwaHVzXSDQndC1INC/0LXRgNC10LrQu9GO0Yc=?= =?utf-8?b?0LDQtdGC0YHRjyDQsiDQs9GA0LDRhNC40YfQtdGB0LrQuNC5INGA0LXQttC4?= =?utf-8?b?0Lw=?= 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: Mon, 05 Nov 2018 16:42:59 -0000 Archived-At: List-Archive: List-Post: 05.11.2018 11:23, Alexey V. Vissarionov пишет: > > В любом случае получается некое подобие псевдослучайности > > /dev/urandom, что по идее может быть менее секьюрно, чем > > /dev/random. > > /dev/urandom намного лучше любого усерспейсного угробища. Вот поэтому... > > А хотелось бы решить проблему так, чтобы: > > 1) не ухудшать безопасность -- на большинстве машин проблема > > никак не проявляется, чтение из /dev/random не приводит к > > подвисаниям на раннем старте; > > Одно только это требование полностью исключает любые костыли в > усерспейсе. ...и поэтому вопрос перенесён в devel@ для общего так сказать обсуждения. > > 3) в идеале со временем найти и заменить все > > места с чтением из /dev/random на вызов getrandom(2). > > Это влияет только на переносимость кода, но не на безопасность: > > By default, getrandom() draws entropy from the urandom source > (i.e., the same source as the /dev/urandom device). > > Угадаешь, откуда цитата? :-) Там же написано, что зависит от флагов. Да, по умолчанию из того же неблокирующего пула, это регулируется флагами. Один нюанс: данный вызов сам умеет учитывать факт раннего старта, размер имеющейся и запрошенной энтропии, этим он лучше простого чтения из /dev/urandom, но есть и минус: требуется ядро 3.17+. > > Исходя из этого нужно: > > 1) определить значение длины минимально необходимой энтропии; > > 2) сделать тест длины энтропии и добавить его в systemd-unit > > для haveged; > > 3) включить haveged во все дистрибутивы. > > А можно просто использовать специально для этого предназначенный > источник - /dev/urandom; когда энтропии достаточно, он работает > точно так же, как /dev/random, а когда не хватает - ну, хотя бы > что-то более-менее приемлемое выдаст. А есть мнение, что простое чтение из /dev/urandom не настолько безопасно на раннем старте. И стоит почитать про haveged -- это не просто юзерспейсный костыль. Кстати, на данный момент на некоторых железках без существенного погружения в код ничего лучше haveged проблему не решает. When read during early boot time, //dev/urandom/ may return data prior to the entropy pool being initialized. If this is of concern in your application, use getrandom(2) or //dev/random/ instead. -- Best regards, Leonid Krivoshein.