Giblets IPsec ุŒ ู†ุญู† ู†ู‚ูŠุณ ู…ู‚ุงุจู„ TLS 1.3 ูˆ GOST ูˆ Go

ุชุญูŠุฉ ุทูŠุจุฉ! ุฃูˆุฏ ุฃู† ุฃู‚ูˆู„ ู„ูƒู… ุนู† ุงู„ุฌู‡ุงุฒ ู…ู† ุงู„ุญุฏูŠุซ ุฃู…ู† ุจุฑูˆุชูˆูƒูˆู„ ุงู„ุฅู†ุชุฑู†ุช ูƒูˆู…ุฉ ู…ู† ุนู„ู‰ ESPv3 ูˆ ุงู„ุจุฑูˆุชูˆูƒูˆู„ุงุช IKEv2 . ูŠุจุฏูˆ ู„ูŠ ุฃู† IPsec ูŠุชุฎุทู‰ ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ุฌูˆุงู†ุจ ุจุดูƒู„ ุบูŠุฑ ู…ุณุชุญู‚ ูˆู„ู… ุฃุฑ ุชุญู„ูŠู„ุงู‹ ู…ูุตู„ุงู‹ ู„ุนู…ู„ู‡ ูˆุจุฑูˆุชูˆูƒูˆู„ุงุชู‡ ูˆู‚ุฏุฑุงุชู‡ ุจุงู„ู„ุบุฉ ุงู„ุฑูˆุณูŠุฉ. ุฃูŠุถู‹ุง ุŒ ุณุฃูุนู„ ุดูŠุฆู‹ุง ุบุฑูŠุจู‹ุง - ู‚ุงุฑู† IPsec ESPv3 ูˆ IKEv2 (ูƒู„ุงู‡ู…ุง 2005) ู…ุน TLS 1.3 ุงู„ุญุฏูŠุซ ูˆุงู„ุนุตุฑูŠ ู„ุนุงู… 2018.





ู„ู…ุงุฐุง ุฃู†ุง ู…ุชุญู…ุณ ุฌุฏู‹ุง ู„ู€ IPsec - ูŠู…ูƒู† ุงู„ู‚ูˆู„ ุฅู†ู‡ ุฃูƒุซุฑ ู…ุฌู…ูˆุนุฉ ุจุฑูˆุชูˆูƒูˆู„ุงุช ุชุนู‚ูŠุฏู‹ุง ู„ุชุฃู…ูŠู† ุงู„ุดุจูƒุงุชุŸ ุจุนุฏ ูƒู„ ุดูŠุก ุŒ ุงู„ุชุนู‚ูŠุฏ ู‡ูˆ ุงู„ุนุฏูˆ ุงู„ุฑุฆูŠุณูŠ ู„ู„ุซู‚ุฉ ูˆุงู„ุฃู…ุงู†! ุฃูˆู„ุงู‹ ุŒ ูƒู„ู…ุง ุชุนู„ู…ุช ุฃูƒุซุฑ ุนู† ุจุฑูˆุชูˆูƒูˆู„ุงุชู‡ุง ุŒ ูˆุฎุงุตุฉ IKEv2 ุŒ ูƒู„ู…ุง ูู‡ู…ุช ุนุฏุฏ ุงู„ุงุญุชู…ุงู„ุงุช ุงู„ุชูŠ ุชู… ูˆุถุนู‡ุง ููŠู‡ุง ุŒ ูˆุฃุนุฌุจุช ุจููƒุฑู‡ุง ุŒ ุนู„ู‰ ุนูƒุณ ุงู„ู†ู‡ุฌ ุงู„ุดุงุฆุน ู„ู„ู…ุทูˆุฑูŠู† "ุนูƒุงุฒ ูŠู‚ูˆุฏ ุนูƒุงุฒู‹ุง" ูˆุญู„ ุงู„ู…ุดูƒู„ุงุช ุงู„ุฎุทูŠุฑุฉ "ุญุชู‰ ุชู†ุฏู„ุน ุงู„ุฑุนุฏ". ุซุงู†ูŠู‹ุง ุŒ ุจุฑูˆุชูˆูƒูˆู„ุงุช IPsec ู…ุฏุฑูˆุณุฉ ุฌูŠุฏู‹ุง ู…ู† ูˆุฌู‡ุฉ ู†ุธุฑ ุงู„ุชุดููŠุฑ ุŒ ูˆุญุชู‰ ESP / IKEv1 ุงู„ู‚ุฏูŠู… ุŒ ููŠ ุงู„ูˆุงู‚ุน ุŒ ู‡ูˆ ุงู„ุจุฑูˆุชูˆูƒูˆู„ุงุช ุงู„ุตู†ุงุนูŠุฉ ุงู„ูˆุญูŠุฏุฉ ุงู„ู…ุณุชุฎุฏู…ุฉ ุนู„ู‰ ู†ุทุงู‚ ูˆุงุณุน ูˆุงู„ุชูŠ ู„ุง ุชูˆุฌุฏ ููŠู‡ุง ู†ู‚ุงุท ุถุนู ุฎุทูŠุฑุฉ. ุชู… ุงู„ุชููƒูŠุฑ ููŠ ู†ูุณ SSL (ุงู„ุนุงู… 1995) ุจุดูƒู„ ู„ุงุฆู‚ ูู‚ุท ู…ู† ุงู„ุฅุตุฏุงุฑ 1.3. ูˆูƒุซูŠุฑ ู…ู† ุงู„ู†ุงุณ ูŠูƒุฑู‡ูˆู† IPsec ุจุณุจุจ ุงู„ุชุนู‚ูŠุฏ ุงู„ูˆุญุดูŠ ู„ู€ IKEv1 ุŒุงู„ุฐูŠ ู„ู… ูŠุนุฏ ููŠ ุงู„ุฅุตุฏุงุฑ 2.



ู…ู† ุงู„ู†ุงุญูŠุฉ ุงู„ู…ุซุงู„ูŠุฉ ุŒ ุฅุฐุง ู„ู… ูŠุชุจุงุทุฃ ู…ุทูˆุฑูˆ ุฃู†ุธู…ุฉ ุงู„ุชุดุบูŠู„ ููŠ ูˆู‚ุชู‡ู… ู…ุน ุชู†ููŠุฐ ูˆุชู†ููŠุฐ IPsec ูˆ IPv6 (ู„ุชูˆุงูุฑ ุฃุฌู‡ุฒุฉ ุงู„ูƒู…ุจูŠูˆุชุฑ ุŒ ุจุญูŠุซ ู„ุง ูŠูˆุฌุฏ NAT) ุŒ ูู„ุง ูŠู†ุจุบูŠ ุฃู† ูŠุธู‡ุฑ SSL / TLS ู…ู† ุญูŠุซ ุงู„ู…ุจุฏุฃ. ุชุจูŠู† ุฃู† ุงู„ุนุงู„ู… ู„ูŠุณ ู…ุซุงู„ูŠู‹ุง ุŒ ูˆู„ูƒู† ุงู„ุขู† IPsec ุฎุงุฑุฌ ุงู„ุตู†ุฏูˆู‚ (ุนู„ู‰ ุงู„ุฃู‚ู„ ุฌุฒุก SA / SP + ESP ู…ู† ุงู„ู…ูƒุฏุณ) ู…ูˆุฌูˆุฏ ุนู„ู‰ ุงู„ุฃู‚ู„ ููŠ ุจุนุถ ุฃู†ุธู…ุฉ ุงู„ุชุดุบูŠู„ ุงู„ู…ู†ุชุดุฑุฉ ุนู„ู‰ ู†ุทุงู‚ ูˆุงุณุน (ุฃู†ุง ุดุฎุตูŠุงู‹ ุฃุนุฑู ูู‚ุท DragonFly BSD ุŒ ุงู„ุชูŠ ุดุฑุจุช IPsec ุจุณุจุจ ู†ู‚ุต ุงู„ู…ุทูˆุฑูŠู† ู„ุฏุนู…ู‡ุง) ุŒ ูˆ IPv6 ููŠ ุจุนุถ ุงู„ุจู„ุฏุงู† ุงู„ู…ุชู‚ุฏู…ุฉ ุนู„ู‰ ุงู„ููˆุฑ ู„ู„ุบุงู„ุจูŠุฉ ุงู„ุนุธู…ู‰ ู…ู† ุงู„ู†ุงุณ.



IPsec ุนุจุงุฑุฉ ุนู† ู…ุฌู…ูˆุนุฉ ู…ู† ุงู„ุจุฑูˆุชูˆูƒูˆู„ุงุช ูˆุงุณุชุฏุนุงุกุงุช API ูˆุฅุทุงุฑ ุนู…ู„ ุจุญูŠุซ ูŠู…ูƒู† ู„ู„ุชุทุจูŠู‚ุงุช ูˆ / ุฃูˆ ุงู„ู…ุณุคูˆู„ ู…ุนุฑูุฉ ุงู„ุฃู…ุงู† ุงู„ุฐูŠ ูŠุญุชุงุฌูˆู† ุฅู„ูŠู‡ ุฃุซู†ุงุก ุงู„ุงุชุตุงู„ ูˆุณูŠุชู… ุถู…ุงู†ู‡ ุจุดูุงููŠุฉ ุนู„ู‰ ู…ุณุชูˆู‰ ุงู„ุดุจูƒุฉ ( IP secู†ู‚ุงุก). ูŠู…ูƒู†ู†ุง ุงู„ุชุญุฏุซ ุนู† ูƒู„ ู…ู† ุญุฒู… IP ู„ู…ู‚ุจุณ ูˆุงุญุฏ ูู‚ุท (ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ุงุชุตุงู„ุงุช TCP) ุŒ ูˆุญูˆู„ ุญุฑูƒุฉ ุงู„ู…ุฑูˆุฑ ุจูŠู† ุงู„ุดุจูƒุงุช ุจุฃูƒู…ู„ู‡ุง.



ูŠู‚ุตุฏ ุจุฃู…ู† ุญุฑูƒุฉ ุงู„ู…ุฑูˆุฑ: ุถู…ุงู† ุณุฑูŠุฉ ุงู„ุจูŠุงู†ุงุช ูˆุฃุตุงู„ุชู‡ุง / ุณู„ุงู…ุชู‡ุง ูˆุญู…ุงูŠุชู‡ุง ู…ู† ู‡ุฌู…ุงุช ุฅุนุงุฏุฉ ุงู„ุชุดุบูŠู„ . ู…ุซู„ ุฌู…ูŠุน ุงู„ุจุฑูˆุชูˆูƒูˆู„ุงุช ุชู‚ุฑูŠุจู‹ุง ุŒ ูŠุญุชูˆูŠ IPsec ุนู„ู‰ ุฌุฒุก ู†ู‚ู„ ูŠุคู…ู† ุญุฒู… IP ุŒ ูˆุฌุฒุก ู…ุตุงูุญุฉ ู…ุชุนู„ู‚ ุจุงู„ุชูุงูˆุถ ุงู„ุฑุฆูŠุณูŠ ูˆุงู„ู…ุนู„ู…ุงุช ูˆุงู„ุชูƒูˆูŠู† ูˆุงู„ู…ุตุงุฏู‚ุฉ ู„ู„ุฃุทุฑุงู.



TLS 1.3 : ูŠูˆูุฑ ูู‚ุท ุญู…ุงูŠุฉ ุงู„ุจูŠุงู†ุงุช ู„ูƒู„ ู…ุฃุฎุฐ ุชูˆุตูŠู„ ู„ุงุชุตุงู„ุงุช TCP. ูŠู…ูƒู† ุฃู† ุชูˆูุฑ DTLS ุงู„ุญู…ุงูŠุฉ ู„ู…ุฎุทุทุงุช ุงู„ุจูŠุงู†ุงุช (DTLS 1.3 ู„ูŠุณ ู…ุนูŠุงุฑู‹ุง ุญุชู‰ ุงู„ุขู†) ุŒ ูˆู„ูƒู† ู„ุง ุชุฏุนู… ูƒู„ ู…ูƒุชุจุฉ ุฐู„ูƒ.



ุจุฑูˆุชูˆูƒูˆู„ุงุช ุงู„ู†ู‚ู„



ูŠุณุชุฎุฏู… ู†ู‚ู„ IPsec ุจุฑูˆุชูˆูƒูˆู„ุงุช IP:



  • AH (ุฑุคูˆุณ ุงู„ู…ุตุงุฏู‚ุฉ). ู„ู† ุฃุชุญุฏุซ ุฃูƒุซุฑ ุนู† AH ุŒ ู„ุฃู†ู‡ ู„ุง ูŠูˆูุฑ ุณุฑูŠุฉ ุงู„ุจูŠุงู†ุงุช ุŒ ูˆุจู‚ุฏุฑ ู…ุง ุณู…ุนุช ุŒ ูู‚ุฏ ุชู… ูู‚ุท ุจุทุฑูŠู‚ุฉ ู…ุง "ู…ูˆุงูƒุจุฉ" ู‚ูˆุงู†ูŠู† ุจุนุถ ุงู„ุจู„ุฏุงู† ููŠ ุงู„ุชุณุนูŠู†ูŠุงุช ุจุดุฃู† ุงู„ู‚ูŠูˆุฏ ุงู„ู…ูุฑูˆุถุฉ ุนู„ู‰ ุงุณุชุฎุฏุงู… ุงู„ุชุดููŠุฑ. ุงู„ุชุดููŠุฑ ุฎููŠู ุฌุฏู‹ุง ู…ู‚ุงุฑู†ุฉ ุจูƒู„ ุดูŠุก ุขุฎุฑ ุจุญูŠุซ ู„ุง ู…ุนู†ู‰ ู„ู„ุชุถุญูŠุฉ ุจู‡. ูˆู„ูƒู† ููŠ ูƒู„ ู…ูƒุงู† ุชู‚ุฑูŠุจู‹ุง ูŠุชู… ุฐูƒุฑ ESP ุŒ ูŠูู‚ุตุฏ ุจู€ AH ุฃูŠุถู‹ุง.
  • ESP (ุชุบู„ูŠู ุญู…ูˆู„ุงุช ุงู„ุฃู…ุงู†). ู„ู‚ุฏ ุชุทูˆุฑ ุจุฑู†ุงู…ุฌ ESP ู‚ู„ูŠู„ุงู‹ ุจู…ุฑูˆุฑ ุงู„ูˆู‚ุช ูˆูŠุณุชุฎุฏู… ุงู„ุขู† ุฅุตุฏุงุฑ ESPv3 ุงู„ุฎุงุต ุจู‡ ุŒ ูˆุงู„ุฐูŠ ุบุงู„ุจู‹ุง ู…ุง ูŠูƒูˆู† ู…ุชูˆุงูู‚ู‹ุง ู…ุน ุงู„ุฅุตุฏุงุฑุงุช ุงู„ุณุงุจู‚ุฉ ูˆู„ุง ูŠุฎุชู„ู ุนู† ุงู„ุฅุตุฏุงุฑ ุงู„ุณุงุจู‚.


ูŠุชู… ุชุฃู…ูŠู† ุญุฑูƒุฉ ู…ุฑูˆุฑ IP ุจูˆุงุณุทุฉ ุทุจู‚ุฉ ุงู„ู†ู‚ู„ ูู‚ุท. ูˆู†ุธุฑู‹ุง ู„ุฃู†ู‡ ูŠู…ูƒู†ู†ุง ุงู„ุชุญุฏุซ ุนู† ุนุฏุฉ ู…ู„ุงูŠูŠู† ู…ู† ุงู„ุญุฒู… ููŠ ุงู„ุซุงู†ูŠุฉ ุŒ ูŠุชู… ุชุทุจูŠู‚ ESP ุงู„ูˆุงู‚ุนูŠ ุนู„ู‰ ู…ุณุชูˆู‰ ู†ูˆุงุฉ ู†ุธุงู… ุงู„ุชุดุบูŠู„ ุŒ ููŠ ู…ูƒุฏุณ ุงู„ุดุจูƒุฉ ุŒ ุนู„ู‰ ุงู„ุฃู‚ู„ ู…ู† ุฃุฌู„ ุนุฏู… ุชุญูˆูŠู„ ุงู„ุณูŠุงู‚ ุงู„ู…ูƒู„ู ุจูŠู† kernel ูˆู…ุณุงุญุฉ ุงู„ู…ุณุชุฎุฏู…ูŠู† (ูƒู…ุง ูŠุญุฏุซ ุนุงุฏุฉู‹ ู…ุน TLS ูˆ SSH ูˆ OpenVPN ูˆุบูŠุฑู‡ุง).



ุฃุคูƒุฏ ุฃู† AH ูˆ ESP ู‡ู…ุง ุจุฑูˆุชูˆูƒูˆู„ุงุช ุทุจู‚ุฉ IP ุŒ ูˆุดุจูƒุฉ ุŒ ูˆู„ูŠุณุช ูˆุณูŠู„ุฉ ู†ู‚ู„. ู„ู…ุงุฐุง ู„ุง UDPุŸ ุงู„ู…ุฌู…ูˆุน ุงู„ุงุฎุชุจุงุฑูŠ ุฒุงุฆุฏ ุนู† ุงู„ุญุงุฌุฉ ูˆูŠุคุฏูŠ ุฅู„ู‰ ุญุฑู‚ ูˆุญุฏุฉ ุงู„ู…ุนุงู„ุฌุฉ ุงู„ู…ุฑูƒุฒูŠุฉ ุŒ ูˆุณูŠุถู…ู† ุงู„ุชุดููŠุฑ ุงู„ุชูƒุงู…ู„ ุนู„ู‰ ุฃูŠ ุญุงู„. ูˆู„ูƒู† ุŒ ุฅุฐุง ูƒุงู† NAT ุงู„ุฎุงุต ุจูƒ ู„ุง ูŠุนุฑู ุดูŠุฆู‹ุง ุนู† ESP (ูˆู‡ูˆ ู„ุง ูŠุนุฑู) ุŒ ูู„ู† ูŠุนู…ู„ ูƒู„ ู‡ุฐุง ู…ุนู‡. ู„ุงุญู‚ู‹ุง ุŒ ุงุจุชูƒุฑูˆุง ุนูƒุงุฒุงุช NAT-T (NAT traversal) ุŒ ุนู†ุฏู…ุง ุชูƒูˆู† ุญุฑูƒุฉ ู…ุฑูˆุฑ IPsec ู…ู„ููˆูุฉ ููŠ ุญุฒู…ุฉ UDP ุนู„ู‰ ุงู„ู…ู†ูุฐ 4500 ูˆุณุชูƒูˆู† ู‚ุงุฏุฑุฉ ุนู„ู‰ ุงู„ู…ุฑูˆุฑ ุนุจุฑ NAT ุŒ ูˆู„ูƒู† ู‡ุฐุง ูŠู…ุซู„ ุนุจุฆู‹ุง ุบูŠุฑ ุถุฑูˆุฑูŠ ูˆุงู„ุญุงุฌุฉ ุฅู„ู‰ ุชุญุฑูŠุฑ ู…ูƒุฏุณ IPsec ููŠ ุงู„ู†ูˆุงุฉ ุŒ ู„ุฃู†ู‡ ูŠุฌุจ ุฃู† ูŠูู‡ู… ุจุงู„ูุนู„ ุญุฒู… UDP ุงู„ุฎุงุตุฉ ู‡ุฐู‡ ูˆุงุณุชุฎุฑุงุฌ ESP ู…ู†ู‡ุง ู…ู† ุฃุฌู„ู‡ุง ู…ุนุงู„ุฌุฉ ู…ู†ุชุธู…ุฉ.



SP ุŒ SA ุŒ SPI ูˆุฃูˆู„ ุชุดููŠุฑ IPsec ู„ุฏูŠู†ุง



ูƒูŠู ุชุนุฑู ุงู„ู†ูˆุงุฉ ู…ุง ูŠุฌุจ ูุนู„ู‡ ู…ุน ุญุฒู…ุฉ IP: ู‡ู„ ุชุฑูŠุฏ ุชุดููŠุฑู‡ุง ุจุงุณุชุฎุฏุงู… ู…ูุชุงุญ ู…ุง ุŒ ุฃูˆ ููƒ ุชุดููŠุฑ ESP ุงู„ูˆุงุฑุฏ ุŒ ุฃูˆ ุงู„ุณู…ุงุญ ู„ู‡ุง ุจุงู„ู…ุฑูˆุฑ ุฏูˆู† ู„ู…ุณู‡ุงุŸ ู„ู„ู‚ูŠุงู… ุจุฐู„ูƒ ุŒ ูŠุญุชูˆูŠ kernel ุนู„ู‰ ู†ูู‡ุฌ ุฃู…ุงู† ( SP ). ู‡ุฐู‡ ู‚ูˆุงุนุฏ ู…ุซู„ ุฌุฏุงุฑ ุงู„ุญู…ุงูŠุฉ. ุจุงู„ุฅุถุงูุฉ ุฅู„ู‰ ุฐู„ูƒ ุŒ ุชูˆุฌุฏ ุงู‚ุชุฑุงู†ุงุช ุงู„ุฃู…ุงู† ( SA ) ููŠ ุงู„ู†ูˆุงุฉ : ุณูŠุงู‚ุงุช ู„ุฅุฌุฑุงุก ุนู…ู„ูŠุงุช ุงู„ุชุดููŠุฑ (ุงู„ู…ูุงุชูŠุญ ุŒ ุงู„ุนุฏุงุฏุงุช ุŒ ุฅุนุงุฏุฉ ุชุดุบูŠู„ ุงู„ู†ูˆุงูุฐ ุŒ ุฅู„ุฎ). ุจุดูƒู„ ุนุงู… ุŒ ู„ุง ูŠุนุชุจุฑ ุฃูŠ ู…ู† ู…ู‚ุฏู…ูŠ ุงู„ุฎุฏู…ุงุช ุฎุงุตูŠู† ุจู€ IPsec ูˆู„ุง SAs - ูŠู…ูƒู† ุงุณุชุฎุฏุงู…ู‡ุง ู„ู…ู‡ุงู… / ุจุฑูˆุชูˆูƒูˆู„ุงุช ุฃุฎุฑู‰ (ู…ุซู„ OSPF).



ูŠู…ูƒู† ุชูƒูˆูŠู† SP / SA ุฅู…ุง ู…ู† ุฎู„ุงู„ ูˆุงุฌู‡ุฉ ุจุฑู…ุฌุฉ ุชุทุจูŠู‚ุงุช ุฎุงุตุฉ ( PF_KEYv2 ) ุŒ ุฃูˆ ูŠุฏูˆูŠู‹ุง ู…ู† ุฎู„ุงู„ ุจุนุถ ุฃุฏูˆุงุช ุชุนูŠูŠู† ุงู„ู…ูุชุงุญ . ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ุฅุฐุง ุฃุฑุฏู†ุง ุฅุฎุจุงุฑ ุงู„ู†ูˆุงุฉ ุจุฃู† ุฌู…ูŠุน ุญุฒู… IP ุชุฃุชูŠ ู…ู†ูŠุฌุจ ุชุฃู…ูŠู† ุนู†ุงูˆูŠู† fc :: 123 ุนู„ู‰ fc :: 321 ุนุจุฑ ESP ุŒ ุซู… ูŠู…ูƒู† ุงู„ู‚ูŠุงู… ุจุฐู„ูƒ ุจุณู‡ูˆู„ุฉ ุนู† ุทุฑูŠู‚ ุงู„ุงุชุตุงู„ ู…ู† ุณุทุฑ ุงู„ุฃูˆุงู…ุฑ:



$ echo "spdadd fc00::123 fc00::321 any -P out ipsec esp/transport//require;" | setkey -c


ู‚ุจู„ ู‡ุฐุง ุงู„ุฃู…ุฑ ุŒ ุฑุฃูŠู†ุง ุฃุตูˆุงุชู‹ุง:



IP6 fc00::123 > fc00::321: ICMP6, echo request, seq 0, length 16
IP6 fc00::321 > fc00::123: ICMP6, echo reply, seq 0, length 16
IP6 fc00::123 > fc00::321: ICMP6, echo request, seq 1, length 16
IP6 fc00::321 > fc00::123: ICMP6, echo reply, seq 1, length 16


ู„ู† ู†ุฑุงู‡ ู„ุงุญู‚ู‹ุง ุŒ ู„ุฃู† ุงู„ู†ูˆุงุฉ ู„ุง ุชุนุฑู ุจุนุฏ "ู…ุงุฐุง" ูŠุฌุจ ุชุดููŠุฑู‡ุง. ุชุญุชุงุฌ ุฅู„ู‰ ุฅุถุงูุฉ SA ุŒ ูˆูŠู…ูƒู† ุฃูŠุถู‹ุง ุงู„ู‚ูŠุงู… ุจุฐู„ูƒ ูŠุฏูˆูŠู‹ุง ุŒ ุจุชุนูŠูŠู† ุฎูˆุงุฑุฒู…ูŠุฉ ุชุดููŠุฑ AEAD ูˆู…ูุชุงุญ ุนุดูˆุงุฆูŠ 160 ุจุช ู„ู„ุจุณุงุทุฉ AES-GCM-16 :



