OpenVPN EC yn erbyn ED: pam nad yw’r enwau’n ysgol gryfder
Mae EC, ED, ECDHE ac auth yn ateb cwestiynau gwahanol. Trefnwch broffil OpenVPN yn ôl y gwaith y mae pob enw’n ei wneud cyn cymharu nac olygu unrhyw beth.
Rhowch ec, ed, ecdh, ecdsa, auth a rhestr seiffrau TLS ochr yn ochr mewn un proffil, a bydd y ffeil yn dechrau edrych fel deial cryfder â chwe safle. Ond nid yw. Mae pob enw yn ateb cwestiwn gwahanol, ac nid yw dau broffil sy’n wahanol yn un ohonynt o reidrwydd yn gryfach nac yn wannach na’i gilydd. Mae trefnu’r enwau yn ôl y gwaith maen nhw’n ei wneud yn cymryd tua phum munud ac yn atal y rhan fwyaf o’r golygiadau gwael y mae pobl yn eu gwneud i ffurfweddiad sy’n gweithio.
Mae’r drefn isod yn dechrau o’r dryswch ei hun, yna’n symud tuag allan at y rhannau o broffil sy’n penderfynu mewn gwirionedd beth sy’n diogelu eich traffig. Mae pob adran yn cymryd un camddealltwriaeth yn ei thro ac yn dangos wrth beth y mae’r enw mewn gwirionedd ynghlwm.
Dwy lythyren, dau gwestiwn gwahanol
Y pâr sy’n achosi’r mwyaf o ddadl yw EC ac ED, ac mae’r ddadl fel arfer yn tybio eu bod yn atebion cystadleuol i un cwestiwn. Nid ydynt hyd yn oed ar yr un echelin. Mae EC yn disgrifio teulu o fathemateg: cryptograffeg ar gromlin eliptig, lle daw’r diogelwch o anhawster logarithm arwahanol ar gromlin yn hytrach nag mewn maes meidraidd mawr.
Mae ED yn disgrifio siâp cromlin o fewn y teulu hwnnw. Mae cromliniau Twisted Edwards yn gynrychiolaeth a ddewiswyd er cyflymder ac er gwrthsafiad i sawl camgymeriad gweithredu, ac Ed25519 yw’r enw y mae pobl fel arfer yn ei olygu. Nid yw’r gromlin yn gystadleuydd i gryptograffeg ar gromlin eliptig; un ffordd o ysgrifennu cromlin eliptig yw hi. Darllen ED fel "yr EC mwy newydd, cryfach" yw’r tro cyntaf o’r neilltu, ac mae popeth ar ei ôl yn tueddu i fod yn anghywir yn yr un cyfeiriad.
Arwyddo a chyfnewid yn swyddi ar wahân
Unwaith y bydd cwestiwn y teulu wedi’i setlo, mae’r enwau sy’n weddill yn rhannu’n ddwy golofn nad ydynt byth yn cymryd lle ei gilydd. Mae un golofn yn arwyddo, mae’r llall yn cytuno ar gyfrinach a rennir.
| Name in the profile | Job it does | What it is not |
|---|---|---|
ecdsa | Signature scheme using elliptic-curve keys | Not a key-exchange method |
eddsa, Ed25519 | Signature scheme for twisted Edwards curves | Not interchangeable with ECDSA |
ecdh, X25519 | Ephemeral key agreement | Not a signature and not a cipher |
auth | HMAC digest for packet authentication | Not the data cipher |
Mae EdDSA ac ECDSA ill dau yn arwyddo, ond maent yn gynlluniau gwahanol â fformatau allwedd gwahanol, felly nid yw tystysgrif a roddwyd ar gyfer un yn ddefnyddiadwy fel y llall. Mae EdDSA wedi’i ddiffinio ar gyfer set fach o gromliniau; nid yw P-256 yn un ohonynt, a dyna pam mae tystysgrif P-256 yn gwirio gydag ECDSA ac yn byth yn gwirio gyda Ed25519.
Nid oes gan y golofn gyfnewid unrhyw gyfwerth o’r enw EdDH. Cyfnewid dros dro ar allwedd Curve25519 yw X25519, a dyna ECDH â chromlin benodol, yn union fel y mae gyda P-256. Mae Ed25519 yn golygu’r cynllun arwyddo yn llym, er bod yr enw’n cael ei ddefnyddio’n rhydd am y gyfnewid oherwydd bod y ddwy gromlin yn gysylltiedig: mae ffurf Edwards a ddefnyddir i arwyddo a ffurf Montgomery a ddefnyddir ar gyfer X25519 yn disgrifio’r un grŵp sylfaenol.
Pam nad oes gan broffil EC ffeil dh
Mae ffeil dh yn cynnwys paramedrau a gynhyrchwyd ymlaen llaw ar gyfer Diffie-Hellman maes meidraidd, ac mae’r paramedrau hynny’n bod oherwydd bod rhaid i rif cysefin mawr a chynhyrchydd ddod o rywle. Nid oes ar y gyfnewid cromlin eliptig eu hangen: y gromlin a enwir yw’r set baramedrau, ac mae’r ddwy ochr yn ei gwybod yn barod. Dyna’r rheswm cyfan pam y gall proffil EC hepgor y gyfarwyddeb.
Mae dau sefyllfa’n dal i gynhyrchu llinell dh mewn proffil sy’n edrych yn fodern fel arall. Y cyntaf yw ail wrandawr neu gymar hŷn sy’n trafod grwpiau maes meidraidd o ddifrif. Yr ail yw testun dros ben a gopïwyd o dempled o gyfnod RSA ac na chafodd ei dynnu byth. Nid yw proffil sy’n enwi cromlin ar gyfer y gyfnewid ac yn dal i lwytho ffeil dh 2048-bit yn fwy diogel am wneud hynny; mae’n cario arteffact nas defnyddiwyd.
Fe wnaeth TLS 1.3 dynnu’r gyfnewid allwedd o’r enw
Cymharwch TLS_AES_256_GCM_SHA384 â TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384 ac mae’r enw byrrach yn edrych fel israddiad. Ailenwi yw hwn, a’r rheswm yn strwythurol: fe dynnodd TLS 1.3 RSA statig a chyfnewid allwedd Diffie-Hellman maes meidraidd, felly cyfnewid cromlin eliptig dros dro yw’r unig opsiwn nad yw’n PSK sydd ar ôl. Byddai ei enwi ym mhob siwt yn ailadrodd yr un ffaith ddwsin o weithiau.
Diflannodd y math tystysgrif o’r enw am reswm cysylltiedig. Yn 1.3 mae’r dystysgrif yn dilysu llofnod yr ysgwyd llaw, nid y cytundeb allwedd, felly nid yw hi mwyach yn dewis y siwt. Dyna hefyd pam mae rhestr seiffrau ar wahân yn bodoli ar gyfer 1.3 yn y ffurfweddiad: cafodd y siwtiau eu hailenwi a’u haildrefnu, nid eu gwanhau.
Mae un canlyniad yn werth ei ddweud yn blwmp ac yn blaen. Algorithm cyfnewid allwedd yw ECDHE ac nid yw byth yn seiffr. Mae siwt a ddisgrifir fel "eliptig" yn dweud rhywbeth am y ffordd y daeth y ddau gymar at allwedd a rennir, ac yn dweud dim o gwbl am yr hyn sy’n amgryptio’r llwyth defnyddiol wedyn.
Mae auth yn dilysu pecynnau, nid llwythi
Mae’r gyfarwyddeb auth yn dewis y traethawd HMAC sy’n dilysu pecynnau, a’i ddiofyn hanesyddol yw SHA1. Gyda seiffr data nad yw’n AEAD, mae OpenVPN yn cyfrifo’r traethawd dros y testun seiffredig ac yn ei atodi, trefniant amgryptio-yna-MAC sy’n gwneud trin y padin yn anymarferol.
Y myth yma yw bod codi auth i SHA512 yn caledu’r twnnel. Nid yw’n codi cryfder yr amgryptio, ac os yw’r seiffr data a drafodwyd yn fodd AEAD fel AES-256-GCM, nid yw’r traethawd yn cael ei gymhwyso i becynnau data o gwbl. Mae tag GCM yn eu dilysu’n barod, ac mae gwerth auth yn cael ei adael ar gyfer HMAC y sianel reoli ac ar gyfer unrhyw seiffr nad yw’n AEAD sy’n dal i gael ei ddefnyddio.
Felly mae’r gyfarwyddeb yn bwysig, ond mae’n bwysig mewn lle culach nag y mae ei safle yn y ffeil yn ei awgrymu. Mae gwirio pa seiffr a drafodwyd mewn gwirionedd yn dweud wrthych a yw’n berthnasol o gwbl.
Darllenwch y proffil fesul colofn, nid fesul rheng
Mae tri chwestiwn yn gwahanu’r haenau’n lân, ac mae pob un yn cael ei ateb gan ran wahanol o’r sesiwn a drafodwyd. Pa seiffr sy’n diogelu’r llwyth defnyddiol? Pa dag neu draethawd sy’n ateb dros bob pecyn, ac a oes angen un ar y seiffr sy’n cael ei ddefnyddio o gwbl? Tystysgrif pwy a gauodd yr ysgwyd llaw, ac a yw’r sianel reoli wedi’i gwarchod yn ychwanegol gan tls-auth neu tls-crypt?
Nid oes dim yn y label EC nac ED yn setlo unrhyw un o’r tri hynny, ac nid yw enw siwt ar ei ben ei hun yn setlo’r un ohonynt chwaith. Y canlyniad a drafodwyd yw’r unig dystiolaeth, felly darllenwch hwnnw yn lle casglu cryfder o eirfa:
openssl x509 -in client.crt -noout -text | grep -E 'Signature Algorithm|Public Key Algorithm'
grep -i 'control channel' /var/log/openvpn.log
Mae’r gorchymyn cyntaf yn dweud wrthych ba gynllun arwyddo y mae eich tystysgrif yn ei ddefnyddio mewn gwirionedd, a dyna’r unig ffordd ddibynadwy o wybod a ydych yn rhedeg ECDSA neu Ed25519. Mae’r ail yn dangos y llinell sianel reoli a gofnododd y cleient ar gyfer y sesiwn, gan gynnwys fersiwn TLS a’r siwt y setlodd arni. Os na ellir cyfiawnhau golygiad proffil gan un o’r ddau allbwn hynny, newid i enw yn hytrach nag i briodwedd ydyw mae’n debyg.