Хоёр профайлыг нэг гарц дээр хэмждэг, нэг нь шифрлэлттэй, нөгөө нь түүнгүй, шифрлэгдсэн нь удаан биш. Заримдаа энэ нь илүү хурдан байдаг бөгөөд энэ нь ихэвчлэн туршилтыг зөв хийсэн эсэх тухай урт маргаан үүсгэдэг. Үр дүн нь үнэмшилтэй, учир нь пакетийн өртөг нь тохиргоон дахь криптограф үгсийн тоо биш. Энэ нь хэрэгжүүлэлтийн гүйцэтгэдэг үйлдлүүдийн багц бөгөөд өөрийн байгаа тоног төхөөрөмж дээр, өөрийн сонгосон буферийн зохион байгуулалтын дагуу.

Шинж тэмдэг: удаан нь шифрлэгдсэн профайл биш

Түүхэн туршилт AEAD шифрийг „шифрлэлтгүй“ горимтой харьцуулдаг гэж бодъё, тэр горим пакет бүрт тусдаа баталгаажуулалтын код тооцоолдог хэвээр. Хоёр дахь профайл ачааны агуулгыг нуудаг ч пакет тутмын хэшийг хадгалдаг бөгөөд тэр хэшид хурдасгагчгүй процессор дээр энэ нь ялах ёстой байсан нэгдсэн бүтцээс илүү үнэтэй байж болно.

Тохиргооны шошго „шифрлэлт“ гэж хэлдэг бөгөөд ихэнх харьцуулалт зөвхөн тэр шошгыг хардаг. Пакетийн зам өөр зүйл хэлдэг: нэг профайл CPU-д заавар байдаг нэгдсэн үйлдлийг гүйцэтгэдэг, нөгөө нь зааваргүй тусдаа үйлдлийг гүйцэтгэдэг. Зөвхөн тохиргооны файлыг унших нь тэр ялгааг хэзээ ч илрүүлэхгүй, учир нь хоёр бичлэг хоёулаа нэг мөр мэт харагдана. Үр дүнг зөвхөн тохиролцсон горим болон түүний ард байгаа кодын зам тайлбарладаг.

Энэ бол бүх тайлбар бөгөөд аль примитив универсалаар хурдан гэсэн ямар ч мэдэгдэл шаарддаггүй. Хоёулаа хурдан байж болно, хоёулаа удаан байж болно, дараалал нь машин ба кодоос хамаарна.

Шошго биш, үйлдлийг тоол

AEAD бүтэц нь RFC 5116-д тодорхойлсны дагуу хэрэгжүүлэлтэд шифртекст ба шошгыг хамт буцаадаг нэг интерфейс өгдөг. AES-GCM бол нэг жишээ: тоолуурын горимын шифрлэлт Galois баталгаажуулагчтай нэгдсэн. Интерфейс бүрэн бүтэн байдлыг үнэгүй болгодоггүй; энэ нь хослолыг сайн тодорхойлсон болгодог бөгөөд яг үүнээс болж хэрэгжүүлэлт хосыг нэг нэгж болгон оновчтой болгож чаддаг.

Separate authentication path:
  payload -> independent HMAC -> framed packet

AEAD path:
  payload -> authenticated encryption with tag -> framed packet

Эдгээр нь боловсруулалтын ноорог, тохиргооны зөвлөмж биш. Эхнийх нь нууцлалгүй ч баталгаажуулалтад CPU зарцуулдаг хэвээр, яг үүнээс болж „шифрлэлтийг унтраа“ нь „криптограф ажлыг унтраа“ гэдгийн ижил утга биш.

Хоёр дахь нь хямд байж болно, учир нь процессорууд хоёр хагаст заавар өгдөг: AES-ийн раунд ба Galois талбарын ашигладаг зөөвөргүй үржүүлэлт. Номын сангууд бие даасан буферуудыг зэрэгцээ боловсруулдаг бөгөөд энэ нь тэдгээр зааврыг санах ой хүлээхийн оронд завгүй байлгадаг.