echo "add fc00::123 fc00::321 esp 0xdeadbabe -E aes-gcm-16 0x0c09d1d90f804b0b4cef80e255e29c0894db1928 ;" | setkey -c


ุฅุฐุง ู‚ู…ู†ุง ุจุชู†ููŠุฐ ู†ูุณ ุงู„ุฃูˆุงู…ุฑ ุนู„ู‰ ุงู„ู…ุถูŠู ุงู„ุจุนูŠุฏ (ูู‚ุท ุฏูˆู† ุฃู† ู†ู†ุณู‰ ุชุญุฏูŠุฏ -P in ) ุŒ ูุณู†ุฑู‰ :



IP6 fc00::123 > fc00::321: ESP(spi=0xdeadbabe,seq=0x1), length 52
IP6 fc00::321 > fc00::123: ICMP6, echo reply, seq 0, length 16
IP6 fc00::123 > fc00::321: ESP(spi=0xdeadbabe,seq=0x2), length 52
IP6 fc00::321 > fc00::123: ICMP6, echo reply, seq 1, length 16


ุงู„ุทู„ุจ ู…ุดูุฑ ุจูˆุงุณุทุฉ ESP ุŒ ู„ูƒู† ุงู„ุฑุฏ ู„ูŠุณ ูƒุฐู„ูƒ. ู†ุธุฑู‹ุง ู„ุฃู† ุงู„ู…ุฑุณุงุจ ุงู„ูƒู‡ุฑูˆุณุชุงุชูŠูƒูŠ ูŠุนู…ู„ "ุจุทุฑูŠู‚ุฉ ูˆุงุญุฏุฉ" ุงูุชุฑุงุถูŠู‹ุง ูˆู„ู„ุงุชุตุงู„ ุซู†ุงุฆูŠ ุงู„ุงุชุฌุงู‡ ุŒ ู…ู† ุงู„ุถุฑูˆุฑูŠ ุนูƒุณ ุฅุถุงูุฉ SP / SA ู„ู„ุงุชุฌุงู‡ ุงู„ู…ุนุงูƒุณ.



0xdeadbabe ููŠ ู‡ุฐุง ุงู„ู…ุซุงู„ ู‡ูˆ ู…ุคุดุฑ ู…ุนู„ู…ุงุช ุงู„ุฃู…ุงู† ( SPI ) - ู…ุนุฑู ูุฑูŠุฏ ู„ู€ "ู†ูู‚" ESP ุจูŠู† ุนู†ูˆุงู†ูŠ IP ุŒ ุญูŠุซ ูŠู…ูƒู† ู„ู„ู†ูˆุงุฉ ุงู„ุนุซูˆุฑ ุนู„ู‰ ุณูŠุงู‚ SA ุงู„ู…ู‚ุงุจู„ ูˆุฃุฎุฐ ู…ูุชุงุญ ููƒ ุงู„ุชุดููŠุฑ ู…ู†ู‡. ูˆ esp / transport // required ู‡ูˆ ู…ุทู„ุจ ู„ุงุณุชุฎุฏุงู… ESP ููŠ ูˆุถุน ุงู„ู†ู‚ู„ (ุงู„ู…ุฒูŠุฏ ุนู† ุฐู„ูƒ ุฃุฏู†ุงู‡).



ุงู„ุญูˆุตู„ุฉ ESP



ุชู… ุชุตู…ูŠู… ุญุฒู…ุฉ ESP ุจุดูƒู„ ุชุฎุทูŠุทูŠ ุนู„ู‰ ุงู„ู†ุญูˆ ุงู„ุชุงู„ูŠ:



  0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ---
|               Security Parameters Index (SPI)                 | ^
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | A
|                      Sequence Number                          | | u
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | t
~                       IV (variable)                           ~ | h
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | e -----
|                    Payload Data  (variable)                   | | n   ^ E
~                                                               ~ | t   | n
|                                                               | | i   | c
+               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | c   | r
|               |         TFC Padding * (optional, variable)    | | a   | y
+-+-+-+-+-+-+-+-+         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | t   | p
|                         |        Padding (0-255 bytes)        | | e   | t
+-+-+-+-+-+-+-+-+-+-+-+-+-+     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | d   | e
|                               |  Pad Length   | Next Header   | v     v d
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ---------
~         Integrity Check Value-ICV   (variable)                ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


  • SPI - ู…ุนุฑู ูุฑูŠุฏ 32 ุจุช ู„ุฌู„ุณุฉ ESP / ุงู„ู†ูู‚ / ุงู„ุงุชุตุงู„ ุจูŠู† ุนู†ุงูˆูŠู† IP. ุนุงุฏุฉู‹ ู…ุง ูŠูƒูˆู† {SrcIPุŒ DstIPุŒ SPI} ู‡ูˆ SA ูˆุณูŠุงู‚ ุงู„ุชุดููŠุฑ.
  • SeqNum โ€” 32- . . , replay attack.
  • payload โ€” ESP, .
  • TFC padding โ€” (Traffic Flow Confidentiality), , - , . TFC , , payload , . , payload IP , . TFC - , .
  • Padding โ€” ESP payload 32- , . , ( CBC) . . .
  • Pad Length โ€” 8- Padding .
  • Next Header โ€” 8- IP payload. ยซno next headerยป, ESP- โ€” , . TFC โ€” .
  • ICV โ€” Integrity Check Value, (MAC).


ูŠุชู… ุชุดููŠุฑ ุงู„ุฌุฒุก ุงู„ูƒุงู…ู„ ู…ู† ุงู„ุญุฒู…ุฉ ู…ู† ุงู„ุญู…ูˆู„ุฉ ุฅู„ู‰ ุงู„ุฑุฃุณ ุงู„ุชุงู„ูŠ . ุชู…ุช ู…ุตุงุฏู‚ุฉ ูƒู„ ุดูŠุก ุจุงุณุชุซู†ุงุก MAC. ูŠุนุชู…ุฏ ุทูˆู„ ICV ูˆูˆุฌูˆุฏ ู†ุงู‚ู„ IV (ู…ุชุฌู‡ ุงู„ุชู‡ูŠุฆุฉ) ุนู„ู‰ ุฃูˆุถุงุน / ุฎูˆุงุฑุฒู…ูŠุงุช ุงู„ุชุดููŠุฑ ูˆุงู„ู…ุตุงุฏู‚ุฉ ุงู„ู…ุณุชุฎุฏู…ุฉ.



TLS 1.3 : ุงู„ุญุดูˆ ุงู„ุงุฎุชูŠุงุฑูŠ ู„ู„ุจูŠุงู†ุงุช ุจุญุฌู… ู…ุนูŠู† ุธู‡ุฑ ูู‚ุท ููŠ ุงู„ุฅุตุฏุงุฑ 1.3. ุจุฎู„ุงู ุฐู„ูƒ ุŒ ูŠูƒูˆู† ุงู„ุชุดููŠุฑ ูˆุงู„ู…ุตุงุฏู‚ุฉ ู…ุชุดุงุจู‡ูŠู† ุชู…ุงู…ู‹ุง. ูŠู„ุฒู… TLS 1.3 ุจุงุณุชุฎุฏุงู… ุฎูˆุงุฑุฒู…ูŠุงุช AEAD ูู‚ุท ุŒ ูˆู‡ูŠ ุตุญูŠุญุฉ ูˆุฌูŠุฏุฉ. ูŠุฏุนู… ุงู„ู…ุฑุณุงุจ ุงู„ูƒู‡ุฑูˆุณุชุงุชูŠูƒูŠ AEAD ุŒ ูˆู„ูƒู† ู‡ู†ุงูƒ ู…ุฌู…ูˆุนุฉ ู…ู† ุงู„ุญู„ูˆู„ ุงู„ู‚ุฏูŠู…ุฉ. ุงูƒุชุจ ุงู„ุญู‚ูˆู„ SPI ุฃูˆ SeqNumู„ุง ุŒ ู†ุธุฑู‹ุง ู„ุฃู† ุจุฑูˆุชูˆูƒูˆู„ TCP ูŠุถู…ู† ุงู„ุชุณู„ุณู„ ูˆุงู„ุชุณู„ูŠู… ุŒ ุจุงู„ุฅุถุงูุฉ ุฅู„ู‰ ุฐู„ูƒ ุŒ ู…ู† ุงู„ู†ุงุญูŠุฉ ุงู„ุนู…ู„ูŠุฉ ุŒ ู„ุง ูŠุชู… ุฅุฑุณุงู„ ู†ุงู‚ู„ ุชู‡ูŠุฆุฉ ุจุดูƒู„ ุตุฑูŠุญ - ูˆุจุงู„ุชุงู„ูŠ ูุฅู† ุญุฒู…ุฉ ุทุจู‚ุฉ ุชุณุฌูŠู„ TLS ุฃู‚ุตุฑ ู‚ู„ูŠู„ุงู‹. ูŠุญุชูˆูŠ DTLS ุจุงู„ูุนู„ ุนู„ู‰ SeqNum ุจุงู„ุฅุถุงูุฉ ุฅู„ู‰ ุจูŠุงู†ุงุช ุชุฌุฒุฆุฉ ุงู„ุฑุณุงุฆู„.



ู‚ุฏ ูŠูƒูˆู† ุฑู‚ู… ุงู„ุญุฒู…ุฉ 32 ุจุช ู‚ุตูŠุฑู‹ุง ุฌุฏู‹ุง ู…ู† ุงู„ู†ุงุญูŠุฉ ุงู„ุนู…ู„ูŠุฉ. ู‡ุฐู‡ ูู‚ุท +4 ู…ู„ูŠุงุฑ ุญุฒู…ุฉ IP ุŒ ูˆุงู„ุชูŠ ูŠู…ูƒู† ุฃู† ุชุทูŠุฑ ุจุณุฑุนุฉ 10+ Mpps ููŠ ุฏู‚ุงุฆู‚. ู…ุงุฐุง ูŠุญุฏุซ ุนู†ุฏู…ุง ูŠููŠุถ ุงู„ุนุฏุงุฏุŸ ุณุชุชู… ุฅุนุงุฏุฉ ุชุนูŠูŠู†ู‡ ุฅู„ู‰ ุงู„ุตูุฑ. ูˆู„ูƒู† ุŒ ู‡ุฐุง ูŠุนู†ูŠ ุฃู† ู‚ูŠู…ุฉ SPI + SeqNum ุณุชุจุฏุฃ ููŠ ุงู„ุชูƒุฑุงุฑ ุจุงู„ู†ุณุจุฉ ู„ู†ุง ูˆูŠู…ูƒู† ุงุณุชุฎุฏุงู… ุญุฒู… ESP ุงู„ุชูŠ ุชู… ุงุนุชุฑุงุถู‡ุง ู…ุณุจู‚ู‹ุง ู„ุฅุนุงุฏุฉ ุงู„ู‡ุฌูˆู…. ู„ุญู„ ู‡ุฐู‡ ุงู„ู…ุดูƒู„ุฉ ุŒ ุชู… ุงุฎุชุฑุงุน ESN(ุฑู‚ู… ุงู„ุชุณู„ุณู„ ุงู„ู…ู…ุชุฏ). ู‡ุฐุง ุนุฏุงุฏ 64 ุจุช ุŒ ูˆู„ูƒู† ูŠุชู… ู†ู‚ู„ 32 ุจุช "ุงู„ุณูู„ูŠ" ูู‚ุท ุฅู„ู‰ ุญู‚ู„ SeqNum ุŒ ูˆูŠุชู… ุชุฎุฒูŠู† 32 ุจุช ุงู„ุนู„ูˆูŠุฉ ููŠ ุงู„ุฐุงูƒุฑุฉ. ุชู…ุช ู…ุตุงุฏู‚ุฉ ุงู„ู‚ูŠู…ุฉ ุงู„ูƒุงู…ู„ุฉ ู„ู€ ESN - ู„ุฐู„ูƒ ุŒ ูŠู„ุชุฒู… ุงู„ุทุฑูุงู† ุจุงู„ุงุชูุงู‚ ุนู„ู‰ ุงุณุชุฎุฏุงู… ESN ู…ู‚ุฏู…ู‹ุง.



ุชุดููŠุฑ ESP



ูƒูŠู ุจุงู„ุถุจุท ูŠุชู… ุชุดููŠุฑ / ู…ุตุงุฏู‚ุฉ ุญุฒู…ุฉ ESP ุŒ ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ุนู†ุฏ ุงุณุชุฎุฏุงู… AES-GCM-16ุŸ ู„ู„ุนู…ู„ ู…ุน ESP ุŒ ูุฅู†ู‡ ูŠุณุชุฎุฏู… ู…ุชุฌู‡ ุชู‡ูŠุฆุฉ 64 ุจุช ู…ูˆุฌูˆุฏ ููŠ ุจุฏุงูŠุฉ ุงู„ุญู…ูˆู„ุฉ . ูƒู…ุง ุฃู†ู‡ ูŠุณุชุฎุฏู… ู…ู„ุญ 32 ุจุช ูƒุฌุฒุก ู…ู† ุงู„ู…ุงุฏุฉ ุงู„ุฃุณุงุณูŠุฉ. ููŠ ู…ุซุงู„ setkey ุŒ ู„ู… ุฃู‚ู… ุจุชู‚ุฏูŠู… ู…ูุชุงุญ 128 ุจุช ุŒ ูˆู„ูƒู† ู…ูุชุงุญ 128 + 32 ุจุช. ู‚ุฏ ุชูƒูˆู† ู‡ู†ุงูƒ ุญุงู„ุงุช ุญูŠุซ ูŠุชู… ุฅุนุงุฏุฉ ุงุณุชุฎุฏุงู… ุงู„ู…ูุชุงุญ ูˆูŠุชู… ุชุนุจุฆุฉ IV ุจู…ูˆู„ุฏ ุฑู‚ู… ุนุดูˆุงุฆูŠ ุฒุงุฆู ุณูŠุฆ (PRNG) ูŠู…ูƒู† ุชูƒุฑุงุฑ ู‚ูŠู…ู‡. ุชู… ุชุตู…ูŠู… ุงู„ู…ู„ุญ ู„ู„ุญู…ุงูŠุฉ ู…ู† ู‡ุฐู‡ ุงู„ุญุงู„ุฉ ุงู„ุฃูƒุซุฑ ุฎุทูˆุฑุฉ ุŒ ู…ู…ุง ู‚ุฏ ูŠุคุฏูŠ ุฅู„ู‰ ููƒ ุชุดููŠุฑ ุงู„ุญุฒู… ุงู„ุชูŠ ุชู… ุงุนุชุฑุงุถู‡ุง. ูŠูƒูˆู† ุชุดููŠุฑ / ู…ุตุงุฏู‚ุฉ ESP ู†ูุณู‡ุง ููŠ ูˆุถุน AES-128-GCM-16-ESP ูƒู…ุง ูŠู„ูŠ:



AES-GCM(
    key             = 128-bit key,
    plaintext       = 64-bit IV || payload || TFC || pad || padLen || NH,
    nonce           = 32-bit salt || IV,
    associated-data = SPI || {ESN  SeqNum},
) -> encrypted-payload || 128-bit ICV

ESP = SPI || SeqNum || IV || encrypted-payload || ICV


ุจุงู„ู†ุณุจุฉ ู„ุฎูˆุงุฑุฒู…ูŠุงุช GOST ุงู„ุฑูˆุณูŠุฉ (ุฃุตูุงุฑ Magma ุฃูˆ Grasshopper) ุŒ ุชูƒูˆู† ุจูŠุงู†ุงุช ุงู„ุฅุฏุฎุงู„ ู…ุชุดุงุจู‡ุฉ. ูŠุชู… ุงุณุชุฎุฏุงู… ูƒู„ุง ุงู„ุดูุฑุชูŠู† ููŠ ูˆุถุน MGM (ุฃูˆุฏ ุฃู† ุฃู‚ูˆู„ ู†ุณุฎุฉ ู…ุญุณู†ุฉ ู…ู† GCM ) ุŒ ูˆูŠุชู… ุชุทุจูŠู‚ ุฏูˆุฑุงู† ู…ุงุฏุฉ ู…ูุชุงุญ ESPTREE ุงู„ุนุงุฏูŠ ุจุงุณุชุฎุฏุงู… HMAC-Stribog-256. ู‡ุฐุง ูŠู‚ู„ู„ ู…ู† ุงู„ุญู…ู„ ุนู„ู‰ ุงู„ู…ูุชุงุญ. ุจุดูƒู„ ุฃุณุงุณูŠ ููŠ ุณูŠุงู‚ IPsec ุŒ ู„ุง ูŠุคุฏูŠ ู‡ุฐุง ุฅู„ู‰ ุฒูŠุงุฏุฉ ูˆู‚ุช ุงุณุชุฎุฏุงู…ู‡ ุจู‚ุฏุฑ ู…ุง ู‡ูˆ ู„ุชู‚ู„ูŠู„ ุณุทุญ ุงู„ู‡ุฌูˆู… ู…ู† ุฎู„ุงู„ ุงู„ู‚ู†ูˆุงุช ุงู„ุฌุงู†ุจูŠุฉ. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ุจุณุจุจ ุชุดุงุจูƒ ุงู„ู…ูุงุชูŠุญ (ุชู‚ู†ูŠุฉ ู…ู…ุงุซู„ุฉ ู„ู„ุฏูˆุฑุงู† ุงู„ู…ุณุชู…ุฑ ู„ู„ู…ูุงุชูŠุญ) ุŒ ุชุจูŠู† ุฃู† ุชุดููŠุฑ ูƒุชู„ุฉ GOST 28147-89 ุจุญุฌู… ูƒุชู„ุฉ 64 ุจุช ุบูŠุฑ ู…ุนุฑุถ ู„ู‡ุฌู…ุงุช SWEET32 .



ู…ู† ูˆุฌู‡ุฉ ู†ุธุฑ ุงู„ุณู„ุงู…ุฉ ุŒ ู„ุง ุชูˆุฌุฏ ุดูƒุงูˆู‰ ุญูˆู„ ESP ู…ุน ุฎูˆุงุฑุฒู…ูŠุงุช AEAD. ูˆู„ูƒู† ุจุงู„ู†ุณุจุฉ ู„ุฎูˆุงุฑุฒู…ูŠุงุช AEAD ุŒ ูุฅู† IV ู‡ูˆ ู…ุฌุฑุฏ ุนุฏุงุฏ 64 ุจุช ุŒ ูŠุชู… ุชู…ุฑูŠุฑู‡ ุจูˆุถูˆุญ ู…ุน ูƒู„ ุญุฒู…ุฉ ุชุถูŠุน ู…ุณุงุญุฉ ููŠ ุงู„ุญุฒู…ุฉ. SeqNum ู‚ุตูŠุฑ ุฌุฏู‹ุง ุŒ ูˆู„ุง ูŠุชู… ู†ู‚ู„ ESN ุจุดูƒู„ ูƒุงู…ู„ ุŒ ุนู„ู‰ ุงู„ุฑุบู… ู…ู† ุฃู†ู‡ ูŠุชู†ุงุณุจ ุชู…ุงู…ู‹ุง ู…ุน IV. ุจุงู„ู†ุณุจุฉ ู„ุฎูˆุงุฑุฒู…ูŠุงุช ุบูŠุฑ AEAD ุŒ ู‚ุฏ ูŠูƒูˆู† IV ุถุฑูˆุฑูŠู‹ุง ุจุงู„ูุนู„ ูˆูŠุญู…ู„ ู‚ูŠู…ุฉ ุบูŠุฑ ู…ุชูˆู‚ุนุฉ ุŒ ูˆู„ูƒู† ู„ูŠุณ ุจุฃูŠ ุญุงู„ ู…ู† ุงู„ุฃุญูˆุงู„ ุนุฏุงุฏ. ู‡ุฐุง ุฅุฑุซ ุŒ ูุงู„ุชุฎู„ุต ู…ู† ุงู„ู…ุณุงุญุฉ ุงู„ุซู…ูŠู†ุฉ ููŠ ุงู„ุนุจูˆุฉ ูˆุงู„ูˆุฒู† ู„ุง ูŠุคุซุฑ ุนู„ู‰ ุงู„ู…ูˆุซูˆู‚ูŠุฉ ู‡ู†ุง.







ุฅุฐุง ูƒุงู† ู…ู† ุงู„ู…ู…ูƒู† ุฃู† ุชุญุชูˆูŠ IV ู„ู€ AEADs ุนู„ู‰ ู‚ูŠู… ู…ู† 128 ุจุช ุŒ ูุณูŠูƒูˆู† ู…ู† ุงู„ู…ู…ูƒู† ุงุณุชุฎุฏุงู… ุฎูˆุงุฑุฒู…ูŠุงุช ู…ุซู„ XSalsa20 / XChaCha20 ู…ุน 192 ุจุช nonce ุŒ 128 ุจุช ู…ู†ู‡ุง ูŠุชู… ุฅู†ุดุงุคู‡ุง ุจุดูƒู„ ุนุดูˆุงุฆูŠ ุนู†ุฏ ุจุฏุก ุงู„ุชุดุบูŠู„ ุŒ ูˆูŠู…ูƒู† ุงุณุชุฎุฏุงู… 64 ุจุช ุงู„ู…ุชุจู‚ูŠุฉ ู„ู„ุนุฏุงุฏ ... ู‚ุฏ ูŠูƒูˆู† ู‡ุฐุง ู…ู†ู‚ุฐู‹ุง ู„ู„ุฃู†ุธู…ุฉ ุงู„ุชูŠ ูู‚ุฏุช ุญุงู„ุฉ ุงู„ุนุฏุงุฏ ุงู„ุฎุงุตุฉ ุจู‡ุง ุŒ ูˆู„ูƒู†ู‡ุง ุชุฑูŠุฏ ุงู„ุงุณุชู…ุฑุงุฑ ููŠ ุงุณุชุฎุฏุงู… ุงู„ู…ูุงุชูŠุญ ุงู„ุญุงู„ูŠุฉ.



TLS 1.3 : ูŠุชู… ุงุณุชุฎุฏุงู… XOR ุนู„ู‰ ุฃู†ู‡ ุฑู‚ู… nonce ุจูŠู† ุนุฏุงุฏ ุงู„ุฑุณุงุฆู„ ูˆู…ุชุฌู‡ ุงู„ุชู‡ูŠุฆุฉ ุงู„ุฐูŠ ุชู… ุฅู†ุดุงุคู‡ ุจุงุณุชุฎุฏุงู… ุงู„ู…ูุชุงุญ. ู†ุธุฑู‹ุง ู„ุนุฏู… ุฅุฑุณุงู„ ุงู„ุนุฏุงุฏ ูˆู„ุง ุงู„ุฑุงุจุน ุจุดูƒู„ ุตุฑูŠุญ ุŒ ูุฅู† TLS 1.3 ูŠูƒูˆู† ุฃูƒุซุฑ ุฅุญูƒุงู…ุง ุจู‚ู„ูŠู„. ุฅุฐุง ูƒุงู† ESP ูŠุณุชุฎุฏู… ุฎูˆุงุฑุฒู…ูŠุงุช ุบูŠุฑ AEAD ุŒ ูู‚ุฏ ูŠุชุทู„ุจ ุงู„ุฃู…ุฑ ุฅู†ุดุงุก IV ุบูŠุฑ ู…ุชูˆู‚ุน ุŒ ูˆุงู„ุฐูŠ ูŠู…ูƒู† ุฃู† ูŠูƒูˆู† ู…ูƒุซูู‹ุง ุจุดูƒู„ ู…ู„ุญูˆุธ ู„ูˆุญุฏุฉ ุงู„ู…ุนุงู„ุฌุฉ ุงู„ู…ุฑูƒุฒูŠุฉ.



ุงู„ุฃู†ูุงู‚ ูˆูˆุณุงุฆู„ ุงู„ู†ู‚ู„



ู…ุง ู‡ูˆ ู…ุฏุฑุฌ ููŠ ุญู…ูˆู„ุฉ ุงู„ุญุฒู…ุฉุŸ ูŠุนุชู…ุฏ ุฐู„ูƒ ุนู„ู‰ ู…ุง ุฅุฐุง ูƒุงู† ESP ูŠุนู…ู„ ููŠ ูˆุถุน ุงู„ู†ู‚ู„ ุฃูˆ ูˆุถุน ุงู„ู†ูู‚ . ูŠุณุชุจุฏู„ ูˆุถุน ุงู„ู†ู‚ู„ ุญู…ูˆู„ุฉ ุญุฒู…ุฉ IP ุงู„ู…ุฑุณู„ุฉ ุจู€ ESP ุจู‡ุฐู‡ ุงู„ุญู…ูˆู„ุฉ. ุฃูŠ ุฃู†ู‡ ูƒุงู†:



---------------------------------------
| orig IP hdr |[ext hdrs]| TCP | Data |
---------------------------------------


