Kryptografické rozhraní jádra Linuxu

Kryptografické rozhraní jádra Linux je programovací rozhraní pro kryptografické funkce (anglicky Crypto API), které jádro operačního systému Linux nabízí jednak pro své jiné součásti vyžadující kryptografické funkce (např. IPsec nebo dm-crypt), jednak částečně i pro programy v uživatelském prostoru. Do jádra bylo poprvé začleněno ve verzi 2.5.45 v říjnu 2002[1], přičemž hlavním „uživatelem“ byl v té době IPsec. Od té doby byla jako jeho součást implementována většina běžně používaných blokových šifer i kryptografických hašovacích funkcí. Výpis šifer podporovaných na aktuální instanci operačního systému lze získat z virtuálního souborového systému procfs, přesněji výpisem souboru /proc/crypto.

Kromě potřeby nabídnout ostatním částem jádra implementaci kryptografických funkcí přímo v jádře je motivací také podpora hardwarové akcelerace šifrování na některých typech procesorů. Zatímco například na nejběžnějších procesorech rodiny x86 od firem Intel a AMD byly přímo do instrukční sady přidány pro šifru AES potřebné instrukce (AES-NI) a může je tak používat software běžící v privilegovaném režimu i software běžící v uživatelském režimu, například na platformách Geode nebo SheevaPlug je přístup k hardwarové akceleraci šifrování vyhrazen pro software běžící v privilegovaném režimu. Šifrovacím aplikacím uživatelského prostoru (například OpenSSL nebo GnuTLS) tak musí hardwarově akcelerované šifrování zprostředkovávat jaderný ovladač zařízení, v tomto případě přístupný právě přes jednotné kryptografické rozhraní.

Pro Linux 2.6 bylo nezávisle také portováno kryptografické rozhraní OpenBSD, to ale nikdy nebylo začleněno do hlavní větve.[2]

Reference

V tomto článku byl použit překlad textu z článku Crypto API (Linux) na anglické Wikipedii.

  1. Kernel development. lwn.net [online]. Dostupné online. (anglicky) 
  2. LUDVIG, Michal. CryptoDev for Linux [online]. Dostupné online. 

Literatura

  • JELÍNEK, Lukáš. Jádro systému Linux. první. vyd. Brno: Computer Press, 2008. ISBN 978-80-251-2084-2. Kapitola 17. Další informace / Šifrování, hashe, komprese, s. 635–639.