<div dir="ltr">Привет!<div><br></div><div>В последних версиях crypto-policies (<a href="https://gitlab.com/redhat-crypto/fedora-crypto-policies/">https://gitlab.com/redhat-crypto/fedora-crypto-policies/</a>), которые уже присутствуют в Fedora 31, появилась поддержка &quot;вторичных политик&quot;.</div><div><br></div><div>&quot;Вторичные политики&quot; позволяют добавить разрешения на использование специфичных крипто-систем поверх имеющейся системной политики. Даже есть заготовка для ГОСТ, но она не работает, потому что не описывает конкретные шифронаборы, которые можно разрешать.</div><div><br></div><div>Вот дополнительный модуль политики для ГОСТ: <a href="https://gitlab.com/redhat-crypto/fedora-crypto-policies/blob/master/policies/modules/GOST.pmod">https://gitlab.com/redhat-crypto/fedora-crypto-policies/blob/master/policies/modules/GOST.pmod</a>. Этот модуль определяет внутренние имена для генераторов политик конкретных библиотек. Например, openssl генератор: <a href="https://gitlab.com/redhat-crypto/fedora-crypto-policies/blob/master/python/policygenerators/openssl.py">https://gitlab.com/redhat-crypto/fedora-crypto-policies/blob/master/python/policygenerators/openssl.py</a>. Этот генератор (как и другие) не содержит преобразований из внутренних имен ГОСТ, определенных в GOST.pmod в имена, понимаемые библиотеками. </div><div><br></div><div>Фактически, это заготовка, которую нужно доработать.</div><div><br></div><div>Преобразование нужно как-то определить -- оно позволяет нам описать предпочитаемые шифронаборы и управлять их выбором. Если таких наборов будет несколько (старый ГОСТ, современный ГОСТ и так далее), то мы можем описать их в разных дополнительных модулях (GOST-OLD, GOST, etc), но нам нужно договориться о том, во что используемые в них имена будут преобразованы для каждой библиотеки, поддерживающей ГОСТ.</div><div><br></div><div>Так что, вопрос к экспертам: определите, пожалуйста, что использовать для следующий понятий для старого и нового ГОСТ:</div><div><br></div><div>1) HMAC</div><div>2) group</div><div>3) hash</div><div>4) signature</div><div>5) TLS cipher</div><div>6) key exchange</div><div><br></div><div>Вот так это выглядит в подполитике GOST сейчас:</div><div><pre class="gmail-code gmail-highlight" lang="plaintext"><span id="gmail-LC4" class="gmail-line" lang="plaintext"># This adds the HMAC-GOST at the end of the mac list</span>
<span id="gmail-LC5" class="gmail-line" lang="plaintext">mac = HMAC-GOST+</span>
<span id="gmail-LC6" class="gmail-line" lang="plaintext"></span>
<span id="gmail-LC7" class="gmail-line" lang="plaintext"># This adds the GOST-EC to the beginning of the group list</span>
<span id="gmail-LC8" class="gmail-line" lang="plaintext">group = +GOST-EC</span>
<span id="gmail-LC9" class="gmail-line" lang="plaintext"></span>
<span id="gmail-LC10" class="gmail-line" lang="plaintext">hash = +GOSTHASH</span>
<span id="gmail-LC11" class="gmail-line" lang="plaintext"></span>
<span id="gmail-LC12" class="gmail-line" lang="plaintext">sign = +GOST-EC-GOSTHASH</span>
<span id="gmail-LC13" class="gmail-line" lang="plaintext"></span>
<span id="gmail-LC14" class="gmail-line" lang="plaintext">tls_cipher = +GOST-CIPHER</span>
<span id="gmail-LC15" class="gmail-line" lang="plaintext"></span>
<span id="gmail-LC16" class="gmail-line" lang="plaintext">cipher = +GOST-CIPHER</span>
<span id="gmail-LC17" class="gmail-line" lang="plaintext"></span>
<span id="gmail-LC18" class="gmail-line" lang="plaintext">key_exchange = +GOST-EC</span>
</pre></div><div>Для примера, вот так выглядит подполитики выкидывания поддержки SHA1, NO-SHA1.pmod:</div><div><pre class="gmail-code gmail-highlight" lang="plaintext"><span id="gmail-LC1" class="gmail-line" lang="plaintext"># This is example subpolicy dropping the SHA1 hash and signature support</span>
<span id="gmail-LC2" class="gmail-line" lang="plaintext"></span>
<span id="gmail-LC3" class="gmail-line" lang="plaintext">hash = -SHA1</span>
<span id="gmail-LC4" class="gmail-line" lang="plaintext"></span>
<span id="gmail-LC5" class="gmail-line" lang="plaintext">sign = -RSA-PSS-SHA1 -RSA-SHA1 -ECDSA-SHA1</span>
</pre></div><div>Где SHA1, RSA-PSS-SHA1 и остальные имена либо стандартизированы между библиотеками, либо мапятся в стандартизированные каждым генератором отдельно.<br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">/ Alexander Bokovoy</div></div></div>