ุฃุตุจุญ:



---------------------------------------------------------
| orig |hop-by-hop,dest*,|   |dest|   |    | ESP   | ESP|
|IP hdr|routing,fragment.|ESP|opt*|TCP|Data|Trailer| ICV|
---------------------------------------------------------
                             |<--- encryption ---->|
                         |<---- authenticity ----->|


ููŠ ูˆุถุน ุงู„ู†ูู‚ ุŒ ูŠุชู… ุชุบู„ูŠู ุญุฒู…ุฉ IP ุจุงู„ูƒุงู…ู„ ุจุงู„ูƒุงู…ู„ ููŠ ESP ูˆูŠุชู… ุชูƒูˆูŠู† ุญุฒู…ุฉ IP ุฌุฏูŠุฏุฉ ุŒ ุนุงุฏุฉู‹ ุจุฑุคูˆุณ ูˆุนู†ุงูˆูŠู† SrcIP / DstIP ุฌุฏูŠุฏุฉ. ูŠุณุชุฎุฏู… ู‡ุฐุง ุงู„ูˆุถุน ู„ู†ูู‚ ุงู„ุญุฒู… ุจูŠู† ุงู„ุดุจูƒุงุช.



----------------------------------------------------------
| new* |new ext|   | orig*|orig ext|   |    | ESP   | ESP|
|IP hdr| hdrs* |ESP|IP hdr| hdrs * |TCP|Data|Trailer| ICV|
----------------------------------------------------------
                   |<--------- encryption --------->|
               |<---------- authenticity ---------->|


ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ู…ู† ุฎู„ุงู„ setkey ูŠู…ูƒู†ู†ูŠ ุชุญุฏูŠุฏ ุฃู† ุฌู…ูŠุน ุงู„ุญุฒู… ุจูŠู† 2001: ac :: / 64 ูˆ 2001: dc :: / 64 ูŠุฌุจ ุฃู† ุชู…ุฑ ุงู„ุดุจูƒุงุช ู…ุดูุฑุฉ ุนุจุฑ ู†ู‚ุทุชูŠ ู†ู‡ุงูŠุฉ ู…ู† ุงู„ุฃู†ูุงู‚ ุจุงู„ุนู†ุงูˆูŠู† 2001 :: 123 ุŒ 2001 :: 321 ...



spdadd 2001:ac::/64 2001:dc::/64 any -P out ipsec esp/tunnel/2001::123-2001::321/require ;
spdadd 2001:dc::/64 2001:ac::/64 any -P in  ipsec esp/tunnel/2001::321-2001::123/require ;


ุบุงู„ุจู‹ุง ู…ุง ูŠุดุงุฑ ุฅู„ู‰ ูˆุถุน ุงู„ู†ู‚ู„ ุจุงุณู… ุงุชุตุงู„ ู…ุถูŠู ุฅู„ู‰ ู…ุถูŠู. ุฅุฐุง ุชู… ุงุณุชุฎุฏุงู… ุจุนุถ ุจุฑูˆุชูˆูƒูˆู„ GRE ุฃูˆ IPv * -over-IPv * ู„ู„ู†ูู‚ ุŒ ูˆุงู„ุฐูŠ ูŠุนู…ู„ ุจุงู„ูุนู„ ุจูŠู† ู†ู‚ุทุชูŠ ู†ู‡ุงูŠุฉ ุŒ ูู„ุง ู…ุนู†ู‰ ุŒ ููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉ ุŒ ู„ุงุณุชุฎุฏุงู… ูˆุถุน ุงู„ุงุชุตุงู„ ุงู„ู†ูู‚ูŠ ุนู„ู‰ ู…ุณุชูˆู‰ IPsec. ูˆู…ุน ุฐู„ูƒ ุŒ ู„ุง ูŠุตุงุฏู‚ ูˆุถุน ุงู„ู†ู‚ู„ ุนู†ูˆุงู† IP. ูƒู‚ุงุนุฏุฉ ุนุงู…ุฉ ุŒ ู‡ุฐุง ู„ูŠุณ ู…ู‡ู…ู‹ุง ูˆู„ูŠุณ ุจุงู„ุบ ุงู„ุฃู‡ู…ูŠุฉ ุŒ ูˆู„ูƒู† ุฅุฐุง ูƒู†ุช ุชุฑูŠุฏ ุงู„ุชุฃูƒุฏ ู…ู† ุนุฏู… ุชุบูŠูŠุฑ ุฑุคูˆุณ IPv6 ุงู„ู…ู…ุชุฏุฉ ุฃูˆ ุชุณู…ูŠุงุช ุชุฏูู‚ ุงู„ุญุฒู… ุŒ ููŠุฌุจ ุนู„ูŠูƒ ุงุณุชุฎุฏุงู… ูˆุถุน ุงู„ู†ูู‚ ุŒ ุญุชู‰ ู„ูˆ ูƒุงู† ุจูŠู† ู…ุถูŠููŠู† ุŒ ุนู„ู‰ ุญุณุงุจ ุงู„ู†ูู‚ุงุช ุงู„ุนุงู…ุฉ.



ISAKMP



ู…ุงุฐุง ูŠุญุฏุซ ุฅุฐุง ู‚ู…ุช ุจุฅุนุงุฏุฉ ุชุดุบูŠู„ ุฃุฌู‡ุฒุฉ ุงู„ูƒู…ุจูŠูˆุชุฑ ุŒ ูˆุงุฎุชูุช SA ู…ุน ุฌู…ูŠุน ู‚ูŠู… ุงู„ุนุฏุงุฏ ู…ู† ุฐุงูƒุฑุชู‡ุง ุŒ ูˆู‚ู…ุช ู…ุฑุฉ ุฃุฎุฑู‰ ุจุชุญู…ูŠู„ ุฃูˆุงู…ุฑ SP / SA ุงู„ู‚ุฏูŠู…ุฉ ุจูŠุฏูŠุŸ ุฃูˆู„ุงู‹ ุŒ ูŠู…ูƒู† ููƒ ุชุดููŠุฑ ุงู„ุญุฒู… ุงู„ุชูŠ ุชุทุงุจู‚ IV ุŒ ู„ุฃู† ู‡ุฐุง ูŠุนุงุฏู„ ุงุณุชุฎุฏุงู… ู„ูˆุญุฉ ุงู„ุชุดููŠุฑ ู…ุฑุชูŠู†. ุซุงู†ูŠู‹ุง ุŒ ู…ู†ุฐ ุชุทุงุจู‚ SPI / salt / ESN / SeqNum ุŒ ุณุชุชู… ู…ุตุงุฏู‚ุฉ ุฌู…ูŠุน ุงู„ุญุฒู… ุงู„ุชูŠ ุชู… ุงุนุชุฑุงุถู‡ุง ู…ุณุจู‚ู‹ุง ุจุดูƒู„ ุตุญูŠุญ ูˆูŠู…ูƒู†ูƒ ุฅุนุงุฏุฉ ุชุดุบูŠู„ู‡ุง. ุฅุนุงุฏุฉ ุงุณุชุฎุฏุงู… ู…ุซู„ setkey SAs ูŠู…ุซู„ ูƒุงุฑุซุฉ ุจุงู„ู†ุณุจุฉ ู„ู„ุฃู…ุงู†. ุซุงู„ุซู‹ุง ุŒ ุฎุงุตุฉ ุฅุฐุง ู„ู… ูŠุชู… ุงุณุชุฎุฏุงู… ESN (ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ููŠ FreeBSD ููŠ ูˆู‚ุช ูƒุชุงุจุฉ ู‡ุฐุง ุงู„ุชู‚ุฑูŠุฑ ุŒ ู„ู… ูŠุชู… ุฏุนู…ู‡ ุจุนุฏ) ุŒ ู…ุน ุนู…ู„ูŠุฉ SA ุงู„ุทูˆูŠู„ุฉ ุŒ ู‚ุฏ ู„ุง ุชู„ุงุญุธ ุฃู† ุงู„ุนุฏุงุฏ "ู…ุณุชู†ูุฏ".



ูƒู„ ู‡ุฐุง ูŠุนู†ูŠ ุฃู†ู†ุง ุจุญุงุฌุฉ ุฅู„ู‰ ุชุบูŠูŠุฑ ู…ูุงุชูŠุญ ESP ุจุงู†ุชุธุงู…. ูˆุฃูŠุถู‹ุง ุงู„ุชูุงูˆุถ ุนู„ู‰ ุฎูˆุงุฑุฒู…ูŠุฉ ุชุดููŠุฑ ุŒ ูˆุฌูˆุฏ ESN ุŒ TFC ุŒ ูˆุถุน ุงู„ู†ู‚ู„ / ุงู„ู†ูู‚ ุŒ ู‚ูŠู… SPI. ููŠ ุงู„ูˆุงู‚ุน ุŒ ูŠุชู… ุงุณุชุฎุฏุงู… ุจุฑูˆุชูˆูƒูˆู„ ISAKMP (ุฑุงุจุทุฉ ุฃู…ุงู† ุงู„ุฅู†ุชุฑู†ุช ูˆุจุฑูˆุชูˆูƒูˆู„ ุฅุฏุงุฑุฉ ุงู„ู…ูุงุชูŠุญ) ู„ู‡ุฐุง ุงู„ุบุฑุถ . ุนู„ู‰ ุงู„ุฑุบู… ู…ู† ุฃู†ู‡ ูŠู…ูƒู†ูƒ ุจุณู‡ูˆู„ุฉ ููƒ ุจุนุถ ุงู„ุฑุณุงุฆู„ ุงู„ููˆุฑูŠุฉ ุจุงุณุชุฎุฏุงู… ุชุดููŠุฑ ู…ุตุงุฏู‚ OTR / PGP / OMEMO ูˆุฅุฑุณุงู„ ุฃูˆุงู…ุฑ setkey ู„ู„ุจุฑุงู…ุฌ ุงู„ู†ุตูŠุฉ ุฅู„ู‰ ุงู„ุฎุงุฏู… ุŒ ุญูŠุซ ูŠุชู… ุฅู†ุดุงุก ุงู„ู…ูุงุชูŠุญ ุนู† ุทุฑูŠู‚ ู‚ุฑุงุกุฉ / dev / urandom . ู„ุง ูŠู‡ู… ุงู„ู†ูˆุงุฉ ูƒูŠู ุชู… ุงู„ุงุชูุงู‚ ุนู„ูŠู‡ุง. ูƒู…ุง ู‡ูˆ ุงู„ุญุงู„ ููŠ OpenVPN: ุชุชู… ู…ุตุงุฏู‚ุฉ X.509 ู…ุน ุงู„ุดู‡ุงุฏุงุช ูˆุงู„ุชูุงูˆุถ ุนู„ู‰ ุงู„ู…ูุงุชูŠุญ ุจุดูƒู„ ุนุงู… ุนุจุฑ TLS ุŒ ูˆุจุฑูˆุชูˆูƒูˆู„ ู†ู‚ู„ VPN ู†ูุณู‡ ู‡ูˆ ุจุงู„ูุนู„ ุจุฑูˆุชูˆูƒูˆู„ ุฎุงุต ุจู‡.



ููŠ ุดูƒู„ู‡ "ุงู„ู†ู‚ูŠ" ุŒ ู„ุง ูŠุชู… ุงุณุชุฎุฏุงู… ISAKMP ุŒ ู†ุธุฑู‹ุง ู„ุนุฏู… ูˆุฌูˆุฏ ุชุดููŠุฑ ููŠู‡. ู„ู…ุตุงุฏู‚ุฉ ุงู„ู…ุญุงูˆุฑูŠู† ูˆุฅู†ุดุงุก ู…ูˆุงุฏ ุฃุณุงุณูŠุฉ ุŒ ูŠุชู… ุงุณุชุฎุฏุงู… ุจุฑูˆุชูˆูƒูˆู„ ุทุฑู ุซุงู„ุซ ูŠุบู„ู ISAKMP ุฏุงุฎู„ ู†ูุณู‡. ุฃู†ุง ุฃุนู„ู…:



  • KINK - Kerberized ุงู„ุฅู†ุชุฑู†ุช ุชูุงูˆุถ ุจุดุฃู† ู…ูุงุชูŠุญ ูŠุณุชุฎุฏู…ุŒ ุญูŠุซ ูˆุซู‚ ุซู„ุซ ูƒูŠุฑุจูŠุฑูˆุณ KDC ู„ู„ู…ุตุงุฏู‚ุฉ ูˆุงู„ุชูุงูˆุถ. ุจุงู„ุฅุถุงูุฉ ุฅู„ู‰ ุงู„ูˆุตู ู…ู† ูˆูŠูƒูŠุจูŠุฏูŠุง ุŒ ู„ุง ุฃุนุฑู ุฃูŠ ุดูŠุก ุขุฎุฑ ุนู† KINK ูˆู„ู… ุฃุดุงู‡ุฏู‡ ุนู„ู‰ ุงู„ู‡ูˆุงุก ู…ุจุงุดุฑุฉ.
  • IKE (v1) - ุชุจุงุฏู„ ู…ูุชุงุญ ุงู„ุฅู†ุชุฑู†ุช . ุฑุจู…ุง ู„ุง ูŠุฒุงู„ ุงู„ุจุฑูˆุชูˆูƒูˆู„ ุงู„ุฃูƒุซุฑ ุดูŠูˆุนู‹ุง ุŒ ุนู„ู‰ ุงู„ุฑุบู… ู…ู† ุฃู†ู‡ ุชู… ุฅู†ุดุงุคู‡ ููŠ ุนุงู… 1998.
  • IKEv2 ู‡ูˆ ุงู„ุฅุตุฏุงุฑ ุงู„ุซุงู†ูŠ ู…ู† IKE ุŒ 2005 ุŒ ูˆุงู„ุฐูŠ ุณุฃุชุญุฏุซ ุนู†ู‡.


ุจุฑูˆุชูˆูƒูˆู„ุงุช IKE ู‚ุงุจู„ุฉ ู„ู„ุชูˆุณุนุฉ ู„ู„ุบุงูŠุฉ ุจุณุจุจ ุงู„ุนุฏุฏ ุงู„ูƒุจูŠุฑ ู…ู† ุฃู†ูˆุงุน ุงู„ุญู…ูˆู„ุฉ ุงู„ู…ุฎุชู„ูุฉ. ูŠุญุชูˆูŠ IKEv1 ุนู„ู‰ ุนุฏุฏ ูƒุจูŠุฑ ู…ู† ุงู„ุฎูŠุงุฑุงุช ู„ุชูƒูˆูŠู† ู†ูู‚ ูˆุงุญุฏ ูู‚ุท ู„ู„ุนู…ู„. ุฃูƒุซุฑ ู…ู† ุฏุฒูŠู†ุฉ ู…ู† ุทู„ุจุงุช ุงู„ุชุนู„ูŠู‚ุงุช (RFC) ุชุตู ุงู„ู…ุฌู…ูˆุนุฉ ุงู„ูƒุงู…ู„ุฉ ู…ู† ISAKMP ูˆ IKEv1 ุจุญู…ูˆู„ุงุช ู…ุดุชุฑูƒุฉ. ุชุนู‚ูŠุฏ ู…ุฎูŠู. ุจุงู„ุฅุถุงูุฉ ุฅู„ู‰ ุงู„ู‚ุฏุฑุฉ ุนู„ู‰ ููƒ ุงู„ุชูƒูˆูŠู†ุงุช ุบูŠุฑ ุงู„ู…ุฎุงุฏุนุฉ ุจุณู‡ูˆู„ุฉ ูˆุงู„ุฃุณุทูˆุฑุฉ ุงู„ู…ุนุฑูˆูุฉ ูˆุงู„ุตุญูŠุญุฉ ุฌุฒุฆูŠู‹ุง ุงู„ุชูŠ ุชู‚ูˆู„ ุฅู† IKEv1 ู…ุถู…ูˆู† ู„ู„ุนู…ู„ ูู‚ุท ููŠ ุญุงู„ุฉ ู†ุณุฎ ู…ู„ู ุงู„ุชูƒูˆูŠู† ุจุงู„ูƒุงู…ู„ ุชู‚ุฑูŠุจู‹ุง.



ู„ุญุณู† ุงู„ุญุธ ุŒ ุธู‡ุฑ IKEv2: RFC ูˆุงุญุฏ ู…ู†ุงุณุจ (ู„ู…ุนุธู… ุงู„ู…ูŠุฒุงุช) ุŒ ุจุฑูˆุชูˆูƒูˆู„ ู…ุจุณุท ุจุดูƒู„ ูƒุจูŠุฑ ู„ู„ุชูุงูˆุถ ุนู„ู‰ ุงู„ู…ุนู„ู…ุงุช ุŒ ูˆุจุงู„ุชุงู„ูŠ ุชูƒูˆูŠู†ู‡. ูƒู‚ุงุนุฏุฉ ุนุงู…ุฉ ุŒ ูŠุญุชูˆูŠ ุนู„ู‰ ุนุฏุฏ ุฃู‚ู„ ู…ู† ุงู„ุฑุญู„ุงุช ุฐู‡ุงุจู‹ุง ูˆุฅูŠุงุจู‹ุง ู„ุนู…ู„ูŠุฉ ุงู„ู…ุตุงูุญุฉ ุงู„ูƒุงู…ู„ุฉ ูˆุงู„ุงุชูุงู‚ูŠุฉ ุงู„ุฑุฆูŠุณูŠุฉ ู…ู‚ุงุฑู†ุฉ ุจู€ IKEv1. ู„ุฐู„ูƒ ุŒ ุณูŠุชู… ุงู„ู†ุธุฑ ุฅู„ูŠู‡ ูู‚ุท ุŒ ู„ุฃู†ู‡ ู„ู… ูŠุนุฏ ู‡ู†ุงูƒ ุฃูŠ ู…ุนู†ู‰ ููŠ IKEv1 (ูˆู„ูƒู† ู„ุง ูŠุณุชุญู‚ ุงู„ุฃู…ุฑ ู…ุทุงุฑุฏุฉ ู„ุงุณุชุจุฏุงู„ ุญุงู„ุงุช ุงู„ุชุดุบูŠู„ ูˆุงู„ุชุดุบูŠู„ ุจุงู„ูุนู„ ุŒ ู†ุธุฑู‹ุง ู„ุฃู†ู‡ุง ุชุนู…ู„). ูŠุณุชุฎุฏู… IKEv2 ุŒ ุจุฎู„ุงู IKEv1 ุŒ ุฎูˆุงุฑุฒู…ูŠุงุช ูˆุฃุณุงู„ูŠุจ ู…ุชุดุงุจู‡ุฉ ุชู…ุงู…ู‹ุง ู„ุชุดููŠุฑ ุงู„ุฑุณุงุฆู„ ุงู„ุฎุงุตุฉ ุจู‡ ูƒู…ุง ูŠูุนู„ ESP. ูƒู…ุง ู‚ุฏู… ุฃูŠุถู‹ุง ู…ุตุงุฏู‚ุฉ EAP ูˆุฅู…ูƒุงู†ูŠุฉ ูƒู„ ุทุฑู ู„ู„ู…ุตุงุฏู‚ุฉ ุจุทุฑู‚ ู…ุฎุชู„ูุฉ (ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ูŠุณุชุฎุฏู… ุงู„ุนู…ูŠู„ PSK ุŒ ูˆูŠุณุชุฎุฏู… ุฎุงุฏู… X.509 ุงู„ุดู‡ุงุฏุงุช).



ุจุฑู†ุงู…ุฌ IKE ุงู„ุฎููŠ



      +-------------+
      |  |
      +-------------+
       |           |
       |           |
       |           |      /userspace
=====[PF_KEY]====[PF_INET]====================
       |           |                    
+-----------+   +-------------+
| |   |TCP/IP,      |
|  SA  SP  |---| IPsec|
+-----------+   +-------------+
                     |
                 +-----------+
                 |    |
                 |  |
                 +-----------+


ู‡ุฐุง ุงู„ุฌุฒุก ู…ู† ู…ูƒุฏุณ IPsec ู‚ูŠุฏ ุงู„ุชุดุบูŠู„ ุจุงู„ูุนู„ ุŒ ุนุงุฏุฉู‹ ููŠ ู…ุณุงุญุฉ ุงู„ู…ุณุชุฎุฏู…ูŠู†. ุฃูˆู„ุงู‹ ุŒ ู‡ุฐู‡ ู„ูŠุณุช ุดูŠุงุทูŠู† ู…ุญู…ู„ุฉ ุจุดูƒู„ ูƒุจูŠุฑ: ูŠู…ูƒู†ู‡ู… ุงู„ุชูˆุงุตู„ ู…ุน ุจุนุถู‡ู… ุงู„ุจุนุถ ู…ุฑุฉ ูˆุงุญุฏุฉ ุนู„ู‰ ุงู„ุฃู‚ู„ ูŠูˆู…ูŠู‹ุง ุŒ ูˆุชุชุทู„ุจ ุงู„ู…ุตุงูุญุฉ ุงู„ุฃูˆู„ูŠุฉ ุจุถุน ุฑุญู„ุงุช ุฐู‡ุงุจู‹ุง ูˆุฅูŠุงุจู‹ุง ุนุจุฑ UDP. ุซุงู†ูŠู‹ุง ุŒ ุนุฏุฏ ุฅู…ูƒุงู†ูŠุงุช ISAKMP / IKE ู‡ูˆ ุฃู† ู‡ู†ุงูƒ ุฃูƒูˆุงุฏ ุฃูƒุซุฑ ุจู…ุฆุงุช ุงู„ู…ุฑุงุช ู…ู…ุง ู‡ูˆ ุนู„ูŠู‡ ููŠ ุงู„ุชู†ููŠุฐ ุงู„ูƒุงู…ู„ SA / SP / ESP. ู‡ู†ุงูƒ ุงู„ุนุฏูŠุฏ ู…ู† ุชุทุจูŠู‚ุงุช ุงู„ุดูŠุงุทูŠู† ISAKMP: strongSwan (IKEv1 / V2) (ูˆูƒุฐู„ูƒ Openswan ุŒ Libreswan )ุŒ isakmpd (IKEv1) ุชู…ูƒูŠู†ุŒ OpenIKED (IKEv2)ุŒ ุงู„ุฑุงูƒูˆู† (IKEv1) ุชู…ูƒูŠู†ุŒ racoon2 (IKEv1 / v2 ูˆ KINK) ูˆุบูŠุฑู‡ุง.



ู…ู„ุงุญุธุฉ: ุตุญูŠุญ ุฃู† ูŠูƒุชุจ ูˆูŠุชูƒู„ู… "ุงู„ุดูŠุทุงู†" ( ุงู„ุดูŠุงุทูŠู†) ูƒู…ุง ุฑุฃูŠุช ููŠ ุงู„ุชุฑุฌู…ุงุช ุงู„ุฑูˆุงุฆูŠุฉ. ูˆู„ูƒู† ููŠ ุงู„ุฏูˆุงุฆุฑ ุงู„ูู†ูŠุฉ ุงู„ู†ุงุทู‚ุฉ ุจุงู„ุฑูˆุณูŠุฉ ุŒ ุชุฑุณุฎุช ุจุงู„ูุนู„ "ุงู„ุดูŠุงุทูŠู†".



TLS 1.3 : ุจุดูƒู„ ุนุงู… ุŒ ูุฅู† TLS stack ุจุฃูƒู…ู„ู‡ ุนุจุงุฑุฉ ุนู† ูˆุธุงุฆู ู…ูƒุชุจุฉ ุชุนู…ู„ ููŠ ูƒู„ ุชุทุจูŠู‚ ูุฑุฏูŠ ูˆุชุฎุฒู† ุงู„ู…ูˆุงุฏ ุงู„ุฃุณุงุณูŠุฉ ููŠ ุฐุงูƒุฑุชู‡ุง ุงู„ุฎุงุตุฉ. ุชุชู… ุฌู…ูŠุน ุนู…ู„ูŠุงุช ุงู„ุชุดููŠุฑ ุจุงู„ุชุจุฏูŠู„ ุฅู„ู‰ ู…ุณุงุญุฉ ุงู„ู…ุณุชุฎุฏู…ูŠู† ุŒ ูˆู‡ูˆ ู…ู‚ุฏุงุฑ ุถุฎู…. ูˆู…ุน ุฐู„ูƒ ุŒ ูุฅู† FreeBSD ูˆ Linux ุนู„ู‰ ุงู„ุฃู‚ู„ ู„ุฏูŠู‡ู… ุจุงู„ูุนู„ ุชุทุจูŠู‚ุงุช ุฅู„ุบุงุก ุชุญู…ูŠู„ kernel ู„ู€ TLS ุŒ ุนู†ุฏู…ุง ุชุชู… ู…ุนุงู„ุฌุฉ ุฌุฒุก ุงู„ู†ู‚ู„ ุจุงู„ูƒุงู…ู„ ููŠ ุงู„ู†ูˆุงุฉ ุŒ ุนู„ู‰ ุบุฑุงุฑ IPsec ุŒ ูˆุชุญุฏุซ ุงู„ู…ุตุงูุญุฉ ููŠ ู…ุณุงุญุฉ ุงู„ู…ุณุชุฎุฏู…ูŠู†.



