ਇੱਕ ਐਨਕ੍ਰਿਪਟਿਡ VPN ਪੈਕੇਟ ਤੁਹਾਡੀ ਸੋਚ ਨਾਲੋਂ ਘੱਟ ਖ਼ਰਚੀਲਾ ਕਿਉਂ ਹੋ ਸਕਦਾ ਹੈ
ਇੱਕ ਹੋਰ ਕ੍ਰਿਪਟੋਗ੍ਰਾਫਿਕ ਲੇਬਲ ਇੱਕ ਹੋਰ ਕੰਮ-ਇਕਾਈ ਨਹੀਂ ਹੈ। ਪੂਰਾ ਰਸਤਾ ਤੁਲਨਾ ਕਰੋ: AEAD ਬਣਾਵਟ, CPU ਸਹਿਯੋਗ, ਬਫ਼ਰਿੰਗ ਅਤੇ ਤੈਅ ਕੀਤਾ ਡੇਟਾ ਮੋਡ।
ਇੱਕੋ ਗੇਟਵੇ ਉੱਤੇ ਦੋ ਪ੍ਰੋਫ਼ਾਈਲ ਮਾਪੇ ਜਾਂਦੇ ਹਨ, ਇੱਕ ਐਨਕ੍ਰਿਪਸ਼ਨ ਨਾਲ ਅਤੇ ਇੱਕ ਇਸ ਤੋਂ ਬਿਨਾਂ, ਅਤੇ ਐਨਕ੍ਰਿਪਟਿਡ ਵਾਲਾ ਹੌਲੀ ਨਹੀਂ ਹੁੰਦਾ। ਕਦੇ-ਕਦਾਈਂ ਇਹ ਤੇਜ਼ ਹੁੰਦਾ ਹੈ, ਜੋ ਆਮ ਤੌਰ ਉੱਤੇ ਇਸ ਬਾਰੇ ਲੰਮੀ ਬਹਿਸ ਛੇੜਦਾ ਹੈ ਕਿ ਟੈਸਟ ਠੀਕ ਤਰ੍ਹਾਂ ਚਲਾਇਆ ਗਿਆ ਸੀ ਜਾਂ ਨਹੀਂ। ਨਤੀਜਾ ਭਰੋਸੇਯੋਗ ਹੈ, ਕਿਉਂਕਿ ਪੈਕੇਟ ਦੀ ਲਾਗਤ ਕਨਫ਼ਿਗਰੇਸ਼ਨ ਵਿੱਚ ਕ੍ਰਿਪਟੋਗ੍ਰਾਫਿਕ ਸ਼ਬਦਾਂ ਦੀ ਗਿਣਤੀ ਨਹੀਂ ਹੈ। ਇਹ ਉਹਨਾਂ ਕਿਰਿਆਵਾਂ ਦਾ ਸਮੂਹ ਹੈ ਜੋ ਲਾਗੂਕਰਨ ਕਰਦਾ ਹੈ, ਆਪਣੇ ਕੋਲ ਮੌਜੂਦ ਹਾਰਡਵੇਅਰ ਉੱਤੇ, ਅਤੇ ਆਪਣੇ ਚੁਣੇ ਬਫ਼ਰ ਲੇਆਉਟ ਮੁਤਾਬਕ।
ਲੱਛਣ: ਹੌਲੀ ਵਾਲਾ ਐਨਕ੍ਰਿਪਟਿਡ ਪ੍ਰੋਫ਼ਾਈਲ ਨਹੀਂ ਹੈ
ਮੰਨ ਲਓ ਕਿ ਕੋਈ ਪੁਰਾਣਾ ਟੈਸਟ 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
ਉਹ ਦੋ ਕਮਾਂਡ ਤੁਹਾਨੂੰ ਸਾਹਮਣੇ ਦੀ ਮਸ਼ੀਨ ਉੱਤੇ ਆਦਿਮ ਤੱਤਾਂ ਦੀ ਮੋਟੀ ਸਥਾਨਕ ਤੁਲਨਾ ਦਿੰਦੇ ਹਨ, ਅਤੇ ਉਹ ਇਸ ਗੱਲ ਵਿੱਚ ਇਮਾਨਦਾਰ ਹਨ ਕਿ ਇਹ ਸੂਖਮ-ਮਾਪ ਹਨ। ਉਹ ਤੁਹਾਡੇ ਟਨਲ ਦੀ ਥ੍ਰੂਪੁਟ ਬਾਰੇ ਕੁਝ ਨਹੀਂ ਕਹਿੰਦੇ, ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਕਦੇ ਉਸ ਤਰ੍ਹਾਂ ਹਵਾਲਾ ਨਹੀਂ ਦੇਣਾ ਚਾਹੀਦਾ।
ਫਿਰ ਮਹੱਤਵਪੂਰਨ ਭਾਰ ਮਾਪੋ, ਬਾਕੀ ਸਭ ਸਥਿਰ ਰੱਖਦਿਆਂ: ਉਹੀ ਅੰਤਿਮ ਬਿੰਦੂ, ਉਹੀ ਪੈਕੇਟ ਆਕਾਰ, ਉਹੀ ਟ੍ਰਾਂਸਪੋਰਟ, ਉਹੀ ਕੰਪ੍ਰੈਸ਼ਨ ਨੀਤੀ। ਜੇ ਪ੍ਰੋਫ਼ਾਈਲ ਬਦਲਾਅ ਨੇ ਟ੍ਰਾਂਸਪੋਰਟ ਜਾਂ ਪ੍ਰੋਸੈਸਿੰਗ ਥਾਂ ਵੀ ਬਦਲੀ, ਤਾਂ ਨਤੀਜਾ ਉਸ ਬੰਡਲ ਦਾ ਵਰਣਨ ਕਰਦਾ ਹੈ, ਕ੍ਰਿਪਟੋਗ੍ਰਾਫੀ ਦਾ ਨਹੀਂ।
ਟੀਚਾ ਵੀ ਨਜ਼ਰ ਵਿੱਚ ਰੱਖੋ। ਵਾਧੂ ਕ੍ਰਿਪਟੋਗ੍ਰਾਫਿਕ ਸਮਰੱਥਾ ਵਾਲਾ ਡੇਟਾ ਰਸਤਾ ਫਿਰ ਵੀ ਦੇਰੀ ਨਾਲ ਬੱਝਾ ਹੋ ਸਕਦਾ ਹੈ ਕਿਉਂਕਿ ਐਪਲੀਕੇਸ਼ਨ ਆਉਣ-ਜਾਣ ਦੀਆਂ ਯਾਤਰਾਵਾਂ ਦੀ ਉਡੀਕ ਕਰਦੀ ਹੈ, ਅਤੇ ਵੱਡੀ ਮਾਤਰਾ ਦੀ ਸਮਰੱਥਾ ਦੇ ਲਾਭ ਗੱਲ੍ਹਾਂ ਵਾਲੇ ਪ੍ਰੋਟੋਕੋਲ ਨੂੰ ਠੀਕ ਨਹੀਂ ਕਰਦੇ। ਸਮਰਥਿਤ ਅਤੇ ਨੀਤੀ-ਮਨਜ਼ੂਰ ਕਨਫ਼ਿਗਰੇਸ਼ਨ ਨੂੰ ਸਮੁੱਚੇ ਰੂਪ ਵਿੱਚ ਮਾਪੋ, ਅਤੇ „ਘੱਟ ਡੱਬੇ ਭਾਵ ਤੇਜ਼ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ“ ਨੂੰ ਉਹੀ ਧਾਰਨਾ ਮੰਨੋ ਜੋ ਇਹ ਹੈ। ਲਾਭਦਾਇਕ ਸਵਾਲ ਇਹ ਨਹੀਂ ਕਿ ਐਨਕ੍ਰਿਪਸ਼ਨ ਦੀ ਕੋਈ ਕੀਮਤ ਹੈ ਜਾਂ ਨਹੀਂ, ਸਗੋਂ ਇਹ ਕਿ ਉਹ ਕੀਮਤ ਉਸ ਮਾਪ ਵਿੱਚ ਦਿਸਦੀ ਹੈ ਜਿਸਦੀ ਤੁਹਾਨੂੰ ਸੱਚਮੁੱਚ ਪਰਵਾਹ ਹੈ।