Тохиролцсон горим юуг бодитоор боломжтой болгодог

Community OpenVPN-д AEAD өгөгдлийн шифр гэдэг нь auth сонголт өөрийн тусдаа өгөгдлийн сувгийн HMAC-ийг цаашид оруулахгүй гэсэн үг. Шифрлэлтийн сонголтын лавлагаа тэр хүрээг тайлбарладаг бөгөөд текст файлд ижил харагдах хоёр тохиргоо пакет тутмын ажилд ялгаатай байж болох шалтгаан энэ юм.

Хүслийн жагсаалт биш, тохиролцсон горимыг унш. Зөвшөөрөгдсөн шифрүүдийн жагсаалт болон TLS багцын нэр нь ачаа дээр ямар үйлдэл явагдахыг хэлэхгүй, хуучин cipher мөр нь одоогийн холболт юу сонгосныг тайлбарлахгүй байж болно.

openvpn --show-ciphers | head -20
sudo grep -E 'cipher|auth' /etc/openvpn/server.conf

Эхний команд нь бинарь дэмждэг шифрүүдийг жагсаадаг, энэ нь боломжийн жагсаалт бөгөөд тохиролцсон үр дүн биш. Хоёр дахь нь сервер бодитоор юу шаарддагийг харуулдаг. Эцсийн сонголтыг баталгаажуулах газар нь холболтын лог, учир нь клиент сервер зөвшөөрдөг ч хэн ч санаагүй зүйл рүү унаж болно.

Бодитоор ажиллуулж буй ачааллыг хэмж

Криптограф микрохэмжилт нь примитивийг өөрийн нөхцөлд хэмждэг. VPN дамжуулалт нь буферуудыг ч хуулж, урсгал эсвэл таслалтыг төлөвлөж, бодлогыг шалгаж, сүлжээгээр дамждаг. Эдгээр хэсгүүд ихэвчлэн давамгайлдаг тул хурдан примитив нь үргэлж хурдан туннель өгдөггүй.

openssl speed -evp aes-256-gcm
openssl speed -evp sha1

Эдгээр хоёр команд танд өмнөх машинд примитивүүдийн бүдүүлэг орон нутгийн харьцуулалтыг өгдөг бөгөөд микрохэмжилт гэдгээрээ шударга. Тэд таны туннелийн дамжуулах чадварын талаар юу ч хэлдэггүй бөгөөд тэдгээрийг хэзээ ч тийм гэж иш татах ёсгүй.

Дараа нь чухал ачааллыг хэмж, бусад бүх зүйлийг тогтвортой бариад: ижил төгсгөлийн цэг, ижил пакетийн хэмжээ, ижил тээвэр, ижил шахалтын бодлого. Хэрэв профайлын өөрчлөлт тээвэр эсвэл боловсруулах байршлыг ч өөрчилсөн бол үр дүн нь тэр багцыг тайлбарладаг, криптографыг биш.

Зорилгыг ч нүдэндээ бариарай. Чөлөөт криптограф хүчин чадалтай өгөгдлийн зам хоцрогдолд хязгаарлагдсан хэвээр байж болно, учир нь аппликейшн очих буцах аяллыг хүлээдэг, бөөн хүчин чадлын ашиг нь ярьдаг протоколыг засдаггүй. Дэмжигдсэн ба бодлогоор зөвшөөрөгдсөн тохиргоог бүхэлд нь хэмжиж, „цөөн хайрцаг хурдан байх ёстой“ гэдгийг тэр нь юу гэсэн таамаглал болохыг нь хүлээн зөвшөөр. Хэрэгтэй асуулт нь шифрлэлт ямар нэг юм үнэтэй эсэх биш, харин тэр өртөг таны үнэхээр анхаардаг хэмжилтэд илэрч байгаа эсэх юм.

Холбоотой нийтлэлүүд