ูŠุนู…ู„ IKEv2 ุนุจุฑ UDP ุŒ ุนู„ู‰ ุงู„ู…ู†ูุฐ 500 ุงูุชุฑุงุถูŠู‹ุง ( isakmpุงู„ุฎุฏู…ุงุช). ุชู‚ูˆู… Daemons ุจุฅู†ุดุงุก ู‚ู†ุงุฉ ุขู…ู†ุฉ ุŒ ูˆุงู„ู…ุตุงุฏู‚ุฉ ุนู„ู‰ ุจุนุถู‡ุง ุงู„ุจุนุถ ุŒ ูˆุงู„ุชูุงูˆุถ / ุฅู†ุดุงุก / ุญุฐู ESP SA / SPs ุŒ ูˆุชุญุฏูŠุซ ุงู„ู…ูุงุชูŠุญ ุŒ ูˆุชู†ููŠุฐ ุถุฑุจุงุช ุงู„ู‚ู„ุจ (Dead Peer Detection ( DPD )) ุŒ ูˆุงู„ู…ุฒูŠุฏ. ุชุชู… ุฌู…ูŠุน ุงู„ุงุชุตุงู„ุงุช ุจูŠู† ุงู„ุดูŠุงุทูŠู† ููŠ ุดูƒู„ ุชุจุงุฏู„ ุฒูˆุฌ ู…ู† ุฑุณุงุฆู„ ุงู„ุทู„ุจ / ุงู„ุงุณุชุฌุงุจุฉ. ูŠุฌุจ ุงู„ุฑุฏ ุนู„ู‰ ุฃูŠ ุทู„ุจ. ู†ุธุฑู‹ุง ู„ุฃู† ู‡ุฐุง ู‡ูˆ UDP ุŒ ู…ุงุฐุง ุชูุนู„ ุฅุฐุง ูƒุงู†ุช ุงู„ุญุฒู…ุฉ ู…ูู‚ูˆุฏุฉุŸ ุถุน ุฐู„ูƒ ููŠ ุงู„ุงุนุชุจุงุฑ ููŠ ูˆู„ุงูŠุชูƒ ุŒ ูˆุฃุนุฏ ุฅุฑุณุงู„ ุงู„ุทู„ุจุงุช ุจุนุฏ ุงู†ุชู‡ุงุก ุงู„ู…ู‡ู„ุฉ ุงู„ุชูŠ ู„ู… ูŠุชู… ุชู„ู‚ูŠ ุฃูŠ ุฑุฏูˆุฏ ุจุดุฃู†ู‡ุง ุŒ ูˆุฃุนุฏ ุฅุฑุณุงู„ ุงู„ุฑุฏูˆุฏ ุนู„ู‰ ุงู„ุทู„ุจุงุช ุงู„ู…ุชูƒุฑุฑุฉ ุŒ ูˆุชุฌุงู‡ู„ ุงู„ุฑุฏูˆุฏ ุงู„ู…ุชูƒุฑุฑุฉ. ูŠู…ูƒู† ุฃู† ุชุตู„ ุงู„ุญุฒู… ุจุชุฑุชูŠุจ ููˆุถูˆูŠ ุŒ ูˆูŠู…ูƒู† ุฃู† ุชุฎุชููŠ ุจุดูƒู„ ุบูŠุฑ ู…ุชูˆู‚ุน - ูŠุชู… ุฃุฎุฐ ุงู„ูƒุซูŠุฑ ููŠ ุงู„ุงุนุชุจุงุฑ ููŠ ู…ุนูŠุงุฑ IKEv2 ูˆูŠุชู… ูˆุตู ูƒูŠููŠุฉ ุงู„ุชุตุฑู ููŠ ุธู„ ุธุฑูˆู ุงู„ุณุจุงู‚ ุงู„ู…ุฎุชู„ูุฉ.



TLS 1.3: ุชู‡ุชู… ุทุจูŠุนุฉ ุจุฑูˆุชูˆูƒูˆู„ TCP ู„ู€ TLS ุจุชุฑุชูŠุจ ุงู„ุฑุณุงุฆู„ ูˆุชุณู„ูŠู…ู‡ุง. ู„ูƒู† TCP ูŠุณุชู‡ู„ูƒ ู…ูˆุงุฑุฏ ูƒุจูŠุฑุฉ ููŠ OS kernel ูˆูŠู…ูƒู† ุฃู† ูŠู…ุซู„ ุนุฏุฏู‹ุง ูƒุจูŠุฑู‹ุง ู…ู† ุฌู„ุณุงุช TCP ู…ุดูƒู„ุฉ (ุนู„ู‰ ุนูƒุณ UDP). ูˆู„ูƒู† ููŠ DTLS ุณุชุธู‡ุฑ ุฌู…ูŠุน ุงู„ู…ุดูƒู„ุงุช ุงู„ู…ุดุงุจู‡ุฉ ุจู†ูุณ ุงู„ุทุฑูŠู‚ุฉ ูƒู…ุง ููŠ IKE ุŒ ุจุงู„ุฅุถุงูุฉ ุฅู„ู‰ ุฅุถุงูุฉ ุงู„ุจูˆุงุณูŠุฑ ู…ุน ู…ุนุงู„ุฌุฉ ุงู„ุฑุณุงุฆู„ ุงู„ู…ุฌุฒุฃุฉ. ุชุบูŠูŠุฑ ุนู†ุงูˆูŠู† IP ู„ู†ู‚ุงุท ุงู„ู†ู‡ุงูŠุฉ ู„ู€ UDP ู„ูŠุณ ู…ุดูƒู„ุฉ. ุงุชุตุงู„ุงุช IKE ุŒ ูƒู‚ุงุนุฏุฉ ุนุงู…ุฉ ุŒ ุทูˆูŠู„ุฉ ุงู„ุนู…ุฑ (ุญุงู„ุฉ IKE ุตุบูŠุฑุฉ ูˆูŠุชู… ุชุฎุฒูŠู†ู‡ุง ูู‚ุท ููŠ ุฐุงูƒุฑุฉ ุจุฑู†ุงู…ุฌ ู…ุณุงุญุฉ ุงู„ู…ุณุชุฎุฏู…ูŠู† ุงู„ุฎููŠ) ูˆุจุงู„ุชุงู„ูŠ ุชุชุทู„ุจ ู…ุตุงูุญุฉ ุฃู‚ู„ ุŒ ุจูŠู†ู…ุง ููŠ TLS ุŒ ุจุนุฏ ูู‚ุฏุงู† ุงุชุตุงู„ TCP ุŒ ูŠุฌุจ ุนู„ูŠูƒ ุงู„ู‚ูŠุงู… ุจุฐู„ูƒ (ุนู„ู‰ ุงู„ุฑุบู… ู…ู† ูˆุฌูˆุฏ ุทุฑู‚ ู…ุชุณุงุฑุนุฉ ู„ู…ูˆุงุตู„ุฉ ุงู„ุฌู„ุณุงุช ุฅุฐุง ู„ู… ุชูƒู† ุงู„ุญุงู„ุฉ ูƒุฐู„ูƒ ูู‚ุฏุช ุŒ ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุนู†ุฏ ุฅุนุงุฏุฉ ุชุดุบูŠู„ ุงู„ุจุฑู†ุงู…ุฌ). ู†ุธุฑู‹ุง ู„ุฃู† ุจุฑู†ุงู…ุฌ IKE ุงู„ุฎููŠ ู„ู„ู†ุธุงู… ุจุฃูƒู…ู„ู‡ (ูƒู‚ุงุนุฏุฉ ุนุงู…ุฉ) ุŒ ุฅุฐุง ุฃุฑุงุฏ ุจุนุถ ุงู„ุชุทุจูŠู‚ุงุช ุงู„ุชูˆุงุตู„ ุจุดูƒู„ ุขู…ู† ู…ุน ุฐู„ูƒู…ุน ุดุฎุต ู„ุฏูŠู‡ ุงุชุตุงู„ IKE ุจุงู„ูุนู„ ุŒ ููŠู…ูƒู†ู‡ ุฅู…ุง ุงุณุชุฎุฏุงู…ู‡ ุนู„ู‰ ุงู„ููˆุฑ ุฃูˆ ูŠู‚ูˆู… ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุฎููŠ ุŒ ููŠ ุฑุญู„ุฉ ูˆุงุญุฏุฉ ุฐู‡ุงุจู‹ุง ูˆุฅูŠุงุจู‹ุง ุŒ ุจุฅู†ุดุงุก ESP SA ุฅุถุงููŠ ู„ู„ุชุทุจูŠู‚.



ุญูˆุตู„ุฉ IKE



ุณูŠูƒูˆู† ุฃูˆู„ ุชุจุงุฏู„ (ุทู„ุจ-ุงุณุชุฌุงุจุฉ) ู„ู„ุดูŠุงุทูŠู† ู‡ูˆ IKE_SA_INIT ุŒ ู…ู…ุง ูŠุคุฏูŠ ุฅู„ู‰ ุฅู†ุดุงุก IKE SA ู„ู…ุฒูŠุฏ ู…ู† ุงู„ุงุชุตุงู„ุงุช ุงู„ุขู…ู†ุฉ. ู„ุงุญุธ ุฃู† ESP SA "ู…ุฎุฒู†ุฉ" ููŠ kernel ุŒ ูˆุฃู† IKE SA ู…ูˆุฌูˆุฏ ููŠ ุนูุฑูŠุช ู…ุณุงุญุฉ ุงู„ู…ุณุชุฎุฏู…ูŠู†. ุซู… ุชุฃุชูŠ ุจูˆุฑุตุฉ IKE_AUTH ุŒ ุญูŠุซ ุชุชู… ู…ุตุงุฏู‚ุฉ ุงู„ุฃุทุฑุงู. ููŠ ู†ูุณ ุงู„ุชุจุงุฏู„ ุŒ ูŠุชู… ุฅู†ุดุงุก SA ุชุงุจุน ( Child SA ) ุŒ ูˆุงู„ุฐูŠ ูŠุชู… ุงุณุชุฎุฏุงู…ู‡ ู„ู€ ESP SA. ุจุดูƒู„ ุนุงู… ุŒ ูŠูƒูˆู† ู‡ุฐุงู† ุงู„ุชุจุงุฏู„ุงู† ูƒุงููŠุงู† ู„ู…ุตุงุฏู‚ุฉ ุงู„ุฃุทุฑุงู ูˆุงู„ุชูุงูˆุถ ุนู„ู‰ ู…ุนู„ู…ุงุช ESP SA ู…ุน ุงู„ู…ูุงุชูŠุญ ุซู… ุชูˆุฌูŠู‡ ุญุฑูƒุฉ ู…ุฑูˆุฑ ESP ุงู„ู…ุดูุฑุฉ ุจูŠู† ุฃุฌู‡ุฒุฉ ุงู„ูƒู…ุจูŠูˆุชุฑ. ููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉ ุŒ ุชุธู„ IKE SA ุนุงู…ู„ุฉ ุจูŠู† ุงู„ุดูŠุงุทูŠู† ู„ูุชุฑุฉ ุทูˆูŠู„ุฉ. ุนู„ุงูˆุฉ ุนู„ู‰ ุฐู„ูƒ ุŒ ููŠ ุฃูŠ ูˆู‚ุช ุŒ ูŠู…ูƒู†ู‡ู… ุฅุฌุฑุงุก ุชุจุงุฏู„ CREATE_CHILD_SA ุŒ ู„ุฅู†ุดุงุก ุงู„ู…ุฒูŠุฏ ู…ู† SAs ุงู„ุชุงุจุนุฉ ุŒ ุจุงู„ุฅุถุงูุฉ ุฅู„ู‰ INFORMATIONALุงู„ุชุจุงุฏู„ (ุฃุบุฑุงุถ ู…ุชู†ูˆุนุฉ).



ุชุญุชูˆูŠ ุฌู…ูŠุน ุฑุคูˆุณ ุฑุณุงุฆู„ IKEv2 ุนู„ู‰ ุงู„ุจู†ูŠุฉ ุงู„ุชุงู„ูŠุฉ:



                     1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       IKE SA Initiator's SPI                  |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       IKE SA Responder's SPI                  |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Next Payload |    Version    | Exchange Type |     Flags     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          Message ID                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            Length                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


  • SPIi - SPI ุจุงุฏุฆ IKE SA 64 ุจุช. ุงู„ู…ุนุฑู ุงู„ุฐูŠ ุชู… ุฅู†ุดุงุคู‡ ุนุดูˆุงุฆูŠู‹ุง ุจูˆุงุณุทุฉ ุงู„ุจุงุฏุฆ ููŠ ุฌู„ุณุฉ IKE.
  • SPIr - 64 ุจุช IKE SA ุงู„ู…ุณุชุฌูŠุจ SPI. ูˆุจุงู„ู…ุซู„ ุŒ ูˆู„ูƒู† SPI ูู‚ุท ู…ู† ุฌุงู†ุจ ุงู„ู…ุณุชุฌูŠุจ. ููŠ ุงู„ุฑุณุงู„ุฉ ุงู„ุฃูˆู„ู‰ ู…ู† ุงู„ุจุงุฏุฆ ุŒ ูŠุชู… ู…ู„ุก ู‡ุฐุง ุงู„ุญู‚ู„ ุจุตูุฑ ุจุงูŠุช.
  • NP - ุงู„ุญู…ูˆู„ุฉ ุงู„ุชุงู„ูŠุฉ 8 ุจุช. ู…ุนุฑู‘ู ุงู„ุญู…ูˆู„ุฉ ุงู„ุชูŠ ุชู„ูŠ ุงู„ุฑุฃุณ.
  • ุงู„ุฅุตุฏุงุฑ - ุฅุตุฏุงุฑ 8 ุจุช ู…ู† ุจุฑูˆุชูˆูƒูˆู„ IKE.
  • ExchType - ู†ูˆุน 8 ุจุช ุงู„ุตุฑู IKE: IKE_SA_INIT ุŒ IKE_AUTH ุŒ CREATE_CHILD_SAุŒ ุฃูˆ INFORMATIONAL .
  • Flags โ€” 8- . .
  • MsgID โ€” 32- . , , replay-. โ€” request/response MsgID. , .
  • Len โ€” 32- ( + ).


SPIi + SPIr ู‡ูŠ 128 ุจุช. ู„ู…ุงุฐุง ูƒุซูŠุฑู‹ุง ุนู†ุฏู…ุง ูŠุญุชูˆูŠ ESP ุนู„ู‰ 32 ุจุช ูู‚ุทุŸ ุฃูˆู„ุงู‹ ุŒ ู†ุธุฑู‹ุง ู„ุฃู†ู‡ุง ุบูŠุฑ ู…ุชุทุงุจู‚ุฉ ุŒ ูˆู„ูƒู† ูŠุชู… ุฅู†ุดุงุคู‡ุง ุจุดูƒู„ ุดุจู‡ ุนุดูˆุงุฆูŠ ุŒ ูุฅู† 64 ุจุช ู„ุฌุงู†ุจ ูˆุงุญุฏ ุณุชูƒูˆู† ูƒุงููŠุฉ ู„ุชุฌู†ุจ ุงู„ุงุตุทุฏุงู…ุงุช. ุซุงู†ูŠู‹ุง ุŒ ูŠุฑุชุจุท ESP ุฃูŠุถู‹ุง ุจุนู†ุงูˆูŠู† IP ุŒ ููŠ ุญูŠู† ุฃู† ุฌู„ุณุฉ IKE ู„ูŠุณุช ูƒุฐู„ูƒ ุจุดูƒู„ ุนุงู… - ูŠู…ูƒู† ู„ู„ุฃุทุฑุงู ุจุณู‡ูˆู„ุฉ ุชุบูŠูŠุฑ ุนู†ุงูˆูŠู† IP ุงู„ุฎุงุตุฉ ุจู‡ู… (ุนู…ูŠู„ ุงู„ู‡ุงุชู ุงู„ู…ุญู…ูˆู„) ูˆุงู„ุงุณุชู…ุฑุงุฑ ููŠ ุงู„ุชูˆุงุตู„.



TLS 1.3: ุณูŠุคุฏูŠ ุชุบูŠูŠุฑ ุนู†ูˆุงู† IP ุฅู„ู‰ ู‚ุทุน ุงู„ุงุชุตุงู„. ุณุชุญุชุงุฌ ุฅู„ู‰ ุฅุนุงุฏุฉ ุงู„ู…ุตุงูุญุฉ ุŒ ุญุชู‰ ู…ุน iPSK ุŒ ูˆุชูˆููŠุฑ ุงู„ู…ูˆุงุฑุฏ ู„ู„ุชุดููŠุฑ ุบูŠุฑ ุงู„ู…ุชู…ุงุซู„ ุŒ ูˆู‡ุฐุง ู‡ูˆ 1.5 ุฑุญู„ุฉ ุฐู‡ุงุจู‹ุง ูˆุฅูŠุงุจู‹ุง ุจุงู„ุฅุถุงูุฉ ุฅู„ู‰ ุฑุญู„ุงุช ุฐู‡ุงุจู‹ุง ูˆุฅูŠุงุจู‹ุง ู„ุฅู†ุดุงุก ุงุชุตุงู„ TCP. ุณูŠุณุชุบุฑู‚ ุฅู†ุดุงุก ESP SAs ุงู„ุชุงุจุนุฉ ุนู„ู‰ ุนู†ุงูˆูŠู† IP ุงู„ุฌุฏูŠุฏุฉ ุŒ ููŠ ุงุชุตุงู„ IKE ุงู„ุฐูŠ ุชู… ุฅู†ุดุงุคู‡ ุจุงู„ูุนู„ (ุบูŠุฑ ู…ุฑุชุจุท ุจุงู„ุนู†ุงูˆูŠู†) ุŒ ุฑุญู„ุฉ ูˆุงุญุฏุฉ ุฐู‡ุงุจู‹ุง ูˆุฅูŠุงุจู‹ุง (+ ุฐู‡ุงุจู‹ุง ูˆุฅูŠุงุจู‹ุง ู„ุฅุฒุงู„ุฉ ุงู„ู‚ุฏูŠู…ุฉ ุŒ ูˆู„ูƒู† ู‡ุฐุง ุณูŠุญุฏุซ ุจุงู„ูุนู„ ููŠ ุฎู„ููŠุฉ ESP SA ุนุงู…ู„ ุฌุฏูŠุฏ)



ูŠุชุจุน ุฑุฃุณ IKE ุญู…ูˆู„ุฉ ูˆุงุญุฏุฉ ุฃูˆ ุฃูƒุซุฑ. ูƒู„ ุญู…ูˆู„ุฉ ู„ู‡ุง ุฑุฃุณ ุชู†ุณูŠู‚ ุนุงู… ุŒ ู…ุชุจูˆุนู‹ุง ุจู…ุญุชูˆู‰ ุฎุงุต ุจู†ูˆุนู‡ุง. ุงู„ู…ุญุชูˆู‰ ู…ุญุงุฐุงุฉ 32 ุจุช. ุนู†ูˆุงู† ู…ุดุชุฑูƒ ู„ู„ุฌู…ูŠุน:



                     1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next Payload  |C|  RESERVED   |         Payload Length        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


  • Next Payload โ€” 8- . payload- . payload. payload IKE . Encrypted Payload, payload- NP ( payload IKE ), payload- .
  • C โ€” ยซยป payload. IKEv2 payload , IKE . payload . IKE vendor-specific , .
  • Len โ€” 16- payload ( + ).


ูˆุจุงู„ุชุงู„ูŠ ุŒ ุชุชูƒูˆู† ุฑุณุงุฆู„ IKE ู…ู† ุฑุฃุณ IKE ูˆุญู…ูˆู„ุงุช ู…ุฑุชุจุทุฉ ุจุจุนุถู‡ุง ุงู„ุจุนุถ ููŠ ุณู„ุณู„ุฉ. ูŠู…ูƒู† ู„ู€ Daemons ุชุฌุงู‡ู„ ุงู„ุญู…ูˆู„ุงุช ุบูŠุฑ ุงู„ุญุฑุฌุฉ ูˆุบูŠุฑ ุงู„ู…ุนุฑูˆูุฉ. ู…ุญุชูˆู‰ ุงู„ุญู…ูˆู„ุฉ ู…ู† ู†ูˆุน Nonce (ุจุนุฏ ุงู„ุฑุฃุณ) ู‡ูˆ ู…ุฌุฑุฏ ู…ุฌู…ูˆุนุฉ ุนุดูˆุงุฆูŠุฉ ู…ู† ุงู„ุจูŠุงู†ุงุช ุŒ ูˆู„ูŠุณ ุญุฌู…ู‹ุง ุซุงุจุชู‹ุง. ู„ูƒู† ู‡ู†ุงูƒ ุฃูŠุถู‹ุง ู‡ูŠุงูƒู„ ุฃูƒุซุฑ ุชุนู‚ูŠุฏู‹ุง. ููŠ ู…ุนุงูŠูŠุฑ IKE ุŒ ูŠุชู… ู‚ุจูˆู„ ุงู„ุชุนูŠูŠู†ุงุช ุงู„ู‚ุตูŠุฑุฉ ู„ุฃู†ูˆุงุน ุงู„ุญู…ูˆู„ุฉ (ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ N * ู„ู„ุฑุณุงุฆู„ nonce ุŒ ุญูŠุซ ูŠูƒูˆู† "*" ุฅู…ุง "i" (ุงู„ุจุงุฏุฆ) ุฃูˆ "r" (ุงู„ู…ุณุชุฌูŠุจ)).



ุณูŠุฌู…ุง



ู…ู† ูˆุฌู‡ุฉ ู†ุธุฑ ุงู„ุชุดููŠุฑ ุŒ ุชู†ุชู…ูŠ IKEv1 / IKEv2 ุฅู„ู‰ ูุฆุฉ STS ูˆ ISO / IEC IS 9798-3 ูˆ SIGMA (SIGn-and-MAc) ู„ุจุฑูˆุชูˆูƒูˆู„ุงุช ุชุจุงุฏู„ ุงู„ู…ูุงุชูŠุญ ุงู„ู…ุตุฏู‚ ุนู„ูŠู‡ุง. ู‡ุฐู‡ ุญู„ูˆู„ ู…ุฏุฑูˆุณุฉ ุฌูŠุฏู‹ุง ูˆุชู… ุงู„ุชุญู‚ู‚ ู…ู†ู‡ุง ุฑูŠุงุถูŠู‹ุง (SIGMA). ููŠ ู…ู‚ุงู„ุชูŠ "P2P F2F E2EE IM ููŠ ุฅุญุฏู‰ ุงู„ุฃู…ุณูŠุงุช" ุŒ ุณุจู‚ ู„ูŠ ุฃู† ูˆุตูุช ู…ุจุฏุฃ ุชุดุบูŠู„ ูˆุชู†ููŠุฐ ุจุฑูˆุชูˆูƒูˆู„ SIGMA-I. IKEv2 ู…ุดุงุจู‡ ุชู…ุงู…ู‹ุง. ุนู†ุฏู…ุง ู†ู†ุงู‚ุด ุฃู…ุงู† ุจุฑูˆุชูˆูƒูˆู„ ุงู„ู…ุตุงูุญุฉ ุŒ ู…ุงุฐุง ู†ุชูˆู‚ุนุŸ



  • ุณุฑูŠุฉ ุงู„ุฑุณุงุฆู„ ุงู„ู…ุฑุณู„ุฉ ุ›
  • ุฃุตุงู„ุฉ ูˆุณู„ุงู…ุฉ ุงู„ุฑุณุงุฆู„ ุงู„ู…ุฑุณู„ุฉ - ูŠุฌุจ ุงู„ูƒุดู ุนู† ุชุบูŠูŠุฑู‡ุง ุ›
  • ุงู„ุญู…ุงูŠุฉ ู…ู† ู‡ุฌู…ุงุช ุฅุนุงุฏุฉ ุงู„ุฅุฑุณุงู„ - ูŠุฌุจ ุงู„ูƒุดู ุนู† ุญู‚ูŠู‚ุฉ ูู‚ุฏุงู† ุงู„ุฑุณุงุฆู„ ุฃูˆ ุฅุนุงุฏุฉ ุชุดุบูŠู„ู‡ุง ุ›
  • ;

    perfect forward secrecy (PFS) โ€” PSK ( IKE ESP SA). ;

    / ( ) IKE . / ( ) ;

    , , . .



