Salauskäytännöt

Järjestelmän salauskäytäntöjen täytäntöönpano

In Fedora there are policies for the usage of cryptographic protocols such as TLS that are enforced system-wide. Each application being added in Fedora must be checked to comply with the policies. Currently the policies are restricted to major libraries such as GnuTLS, OpenSSL, NSS, libkrb5, languages such as Java and major applications like OpenSSH and bind. The rpmlint tool will warn when it detects that some action has to be taken; that detection is based on heuristics and limited to C programs, so manual inspection is recommended. Note however, that there are applications which intentionally set weaker, or custom settings on a purpose (e.g., postfix); those need not adhere to the policy. When in doubt, discuss with the Fedora crypto team.

Uudet salauskirjastot

New crypto libraries must comply with the crypto policies to enter Fedora, unless an exception has been granted by Fedora packaging committee, after consulting with Fedora crypto team.

C/C++ -sovellukset

  • OpenSSL-sovellukset:

    • Jos sovellus tarjoaa määritystiedoston, jonka avulla voidaan muuttaa salausluettelon merkkijonoa, varmista, että lähetetty tiedosto sisältää oletusarvoisesti "PROFILE=SYSTEM". Siinä tapauksessa lisätoimia ei tarvita.

    • Jos sovelluksella ei ole määritystiedostoa, varmista, että oletus salausluetteloa ei ole määritetty tai että oletusluetteloksi on asetettu "PROFILE=SYSTEM". Eli tarkista SSL_CTX_set_cipher_list() -lähdekoodi. Jos sitä ei ole, mitään ei tarvitse tehdä (käytetään oletusasetusta). Muussa tapauksessa, jos kyseinen puhelu on läsnä ja tarjoaa kiinteän merkkijonon, joka ei sisällä PSK: ta tai SRP:ta, korvaa merkkijono "PROFILE = SYSTEM" tai poista puhelu.

  • GnuTLS-sovellukset:

    • Jos sovellus tarjoaa määritystiedoston, jonka avulla salausprioriteettimerkkijonoa voidaan muokata, lähetetty tiedosto sisältää oletusarvoisesti "@SYSTEM". Siinä tapauksessa lisätoimia ei tarvita.

    • Jos sovelluksella ei ole määritystiedostoa, varmista, että se käyttää gnutls_set_default_priority () tai että oletusprioriteettimerkkijono on "@SYSTEM". Eli tarkista * gnutls_priority_set_direct*(), gnutls_priority_init(); jos niitä ei ole ja gnutls_set_default_priority () käytetään, mitään ei tarvitse tehdä. Muussa tapauksessa tarkista sovelluksen tarjoamat merkkijonot. Jos se sisältää PSK: n tai SRP: n, älä tee mitään (oletuskäytäntö ei tällä hetkellä kata näitä sovelluksia). Jos ei, korvaa gnutls_priority_set_direct() sanoilla gnutls_set_default_priority(). Jos gnutls_priority_init() käytetään kiinteän merkkijonon kanssa, korvaa merkkijono "@SYSTEM".

Muita salauskirjastoja käyttävät sovellukset eivät noudata järjestelmänlaajuisia salauskäytäntöjä (huomaa, että koko järjestelmän kattavien käytäntöjen noudattaminen on parhaillaan käynnissä NSS-kirjastoissa). Fedorassa olevien sovellusten tulisi käyttää yhtä näistä kirjastoista, kun on valinnanvaraa, ja mieluiten versiota, jonka ylävirta suosittelee.

Perl-sovellukset

  • IO::Socket::SSL Perl-sovellukset:

    • Tarkista, että lähdekoodi välittää SSL_cipher_list argumentti IO::Socket::SSL's menetelmille, kuten new(), start_SSL(), new_from_fd(), set_defaults(), set_client_defaults(), ja set_server_defaults(). Jos sitä ei ole, mitään ei tarvitse tehdä (käytetään oletusasetusta). Muussa tapauksessa, jos kyseinen argumentti on läsnä, poista argumentti tai muuta sen arvoa OpenSSL-osassa kuvatulla tavalla.

  • Net::SSLeay Perl-sovellukset:

    • Tarkista lähdekoodi näille, CTX_set_cipher_list(), set_cipher_list(), ja set_pref_cipher() aliohjelman kutsut *Net::SSLeay * -nimi-avaruudesta. Jos tällainen puhelu esiintyy, noudata OpenSSL-osassa kuvattuja ohjeita.

  • LWP::UserAgent Perl-sovellukset:

    • Tarkista lähdekoodin läpäisy SSL_cipher_list-argumentti ssl_opts()-menetelmäkutsulle LWP::UserAgent-esineella. Jos tällainen puhelu esiintyy, noudata OpenSSL-osassa kuvattuja ohjeita.