OpenSSL හි AES-NI හෝ කර්නලයට මාරු කිරීම: ඔබට අවශ්ය කුමක්ද?
CPU උපදෙස් සහාය පැකට් සකසන ස්ථානයෙන් වෙන් කරන්න: සකස් කිරීමට පෙර ක්රිප්ටෝ බැකෙන්ඩ්, එකඟ වූ සයිෆර් සහ සක්රීය මාර්ගය පරීක්ෂා කරන්න.
ලේබල් දෙකක් එකම දෙය මෙන් භාවිතා වේ: උපකරණ මගින් වේගවත් කළ සහ කර්නලයට මාරු කළ. එකක් පුස්තකාලයක AES ක්රියා පටිපාටිය කුමන උපදෙස් ක්රියාත්මක කරයිද යන්න විස්තර කරයි, අනෙක පැකට් සැකසීම සිදුවන්නේ කොහේද යන්න විස්තර කරයි. VPN එකකට පළමුවැන්න දෙවැන්න නොමැතිව, දෙවැන්න පළමුවැන්න නොමැතිව, හෝ දෙකම එකට තිබිය හැක. කාර්ය සාධනය පිළිබඳ ඕනෑම තීරණයක් ආරම්භ විය යුත්තේ ඔබ ඇත්තටම වෙනස් කරන්නේ මේ දෙකෙන් කුමක්ද යන්න නම් කිරීමෙනි.
අක්ෂ දෙකක්, ලකුණු එකක් නොවේ
පළමු අක්ෂය ක්රියාත්මක කිරීමයි: AES-256-GCM කරන කේතය ප්රොසෙසරයේ කැපවූ උපදෙස් භාවිතා කරන අනුවාදයකට යයිද, නැතහොත් ඒවා සාමාන්ය ගණිතයක් ලෙස ක්රියාත්මක කරන ගෙනයා හැකි ක්රියා පටිපාටියකට යයිද. මෙම තේරීම ක්රිප්ටෝග්රැෆික පුස්තකාලය තුළ ජීවත් වන අතර එය ආරම්භ වන විට සිදු කෙරේ.
දෙවන අක්ෂය ස්ථානයයි: පැකට් කර්නලයේ පරිවර්තන මාර්ගය හරහා යයිද, නැතහොත් පරිශීලක අවකාශයේ ඩීමන් එකක් ටනල් උපාංගයකින් කියවා, සංකේතනය කර නැවත ලියයිද.
කිසිදු අක්ෂයක් අනෙක සීමා නොකරයි. AES උපදෙස් ඇති CPU එකක පරිශීලක අවකාශයේ VPN එකකට ඒවා සෑම විටම භාවිතා කළ හැක, ඒවා නොමැති CPU එකක කර්නල මාර්ගය මෘදුකාංග ක්රියාත්මක කිරීමකට ආපසු යයි. සැපයුම්කරුවන්ගේ ද්රව්යවල ලේබල මෙම වෙනස කලාතුරකින් පෙන්වයි, එබැවින් අවස්ථා දෙකක් අතර පිටපත් කරන ලද සකස් කිරීමේ උපදෙස් බොහෝ විට කිසිවක් නොකරයි.
අක්ෂය එක: සංකේතනය කරන්නේ කුමන කේතයද
OpenSSL ආරම්භයේදී ප්රොසෙසරයේ ලක්ෂණ හඳුනාගෙන ප්රශස්ත කේත මාර්ග තේරීමට ප්රතිඵලය භාවිතා කරයි, x86 හැකියාවන් පිළිබඳ ලේඛනය විස්තර කරන පරිදි. AES-NI යනු එම යැවීම පිටුපස ඇති ලේඛනගත හැකියාවන්ගෙන් එකකි. මේ කිසිවක් පුස්තකාලය කර්නල සංරචකයක් විය යුතු බවට ඉල්ලා නොසිටියි.
වේගවත් මාර්ගය භාවිතා වේ යැයි උපකල්පනය කිරීමට පෙර ලක්ෂණය ක්රියාවලියට දෘශ්යමාන බව තහවුරු කරන්න. Linux හි මූලාශ්රය /proc/cpuinfo හි flags ක්ෂේත්රයයි, සහ අමුත්තක් තුළ එය hypervisor හෙළිදරව් කරන දේ පිළිබිඹු කරයි, භෞතික සත්කාරකයේ මාදිලි නාමය නොවේ.
grep -m1 '^flags' /proc/cpuinfo | grep -o '\baes\b'
openssl list -providers -verboseදෙවන විධානය එම ගොඩනැගීමේ පූරණය කළ සැපයුම්කරුවන් නම් කරයි. එය VPN සේවාව සම්බන්ධ කළ පුස්තකාලය කුමක්ද යන්න ඔබට නොකියයි, සහ සත්කාරකයකට OpenSSL ස්ථාපන දෙකක් තිබිය හැකි අතර ධාවනය වන ක්රියාවලිය ඉන් එකක් පමණක් භාවිතා කරයි.
අක්ෂය දෙක: පැකට් මාර්ගය ධාවනය වන්නේ කොහේද
කර්නලයේ තැබීම යනු පරිවර්තනය කර්නලයේම IPsec යන්ත්රයේ හෝ කර්නලය තුළ ඇති ටනල් ධාවකයේ සිදු වේ, එබැවින් සෑම කණ්ඩායමක් සඳහාම පැකට් පරිශීලක අවකාශයේ ක්රියාවලියක් හරහා ගොස් ඒමට අවශ්ය නොවේ. මෙය පිටපත් සහ සන්දර්භ මාරු කිරීම් අඩු කළ හැකි අතර, තනි තන්තු ඩීමන් එකකට නොහැකි ආකාරයට කාර්යය කෝර අතර පැතිරවිය හැක. එය ඔබ නොපාලනය කරන මායිමක අනෙක් පැත්තේ කාර්යය දැන් සිදු වන බැවින්, ප්රවාහය පහත වැටෙන විට ඔබ කියවන කවුන්ටර සහ ට්රේස් ද මාරු කරයි. මෙය කාර්ය සාධන තීරණයක් පමණක් නොව දෝෂ නිරාකරණ පිරිවැයක් ලෙස සලකන්න.
එය උපදෙස් සහායක් සාදන්නේ නැත, සයිෆරයක් වින්යාස නොකරයි, සහ පවතින මාර්ගයක් ක්රියාත්මක කරන්නේ නැත.
අභ්යවකාශකරණය මෙම අක්ෂයේද රැලි එකතු කරයි. අමුත්තෙකුට සත්කාරකයට ඇති ලක්ෂණ සඟවන වැසුම් කළ CPU ආකෘතියක් දිය හැක, සහ ඇතුළත අමුත්තෙකුට ඊටත් වඩා අඩුවෙන් දැකිය හැක. හැකියා දර්ශනය VPN ඇත්තටම ධාවනය වන පරිසරය තුළින් කියවන්න, hypervisor කොන්සෝලයෙන් නොවේ.
එක් එක් තේරීම මිලදී ගන්නේ කුමක්ද, සහ කුමක් කළ නොහැකිද
ප්රායෝගික ප්රශ්නය වන්නේ කාලය යන්නේ කොහේද යන්නයි. එක් කාර්යබහුල තන්තුවක්, නැවත නැවත buffer පිටපත් හෝ සෑම පැකට්ටුවකටම පද්ධති ඇමතුමක් ප්රවාහය සීමා කරන්නේ නම්, එම පිරිවැය ඉවත් කරන මාර්ගයකට පරිවර්තනය මාරු කිරීම උපකාරී විය හැක, කර්නලය ඔබට අවශ්ය පරිවර්තනය ක්රියාත්මක කරන්නේ නම්.
සීමාව තදබදයට පත් ඉහළ සබැඳියක්, හානි සහිත මාර්ගයක්, දිගු ගොස් ඒමේ කාලයක්, පිරුණු ගමනාන්ත සේවාවක් හෝ එක් කෝරයකට ඇමිණූ තන්තුවක් නම්, ස්ථානගත කිරීම වැදගත් කිසිවක් වෙනස් නොකරයි. උපදෙස් තේරීමටද එයම අදාළ වේ: කැපවූ උපකරණවල AES ට නැතිවූ මාර්ගයක් අලුත්වැඩියා කළ නොහැකි අතර නම් විභේදනය අසාර්ථක වීම නිසා ටනලය අක්රීය නම් උපකාරී නොවේ.
දෙකම අදාළ වන තැන ඒවා එකට එකතු වේ. කර්නල මාර්ගයට කර්නලයේ ක්රිප්ටෝ API තුළ එම උපදෙස් මට්ටමේ යැවීම භාවිතා කළ හැක, සහ හොඳින් තෝරාගත් පුස්තකාලයක් සහිත පරිශීලක අවකාශ මාර්ගය එය දැනටමත් භාවිතා කරයි. තීරණය වන්නේ වියුක්තව වේගවත් කුමක්ද යන්න නොව, කුමන පිරිවැයක් සඳහා ඔබට සාක්ෂි තිබේද යන්නයි.
කිසිවක් වෙනස් කිරීමට පෙර කරුණු හතරක් ලියන්න
සේවාවේ ද්විමය ගොනුව සහ එය සම්බන්ධ වන ක්රිප්ටෝ පුස්තකාලය ලියන්න, ඒවා පළමු අක්ෂය තීරණය කරන බැවිනි. පසුව එකඟ වූ දත්ත ආරක්ෂණය සටහන් කරන්න, කැපවූ උපදෙස් මාර්ගයක් නොමැති සයිෆරයක් එය සහිත එකට වඩා වෙනස් ලෙස හැසිරෙන බැවින්, සහ කට්ටලය දෙපාර්ශවයම තෝරයි.
පසුව, ධාවනය වන පරිසරය තුළින් හැකියා දර්ශනය, සහ අවසානයේ ඔබ සක්රීය යැයි සිතන මාදිලිය ඇත්තටම එසේ බවට සාක්ෂි සහිත සක්රීය පැකට් මාර්ගය. පූරණය කළ මොඩියුලයක් යනු පැතිකඩක් එය භාවිතා කරන බවට සාක්ෂියක් නොවේ, සහ වින්යාස පේළියක් යනු කර්නලය එය පිළිගත් බවට සාක්ෂියක් නොවේ.
එක් දෙයක් වෙනස් කරන්න, පසුව එම අන්ත ලක්ෂ්ය සහ එම මාරු කිරීමේ දිශාව සහිත ස්ථාවර කාර්ය භාරයක් සමඟ සසඳන්න. ඔබ මැන නොගත් වේග ප්රකාශයක්, backend කිසිදා සැකයට ලක් නොවීය යන සටහනකට වඩා අඩු වටිනාකමක් ඇත.