ุจุนุฏ ุชุจุงุฏู„ IKE_SA_INIT ุŒ ูŠูƒูˆู† ู„ู„ุดูŠุงุทูŠู† ุนู†ุงูˆูŠู† ุจุนุถู‡ู… ุงู„ุจุนุถ ุŒ SPIi + SPIr ู‚ูŠู…ุฉ ุฌู„ุณุฉ IKE ุŒ ุฎูˆุงุฑุฒู…ูŠุงุช SA ุงู„ู…ุชูุงูˆุถ ุนู„ูŠู‡ุง (ููŠ ุญุงู„ุฉ IKE ุŒ ู‡ุฐู‡ ู‡ูŠ ุงุชูุงู‚ูŠุฉ ุงู„ู…ูุชุงุญ ( DH ) ุŒ ุชุดููŠุฑ / ู…ุตุงุฏู‚ุฉ ุงู„ุฑุณุงุฆู„ ( ENCR ) ุŒ ุฎูˆุงุฑุฒู…ูŠุงุช ุฅู†ุดุงุก ุงู„ู…ูุชุงุญ ( PRF )) ุŒ ุงู„ู…ูุชุงุญ ุงู„ุนู…ูˆู…ูŠ (DH) ู„ู„ุฌุงู†ุจ ุงู„ุขุฎุฑ. ู‡ุฐุง ูŠูƒููŠ ู„ุญูุธ ุงู„ุญุงู„ุฉ ููŠ ุงู„ุฐุงูƒุฑุฉ ูˆุชู†ููŠุฐ ุงุชูุงู‚ูŠุฉ ุงู„ู…ูุงุชูŠุญ (Diffie-Hellman ุŒ GOST R 34.10-VKO ุŒ curve25519 ุŒ ุฅู„ุฎ) ุŒ ูˆุฅู†ุดุงุก ู…ูุชุงุญ ู…ุชู…ุงุซู„ ู„ุชุดููŠุฑ ุงู„ุญู…ูˆู„ุฉ ุงู„ู†ุงูุนุฉ ู„ุฑุณุงุฆู„ IKE ุงู„ู„ุงุญู‚ุฉ.



TLS 1.3: ุชู†ุณูŠู‚ ุฑุณุงุฆู„ ุงู„ู…ุตุงูุญุฉ ู…ุฎุชู„ู ุชู…ุงู…ู‹ุง ุŒ ูู‡ู†ุงูƒ ุงู„ูƒุซูŠุฑ ู…ู† ุงู„ุฅุฑุซ ุŒ ูˆู„ูƒู† ููŠ ุงู„ุฃุณุงุณ ู„ุง ุดูŠุก ูŠุจุฑุฒ. ูŠุชู… ุงุณุชุฎุฏุงู… ุงู„ุญู‚ู„ ุงู„ุนุดูˆุงุฆูŠ ุจุฏู„ุงู‹ ู…ู† ุงู„ุญู‚ู„ nonce. ุจุฏู„ุงู‹ ู…ู† ุงู„ุญู…ูˆู„ุงุช ุŒ ุชู…ุฏูŠุฏุงุช ุนุฏูŠุฏุฉ. ุจุฏู„ุงู‹ ู…ู† ู‡ูŠูƒู„ ุงู‚ุชุฑุงุญ SA ุงู„ู…ุนู‚ุฏ ุŒ ูŠุชู… ุงุณุชุฎุฏุงู… ู…ุนุฑูุงุช ciphersuites ุŒ ูˆู‡ูŠ ุฃูƒุซุฑ ุฅุญูƒุงู…ุง ูˆุฃุจุณุท. ููŠ ุฑุฃูŠูŠ ุŒ ูุฅู† ู…ุฑูˆู†ุฉ ู…ู‚ุชุฑุญุงุช ุถู…ุงู† ุงู„ุจุฑู†ุงู…ุฌ (SA) ู…ูุฑุทุฉ ุŒ ูˆู„ูƒู† ููŠ IKEv2 ู„ุง ุชุฒุงู„ ู‡ุฐู‡ ู„ูŠุณุช ู…ุดูƒู„ุฉ ูˆูŠุชู… ูƒุชุงุจุฉ ุงู„ู‚ูŠู… ุงู„ู…ุดุงุจู‡ุฉ ู„ู€ ciphersuite ููŠ ู…ู„ู ุงู„ุชูƒูˆูŠู†. ูู‚ุท ู…ุน ุฅุตุฏุงุฑ TLS 1.3 ูŠุตุจุญ ุชุจุงุฏู„ DH ุฅู„ุฒุงู…ูŠู‹ุง.



ุงู„ู…ูˆุงุฏ ุงู„ุฑุฆูŠุณูŠุฉ IKE



ุจุนุฏ IKE_SA_INIT ุŒ ูŠุชู… ุฅู†ุดุงุก SKEYSEED :

SKEYSEED = PRF (Ni [: 8] || Nr [: 8]ุŒ DH-KEY)


ูŠุชู… ุชุญุฏูŠุฏ ุฎูˆุงุฑุฒู…ูŠุฉ PRF ููŠ IKE SA. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ุจุงู„ู†ุณุจุฉ ู„ู€ GOST IKEv2 ุŒ ู‡ุฐู‡ ู‡ูŠ ูˆุธูŠูุฉ HMAC-Stribog-512. ู…ูุชุงุญ PRF ู‡ูˆ ู‚ุทุนุฉ 64 ุจุช ู…ู† ูƒู„ nonce.



ูŠุจุฏูˆ ุชุงูู‡ู‹ุง ุŒ ู„ุฃู†ู‡ ูŠุชู… ู†ู‚ู„ ุงู„ุฑู…ูˆุฒ ุบูŠุฑ ุงู„ู…ูุตู„ูŠุฉ ุนู„ุงู†ูŠุฉ ุŒ ู…ู…ุง ูŠุนู†ูŠ ุฃู† ู…ูุชุงุญ PRF ู‡ุฐุง ู…ุนุฑูˆู ู„ุฃูŠ ุดุฎุต ุงุนุชุฑุถ ุญุฑูƒุฉ ุงู„ู…ุฑูˆุฑ. ูˆู„ูƒู† ูŠุชู… ุงุณุชุฎุฏุงู… PRF ู‡ู†ุง ุญุตุฑูŠู‹ุง ู„ุฅู†ุดุงุก ู…ูุชุงุญ ู…ู† ู†ุชูŠุฌุฉ DH-KEY ู„ุญุณุงุจ DH ุŒ ูˆู‡ูˆ ุบูŠุฑ ู…ุนุฑูˆู ุจุงู„ูุนู„ ู„ู„ู…ู‡ุงุฌู… . ูŠู…ูƒู† ุฃู† ุชูƒูˆู† ู†ุชูŠุฌุฉ ุฏุงู„ุฉ DH ู‚ูŠู…ุฉ ุถุฎู…ุฉ ูˆุบูŠุฑ ู…ุชุณุงูˆูŠุฉ ููŠ ุงู„ุงู†ุชุฑูˆุจูŠุง ุŒ ูˆูŠู…ูƒู† ุฃู† ุชูƒูˆู† ู†ู‚ุทุฉ ุนู„ู‰ ู…ู†ุญู†ู‰ ุฅู‡ู„ูŠู„ุฌูŠ - ูƒู„ ู‡ุฐุง ู„ุง ูŠู…ูƒู† ุงุณุชุฎุฏุงู…ู‡ ูƒู…ูุชุงุญ ู…ุชู…ุงุซู„ ู‚ุตูŠุฑ ุนุงู„ูŠ ุงู„ุงู†ุชุฑูˆุจูŠุง. ู„ุฐู„ูƒ ุŒ ุชุญุชุงุฌ ุฅู„ู‰ ุงุณุชุฎุฑุงุฌ ุงู„ุงู†ุชุฑูˆุจูŠุง ู…ู† DH-KEY (ู‡ุฐุง ู…ุฌุฑุฏ SKEYSEED ) ุŒ ุซู… ุชูˆุณูŠุน (ุชูˆุณูŠุน ) ุฅู„ู‰ ุงู„ุนุฏุฏ ุงู„ู…ุทู„ูˆุจ ู…ู† ุงู„ู…ูุงุชูŠุญ:



PRF+(SKEYSEED, Ni || Nr || SPIi || SPIr) ->
    SK_d || SK_ai || SK_ar || SK_ei || SK_er || SK_pi || SK_pr

PRF+(K,S) = T1 || T2 || T3 || T4 || ...
T1 = PRF(K,       S || 0x01)
T2 = PRF(K, T1 || S || 0x02)
T3 = PRF(K, T2 || S || 0x03)
T4 = PRF(K, T3 || S || 0x04)


ู‡ุฐู‡ ูƒู„ู‡ุง ุนู…ู„ูŠุฉ ุงุดุชู‚ุงู‚ ู…ูุชุงุญ ูƒู„ุงุณูŠูƒูŠุฉ ู…ุน ู…ุฑุงุญู„ ุงุณุชุฎุฑุงุฌ / ุชูˆุณูŠุน ุŒ ุนู„ู‰ ุบุฑุงุฑ ูˆุธูŠูุฉ HKDF . ูˆู„ูƒู† ุฅุฐุง ุงูุชุฑุถุช HKDF ุงุณุชุฎุฏุงู… ูˆุธุงุฆู ุงู„ุชุฌุฒุฆุฉ ุŒ ููŠู…ูƒู† ุงุณุชุฎุฏุงู… ุจู†ูŠุฉ PRF / PRF + ุจุจุณุงุทุฉ ู…ุน ุงู„ุฃุตูุงุฑ ุงู„ู…ุชู…ุงุซู„ุฉ - ููŠ ุญุงู„ุฉ ุงู†ุชุดุงุฑ AES-GCM + AES-XCBC-PRF ุŒ ูู„ู† ู†ุณุชุฎุฏู… ุฏุงู„ุฉ ุชุฌุฒุฆุฉ ููŠ ุฃูŠ ู…ูƒุงู† ุนู„ู‰ ุงู„ุฅุทู„ุงู‚ ุŒ ูˆุนุฏุฏ ุตุบูŠุฑ ุงู„ุฃูˆู„ูŠุงุช ุงู„ู…ุณุชุฎุฏู…ุฉ ุฌูŠุฏุฉ ุฏุงุฆู…ู‹ุง.



ุชู… ุฅู†ุดุงุก ุงู„ู…ูุงุชูŠุญ ุงู„ุชุงู„ูŠุฉ:



  • ู…ูุชุงุญ SK_d ู„ุฅู†ุดุงุก ู…ูุงุชูŠุญ ู„ู€ ESP SAs.
  • ู…ูุงุชูŠุญ SK_a [ir] ู„ู…ุตุงุฏู‚ุฉ ุฑุณุงู„ุฉ IKE. ู„ู… ูŠุชู… ุฅู†ุดุงุคู‡ / ุนุฏู… ุงุณุชุฎุฏุงู…ู‡ ุฅุฐุง ุชู… ุงู„ุงุชูุงู‚ ุนู„ู‰ ุฎูˆุงุฑุฒู…ูŠุฉ AEAD (AES-GCM ุŒ Grasshopper / Magma-MGM ุŒ ChaCha20-Poly1305 ุŒ ุฅู„ุฎ).
  • SK_e[ir] IKE .
  • SK_p[ir] AUTH.


TLS 1.3: ู„ุฏูŠู‡ ุฌุฏูˆู„ุฉ ู…ูุงุชูŠุญ ุฃูƒุซุฑ ุชุนู‚ูŠุฏู‹ุง ุจุดูƒู„ ู…ู„ุญูˆุธ. ูŠุชู… ุฅุฎุฑุงุฌ ุงู„ุงู†ุชุฑูˆุจูŠุง ู…ู† ุฑุณุงุฆู„ ุงู„ู…ุตุงูุญุฉ ุจุฃูƒู…ู„ู‡ุง ุฏูุนุฉ ูˆุงุญุฏุฉ ุŒ ุจุฏู„ุงู‹ ู…ู† ุงู„ุญู‚ูˆู„ ุงู„ูุฑุฏูŠุฉ. ู„ุง ูŠุชู… ู‚ุทุน ุงู„ุชุณู„ุณู„ ุงู„ู…ู…ุชุฏ ุงู„ุฐูŠ ุชู… ุฅู†ุดุงุคู‡ ุฅู„ู‰ ุนุฏุฏ ู…ู† ุงู„ู…ูุงุชูŠุญ (+ ู…ู„ุญ ู„ู‡ู… ุนู†ุฏ ุงู„ุญุงุฌุฉ) ุŒ ูˆู„ูƒู†ู‡ ุฃูŠุถู‹ุง ู…ุตุญูˆุจ ุจุชุญูˆู„ุงุช HMAC ู…ุน ุชุณู…ูŠุงุช (ุชุณู…ูŠุงุช) ู„ูƒู„ ุณูŠุงู‚ ู„ุงุณุชุฎุฏุงู… ู‡ุฐู‡ ุงู„ู…ูุงุชูŠุญ ุฃูˆ IVs ุงู„ุชูŠ ุชู… ุฅู†ุดุงุคู‡ุง. ูŠุนุฏ ุงุณุชุฎุฏุงู… ุงู„ุชุณู…ูŠุฉ ุงู„ู†ุตูŠุฉ / ุงู„ุชุทุจูŠู‚ / ุงู„ุณูŠุงู‚ ู„ุฃูŠ ู†ูˆุน ู…ู† ุงู„ู‚ูŠู… ุงู„ู…ูˆู„ุฏุฉ ู…ู…ุงุฑุณุฉ ุญุฏูŠุซุฉ ุฌูŠุฏุฉ ูˆูŠุณู‡ู„ ุงู„ู‚ูŠุงู… ุจู‡ุง ุฏุงุฆู…ู‹ุง ุจุฏู„ุงู‹ ู…ู† ุงู„ุชุณุงุคู„ ุนู…ุง ุฅุฐุง ูƒู†ุช ุจุญุงุฌุฉ ุฅู„ูŠู‡ุง. ุชุฌุฒุฆุฉ ูƒู„ ู…ุง ูŠุธู‡ุฑ ู‡ูˆ ุฃูŠุถู‹ุง ู…ู…ุงุฑุณุฉ ุฌูŠุฏุฉ ุฌุฏู‹ุง ุŒ "ู„ู† ุชุฒุฏุงุฏ ุณูˆุกู‹ุง". ูˆู…ุน ุฐู„ูƒ ุŒ ู‡ุฐุง ู„ุง ูŠุนู†ูŠ ุฃู† ุฃู…ุงู† IKEv2 ุฃุณูˆุฃ ุŒ ุฃูˆ ุฃู†ู‡ ูŠู…ูƒู† ู„ู„ู…ุฑุก ุฃู† ูŠุชูˆุตู„ ุจุณู‡ูˆู„ุฉ ุฅู„ู‰ ู…ูˆู‚ู ู†ุธุฑูŠ ุนู† ุจุนุฏ ุนู„ู‰ ุงู„ุฃู‚ู„ ุญูŠุซ ูŠู…ูƒู† ุฃู† ูŠูƒูˆู† ุบูŠุงุจ ุงู„ู…ู„ุตู‚ ููŠ ูŠุฏ ุงู„ู…ู‡ุงุฌู….ููŠ IKEv2 ุŒ ูŠูƒูˆู† ุงู„ู†ู‡ุฌ ุถุฆูŠู„ู‹ุง ุŒ ุจูŠู†ู…ุง ููŠ TLS 1.3 ู…ู† ุงู„ุฃูุถู„ "ุงู„ุชุฌุงูˆุฒ" (ู†ุธุฑู‹ุง ู„ุนุฏุฏ ุงู„ุนุถุงุฏุงุช ุฃูˆ ุงู„ุตุนูˆุจุงุช ุงู„ุชูŠ ุชู… ุฅุฌุฑุงุคู‡ุง ููŠ ุงู„ุฅุตุฏุงุฑุงุช ุงู„ุณุงุจู‚ุฉ ู…ู† ุงู„ุจุฑูˆุชูˆูƒูˆู„!). ู„ุง ูŠุฒุงู„ IKEv2 ูŠุณุชุฎุฏู… ู…ู†ุงู‡ุฌ ูˆุฃูˆู„ูŠุงุช ู…ุซุจุชุฉ ุŒ ูˆูŠุตุงุฏู‚ ุนู„ู‰ ูƒู„ ู…ุง ู‡ูˆ ู…ุทู„ูˆุจ ุŒ ูˆูŠุถุบุท / ูŠุฃุฎุฐ ููŠ ุงู„ุงุนุชุจุงุฑ ูƒู„ ุงู„ุงู†ุชุฑูˆุจูŠุง ุงู„ู…ู†ู‚ูˆู„ุฉ ุŒ ูˆูŠุณุชุฎุฏู… ู…ูุงุชูŠุญ ู…ุฎุชู„ูุฉ ู„ูƒู„ ุฌุงู†ุจ ูˆู…ู‡ู…ุฉ.



IKE_AUTH



ุจุนุฏ ุฐู„ูƒ ุŒ ูŠุชู… ุฅุฌุฑุงุก ุชุจุงุฏู„ IKE_AUTH ุŒ ู„ู„ู…ุตุงุฏู‚ุฉ ุนู„ู‰ ูƒู„ุง ุงู„ุทุฑููŠู† ูˆุงู„ุชูุงูˆุถ ุนู„ู‰ ESP SA:



    SK{IDi, [CERT, ...], [CERTREQ], [IDr], AUTH, SAi2, TSi, TSr} -->
<-- SK{IDr, [CERT, ...],                   AUTH, SAr2, TSi, TSr}


  • ุชุญุชูˆูŠ ุฑุณุงุฆู„ IKE ุนู„ู‰ ุญู…ูˆู„ุฉ ู…ุดูุฑุฉ ( SK ) ุŒ ูŠูˆุฌุฏ ุจุฏุงุฎู„ู‡ุง ุฌู…ูŠุน ุงู„ุฑุณุงุฆู„ ุงู„ุฃุฎุฑู‰.
  • ูŠูˆูุฑ ุงู„ุจุงุฏุฆ ู…ุนุฑูู‡ ( IDi ) ุŒ ูˆุงู„ู…ูˆุซู‚ ( AUTH ) ุŒ ูˆุนุฑุถ SA ู„ู€ ESP ( SAi2 ) ูˆุฒูˆุฌ ุงู„ุจุงุฏุฆ / ุงู„ู…ุณุชุฌูŠุจ ุŒ ู…ุง ูŠุณู…ู‰ ู…ุญุฏุฏุงุช ุญุฑูƒุฉ ุงู„ู…ุฑูˆุฑ ( TS * ). ูŠู…ูƒู†ู‡ ุฃูŠุถู‹ุง ุฅุฑุณุงู„ ู…ุนุฑู ุงู„ู…ุณุชุฌูŠุจ ุงู„ู…ุชูˆู‚ุน ุงุฎุชูŠุงุฑูŠู‹ุง ุŒ ูˆุงู„ุฐูŠ ูŠู…ูƒู† ุงุนุชุจุงุฑู‡ ู†ูˆุนู‹ุง ู…ู† ู†ุธูŠุฑ SNI ู…ู† TLS.
  • ูˆุงุณุชุฌุงุจุฉ ู„ุฐู„ูƒ ุŒ ูŠุชู„ู‚ู‰ ู…ุนุฑู‘ู ุงู„ู…ุณุชุฌูŠุจ ุŒ ูˆุงู‚ุชุฑุงุญ ESP SA ุงู„ู…ุชูุงูˆุถ ุนู„ูŠู‡ ุŒ ูˆู…ุญุฏุฏุงุช ุญุฑูƒุฉ ุงู„ู…ุฑูˆุฑ ุงู„ู…ุคูƒุฏุฉ ุŒ ูˆุงู„ู…ุตุฏู‚.
  • ุจุนุฏ ุฐู„ูƒ ุŒ ูŠุนุชุจุฑ ูƒู„ุง ุงู„ุทุฑููŠู† ุฃู† ุจุนุถู‡ู…ุง ุงู„ุจุนุถ ู…ูˆุซู‚ู‹ุง ุŒ ูˆู„ู‡ู…ุง ุงุชูุงู‚ูŠุฉ ุจุดุฃู† ESP SA ุŒ ูˆุญุฑูƒุฉ ุงู„ู…ุฑูˆุฑ ุงู„ุชูŠ ูŠุฌุจ ุฃู† ุชู†ุชู…ูŠ ุฅู„ู‰ ESP ุŒ ูˆูŠู…ูƒู†ู‡ู…ุง ุจุงู„ูุนู„ ุฅุตุฏุงุฑ ุฃู…ุฑ ุฅู„ู‰ kernel ู„ุฅู†ุดุงุก SA ุŒ ูˆุฑุจู…ุง SP (ู‡ู†ุงูƒ ุนู†ุงุตุฑ ุนููˆูŠุฉ ู„ุง ุชุชุนุงู…ู„ ู…ุน SP ุนู„ู‰ ุงู„ุฅุทู„ุงู‚).


ุงู„ุขู† ุจู…ุฒูŠุฏ ู…ู† ุงู„ุชูุงุตูŠู„ ุญูˆู„ ู‡ุฐู‡ ุงู„ุญู…ูˆู„ุงุช:



  • ID - ู…ุนุฑู ุงู„ุทุฑู. ูŠุญุชูˆูŠ ุนู„ู‰ ู†ูˆุน ุงู„ุชุนุฑูŠู ูˆุงู„ุจูŠุงู†ุงุช ุงู„ุฎุงุตุฉ ุจู‡. ูŠู…ูƒู† ุชุญุฏูŠุฏ ุงู„ุฃุทุฑุงู ุจุนุฏุฉ ุทุฑู‚: ุนู†ูˆุงู† IPv4 / IPv6 ุŒ FQDN (ุงุณู… ู…ุฌุงู„ ู…ุคู‡ู„ ุจุงู„ูƒุงู…ู„ ุŒ ู…ุฌุฑุฏ ุณู„ุณู„ุฉ ุŒ ุงู„ุทุฑูŠู‚ุฉ ุงู„ุฃูƒุซุฑ ุดูŠูˆุนู‹ุง) ุŒ ุนู†ูˆุงู† ุงู„ุจุฑูŠุฏ ุงู„ุฅู„ูƒุชุฑูˆู†ูŠ RFC822 ุŒ ุงู„ุงุณู… ุงู„ู…ู…ูŠุฒ ASN.1 DER (ุงู„ุทุฑูŠู‚ุฉ ุงู„ุฃูƒุซุฑ ุดูŠูˆุนู‹ุง ุนู†ุฏ ุงุณุชุฎุฏุงู… ุดู‡ุงุฏุงุช X.509) ุฃูˆ ุงู„ุงุณู… ุงู„ุนุงู… ูุถู„ุง ุนู† ุงู„ุจุงุฆุน ุงู„ู…ุญุฏุฏ.
  • AUTH โ€” . PRF ( MAC-), (pre-shared key (PSK)), . (TBS*):



    TBSi = Msg0 || Nr || PRF(SK_pi, IDi)
    TBSr = Msg1 || Ni || PRF(SK_pr, IDr)
    


    (Msg0), nonce (Nr), (IDi), ยซยป . , SK_pi ( ). ยซยป.



    / . . ( Ni Nr), . , , .



    , . ( ), . , - . round-trip-. SIGMA- , IKEv2, ESP SA, . , , . SIGMA MAC c ( SK_*). IKEv2 PRF, . , PRF(ID*) , brute-force ( ) .



    PSK, :



    AUTHi = PRF(PRF(PSK, "Key Pad for IKEv2"), TBSi)
    AUTHr = PRF(PRF(PSK, "Key Pad for IKEv2"), TBSr)
    


    PRF(PSK) PSK ? PSK PRF . PSK , /. PRF() ยซยป . PRF(PSK) PSK PSK , ( Argon2, Balloon ).

  • SA*2 โ€” SA , ESP .
  • TS* โ€” . : IPv4/IPv6 , IP (), / (), / . :



    TSi = ((proto=17, port=100, fc::123 - fc::123),
           (proto=17, port=200, fc::123 - fc::123))
    TSr = ((proto=17, port=300, :: - ffff:..:ffff),
           (proto=17, port=400, :: - ffff:..:ffff))
    


    , UDP ( = 17), 100- 200- fc::123 , UDP 300 400. , IP . , , IP , ( , ICMP ). , .



    UDP . , , , 100 300-, ESP SA .



    ูŠุฑุณู„ ุงู„ุทุฑู ุงู„ู…ุณุชุฌูŠุจ ุงุฎุชูŠุงุฑุงุชู‡ ุงู„ู…ุคูƒุฏุฉ ู…ู† ุงู„ู…ุญุฏุฏุงุช ุŒ ูˆุงู„ุชูŠ ุชุชุทุงุจู‚ ุฃูˆ ู‚ุฏ ุชุญุชูˆูŠ ุนู„ู‰ ู†ุทุงู‚ุงุช ุงุฎุชูŠุงุฑ ุฃุถูŠู‚.


