Ka hilinaʻi o ka manawa hoʻokō aʻo i ka ʻikepili ma ARM a me Intel CPU

ʻO Eric Biggers, kekahi o nā mea hoʻomohala o ka Adiantum cipher a me ka mea mālama i ka Linux kernel fscrypt subsystem, ua manaʻo i kahi hoʻonohonoho o nā pale e pale i nā pilikia palekana e kū mai ana mai kahi hiʻohiʻona o nā kaʻina hana Intel ʻaʻole e hōʻoiaʻiʻo i nā manawa hoʻokō mau no nā ʻikepili i hoʻoponopono ʻia. ʻIke ʻia ka pilikia ma nā kaʻina hana Intel e hoʻomaka ana me ka ʻohana Ice Lake. ʻIke ʻia kahi pilikia like i nā kaʻina hana ARM.

ʻO ka loaʻa ʻana o ka hilinaʻi o ka manawa hoʻokō o nā ʻōlelo aʻo i ka ʻikepili i hana ʻia i loko o kēia mau ʻōlelo aʻoaʻo e manaʻo ʻia e ka mea kākau o nā patch ma ke ʻano he palupalu i nā kaʻina hana, no ka mea ʻaʻole hiki i kēlā ʻano ke hōʻoia i ka palekana o nā hana cryptographic i hana ʻia i ka ʻōnaehana. Nui nā hoʻokō o nā algorithms cryptographic i hoʻolālā ʻia e hōʻoiaʻiʻo ʻaʻole pili ka ʻikepili i ka manawa hoʻokō o nā ʻōlelo aʻo, a ʻo ka uhaki ʻana i kēia ʻano hiki ke alakaʻi i ka hana ʻana i nā ʻaoʻao-channel hoʻouka e hoʻihoʻi i ka ʻikepili ma muli o ka nānā ʻana o kona manawa hana.

Hiki ke hoʻohana ʻia ka hilinaʻi ʻikepili runtime e hoʻomaka i ka hoʻouka ʻana e hoʻoholo i ka ʻikepili kernel mai kahi mea hoʻohana. Wahi a Eric Biggers, ʻaʻole hāʻawi ʻia ka manawa hoʻokō mau ma ke ʻano maʻamau no nā ʻōlelo aʻoaʻo e hana ana i ka hoʻohui a me nā hana XOR, a me nā ʻōlelo kuhikuhi AES-NI kūikawā (ʻaʻole i hōʻoia ʻia ka ʻike e nā hoʻokolohua, e like me nā ʻikepili ʻē aʻe, aia kahi lohi o kekahi. pōʻai i ka wā o ka hoʻonui vector a me ka helu bit).

No ka hoʻopau ʻana i kēia ʻano, ua hāʻawi ʻo Intel a me ARM i nā hae hou: PSTATE bit DIT (Data Independent Timing) no nā ARM CPU a me MSR bit DOITM (Data Operand Independent Timing Mode) no nā Intel CPU, e hoʻihoʻi ana i ka hana kahiko me ka manawa hoʻokō mau. Manaʻo ʻo Intel a me ARM i ka pale ʻana e like me ka mea e pono ai no ke code koʻikoʻi, akā ʻo ka ʻoiaʻiʻo, hiki ke hana ʻia ka helu koʻikoʻi ma nā wahi āpau o ka kernel a me ka wahi mea hoʻohana, no laila ke noʻonoʻo nei mākou e hiki i nā mode DOITM a me DIT no ka kernel holoʻokoʻa i nā manawa āpau.

No nā kaʻina hana ARM, ua hoʻohana mua ka lālā Linux 6.2 kernel i nā ʻāpana e hoʻololi i ke ʻano no ka kernel, akā ua manaʻo ʻia kēia mau ʻāpana ʻaʻole lawa no ka mea ua uhi wale lākou i ke code kernel a ʻaʻole hoʻololi i ke ʻano no ka wahi mea hoʻohana. No nā kaʻina hana Intel, aia nō ka hoʻokomo ʻana o ka pale i ka pae loiloi. ʻAʻole i ana ʻia ka hopena o ka pā i ka hana, akā e like me ka palapala Intel, hiki i ka mode DOITM ke hōʻemi i ka hana (no ka laʻana, ma ka hoʻopau ʻana i kekahi mau optimizations, e like me ka data-specific preloading) a i nā hiʻohiʻona kaʻina hana e hiki ke hoʻonui i ka hana. .

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka