Hindi mo kailangan ng pansamantalang file para gumawa ng OpenVPN key
Ang paghawak sa materyal ng susi sa memorya ay umiiwas sa ikot ng buhay ng file, hindi sa pagtagas. Paghiwalayin ang daloy ng output at ng error, at ituring ang susi bilang lihim pagkatapos.
Ang paggawa ng susi ay hindi nangangailangan ng pansamantalang file, at ang laktawan ito ay nagwawasto ng mas kaunti kaysa ipinahihiwatig ng karamihan ng gabay. Ang inaalis nito ay isang ikot ng buhay ng file at ang karera sa paglilinis sa paligid nito. Ang iniiwang hindi nagalaw ay bawat pagkakataong maipadala ang lihim pagkatapos. Ang problema sa kawastuhan sa mga script na ito ay karaniwang nasa ibang lugar, dahil ang diagnostiko at materyal ng susi ay naglalakbay sa magkaibang daloy.
Ang file ay hindi kailanman naging exposure na inakala mo
Ang pansamantalang file ay isang konkretong panganib kapag nababasa ito ng lahat, kapag nakaligtas ito sa isang pag-crash, o kapag ang isang hakbang sa paglilinis ay nilaktawan pagkatapos ng isang eksepsiyon. Totoo ang mga ito, at sulit na ayusin. Lokal din ang mga ito, nakikita at madaling subukan. Pangalanan ang bawat isa sa sarili mong script bago ka magpasya na ang pagbabago ay kosmetiko lamang.
Ang mas tahimik na panganib ay nasa ibaba ng daloy: ang susi na naipapasa habang nagde-debug, ang eksepsiyong nagseserye ng buong bagay ng resulta, ang tagapangasiwa ng crash na nagsusulat ng core dump, ang tagapagtipon ng log na tumatanggap ng landas ng file at pagkatapos ang nilalaman. Ang pag-iwas sa pansamantalang file ay walang ginagawa para sa alinman sa mga ito, at ang paniniwala sa kabaligtaran ay ang paraan kung paano iniiwan ng mabuting intensiyon na muling pagsulat ang lihim na mas nakalantad kaysa dati. Ituring ang pagbabago bilang isang pagpapabuti sa isang serye, hindi bilang lunas.
Ano ang isinusulat ng kliyente kapag walang ibinigay na pangalan ng file
Ipinapadala ng mga kasalukuyang bersiyon ng kliyente ang nabuong susi sa karaniwang output kapag ang utos ng susi ay ibinigay nang walang landas ng output. Ang dokumentadong pag-uugali na iyon ang nagpapaging posible sa diskarte sa memorya, at inaalis nito ang pangangailangan sa mas lumang pakulo ng pagturo sa tool sa isang landas ng aparato.
import subprocess
proc = subprocess.run(
["openvpn", "--genkey", "tls-crypt"],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
check=True,
)
key_material = proc.stdout
Ipasa ang utos bilang isang listahan. Walang pangangailangan sa pagpapalawak ng shell dito, at ang pagpapagana ng shell ay gagawing nakadepende ang hangganan ng mga argumento sa mga panipi na hindi mo kontrolado. Gamitin ang inilaan na executable sa absolute path kung ang script ay maaaring tumakbo sa ibang search path kaysa inaasahan mo.
Ang pagsuri sa return code ay pumipigil sa landas ng tagumpay na magpatuloy pagkatapos ng bigong tawag. Kung wala ito, ang isang walang laman na byte string ay maaaring dumaloy pasulong at mabigo lamang nang mas huli, sa puntong ginagamit ang susi at hindi na binanggit ng mensahe ng error ang paggawa.
Dalawang daloy, dalawang kahulugan
Ang karaniwang output ay nagdadala ng susi. Ang karaniwang error ay nagdadala ng lahat ng nais sabihin ng tool sa iyo, kabilang ang mga babala tungkol sa konfigurasyon, bersiyon at uri ng susi. Ang pag-redirect ng dalawa sa isang buffer ay ang pagkakamaling gumagawa ng kapani-paniwalang itsurang susi na may pangungusap na tinahi sa gitna.
Panatilihing hiwalay din ang landas ng kabiguan. Kapag nabigo ang tawag, iulat ang utos na nabigo at ang exit status, pagkatapos ay sadyang magpasya kung anong bahagi ng karaniwang error ang ligtas na ipakita. Ang pagbuhos ng buong bagay ng resulta sa log ay ang karaniwang shortcut, at maaari nitong dalhin ang susi.
Mahalaga ang pagbasang ligtas para sa binary kung kalaunan ay ihahash o ihahambing mo ang materyal. Ang text mode na may hindi inaasahang encoding ay maaaring magbago ng mga byte na hindi kailanman inilaan na maging teksto, at ang binagong susi ay hindi makilala mula sa mali hanggang sa mabigo ang handshake.
Kung itatago mo pa rin ito, gawin ito nang sadya
Karamihan ng deployment ay sa huli nangangailangan ng susi sa disk, sa gateway o sa imbakan ng mga lihim. Isulat ito nang isang beses, na may mahigpit na pahintulot mula sa paggawa sa halip na chmod mamaya, at gawing atomiko ang pagsulat upang ang bahagyang file ay hindi kailanman maging ang binabasa ng isang serbisyo sa pagsisimula. Karaniwang sapat ang muling pagpapangalan mula sa isang landas sa parehong direktoryo para diyan. Alisin ang landas ng paghahanda sa sangay ng kabiguan, dahil ang bigong pagsulat ay eksaktong kopyang nakakalimutan ng mga tao.
Itakda ang mode ng file kapag ginawa ang file, at panatilihing mahigpit din ang mode ng direktoryo. Iwasan ang anumang landas sa ilalim ng lokasyong walang isip na walisin ng isang backup job, dahil ang lihim sa gabiang backup ay lihim sa bawat kopya ng backup na iyon. Naaangkop ang parehong pangangatwiran sa isang nakabahaging volume na mababasa ng ibang serbisyo.
Ang nakabahaging susi ay hindi pagkakakilanlan
Ang paggawa ng materyal na ito ay hindi naglalabas ng sertipiko, hindi nagrerehistro ng kliyente at hindi nagtatatag kung sino ang kumokonekta. Pinoprotektahan ng nakabahaging susi ang isang kanal sa pagitan ng mga partidong nagtitiwala na sa isa't isa; ang pagkakakilanlan ay nagmumula pa rin sa sertipiko at sa anumang awtentikasyon na nakatayo sa harap nito.
Ang mga uri ng susi ay hindi rin mapagpapalit. Ang simetrikong susi para sa isang tampok ay hindi direktang kapalit para sa iba, at ang mga bagong release ay nagdadagdag ng sariling mga baryante na may magkaibang file sa bawat dulo. Buuin ang uri na aktuwal na pinangalanan ng iyong konfigurasyon, pagkatapos ay gamitin ito sa papel na tinutukoy ng uring iyon.
Subukan ang resulta gamit ang tunay na koneksiyon sa halip na siyasatin ang laki ng file. Kung nakumpleto ang handshake at walang babalang susi na ipinakita ang mga log, tama ang landas ng paggawa; kung naputol ang susi dahil sa pinagsamang daloy, mabibigo ang koneksiyon sa paraang tumuturo sa kabilang panig kaysa sa script.