ูŠุชู… ุชุดููŠุฑ ูƒู„ ู‡ุฐู‡ ุงู„ุญู…ูˆู„ุงุช ุนู„ู‰ ุงู„ู…ูุชุงุญ ุงู„ุฐูŠ ุชู… ุฅู†ุดุงุคู‡ ุจูˆุงุณุทุฉ IKE SA ุจุนุฏ ุชุจุงุฏู„ ุงู„ุฑุณุงุฆู„ ุงู„ุฃูˆู„. ุงู„ุชุดููŠุฑ ุถุฑูˆุฑูŠ ู„ุฅุฎูุงุก ุงู„ู…ุนุฑูุงุช ุงู„ู…ุฑุณู„ุฉ ู„ู„ุฃุทุฑุงู ูˆุดู‡ุงุฏุงุชู‡ู… ูˆุงู„ู…ุนู„ูˆู…ุงุช ุงู„ุฎุงุตุฉ ุงู„ุฃุฎุฑู‰ ููŠ ุงู„ุนุฑุงุก. ูˆู…ุน ุฐู„ูƒ ุŒ ูŠู…ูƒู† ู„ู„ู…ู‡ุงุฌู… ุงู„ู†ุดุท ุฃู† ูŠุฏุฎู„ ููŠ ุฃูˆู„ ุชุจุงุฏู„ IKE_SA_INIT ูˆูŠุฑู‰ ู‡ุฐู‡ ุงู„ู…ุนู„ูˆู…ุงุช ุŒ ุนู„ู‰ ุงู„ุฑุบู… ู…ู† ุฃู†ู‡ ู„ู… ูŠุนุฏ ู‚ุงุฏุฑู‹ุง ุนู„ู‰ ู…ุชุงุจุนุฉ ุงู„ุฌู„ุณุฉ.



TLS 1.3 :



  • application ( ServerHello ||โ€ฆ || Finished, , , ), (Client Finished). IKEv2 ESP SA round-trip-, TCP/SCTP handshake.
  • , (IDr ), SNI, ClientHello . IKEv2 . ESNI, , DNS, DPI.
  • IKEv2 , ยซยป/ยซยป ( ), PSK, , EAP. TLS 1.3 X.509 . TLS 1.3 X.509 . RFC TLS 1.3 ยซยป . IKEv2 / .
  • TLS 1.3 , , application ClientHello (EarlyData), application Client Finished . TLS 1.3 EarlyData .
  • TLS (session resumption), iPSK , , . IKEv2 , RFC 5723 . IKE , , ( TCP/SCTP/whatever ) IP .
  • TLS . IKEv2 IKE SA ESP SA . , () high-grade , . , , , . - ChaCha20-Poly1305, AES-256-GCM-16, -MGM . IKE SA ESP - NIST-.


ุฅู† ุชุดููŠุฑ ุญู…ูˆู„ุฉ SK ุจุงุณุชุฎุฏุงู… ุดูุฑุงุช AEAD ู„ูŠุณ ุตุนุจู‹ุง ูˆูŠุดุจู‡ ุชู…ุงู…ู‹ุง ESP ุŒ ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ู„ู€ AES-GCM (ุญูŠุซ ูŠูƒูˆู† ุงู„ู…ู„ุญ ุŒ ุนู„ู‰ ุบุฑุงุฑ AES-GCM-ESP ุŒ ุฌุฒุกู‹ุง ู…ู† ุงู„ู…ุงุฏุฉ ุงู„ุฃุณุงุณูŠุฉ):



AES-GCM(
    key             = SK_*e,
    plaintext       = 64-bit IV || payloads || pad || 8-bit padLen,
    nonce           = 32-bit salt || IV,
    associated-data = IKEHdr || unencrypted payloads
) -> ciphertext


ุงู„ู…ุตุงุฏู‚ุฉ ู…ุน EDS



ู…ุงุฐุง ู„ูˆ ุฃุฑุงุฏ ุฃูŠ ุทุฑู ุงู„ู…ุตุงุฏู‚ุฉ ุจุงุณุชุฎุฏุงู… ุงู„ุชูˆู‚ูŠุน ูˆุดู‡ุงุฏุงุช X.509ุŸ ู„ู‡ุฐุง ุŒ ุจุงู„ูุนู„ ููŠ IKE_SA_INIT ุŒ ูŠู…ูƒู† ุฅุฑุณุงู„ ุญู…ูˆู„ุฉ CERTREQ ุŒ ู…ุทุงู„ุจุฉ ุงู„ุฌุงู†ุจ ุงู„ุขุฎุฑ ุจุชู‚ุฏูŠู… ุดู‡ุงุฏุฉ ููŠ ุดูƒู„ ุญู…ูˆู„ุงุช CERT . ูŠุญุชูˆูŠ CERT ูˆ CERTREQ ุนู„ู‰ ู…ุนุฑู ุชู†ุณูŠู‚ ุงู„ุดู‡ุงุฏุฉ ูˆุงู„ู…ุญุชูˆู‰ ุงู„ุฎุงุต ุจุงู„ุชู†ุณูŠู‚. ุนุงุฏุฉู‹ ุŒ ูŠู…ูƒู† ุชู‚ุฏูŠู… ุงู„ุดู‡ุงุฏุงุช ูƒู€ ASN.1 DER ุฃูˆ ุชุฌุฒุฆุฉ SHA1 ู„ู„ุดู‡ุงุฏุฉ + ุนู†ูˆุงู† URL ุญูŠุซ ูŠู…ูƒู† ุชู†ุฒูŠู„ู‡ุง. ู†ุธุฑู‹ุง ู„ุฃู† ุญุฌู… UDP ู…ู‚ูŠุฏ ุจูˆุงุณุทุฉ MTU ุŒ ูˆูŠู…ูƒู† ุฃู† ุชูƒูˆู† ุฃุญุฌุงู… ุงู„ุดู‡ุงุฏุงุช ุฃูƒุจุฑ ุจูƒุซูŠุฑ ุŒ ูุฅู† ุฎูŠุงุฑ ุงู„ุชุฌุฒุฆุฉ + URL ู…ููŠุฏ ู‡ู†ุง (ุนู„ู‰ ุงู„ุฑุบู… ู…ู† ุฃู†ู‡ ูŠู…ูƒู† ุงุนุชุจุงุฑู‡ ุนูƒุงุฒู‹ุง).



ูŠุณุฑุฏ IKEv2 RFC ูˆุญุฏู‡ ุŒ ุจุงู„ุฅุถุงูุฉ ุฅู„ู‰ ุดู‡ุงุฏุงุช X.509 ุงู„ู…ุดูุฑุฉ ุจูˆุงุณุทุฉ DER ูˆุนู†ุงูˆูŠู† SHA1 + URL: ุดู‡ุงุฏุฉ X.509 ู…ุบู„ูุฉ PKCS # 7 ุŒ ูˆุดู‡ุงุฏุฉ PGP ุŒ ูˆู…ูุชุงุญ ู…ูˆู‚ุน DNS ุŒ ูˆุดู‡ุงุฏุฉ SPKI ุŒ ูˆุดู‡ุงุฏุฉ ุณู…ุฉ X.509 ุŒ ูˆู…ูุงุชูŠุญ ุนุงู…ุฉ ุฎุงู…. ุฅุฐุง ูƒู†ุช ุชุฑุบุจ ููŠ ุงุณุชุฎุฏุงู… IPsec ุจู†ูุณ ุงู„ุทุฑูŠู‚ุฉ ู…ุซู„ TLS ู„ุญุงู„ุฉ ุงู„ุงุณุชุฎุฏุงู… ุงู„ุฃูƒุซุฑ ุดูŠูˆุนู‹ุง: ุฎุงุฏู… ู…ุตุฏู‚ ุนู„ูŠู‡ ุจุดู‡ุงุฏุฉ X.509 ูˆุนู…ูŠู„ ู…ุฌู‡ูˆู„ ุŒ ูู„ุง ุชูˆุฌุฏ ุทุฑูŠู‚ุฉ ููŠ IKEv2 ู„ุนุฏู… ู…ุตุงุฏู‚ุฉ ุฃุญุฏ ุงู„ุฃุทุฑุงู. ู„ูƒู† RFC 5386 ูŠุตู ู†ู‡ุฌู‹ุง ุฃูุถู„ ู…ู† ู„ุง ุดูŠุก ู„ู„ุฃู…ุงู† ุญูŠุซ ูŠู…ูƒู† ู„ู€ "ุงู„ุนู…ูŠู„" ุงุณุชุฎุฏุงู… ุงู„ู…ูุชุงุญ ุงู„ุนุงู… ุงู„ู…ุฌุฑุฏ ูˆูŠู…ูƒู† ู„ู„ุฎุงุฏู… ุงู„ุชุนุงู…ู„ ู…ุนู‡ ุนู„ู‰ ุฃู†ู‡ ู…ุฌู‡ูˆู„.



ุจุงู„ุฅุถุงูุฉ ุฅู„ู‰ ุฐู„ูƒ ุŒ ูŠุชู… ุฏุนู… ู…ุตุงุฏู‚ุฉ EAP ุจุดูƒู„ ู‚ูŠุงุณูŠ ุŒ ู…ุน ุฅุถุงูุฉ ุฑุญู„ุงุช ุงู„ุฐู‡ุงุจ ูˆุงู„ุนูˆุฏุฉ ุฅู„ู‰ IKE_AUTHุชุจุงุฏู„. ูŠู…ูƒู† ู„ู€ EAP ุชุญุฏูŠุฏ ู…ุง ุฅุฐุง ูƒุงู† ุงู„ุทุฑู ู‚ุฏ ุชู…ุช ู…ุตุงุฏู‚ุชู‡ ุฃู… ู„ุง ุŒ ูˆูƒุฐู„ูƒ ุฅู†ุดุงุก ู…ูุชุงุญ ุณูŠุฃุฎุฐู‡ IKEv2 ููŠ ุงู„ุงุนุชุจุงุฑ ูˆูŠุณุชุฎุฏู…ู‡. ุณุฃุนุฑุถ ู„ูƒ ูู‚ุท ุฑุณู…ู‹ุง ุชุฎุทูŠุทูŠู‹ุง ู„ูƒูŠููŠุฉ ุนู…ู„ EAP:



                 SAi1, KEi, Ni  -->
                                <--  SAr1, KEr, Nr
SK{IDi, [IDr], SAi2, TSi, TSr}  -->
                                <--  SK{IDr, AUTH, EAP}
                       SK{EAP}  -->
                                <--  SK{EAP(success)}
                      SK{AUTH}  -->
                                <--  SK{AUTH, SAr2, TSi, TSr}


TLS 1.3 : ููŠ ุฐู„ูƒ ุŒ ูŠุชู… ูˆุถุน ุงู„ุชูˆู‚ูŠุน (ุฃูˆ MAC ููŠ ุงู„ุฑุณุงู„ุฉ ุงู„ู†ู‡ุงุฆูŠุฉ ) ููˆู‚ ุงู„ุชุฌุฒุฆุฉ ู…ู† ุฌู…ูŠุน ุงู„ุฑุณุงุฆู„ ุงู„ู…ุฑุฆูŠุฉ ุงู„ุชูŠ ุดุงุฑูƒุช ููŠ ุนู…ู„ูŠุฉ ุงู„ู…ุตุงูุญุฉ. ุฃูŠุถุง ู†ู‡ุฌ ุฌูŠุฏ ุจุณูŠุท ูˆู…ูˆุซูˆู‚. ู„ุง ุชูˆุฌุฏ ุทุฑู‚ ู…ุชู†ูˆุนุฉ ู„ู„ู…ุตุงุฏู‚ุฉ. ูˆู„ูƒู† ุฃูˆุฏ ุฃู† ู†ุฑู‰ ุจุนุถ ุงู„ู‚ูˆูŠ ูƒู„ู…ุฉ ู…ุตุงุฏู‚ ุงุชูุงู‚ ู…ูุชุงุญ ุจุฑูˆุชูˆูƒูˆู„ (PAKE)ุŒ ู…ุซู„ ุงู„ุฑูˆุณูŠุฉ SESPAKE ุฃูˆ OPAQUE .



ุงู„ู…ูˆุงุฏ ุงู„ุฑุฆูŠุณูŠุฉ ESP SA ูˆุชุฌุฏูŠุฏู‡ุง



ู„ุฐู„ูƒ ุŒ ุชุญู‚ู‚ู†ุง ู…ู† ุงู„ู…ุตุงุฏู‚ุฉ ุŒ ูˆุชุญู‚ู‚ู†ุง ู…ู† ุตุญุฉ ุงู„ุงุชูุงู‚ูŠุฉ ุงู„ุฑุฆูŠุณูŠุฉ ุŒ ูˆุชูุงูˆุถู†ุง ู…ุน ESP SA ูˆู…ุญุฏุฏุงุช ุญุฑูƒุฉ ุงู„ู…ุฑูˆุฑ. ูŠุจู‚ู‰ ุฅู†ุดุงุก ู…ูุงุชูŠุญ ู…ุชู…ุงุซู„ุฉ ู„ู€ ESP ูˆูŠู…ูƒู† ุชุซุจูŠุช SA / SP ุงู„ู…ุทู„ูˆุจุฉ ููŠ ุงู„ู†ูˆุงุฉ:

PRF + (SK_dุŒ Ni || Nr) -> KEYMAT0 || ู…ูุชุงุญ 1


ูŠุชุทู„ุจ ุงู„ุงุชุตุงู„ ุซู†ุงุฆูŠ ุงู„ุงุชุฌุงู‡ ุฌู‡ุงุฒูŠ ESP SA ุŒ ู„ุฐู„ูƒ ูŠู‚ูˆู… IKEv2 ุจุฅู†ุดุงุก ู…ุงุฏุชูŠู† ุฑุฆูŠุณูŠุชูŠู† ููŠ ูˆู‚ุช ูˆุงุญุฏ ุŒ ูˆุงู„ุชูŠ ูŠุชู… ู†ู‚ู„ู‡ุง ุจุงู„ูุนู„ ู…ุจุงุดุฑุฉ ุฅู„ู‰ ุงู„ู†ูˆุงุฉ ููŠ SA ุงู„ู…ู‚ุงุจู„. ูŠุนุชู…ุฏ ุทูˆู„ ุงู„ู…ุงุฏุฉ ุนู„ู‰ ุฎูˆุงุฑุฒู…ูŠุฉ ESP ุงู„ู…ุณุชุฎุฏู…ุฉ (ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ูŠุชุทู„ุจ AES-GCM-ESP ุŒ ุจุงู„ุฅุถุงูุฉ ุฅู„ู‰ ุงู„ู…ูุชุงุญ ุŒ ู…ู„ุญ 32 ุจุช ุฃูŠุถู‹ุง). ู‚ูŠู…ุฉ SPI ู‡ูŠ ู‚ูŠู…ุฉ SPI ุงู„ู…ุญุฏุฏุฉ ู…ู† ู‚ุจู„ ูƒู„ ุทุฑู ููŠ ู…ู‚ุชุฑุญุงุช ESP SA.



ู…ุงุฐุง ู„ูˆ ุงุญุชุฌู†ุง ุฅู„ู‰ ุงู„ุงุชูุงู‚ ุนู„ู‰ ุนุฏุฉ ESP SA / SPs ุŒ ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ู„ุฃู†ู‡ ู„ุง ูŠู…ูƒู† ุชุญุฏูŠุฏ ูƒู„ ุงู„ุฑุบุจุงุช ููŠ ุฒูˆุฌ TSi / TSr ูˆุงุญุฏ ุŸ ู„ู‡ุฐุงุŒ CREATE_CHILD_SA ุงู„ุชุจุงุฏู„ ุชุณุชุฎุฏู… ุงู„ุชูŠ ุชุญุฏุซ ููŠ ุฃูŠ ูˆู‚ุช ุจุนุฏ IKE_AUTH . ูŠุชู… ุฅู†ุดุงุก ุทูู„ SA ููŠ ุงู„ุชุจุงุฏู„ ุงู„ุชุงู„ูŠ:



    SK {SA ุŒ Ni ุŒ [KEi] ุŒ TSi ุŒ TSr} ->
<- SK {SAุŒ NrุŒ [KEr]ุŒ TSiุŒ TSr}


ูŠุชู… ุชู‚ุฏูŠู… ุนุฑุถ SA ุŒ ูŠุชู… ุฅุฑุณุงู„ ู…ุญุฏุฏุงุช ุญุฑูƒุฉ ุงู„ู…ุฑูˆุฑ. ูƒู„ ุดูŠุก ูƒู…ุง ูƒุงู† ู…ู† ู‚ุจู„. ุชู… ุฅู†ุดุงุก ุงู„ู…ุงุฏุฉ ุงู„ุฑุฆูŠุณูŠุฉ ุจุงู„ูุนู„ ุจุงุณุชุฎุฏุงู… ู‡ุฐู‡ ุงู„ุฑู…ูˆุฒ ุงู„ุฌุฏูŠุฏุฉ. ุงุฎุชูŠุงุฑูŠู‹ุง ุŒ ูŠู…ูƒู†ูƒ ุงุณุชุฎุฏุงู… ุญู…ูˆู„ุงุช ุชุจุงุฏู„ ุงู„ู…ูุงุชูŠุญ ุŒ ูˆุงู„ุชูŠ ุชุถูŠู ุฅู†ุชุฑูˆุจูŠุง ูˆุชุฌุจุฑ ุงู„ุฃุทุฑุงู ุนู„ู‰ ุงุณุชุฎุฏุงู… ุงู„ู…ุฒูŠุฏ ู…ู† ุงู„ุชุดููŠุฑ ุบูŠุฑ ุงู„ู…ุชู…ุงุซู„. ู‚ุฏ ูŠูƒูˆู† ู…ู† ุงู„ุถุฑูˆุฑูŠ ู…ุฑุงู‚ุจุฉ ุฎุงุตูŠุฉ PFS ุจุงุณุชู…ุฑุงุฑ (ููŠ ุจุฑูˆุชูˆูƒูˆู„ OTR ุŒ ูŠุชู… ุฅุฑุณุงู„ ู…ูุงุชูŠุญ DH ุณุฑูŠุนุฉ ุงู„ุฒูˆุงู„ ู…ุน ูƒู„ ุฑุณุงู„ุฉ). ุณูŠุชู… ุนู…ู„ ุงู„ู…ุงุฏุฉ ุงู„ุฑุฆูŠุณูŠุฉ ููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉ ุนู„ู‰ ุงู„ู†ุญูˆ ุงู„ุชุงู„ูŠ:



PRF + (SK_dุŒ DH-KEY || Ni || Nr) -> KEYMAT0 || ู…ูุชุงุญ 1


ู…ุงุฐุง ู„ูˆ ุฃุฑุฏู†ุง ุชุฌุฏูŠุฏ IKE SA ู„ู„ุงุชุตุงู„ุŸ ู†ู‚ูˆู… ุจุฅุฌุฑุงุก ุงู„ุชุจุงุฏู„ ุงู„ุชุงู„ูŠ CREATE_CHILD_SA :



    SK {SA ุŒ Ni ุŒ KEi} ->
<- SK {SAุŒ NrุŒ KEr}


ุญูŠุซ ุณุชุญุชูˆูŠ SA ุจุงู„ูุนู„ ุนู„ู‰ ู…ู‚ุชุฑุญุงุช IKE SA ูˆุณูŠุชู… ุชุทูˆูŠุฑ SKEYSEED ุฌุฏูŠุฏ :



PRF (SK_d_old ุŒ DH-KEY || Ni || Nr) -> SKEYSEED


ูŠุชู… ุชุญุฏูŠุซ ู…ูุชุงุญ ESP SA ุฅู…ุง ุนู† ุทุฑูŠู‚ ุฅู†ุดุงุก ESP SA ุฌุฏูŠุฏ (ุจู…ุนุฑู SPI ู…ุฎุชู„ู) ูˆุญุฐู ุงู„ู‚ุฏูŠู… ุŒ ุฃูˆ ุนู† ุทุฑูŠู‚ ุฅุฑุณุงู„ ุฅุดุนุงุฑ ุฎุงุต (ุญูˆู„ู‡ ุฃุฏู†ุงู‡). ุณูŠูƒูˆู† ุชุญูˆูŠู„ ุญุฑูƒุฉ ุงู„ู…ุฑูˆุฑ ุฅู„ู‰ ุงุณุชุฎุฏุงู… ESP SA ุงู„ุฌุฏูŠุฏ ุดูุงูู‹ุง ูˆุฎุงุณุฑู‹ุง. ู„ูุชุฑุฉ ู‚ุตูŠุฑุฉ ุŒ ุณูŠูƒูˆู† ู„ุฏู‰ ุงู„ุฃุทุฑุงู ุงุซู†ูŠู† ู…ู† ESP SA ู†ุดุทุชูŠู† ุŒ ู…ู…ุง ุณูŠุณู…ุญ ุจู…ุนุงู„ุฌุฉ ุญุฑูƒุฉ ุงู„ู…ุฑูˆุฑ ุงู„ุชูŠ ู„ุง ุชุฒุงู„ ู‚ูŠุฏ ุงู„ู†ู‚ู„ ุนู„ู‰ ู‚ู†ูˆุงุช ุงู„ุงุชุตุงู„.



ูŠุชู… ุญุฐู ESP SA ุนู† ุทุฑูŠู‚ ุฅุฑุณุงู„ ุญู…ูˆู„ุฉ DELETE ููŠ ุงู„ุชุจุงุฏู„ุงุช ุงู„ู…ุนู„ูˆู…ุงุชูŠุฉ ุงู„ู„ุงุญู‚ุฉ ุงู„ุชูŠ ุชุณุฑุฏ SPI ุงู„ู…ุฑุงุฏ ุญุฐูู‡ุง. ู†ุธุฑู‹ุง ู„ุฃู† ุฌู…ูŠุน ESP SAs ู…ูˆุฌูˆุฏุฉ ููŠ ุฃุฒูˆุงุฌ (ู„ู„ุงุชุตุงู„ ุซู†ุงุฆูŠ ุงู„ุงุชุฌุงู‡) ุŒ ูŠุฑุณู„ ูƒู„ ุฌุงู†ุจ ู‚ูŠู… SPI ูู‚ุท ุฅู„ู‰ ESP SAs ุงู„ู…ุณุคูˆู„ุฉ ุนู† ุญุฑูƒุฉ ุงู„ู…ุฑูˆุฑ ุงู„ุตุงุฏุฑุฉ. ุงุณุชุฌุงุจุฉู‹ ู„ุฐู„ูƒ ุŒ ุงุณุชู‚ุจู„ ู‚ูŠู… SPI ESP SA ู„ุญุฑูƒุฉ ุงู„ู…ุฑูˆุฑ ุงู„ูˆุงุฑุฏุฉ.



    SK {D (SPIi)} ->
<- ูƒูˆุฑูˆู†ุง {D (SPIr)}


ูŠุชู… ุฃูŠุถู‹ุง ุญุฐู IKE SA ุนุจุฑ DELETE ุŒ ูˆู„ูƒู† ุจุงุณุชุฎุฏุงู… IKE SPI ูˆู‚ุจูˆู„ ุงุณุชุฌุงุจุฉ ูุงุฑุบุฉ ู…ุตุงุฏู‚ ุนู„ูŠู‡ุง:



    SK {D} ->
<- ูƒูˆุฑูˆู†ุง {}


TLS 1.3 : ุชูˆุฌุฏ ุขู„ูŠุฉ ู„ุชุฏูˆูŠุฑ ุงู„ู…ูุงุชูŠุญ ุนุจุฑ ุฑุณุงุฆู„ KeyUpdate ุŒ ูˆู„ูƒู† ู„ุง ุชูˆุฌุฏ ุฅู…ูƒุงู†ูŠุฉ ู„ุฅุถุงูุฉ ุฅู†ุชุฑูˆุจูŠุง ุฅุถุงููŠุฉ ุฃูˆ ุชู†ููŠุฐ DH. ู…ู† ุงู„ูˆุงุถุญ ุฃู† TLS ุบูŠุฑ ู…ุตู…ู… ู„ู„ุงุชุตุงู„ุงุช ุทูˆูŠู„ุฉ ุงู„ุฃู…ุฏ. ููŠ ุฃุญุณู† ุงู„ุฃุญูˆุงู„ ุŒ ูŠู…ูƒู†ูƒ ูู‚ุท ูƒุณุฑ ุงู„ุฌู„ุณุฉ ูˆู…ุชุงุจุนุฉ / ุฅู†ุดุงุก ุฌู„ุณุฉ ุฌุฏูŠุฏุฉ ุจู…ุตุงูุญุฉ iPSK-ECDHE.



IKEv1 ู„ุฏูŠู‡ ูƒู„ ู…ู† ุฅุฌุฑุงุก ุชุฌุฏูŠุฏ ู…ูุชุงุญ IKE ู…ู†ูุตู„ ูˆุขุฎุฑ ู…ู†ูุตู„ ู„ุฅุนุงุฏุฉ ุงู„ู…ุตุงุฏู‚ุฉ. ู„ุง ุชูˆุฌุฏ ุฅุนุงุฏุฉ ู…ุตุงุฏู‚ุฉ ููŠ IKEv2. ู„ู„ู‚ูŠุงู… ุจุฐู„ูƒ ุŒ ูŠุชู… ุฅู†ุดุงุก IKE SA ุงู„ุฌุฏูŠุฏ ุจุจุณุงุทุฉ ู…ู† ุงู„ุจุฏุงูŠุฉ ุŒ ูˆูŠุชู… ุญุฐู ุงู„ู‚ุฏูŠู… ุนุจุฑ DELETE .



TLS 1.3 : ู„ุฏูŠู‡ ุฅู…ูƒุงู†ูŠุฉ ู…ุตุงุฏู‚ุฉ ุงู„ุนู…ูŠู„ ุจุนุฏ ุงู„ู…ุตุงูุญุฉ ููŠ ุฃูŠ ูˆู‚ุช ุจุนุฏ ุงู„ู…ุตุงูุญุฉ ( ุงู†ุชู‡ู‰ู…ู† ูƒู„ุง ุงู„ุฌุงู†ุจูŠู†) ุŒ ูŠู…ูƒู† ู„ู„ุฎุงุฏู… ุฅุฑุณุงู„ ุทู„ุจ ู„ู…ุตุงุฏู‚ุฉ ุงู„ุนู…ูŠู„ ุจุงุณุชุฎุฏุงู… ุดู‡ุงุฏุฉ X.509. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ุนู…ูŠู„ ุŒ ูŠุชุฌูˆู„ ููŠ ุงู„ู…ูˆู‚ุน ุŒ ุงู†ุชู‚ู„ ุฅู„ู‰ ุตูุญุฉ ุญุณุงุจู‡ ุงู„ุดุฎุตูŠ. ููŠ IKEv2 ุŒ ู‡ุฐุง ุบูŠุฑ ู…ู…ูƒู† - ุชุชู… ุงู„ู…ุตุงุฏู‚ุฉ ูู‚ุท ููŠ ูˆู‚ุช ุงู„ู…ุตุงูุญุฉ.



ุฅุฎุทุงุฑ



ุฅุฐู† ูƒูŠู ูŠุชู… ุงู„ุชูุงูˆุถ ุนู„ู‰ ุงู„ุฃู†ูุงู‚ / ูˆุณุงุฆุท ุงู„ู†ู‚ู„ ุŒ TFCุŸ ู„ู‡ุฐุง ุงู„ุบุฑุถ ุŒ ูŠุชู… ุฅุถุงูุฉ ุญู…ูˆู„ุงุช "ุงู„ุฅุฎุทุงุฑุงุช" NOTIFY ( N ) ุฅู„ู‰ ุงู„ุทู„ุจ . ู‡ู†ุงูƒ ุงู„ุนุดุฑุงุช ู…ู† ุฃู†ูˆุงุน ุงู„ุฅุดุนุงุฑุงุช ููŠ IKEv2 RFC ูˆุญุฏู‡. ุชูุณุชุฎุฏู… ุงู„ุชู†ุจูŠู‡ุงุช ู„ู„ุฅุดุงุฑุฉ ุฅู„ู‰ ุงู„ุฃุฎุทุงุก ุŒ ูˆู‚ุถุงูŠุง ุชูุงูˆุถ SA ุŒ ูˆู…ุญุฏุฏุงุช ุญุฑูƒุฉ ุงู„ู…ุฑูˆุฑ ุŒ ูˆู…ุง



ุฅู„ู‰ ุฐู„ูƒ ... ู„ู„ุฅุดุงุฑุฉ ุฅู„ู‰ ุงู„ุฑุบุจุฉ ููŠ ุงุณุชุฎุฏุงู… ูˆุถุน ุงู„ู†ู‚ู„ ููŠ ESP SA ู…ุชูุงูˆุถ ุนู„ูŠู‡ ุŒ ุชู…ุช ุฅุถุงูุฉ ุฅุนู„ุงู† N (USE_TRANSPORT_MODE) ู…ู† ู‚ุจู„ ูƒู„ ู…ู† ุงู„ุจุงุฏุฆ ูˆุงู„ู…ุณุชุฌูŠุจ ู„ุชุฃูƒูŠุฏ ู…ูุงูˆุถุงุช ุงู„ูˆุถุน. ุฅุดุงุฑุงุช ุชู†ุจูŠู‡ N (ESP_TFC_PADDING_NOT_SUPPORTED) ุจุฃู† TFC ุบูŠุฑ ู…ุฏุนูˆู…. ูˆ N (HTTP_CERT_LOOKUP_SUPPORTED) ูŠุดูŠุฑ ุฅู„ู‰ ุฃู† ูŠุชู… ุงุนุชู…ุงุฏ ุดู‡ุงุฏุฉ ู…ู† URL ุชุญู…ูŠู„.



ุชุดุจู‡ ุงู„ู‚ุฏุฑุฉ ุนู„ู‰ ุชุญุฏูŠุซ ู…ูุชุงุญ ESP SA ุŒ ุฏูˆู† ุฅู†ุดุงุก ESP SAs ุฌุฏูŠุฏุฉ ุŒ ุฅุฌุฑุงุก ุฅู†ุดุงุก ESP SA ุชุงุจุน ุŒ ู„ูƒู† ุงู„ุจุงุฏุฆ ูŠุถูŠู ุชู†ุจูŠู‡ N (REKEY_SA) ูŠุญุชูˆูŠ ุนู„ู‰ SPI ุงู„ุฎุงุต ุจู€ ESP SA ุงู„ุญุงู„ูŠ:

    SK {N (REKEY_SA)ุŒ SAุŒ NiุŒ [KEi]ุŒ TSiุŒ TSr} ->
<- SK {SAุŒ NrุŒ [KEr]ุŒ TSiุŒ TSr}





DPD



ูŠุณุชุฎุฏู… ุงู„ุชุจุงุฏู„ ุงู„ู…ุนู„ูˆู…ุงุชูŠ ู…ุน SK ุงู„ูุงุฑุบ ู„ุงูƒุชุดุงู ุงู„ุฃู‚ุฑุงู† ุงู„ู…ูŠุช ( DPD ) ุŒ ูƒู†ุจุถ ู‚ู„ุจ ุจูŠู† ุงู„ุดูŠุงุทูŠู†. ุฅุฐุง ูƒุงู† ุจุฑู†ุงู…ุฌ IKE ุงู„ุฎููŠ ุบูŠุฑ ู…ุชุงุญ ู„ูุชุฑุฉ ุทูˆูŠู„ุฉ ุŒ ูู…ู† ุงู„ู…ุฑุฌุญ ุฃู†ู‡ ูู‚ุฏ ุญุงู„ุชู‡ ุŒ ูˆุจุงู„ุชุงู„ูŠ ู„ุง ุฃุญุฏ ูŠุฑุงู‚ุจ ESP SA ุนู„ู‰ ุงู„ุฌุงู†ุจ ุงู„ุขุฎุฑ ุฃูˆ ุฃู†ู‡ ู„ู… ูŠุนุฏ ู†ุดุทู‹ุง. ู„ุฐู„ูƒ ุŒ ุนู†ุฏู…ุง ูŠูƒูˆู† ู…ู† ุงู„ูˆุงุถุญ ุฃู† ุงู„ู†ุธูŠุฑ ุบูŠุฑ ู…ุชุงุญ ุŒ ูู…ู† ุงู„ู…ู†ุทู‚ูŠ ุฅุฒุงู„ุฉ ุฌู…ูŠุน ESP / IKE SAs ุงู„ู…ุฑุชุจุทุฉ. ูŠุนู†ูŠ SK ุงู„ูุงุฑุบ ุนุฏู… ูˆุฌูˆุฏ ุญู…ูˆู„ุฉ ููŠู‡ ุŒ ูˆู„ูƒู†ู‡ ูŠุญุชูˆูŠ ุนู„ู‰ ุจูŠุงู†ุงุช ู…ุตุงุฏู‚ุฉ (ุนู„ู‰ ุงู„ุฃู‚ู„ ุฑุคูˆุณ IKE ู…ุน ุนุฏุงุฏุงุช) ุŒ ูˆุจุงู„ุชุงู„ูŠ ูุฅู† ู…ุตุงุฏู‚ุฉ ู…ุซู„ ู‡ุฐู‡ ุงู„ุญุฒู…ุฉ ู‡ูŠ ุนู„ุงู…ุฉ ู…ูˆุซูˆู‚ุฉ ู„ู„ุญูŠุงุฉ.



    SK {} ->
<- ูƒูˆุฑูˆู†ุง {}


ูˆู„ูƒู† ู…ุงุฐุง ู„ูˆ ู‚ุงู… ุฃุญุฏ ุงู„ุฃุทุฑุงู ุจุฅุนุงุฏุฉ ุงู„ุชุดุบูŠู„ ุจุณุฑุนุฉ ูˆูู‚ุฏ ุญุงู„ุชู‡ ูˆุจุฏุฃ ููŠ ุฅู†ุดุงุก ุงุชุตุงู„ IKE ู…ู† ุงู„ุจุฏุงูŠุฉุŸ ู‚ุฏ ู„ุง ูŠู„ุงุญุธ ุงู„ุฌุงู†ุจ ุงู„ุขุฎุฑ ุฃู† ุงู„ุขุฎุฑ ู„ู… ูŠูƒู† ู…ุชุงุญู‹ุง ุŒ ูˆุณูŠุนุชู‚ุฏ ุฃู†ู‡ ู‚ุฑุฑ ุฅู…ุง ุฅุนุงุฏุฉ ุงู„ู…ุตุงุฏู‚ุฉ ุฃูˆ ุฅู†ุดุงุก SAs ูุฑุนูŠุฉ ุฌุฏูŠุฏุฉ ููŠ ุงุชุตุงู„ IKE ุขุฎุฑ. ู„ู† ูŠูƒูˆู† ู‡ู†ุงูƒ ุดูŠุก ูƒุงุฑุซูŠ ุŒ ู„ูƒู† ESP SA ุงู„ู‚ุฏูŠู… ู„ุง ูŠุฒุงู„ ุจุฅู…ูƒุงู†ู‡ ุงู„ุนูŠุด ู„ูุชุฑุฉ ู…ู†ุงุณุจุฉ. ู‚ุฏ ูŠู‚ูˆู… ุงู„ุจุงุฏุฆ ุจูˆุถุน ุชู†ุจูŠู‡ N (INITIAL_CONTACT) ููŠ ุชุจุงุฏู„ IKE_AUTH ุงู„ุฎุงุต ุจู‡ ุŒ ู…ู…ุง ูŠุดูŠุฑ ุฅู„ู‰ ุฃู†ู‡ ุงุชุตุงู„ IKE ุงู„ูˆุญูŠุฏ ุงู„ู…ุนุฑูˆู ุจู‡ุฐุง ุงู„ุฌุงู†ุจ. ุจุนุฏ ุงู„ุงุทู„ุงุน ุนู„ู‰ ู…ุซู„ ู‡ุฐุง ุงู„ุฅุฎุทุงุฑ ุงู„ู…ุตุฏู‚ ุŒ ูŠู…ูƒู†ูƒ ุญุฐู ุฌู…ูŠุน IKE / ESP SAs ุงู„ู‚ุฏูŠู…ุฉ ุจุถู…ูŠุฑ ู…ุฑุชุงุญ.



DoS ูˆ KE ุณูŠุฆุฉ



ุจุงู„ูุนู„ ููŠ ุจุฏุงูŠุฉ IKE_SA_INIT ุŒ ูŠุชู… ุฅุฑุณุงู„ ุญู…ูˆู„ุฉ KEi ุจู…ูุชุงุญ DH ุนุงู… ุณุฑูŠุน ุงู„ุฒูˆุงู„. ู„ูƒู† ุงู„ุจุงุฏุฆ ู„ู… ูŠุชุจุงุฏู„ IKE SA ุจุนุฏ ุŒ ูˆูƒูŠู ูŠุนุฑู ุงู„ุฎูˆุงุฑุฒู…ูŠุฉ ุงู„ุชูŠ ูŠุฏุนู…ู‡ุง ุงู„ุฌุงู†ุจ ุงู„ู…ุณุชู‚ุจู„ุŸ ูŠู…ูƒู†ู‡ ูู‚ุท ุชุฎู…ูŠู† ุฃูˆ ุชุฐูƒุฑ ู…ุง ุชู… ุงุณุชุฎุฏุงู…ู‡ ุณุงุจู‚ู‹ุง ู„ุฑุจุท ู‡ุฐุง ุงู„ุนู†ูˆุงู† ููŠ ุงู„ุฐุงูƒุฑุฉ ุทูˆูŠู„ุฉ ุงู„ู…ุฏู‰. ุฅุฐุง ูƒุงู† ุงู„ู…ุณุชุฌูŠุจ ู„ุง ูŠุฏุนู… ุงู„ุฎูˆุงุฑุฒู…ูŠุฉ ุŒ ูุณูŠู‚ูˆู… ุจุฅุฑุณุงู„ ุฅุฎุทุงุฑ N (INVALID_KEY_PAYLOAD) ุŒ ูˆุงู„ุฐูŠ ุณูŠุดูŠุฑ ุฅู„ู‰ ู…ุนุฑู ุฎูˆุงุฑุฒู…ูŠุฉ DH ุงู„ู…ูุถู„ุฉ. ูŠุฌุจ ุนู„ู‰ ุงู„ุจุงุฏุฆ ุฃู† ูŠูƒุฑุฑ ุทู„ุจู‡ ุŒ ูˆู„ูƒู† ู…ุน KEi ุฌุฏูŠุฏ .



TLS 1.3: ูŠู…ูƒู†ู‡ ุฅุฑุณุงู„ ุนุฏุฉ ู…ูุงุชูŠุญ ุนุงู…ุฉ ุณุฑูŠุนุฉ ุงู„ุฒูˆุงู„ ููŠ ูˆู‚ุช ูˆุงุญุฏ ุจุงุณุชุฎุฏุงู… ุฎูˆุงุฑุฒู…ูŠุงุช ู…ุฎุชู„ูุฉ ุŒ ูˆุฑุจู…ุง ูŠูุนู„ ุงู„ุจุนุถ ุฐู„ูƒ. ู„ูƒู† ู‡ุฐู‡ ู…ูˆุงุฑุฏ ูˆุญุฑูƒุฉ ู…ุฑูˆุฑ. ู‚ุฏ ู„ุง ูŠุฑุณู„ ุงู„ู…ูุชุงุญ ุงู„ุนุงู… ุนู„ู‰ ุงู„ุฅุทู„ุงู‚ ูˆุณูˆู ูŠุฑุฏ ุนู„ูŠู‡ ุงู„ุฎุงุฏู… ุจู€ HelloRetryRequest ู…ุน ุชูุถูŠู„ุงุชู‡ - ุงู„ุฅุถุงูุฉ ู‡ูŠ ุฃู† ุงู„ุชุดููŠุฑ ุบูŠุฑ ุงู„ู…ุชู…ุงุซู„ ุงู„ู…ูƒู„ู ู„ุง ูŠุชู… ุงุณุชุฎุฏุงู…ู‡ ุนู„ู‰ ุงู„ุฅุทู„ุงู‚ ุญุชู‰ ูŠุชู… ู…ุนุฑูุฉ ุฎูˆุงุฑุฒู…ูŠุงุช ุงู„ุฎุงุฏู… ุงู„ู…ูุถู„ุฉ ุŒ ูˆู„ูƒู† ุนู„ู‰ ุญุณุงุจ ุฑุญู„ุฉ ุฐู‡ุงุจ ูˆุฅูŠุงุจ ุฅุถุงููŠุฉ. ุฅุฐุง ู‚ุฏู… ุงู„ุนู…ูŠู„ ููŠ ุงู„ุจุฏุงูŠุฉ ุฎูˆุงุฑุฒู…ูŠุฉ ู…ูุชุงุญ ุนุงู… ุบูŠุฑ ู…ู†ุงุณุจ ุŒ ูุนู†ุฏุฆุฐ ุŒ ูƒู…ุง ููŠ IKEv2 ุŒ ุณูŠุชู„ู‚ู‰ ุทู„ุจ HelloRetryRequest ู…ุน ุงู„ุฎูˆุงุฑุฒู…ูŠุงุช ู„ู„ุงุฎุชูŠุงุฑ ู…ู† ุจูŠู†ู‡ุง.



ูˆู„ูƒู† ู…ุงุฐุง ู„ูˆ ุฃุฑุณู„ุช ู†ูุณ ุงู„ุญุฒู…ุฉ ุงู„ุฃูˆู„ูŠุฉ ู…ู† ุงู„ุจุงุฏุฆุŸ ู…ู† ุงู„ู…ู…ูƒู† ุฅู†ุดุงุก SPI ุฌุฏูŠุฏ ู‡ู†ุงูƒ ููŠ ูƒู„ ู…ุฑุฉ... ุณูŠู‚ูˆู… ุงู„ู…ุณุชุฌูŠุจ ุŒ ุนู„ู‰ ุงู„ุฃู‚ู„ ุŒ ุจุฅุฌุฑุงุก ุญุณุงุจุงุช DH ุจุตุฏู‚ ูˆุงู„ุฑุฏ ุจุงุณุชุฎุฏุงู… IKE_AUTH . DH ู‡ูŠ ุนู…ู„ูŠุฉ ูƒุซูŠูุฉ ุงู„ุงุณุชุฎุฏุงู… ู„ู„ู…ูˆุงุฑุฏ ุชุญุฑู‚ ูˆุญุฏุฉ ุงู„ู…ุนุงู„ุฌุฉ ุงู„ู…ุฑูƒุฒูŠุฉ ูˆู…ุตุฏุฑ ุงู„ุงู†ุชุฑูˆุจูŠุง - ู„ุฐู„ูƒ ูŠู…ูƒู† ุฃู† ูŠุชู„ู ุฌู‡ุงุฒ ุงู„ุฅุฑุณุงู„ ูˆุงู„ุงุณุชู‚ุจุงู„.



ููŠ IKEv2 (ูˆู„ูƒู† ู„ูŠุณ IKEv1) ู‡ู†ุงูƒ ุญู…ุงูŠุฉ ุถุฏ ู‡ุฐุง ุŒ ููŠ ุดูƒู„ ุงุณุชุฌุงุจุฉ N (COOKIE) ู…ุน ุฅุดุนุงุฑ ูŠุญุชูˆูŠ ุนู„ู‰ ุณู„ุณู„ุฉ ู…ู„ู ุชุนุฑูŠู ุงู„ุงุฑุชุจุงุท ุŒ ูˆุจุนุฏ ุฐู„ูƒ ูŠุฌุจ ุนู„ู‰ ุงู„ุจุงุฏุฆ ุชูƒุฑุงุฑ ุทู„ุจู‡ ุŒ ู…ุน ุฅุถุงูุฉ ุญู…ูˆู„ุฉ N (COOKIE) ุฅู„ูŠู‡:



           SAi1, KEi, Ni -->
                         <-- N(COOKIE)
SAi1, KEi, Ni, N(COOKIE) -->
                         <-- SAr1, KEr, Nr, [CERTREQ]


ูŠุฌุจ ุฃู† ูŠุญุชูˆูŠ ุงู„ุทู„ุจ ุนู„ู‰ SPI / Ni ู…ุชุทุงุจู‚ ูƒุงู„ุฃูˆู„ . ู…ู† ุงู„ุณู‡ู„ ุงุณุชูƒู…ุงู„ู‡ุง ุจุงู„ุญู…ูˆู„ุฉ. ูŠู…ูƒู† ู„ู„ู…ุณุชุฌูŠุจ ุญูุธ ุงู„ุญุงู„ุฉ ุงู„ู…ุชุนู„ู‚ุฉ ุจุงู„ุงุชุตุงู„ ุจูŠู† ุงู„ุทู„ุจ ูˆู…ู„ู ุชุนุฑูŠู ุงู„ุงุฑุชุจุงุท ุงู„ู…ุฑุณู„ ุฅู„ูŠู‡ ุŒ ูˆูู‚ุท ุจุนุฏ ุงู„ุชุทุงุจู‚ ุŒ ูˆุจุนุฏ ุฅูƒู…ุงู„ ู‡ุฐุง ุงู„ุนู…ู„ ุนู„ู‰ ุฅุถุงูุฉ ู…ู„ู ุชุนุฑูŠู ุงู„ุงุฑุชุจุงุท ุฅู„ู‰ ุงู„ุทู„ุจ ู…ู† ู‚ุจู„ ุงู„ุจุงุฏุฆ ุŒ ูŠู…ูƒู† ู„ู„ู…ุณุชุฌูŠุจ ู…ุชุงุจุนุฉ ุชุจุงุฏู„ IKE_AUTH ุจุทุฑูŠู‚ุฉ ู…ู†ุชุธู…ุฉ .



ูˆู„ูƒู† ู…ู† ุงู„ู…ู…ูƒู† ุชุฎุฒูŠู† ุงู„ุญุงู„ุฉ ุฏุงุฎู„ ู…ู„ู ุชุนุฑูŠู ุงู„ุงุฑุชุจุงุท ุŒ ู…ู…ุง ูŠุฌุนู„ู‡ุง "ุฐุงุชูŠุฉ ุงู„ู…ุตุงุฏู‚ุฉ". ูŠู…ูƒู† ุฃู† ุชุญู…ู„ ุญู‚ูŠู‚ุฉ ุฃู† ุงู„ู…ุฏุนู‰ ุนู„ูŠู‡ ู‚ุฏ ุฑุฃู‰ ุงู„ุทู„ุจ ู…ู† ุงู„ุจุงุฏุฆ (ุฑุฃู‰ Ni ูˆ SPIi ุŒ ุนู„ู‰ ุงู„ุฃู‚ู„):

ู…ู„ู ุชุนุฑูŠู ุงู„ุงุฑุชุจุงุท = MAC (ุจุนุถ ุงู„ุณุฑูŠุฉ ุŒ Ni || SPIi || ุงู„ุทุงุจุน ุงู„ุฒู…ู†ูŠ)


ูˆุจุงู„ุชุงู„ูŠ ุŒ ุณูŠุชุนูŠู† ุนู„ู‰ ุนุงุดู‚ DoS ุชุฎุฒูŠู† ุงู„ุญุงู„ุฉ ูˆุฅุนุงุฏุฉ ุชุฏูˆูŠุฑ ุฑุณุงุฆู„ู‡ ุงู„ู…ุชูƒุฑุฑุฉ ุŒ ู…ู…ุง ูŠุฌุนู„ ุงู„ู‡ุฌูˆู… ุฃูƒุซุฑ ุชูƒู„ูุฉ. ู…ู† ุงู„ู…ู†ุทู‚ูŠ ูู‚ุท ุชู…ูƒูŠู† ุญู…ุงูŠุฉ ู…ู„ูุงุช ุชุนุฑูŠู ุงู„ุงุฑุชุจุงุท ุนู†ุฏู…ุง ูŠูƒูˆู† ู‡ู†ุงูƒ ุงุดุชุจุงู‡ ููŠ ู‡ุฌูˆู… DoS ุŒ ุญุชู‰ ู„ุง ูŠุฌุจุฑ ุงู„ุฌู…ูŠุน ุนู„ู‰ ุงู„ู‚ูŠุงู… ุจุฑุญู„ุฉ ุฅุถุงููŠุฉ ุฐู‡ุงุจู‹ุง ูˆุฅูŠุงุจู‹ุง.



TLS 1.3 : ู„ุฏูŠู‡ ุฃู…ุงู† ุงุฎุชูŠุงุฑูŠ ู…ู…ุงุซู„. ู‚ุฏ ูŠุณุชุฌูŠุจ ุงู„ุฎุงุฏู… ุจู€ HelloRetryRequest ุจุฑุณุงู„ุฉ ุชุญุชูˆูŠ ุนู„ู‰ ุงู…ุชุฏุงุฏ ู…ู„ู ุชุนุฑูŠู ุงู„ุงุฑุชุจุงุท ุŒ ูˆุงู„ุฐูŠ ูŠุฌุจ ุนู„ู‰ ุงู„ุนู…ูŠู„ ุฅุฏุฑุงุฌู‡ ููŠ ClientHello2 ุงู„ู…ุชูƒุฑุฑ .



CP



ูŠุณู…ุญ ู„ูƒ IKEv2 ุจุงู„ุชูุงูˆุถ ุนู„ู‰ ุชูƒูˆูŠู† ุดุจูƒุงุช / ุนู†ุงูˆูŠู† IP. ุญู…ูˆู„ุฉ ุงู„ุชูƒูˆูŠู† ( CP ) ูŠุณู…ุญ ู„ูƒ ู„ุชู‚ุฏูŠู… ุทู„ุจ ู„ู„ุญุตูˆู„ ุนู„ู‰ ุงู„ุชูƒูˆูŠู† ( CFG_REQUEST / CFG_REPLY ุฃู†ูˆุงุน ุงู„ุญุฒู…ุฉ) ูˆุชุนูŠูŠู† ุงู„ุชูƒูˆูŠู† ุฅู„ู‰ ุงู„ุฌุงู†ุจ ุงู„ู…ู‚ุงุจู„ ( CFG_SET / CFG_ACK ุฃู†ูˆุงุน). ูŠุญุชูˆูŠ ุทู„ุจ ุงู„ุชูƒูˆูŠู† ุนู„ู‰ ุงู„ุณู…ุงุช ุงู„ุชูŠ ูŠุฑูŠุฏ ุงู„ุทุฑู ู…ุนุฑูุชู‡ุง / ุชุนูŠูŠู†ู‡ุง. ูŠู…ูƒู† ุฃู† ุชูƒูˆู† ุงู„ุณู…ุงุช: ุนู†ูˆุงู† "ุฏุงุฎู„ูŠ" ุฃูˆ ุนู†ูˆุงู† DNS ุฃูˆ DHCP ุฃูˆ ู…ุนุฑูุฉ ุงู„ุดุจูƒุฉ ุงู„ูุฑุนูŠุฉ ุฃูˆ ุฃู†ูˆุงุน ุฃุฎุฑู‰ ู…ูˆุตูˆูุฉ ููŠ ุทู„ุจุงุช RFC ุฐุงุช ุงู„ุตู„ุฉ. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ูŠู…ูƒู† ู„ู„ุจุงุฏุฆ ููŠ ุชุจุงุฏู„ IKE_AUTH ุชู‚ุฏูŠู… ุทู„ุจ ู„ุฅุตุฏุงุฑ ุนู†ูˆุงู† ุฅู†ุชุฑุงู†ุช ู„ู‡ (ุงู„ุงุชุตุงู„ ุจุดุจูƒุฉ ุงู„ุดุฑูƒุฉ) ูˆุฎุงุฏู… DNS:



    SK{IDi, [IDr], AUTH, CP(CFG_REQUEST), SAi2, TSi, TSr} -->
<-- SK{IDr,        AUTH, CP(CFG_REPLY),   SAr2, TSi, TSr}

CP(CFG_REQUEST) =
  INTERNAL_IP6_ADDRESS()
  INTERNAL_IP6_DNS()
TSi = (proto=0, port=0-65535, :: - ffff:...:ffff)
TSr = (proto=0, port=0-65535, :: - ffff:...:ffff)

CP(CFG_REPLY) =
  INTERNAL_IP6_ADDRESS(2001:db8::5/64)
  INTERNAL_IP6_DNS(2001:db8::1)
  INTERNAL_IP6_SUBNET(2001:db8:abcd::/64)
TSi = (proto=0, port=0-65535, 2001:db8::5 - 2001:db8::5)
TSr = (proto=0, port=0-65535, 2001:db8::0 - 2001:db8::ffff:ffff:ffff:ffff)


  • ูŠุชู… ุชุฎุตูŠุต ุนู†ูˆุงู† 2001: db8 :: 5 ู„ู„ุจุงุฏุฆ .
  • ESP SA 2001:db8::/64 .
  • 2001:db8::1 DNS .
  • 2001:db8:abcd::/64 , , ESP SA, 2001:db8:: .


Go?



ู„ุงุฎุชุจุงุฑ ุงู„ุชุทุจูŠู‚ุงุช ุงู„ู…ุญู„ูŠุฉ ุงู„ุญุฏูŠุซุฉ ู„ู…ูƒุฏุณ IPsec ุจุงุณุชุฎุฏุงู… ุฎูˆุงุฑุฒู…ูŠุงุช GOST ุŒ ู‚ุฑุฑู†ุง ูƒุชุงุจุฉ ุชุทุจูŠู‚ ู…ุณุชู‚ู„ ุชู…ุงู…ู‹ุง (ุนู† Linux ูˆ FreeBSD ูˆ strongSwan ูˆู…ูƒุฏุณุงุช ุฃุฎุฑู‰). ูˆู„ู„ุณุฑุนุฉ ูˆุณู‡ูˆู„ุฉ ุงู„ุชุทูˆูŠุฑ ููŠ ู„ุบุฉ Go ุŒ ู…ุน ุงู„ุชู†ููŠุฐ ุงู„ุญุงู„ูŠ ุจุงู„ูุนู„ ู„ู…ูƒุชุจุฉ GoGOST ู„ุฎูˆุงุฑุฒู…ูŠุงุช GOST . ููŠ ุงู„ุณุงุจู‚ ุŒ ูƒุงู† ู„ุฏูŠ ุจุงู„ูุนู„ ุฎุจุฑุฉ ููŠ ุฏู…ุฌ GOST ููŠ ุชู†ููŠุฐ TLS 1.3 ู„ู…ูƒุชุจุงุช ุงู„ุชุดููŠุฑ / tls ูˆ crypto / x509 Go.



ู…ุดุฑูˆุน gostipsec ู‡ูˆ ุจุฑู†ุงู…ุฌ ู…ุฌุงู†ูŠ ูŠุชูƒูˆู† ู…ู† ุดูŠุทุงู†: ESPER (ESPv3) ูˆ IKER (IKEv2):



          โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”          โ”Œโ”€โ”€โ”€โ”€โ”          โ”Œโ”€โ”€โ”€โ”€โ”€โ”          โ”Œโ”€โ”€โ”€โ”€โ”
          โ”‚remoteโ”‚          โ”‚ikerโ”‚          โ”‚esperโ”‚          โ”‚ipfwโ”‚
          โ””โ”€โ”€โ”ฌโ”€โ”€โ”€โ”˜          โ””โ”€โ”ฌโ”€โ”€โ”˜          โ””โ”€โ”€โ”ฌโ”€โ”€โ”˜          โ””โ”€โ”ฌโ”€โ”€โ”˜
             โ”‚                โ”‚                โ”‚               โ”‚
โ•”โ•โ•โ•โ•โ•โ•โ•คโ•โ•โ•โ•โ•โ•ชโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ชโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—   โ”‚               โ”‚
โ•‘ UDP  โ”‚     โ”‚                โ”‚            โ•‘   โ”‚               โ”‚
โ•Ÿโ”€โ”€โ”€โ”€โ”€โ”€โ”˜     โ”‚    IKEv2...    โ”‚            โ•‘   โ”‚               โ”‚
โ•‘            โ”‚ <โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€            โ•‘   โ”‚               โ”‚
โ•‘            โ”‚                โ”‚            โ•‘   โ”‚               โ”‚
โ•‘            โ”‚    IKEv2...    โ”‚            โ•‘   โ”‚               โ”‚
โ•‘            โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€>            โ•‘   โ”‚               โ”‚
โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ชโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ชโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•   โ”‚               โ”‚
             โ”‚                โ”‚                โ”‚               โ”‚
             โ”‚                โ”‚                โ”‚               โ”‚
             โ”‚    โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ชโ•โ•โ•คโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ชโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—  โ”‚
             โ”‚    โ•‘ UNIX-SOCKET  โ”‚             โ”‚            โ•‘  โ”‚
             โ”‚    โ•Ÿโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€setkey-commandsโ”‚            โ•‘  โ”‚
             โ”‚    โ•‘           โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€>            โ•‘  โ”‚
             โ”‚    โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ชโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ชโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•  โ”‚
             โ”‚                โ”‚                โ”‚               โ”‚
             โ”‚                โ”‚                โ”‚               โ”‚
             โ”‚                โ”‚   โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ชโ•โ•โ•โ•คโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ชโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—
             โ”‚                โ”‚   โ•‘ DIVERT-SOCKET  โ”‚           โ”‚            โ•‘
             โ”‚                โ”‚   โ•Ÿโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€encrypted ESP โ”‚            โ•‘
             โ”‚                โ”‚   โ•‘            โ”‚ <โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€            โ•‘
             โ”‚                โ”‚   โ•‘            โ”‚               โ”‚            โ•‘
             โ”‚                โ”‚   โ•‘            โ”‚ decrypted ESP โ”‚            โ•‘
             โ”‚                โ”‚   โ•‘            โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€>            โ•‘
             โ”‚                โ”‚   โ•‘            โ”‚               โ”‚            โ•‘
             โ”‚                โ”‚   โ•‘            โ”‚ unencrypted IPโ”‚            โ•‘
             โ”‚                โ”‚   โ•‘            โ”‚ <โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€            โ•‘
             โ”‚                โ”‚   โ•‘            โ”‚               โ”‚            โ•‘
             โ”‚                โ”‚   โ•‘            โ”‚  encrypted IP โ”‚            โ•‘
             โ”‚                โ”‚   โ•‘            โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€>            โ•‘
             โ”‚                โ”‚   โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ชโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ชโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
             โ”‚                โ”‚                โ”‚               โ”‚


ููŠ ุงู„ูˆู‚ุช ุงู„ุญุงู„ูŠ ุŒ ูŠุนู…ู„ ESPER ูู‚ุท ู…ุน ู…ุขุฎุฐ DIVERT (ู„ู… ุฃุฌุฏ ุดูŠุฆู‹ุง ุจุณูŠุทู‹ุง ููŠ ู†ุธุงู… Linux) ุŒ ู„ุฐู„ูƒ ูู‡ูˆ ู…ุฏุนูˆู… ูู‚ุท ุนู„ู‰ FreeBSD (ุฑุจู…ุง OpenBSD ุŒ ู„ู… ูŠุชู… ุงู„ุชุญู‚ู‚ ู…ู†ู‡) OS. ู„ุง ูŠุณุชุฎุฏู… ESPER ุŒ ู…ุซู„ IKER ุŒ PF_KEYv2 ุŒ ุงู„ุฃู…ุฑ ุงู„ุฐูŠ ูŠุชุทู„ุจ ุฑูˆุงุจุท C ุŒ ูƒูˆุงุฌู‡ุฉ ุจูŠู† ุฑูˆุงุจุท ESP <-> IKE ุŒ ูˆู„ูƒู† ูˆุงุฌู‡ุฉ setkey ุงู„ู†ุตูŠุฉ ุงู„ุชูŠ ุชู… ุฐูƒุฑู‡ุง ุจุงู„ูุนู„ ููŠ ุจุฏุงูŠุฉ ุงู„ู…ู‚ุงู„ุฉ. ู„ุฐู„ูƒ ูŠู…ูƒู† ุงุณุชุฎุฏุงู… IKER ู„ู„ุชูุงูˆุถ ุนู„ู‰ ู…ูุงุชูŠุญ ุชู†ููŠุฐ kernel ESP ู…ู† ุฎู„ุงู„ ุงุณุชุฏุนุงุก ุงู„ุฃู…ุฑ setkey ุงู„ุญู‚ูŠู‚ูŠ . ุชุจุฏูˆ ุฃูˆุงู…ุฑ ESPER ุงู„ุชุงู„ูŠุฉ ูƒู…ุง ูŠู„ูŠ:



add fc00::ac fc00::dc esp 0x12345678 -u 123 -E aes-gcm-16 0xd3537e657fde5599a2804fbb52d1aaed94b65d3e ;
add fc00::dc fc00::ac esp 0x12345679 -u 234 -E aes-gcm-16 0x9a2dae68e475eacb39d41f23c3cbef890e9f6276 tfc:1320 ;

spdadd fc00::ac/128 fc00::dc/128 all -P in ipsec esp/transport//unique:123 ;
spdadd fc00::dc/128 fc00::ac/128 all -P out ipsec esp/transport//unique:234 ;


ูŠุฏุนู… ESPER: AES-128/256-GCM-16 ุŒ Magma / Grasshopper-MGM ุŒ ESN ุŒ TFC ุŒ ุฃูˆุถุงุน ุงู„ู†ู‚ู„ / ุงู„ู†ูู‚ ุŒ IPv6 / IPv4 (ุฏุนู… ุงู„ุฃุฎูŠุฑ ุŒ ุฃูƒุซุฑ ุชุนู‚ูŠุฏู‹ุง ุŒ ู„ู… ูŠุชู… ุงุฎุชุจุงุฑู‡ ุจุฏู‚ุฉ ุŒ ูˆู…ู† ูŠุญุชุงุฌ ุฅู„ู‰ IPv4 ู…ู† ุฃุฌู„ ู…ุดุงุฑูŠุน ุฌุฏูŠุฏุฉุŸ) ุŒ ุงู„ุญู…ุงูŠุฉ ู…ู† ู‡ุฌู…ุงุช ุงู„ุฅุนุงุฏุฉ. ูŠุณู…ุญ ู„ูƒ IKER ุจู…ุทุงุจู‚ุฉ: AES-128/256-GCM-16 + AES-XCBC + curve25519 ุŒ Magma / Grasshopper-MGM + HMAC-Stribog-512 + GOST R 34.10-2012-VKO-256/512 ุŒ ESN / TFC / ุงู„ู†ู‚ู„ / ุฃูˆุถุงุน ุงู„ู†ูู‚ ุŒ ุงู„ู…ุตุงุฏู‚ุฉ ุจุงุณุชุฎุฏุงู… ุงู„ุชูˆู‚ูŠุนุงุช ุงู„ุฑู‚ู…ูŠุฉ PSK ูˆ X.509 (ECDSA ุŒ GOST R 34.10-2012). ุชู… ุชูƒูˆูŠู†ู‡ ุจูˆุงุณุทุฉ ู…ู„ู Hjson ูˆุงุญุฏ :



{
    IKEAlgos: [
        gost128-vko512
        aes256gcm16-aesxcbc-curve25519
        aes128gcm16-aesxcbc-curve25519
    ]
    ESPAlgos: [
        gost128-esn
        gost64-esn
        aes256gcm16-esn
        aes256gcm16-noesn
        aes128gcm16-esn
        aes128gcm16-noesn
    ]
    SigHashes: [
        streebog512
        streebog256
        sha512
        sha256
    ]
    DPDTimeout: 300
    Peers: [
        {
            Autostart: true
            OurIP: fc00::dc
            TheirIP: fc00::ac
            OurId: our.company.net
            TheirId: CN=example.com
            OurTSS: [
                fc00::dc/128[tcp]
                fc00::dc/128[udp/53]
            ]
            TheirTSS: [
                fc00::ac/128
            ]
            Mode: transport
            # Won't be used, because of X.509 signature authentication
            PSK: DEADBABE
            TheirCertHash: a948904f2f0f479b8f8197694b30184b0d2ed1c1cd2a1ec0fb85d299a192a447
            OurCert: our.company.net.cer.pem
            OurPrvKey: our.company.net.key.pem
            TFC: 1200
        }
    ]
}


ููŠ ู‡ุฐุง ุงู„ู…ุซุงู„ ุŒ ู‚ู…ู†ุง ุจุชุนูŠูŠู† ุงู„ุนุถูˆ ุงู„ูˆุญูŠุฏ ุงู„ุฐูŠ ู†ุนุฑูู‡:



  • ู…ุง ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุฎููŠ ุงู„ุฐูŠ ุณูŠุชู… ุงู„ุงุชุตุงู„ ุจู‡ ุชู„ู‚ุงุฆูŠู‹ุง
  • ู‚ู… ุจุงูƒุชุดุงู ุงู„ุฃู‚ุฑุงู† ุงู„ู…ูŠุช ูƒู„ ุฎู…ุณ ุฏู‚ุงุฆู‚
  • ESN, fallback- , TFC 1200 .
  • TCP DNS fc00::dc fc00::ac .
  • X.509 , CN=example.com subject- SHA256 SubjectPublicKeyInfo . OurId OurCert .
  • OurCert/OurPrvKey , PSK FQDN OurId.


ู„ุง ูŠุฏุนู… IKER ุญุชู‰ ุงู„ุขู† ุงู„ู…ุฌู…ูˆุนุฉ ุงู„ูƒุงู…ู„ุฉ ู„ุฌู…ูŠุน ู…ูŠุฒุงุช IKEv2 ( CREATE_CHILD_SA ุŒ rekeying) ุŒ ูˆู„ุง ูŠุฑุงู‚ุจ ูู‚ุฏุงู† ุงู„ุญุฒู… ูˆู„ุง ูŠู‡ุชู… ุจู…ุจุฏุฃ DON'T PANIC . ู„ุฐู„ูƒ ุŒ ู„ุง ูŠู…ูƒู† ุงุนุชุจุงุฑู‡ ู…ุฑุดุญู‹ุง ู„ู„ุงุณุชุฎุฏุงู… "ุงู„ุตู†ุงุนูŠ".



ูƒุชู„ ุงู„ู‚ุทุฑุงู† gostipsec ุจุงู„ูุนู„ ูŠุญุชูˆูŠ ุนู„ู‰ ูƒุงูุฉ ุงู„ุชุจุนูŠุงุชุŒ ูˆู‚ุฏ ุชู… ุชุฌู…ูŠุนู‡ุง INFO. ุซุงุฆู‚ ูˆุงู„ุฃู‡ุฏุงู ู„ ุฅุนุงุฏุชู‡ ุจู†ุงุก ู†ุธุงู… ุŒ ุนู„ู‰ ุงู„ุฑุบู… ู…ู† ุฃู† ุจู†ุงุก ุงู„ุชู†ููŠุฐูŠุฉ ูŠุชู… ุจุณู‡ูˆู„ุฉ ู…ุน ุงู„ุนุงุฏูŠุฉ ุงู„ุฐู‡ุงุจ ุจู†ุงุก ุงู„ู…ูƒุงู„ู…ุฉ.



ู‡ุฌุณูˆู†ุŸ



ู…ูˆุถูˆุน ู‡ูˆู„ูŠูˆุงุฑ ุŒ ู„ูƒู†ู†ูŠ ุณุฃู‚ุฏู… ูุงูŠ ุนู„ู‰ ุฃูŠ ุญุงู„:



  • ู„ุง ูŠุณู…ุญ INI ู„ูƒ ุจุชุญุฏูŠุฏ ู…ุซู„ ู‡ุฐู‡ ุงู„ู‡ูŠุงูƒู„ ุงู„ุดุงู…ู„ุฉ ุŒ ูˆู„ุง ูŠูˆุฌุฏ ู…ุนูŠุงุฑ ู„ู…ู„ูุงุช .ini .
  • capabilities database , termcap-like, BSD , (, , ), C. IKER .
  • XML โ€” .
  • JSON โ€” , Python Go . , . - !
  • YAML โ€” , , . , . , YAML , , , . . . - . YAML ( ) - ( StrictYAML ).
  • TOML โ€” : , , , . , :



    [[foo.bar]]
    baz = 123
    
    [[foo.bar]]
    abc = 123
    




    :



    {
      "foo": {
        "bar": [
          {"baz": 123 },
          {"abc": 123 }
        ]
      }
    }
    


    ยซยป / , . , TOML, NNCP , . , , .
  • Hjson โ€” JSON ( , ), Hjson. github.com/hjson/hjson-go Hjson JSON, . . , . , JSON Hjson.




ุจุดูƒู„ ุนุงู… ุŒ ุฅุฐุง ู‚ู…ุช ุจุชู†ููŠุฐ ู…ุฌู…ูˆุนุฉ ูุฑุนูŠุฉ ู…ู† ุงู„ู‚ุฏุฑุงุช ุงู„ู…ุดุงุจู‡ุฉ ู„ู€ TLS 1.3 (ุงู„ู…ุตุงุฏู‚ุฉ ูู‚ุท ู…ู† ุฎู„ุงู„ ุดู‡ุงุฏุงุช PSK ูˆ X.509 ุŒ ู„ุง ูŠูˆุฌุฏ ุฅุนุงุฏุฉ ุฅุฏุฎุงู„ ุฌุงุฏ) ุŒ ูุฅู† ESPv3 ู…ุน IKEv2 ูˆ IPv6 (ู…ู† ุงู„ุฃุณู‡ู„ ุจูƒุซูŠุฑ ุงู„ุนู…ู„ ู…ุนู‡ุง!) ุŒ ู…ู† ูˆุฌู‡ุฉ ู†ุธุฑ ุงู„ู…ุจุฑู…ุฌ ุŒ ุณูŠูƒูˆู† ุฃูƒุซุฑ ุตุนูˆุจุฉ ู‚ู„ูŠู„ุงู‹ ููŠ ุงู„ุชู†ููŠุฐ. ู„ุง ูŠู„ุฒู… RFC ุญุชู‰ ุจุฏุนู… ุนู…ู„ูŠุงุช ุงู„ุชุจุงุฏู„ CREATE_CHILD_SA . ุณูŠูƒูˆู† ุงู„ุฃู…ุงู† ู…ู…ุชุงุฒู‹ุง ุŒ ุจุฏูˆู† ุฃู†ู…ุงุท ุชุดุบูŠู„ TLS 1.3 ุงู„ู…ุญุชู…ู„ุฉ ุงู„ู…ุซูŠุฑุฉ ู„ู„ุฌุฏู„ ูˆุงู„ุฎุทูŠุฑุฉ. ุณูŠูƒูˆู† ุฃุฏุงุก ุญู„ IPsec ุฃุนู„ู‰ ุจุดูƒู„ ุนุงู… ุจุณุจุจ ุงู„ู†ู‚ู„ ุนู„ู‰ ุงู„ู…ุณุชูˆู‰ ุงู„ู†ูˆูˆูŠ ูˆุฌู„ุณุงุช IKE ุทูˆูŠู„ุฉ ุงู„ุฃู…ุฏ.



ูŠู…ูƒู† ู…ู„ุงุญุธุฉ ุฃู†ู‡ ููŠ IPsec ูŠุชู… ุดุญุฐ ูƒู„ ุดูŠุก ู„ุญู…ุงูŠุฉ ุงู„ูƒู…ูŠุฉ ุงู„ู‡ุงุฆู„ุฉ ู…ู† ุญุฑูƒุฉ ุงู„ู…ุฑูˆุฑ ุจูŠู† ุงู„ุดุจูƒุงุช ุจุฃูƒู…ู„ู‡ุง ุŒ ูˆู„ูƒู† BTNS(ุฃูุถู„ ู…ู† ู„ุง ุดูŠุก ุฃู…ุงู†) ูƒุชุจุช ู…ุฌู…ูˆุนุฉ ุนู…ู„ IETF ุงู„ุนุฏูŠุฏ ู…ู† ุทู„ุจุงุช ุงู„ุชุนู„ูŠู‚ุงุช ุงู„ุชูŠ ุชูˆุถุญ ุฃู†ู‡ ูŠู…ูƒู† ุงุณุชุฎุฏุงู… IPsec ุฏูˆู† ู…ุดุงูƒู„ ููŠ ุงู„ุงุชุตุงู„ุงุช ู„ูƒู„ ู…ู‚ุจุณ ุŒ ุญูŠุซ ูŠูƒูˆู† ุฃุญุฏ ุงู„ุฃุทุฑุงู (ุงู„ุนู…ูŠู„) ู…ุฌู‡ูˆู„ ุงู„ู‡ูˆูŠุฉ ุŒ ูˆุจุงู„ุชุงู„ูŠ ูŠุดูƒูƒ ุชู…ุงู…ู‹ุง ููŠ ุงุณุชุตูˆุงุจ ุงุณุชุฎุฏุงู… TLS. ุฅุบู„ุงู‚ ุงู„ุงุชุตุงู„ ุŒ ููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉ ุŒ ุณูŠุณู…ุญ ู„ุฃูŠ ุชุทุจูŠู‚ ุดุจูƒุฉ ุŒ ู…ู† ุฎู„ุงู„ ุฅุฌุฑุงุก ู…ูƒุงู„ู…ุฉ ู†ุธุงู… ุชุงูู‡ุฉ ู…ุซู„ setockopt ุŒ ู„ู„ุฅุดุงุฑุฉ ุฅู„ู‰ ุฃู†ู‡ ูŠุญุชุงุฌ ุฅู„ู‰ ESP ุฅู„ู‰ FQDN = ุนู†ูˆุงู† bank.com ุŒ ูˆุชู‚ุฏูŠู… ู†ูุณู‡ ูƒุดู‡ุงุฏุฉ X.509 (ุฃูˆ ุงู„ุจู‚ุงุก ู…ุฌู‡ูˆู„ ุงู„ู‡ูˆูŠุฉ) ุŒ ุซู… ุจุดูุงููŠุฉ ูˆุจุณุฑุนุฉ ูˆ ุงู„ุนู…ู„ ุจุฃู…ุงู† ู…ุน ู‡ุฐุง bank.com ุŒ ุฏูˆู† ุนูƒุงุฒุงุช ููŠ ุดูƒู„ ู…ูƒุชุจุงุช ู†ู‚ู„ ู…ุณุงุญุฉ ุงู„ู…ุณุชุฎุฏู…ูŠู† ู„ูƒู„ ุชุทุจูŠู‚.



ุณูŠุฑุฌูŠ ู…ุงุชููŠู ุŒ ุณุงูŠูุฑูˆู†ูƒุŒ Python / Go / C-developer ุŒ ุงู„ู…ุชุฎุตุต ุงู„ุฑุฆูŠุณูŠ ููŠ FGUP STC Atlas.



All Articles