ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° установки Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Ρ… сСтСвых соСдинСний с использованиСм ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ISAKMP

Π”ΠΈΠΏΠ»ΠΎΠΌΠ½Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π­Ρ‚ΠΈ Π΄Π²Π΅ Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ особСнности ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ ΠΊ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ управлСния ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ (ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²) соСдинСний. ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ являСтся Ρ€ΡƒΡ‡Π½ΠΎΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ соСдинСний, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ ΡΠ΅ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ ТСстко ΠΏΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ запускС систСмы. К Π΅Π΄ΠΈΠ½ΡΡ‚Π²Π΅Π½Π½ΠΎΠΌΡƒ достоинству ΠΌΠΎΠΆΠ½ΠΎ отнСсти ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ простоту Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Π‘Π°ΠΌΡ‹ΠΌ ΠΆΠ΅ большим нСдостатком Π΄Π°Π½Π½ΠΎΠ³ΠΎ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° установки Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Ρ… сСтСвых соСдинСний с использованиСм ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ISAKMP (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Internet Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ врСмя стал популярной, Π½Π΅Π΄ΠΎΡ€ΠΎΠ³ΠΎΠΉ Π±Π°Π·ΠΎΠ²ΠΎΠΉ инфраструктурой. Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ доступ ΠΊ Π½Π΅ΠΌΡƒ заставил ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠΉ сСти (Virtual Private Network VPN) Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ глобальной сСти Internet (которая, ΠΏΠΎ ΡΡƒΡ‚ΠΈ, прСдставляСт собой ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ сСтСй). ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° VPN Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠΉ инфраструктуры Internet ΠΈ Π΄Π»Ρ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π΅Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ отдСлСния) ΠΈ Π΄Π»Ρ связи ΠΌΠ΅ΠΆΠ΄Ρƒ компаниями, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… соСдинСний остаСтся Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… сСтях.

ΠšΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Π°Ρ ΡΠ΅Ρ‚ΡŒ характСризуСтся Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ всС Π΅Π΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ находится Π² Ρ€ΡƒΠΊΠ°Ρ… Π΅Π΅ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅Π², Π΄Π°Π½Π½Ρ‹Π΅, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ ΠΏΠΎ Π½Π΅ΠΉ, проходят Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· ΡƒΠ·Π»Ρ‹ входящиС Π² ΡΡ‚Ρƒ ΡΠ΅Ρ‚ΡŒ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΠ΅ с Π²Π½Π΅ΡˆΠ½ΠΈΠΌ ΠΌΠΈΡ€ΠΎΠΌ выраТаСтся Π² Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΎΠΌ объСмС ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… (ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌ отсутствиС). ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΈΡ… самодостаточных условиях ΡΠ΅Ρ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠΉ. VPN ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΡΠ΅Ρ‚ΡŒ Π½Π° Π±Π°Π·ΠΈΡ Internet. ΠŸΡ€ΠΈ этом, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ряд сущСствСнных трудностСй. Ни ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡƒΠ·Π»ΠΎΠ² Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Internet-ΠΎΠΌ. Π”Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… источников ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ посрСдством ΠΎΠ±Ρ‰Π΅ΠΉ инфраструктуры. Π’Π°ΠΊΠΆΠ΅, благодаря Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΡŽ элСктронной ΠΊΠΎΠΌΠΌΠ΅Ρ€Ρ†ΠΈΠΈ ΠΈ Π±ΡƒΡ€Π½ΠΎΠΌΡƒ росту сСтСвых Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ возрос объСм Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ компаниями. Π˜ΡΡ…ΠΎΠ΄Ρ ΠΈΠ· Π²ΡΠ΅Ρ… Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Ρ… особСнностСй, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄, Ρ‡Ρ‚ΠΎ структура VPN сущСствСнно отличаСтся ΠΎΡ‚ ΡΡ‚Π°Ρ€ΠΎΠΉ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ сСти.

ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ совСтом IETF (Internet Engineering Task Force) Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π½Π°Π±ΠΎΡ€ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² Π·Π°Ρ‰ΠΈΡ‚Ρ‹ сСтСвых соСдинСний. IPSec ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΎΠΉ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Ρ… соСдинСний. ΠžΡ‚Π»ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ IPSec ΠΎΡ‚ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΡ… ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π·Π°Ρ‰ΠΈΡ‚Π΅ всСго ΠΏΡƒΡ‚ΠΈ слСдования ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… (Π° Π½Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°, ΠΊΠ°ΠΊ это Π±Ρ‹Π»ΠΎ Ρ€Π°Π½ΡŒΡˆΠ΅).

Для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π±Ρ‹Π»ΠΎ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π΄Π²Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° AH (Authentication Header) ΠΈ ESP (Encapsulating Security Payload). ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» AH (Authentication Header) Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΠΎΠ΄ΡΡ‡Π΅Ρ‚Π΅ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ значСния Ρ…Π΅Ρˆ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» AH обСспСчиваСт Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π·Π°Ρ‰ΠΈΡ‰Π°Π΅Ρ‚ ΠΎΡ‚ Π°Ρ‚Π°ΠΊ, основанных Π½Π° ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π°Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² (replay attack). Π’ ΠΎΡΠ½ΠΎΠ²Π΅ ESP ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π»Π΅ΠΆΠΈΡ‚ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ ΠΎΠ½ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ‚Π΅ ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΈ AH, ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

Π­Ρ‚ΠΈ Π΄Π²Π΅ Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ особСнности ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ ΠΊ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ управлСния ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ (ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²) соСдинСний. ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ являСтся Ρ€ΡƒΡ‡Π½ΠΎΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ соСдинСний, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ ΡΠ΅ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ ТСстко ΠΏΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ запускС систСмы. К Π΅Π΄ΠΈΠ½ΡΡ‚Π²Π΅Π½Π½ΠΎΠΌΡƒ достоинству ΠΌΠΎΠΆΠ½ΠΎ отнСсти ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ простоту Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Π‘Π°ΠΌΡ‹ΠΌ ΠΆΠ΅ большим нСдостатком Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ отсутствиС «ΠΌΠ°ΡΡˆΡ‚абируСмости». Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ для установлСния сСкрСтного соСдинСния Ρ€ΡƒΡ‡Π½Ρ‹ΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ±Π΅ стороны Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒΡΡ ΠΎ ΠΊΠ»ΡŽΡ‡Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΌ для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈ ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… Π΅Π³ΠΎ использования (Π²Ρ‹Π±ΠΎΡ€ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΈ Ρ‚. ΠΏ.). Если Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ ΡΠΈΡΡ‚Π΅ΠΌΠ΅, состоящСй ΠΈΠ· Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΎΠ³ΠΎ количСства ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‚ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚. Когда ΠΆΠ΅ количСство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ составляСт нСсколько тысяч (дСсятков, сотСн…) ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° конфигурирования становится практичСски Π½Π΅Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ. Π”Ρ€ΡƒΠ³ΠΈΠΌ нСдостатком Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ конфигурирования ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ отсутствиС простого ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° смСны ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°. Π’. Π΅. ΠΊΠ»ΡŽΡ‡ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ слишком Π΄ΠΎΠ»Π³ΠΎ (для слишком большого объСма Π΄Π°Π½Π½Ρ‹Ρ…), Ρ‡Ρ‚ΠΎ сниТаСт Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

Π”Ρ€ΡƒΠ³ΠΈΠΌ способом конфигурирования соСдинСний являСтся использованиС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… «key management» ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ². Одним ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² явился ISAKMP. Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Π±Ρ‹Π» Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ совСтом IETF. ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ нСзависимо ΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ»Ρ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° являСтся Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€Π΅Π½Π½Ρ‹Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€Π°ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ соСдинСния (Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ Π½Π°Π±ΠΎΡ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² ΡΡ‚ΠΈΡ… ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°Ρ…, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ²) ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²Π°Ρ информация, для ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ². ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Π°Ρ информация являСтся Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ для ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΡŽ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ISAKMP ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ «ΠΌΠ°ΡΡˆΡ‚абируСмости». ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» высчитываСтся Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€Π° ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² соСдинСния. ΠŸΡ€ΠΈ расчСтС Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ случайныС Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹, гСнСрящиСся ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΡΡ‚ΠΎΡ€ΠΎΠ½ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ соСдинСния, Ρ‡Ρ‚ΠΎ обСспСчиваСт Ρ€Π°Π·Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΏΡ€ΠΈ Π΄Π²ΡƒΡ… ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ°Ρ… установлСния соСдинСния ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ΄Π½ΠΈΠΌΠΈ ΠΈ Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€Π°ΠΌΠΈ. Π”Π°Π½Π½ΠΎΠ΅ свойство Ρ‚Π°ΠΊΠΆΠ΅ позволяСт Π½Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ сСкрСтного соСдинСния для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π°Π±ΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Π° ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ ΠΈΡ… ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΡƒ (ΠΏΠΎΠ΄ΡΠ΅Ρ‚ΡŒ, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ IP адрСсов, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΈ Ρ‚. Π΄.) ΠΈ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ для Π½ΠΈΡ… ΠΎΠ΄Π½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ создания сСкрСтного соСдинСния.

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. ВрСмя ΠΆΠΈΠ·Π½ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ (Π² ΡΠ΅ΠΊΡƒΠ½Π΄Π°Ρ… ΠΈ ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚Π°Ρ…) являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π΄ΠΎΠ³ΠΎΠ²Π°Ρ€ΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ соСдинСния. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π»Π΅Π³ΠΊΠΎ рСгулируСтся врСмя использования ΠΊΠ»ΡŽΡ‡Π° ΠΈΠ»ΠΈ объСм Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ этим ΠΊΠ»ΡŽΡ‡ΠΎΠΌ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΈ ΠΏΠΎΡΠ²Π»ΡΠ΅Ρ‚ся ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ созданиС Π½ΠΎΠ²ΠΎΠ³ΠΎ соСдинСния ΠΏΡ€ΠΈ истСчСнии Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

Анализ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ систСмы Π·Π°Ρ‰ΠΈΡ‚Ρ‹ сСтСвых соСдинСний

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сСтСвыС Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ стали ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ корпорациями для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°Ρ‰ΠΈΡ‚Ρ‹ этой ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

Π‘Π°ΠΌΡ‹ΠΌ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ сСтСвых соСдинСний созданиС Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… сСтСй. Π˜Ρ… ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ Π±Ρ‹Π» ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ всСми элСмСнтами, входящими Π² ΡΡ‚Ρƒ ΡΠ΅Ρ‚ΡŒ, всСми ΡƒΠ·Π»Π°ΠΌΠΈ, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠ»Π° информация. Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ корпоративная ΡΠ΅Ρ‚ΡŒ Π±Ρ‹Π»Π° самодостаточной ΠΈ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ Π·Π°ΠΌΠΊΠ½ΡƒΡ‚Π° Π² ΡΠ΅Π±Π΅. Она ΠΈΠ»ΠΈ совсСм Π½Π΅ ΠΈΠΌΠ΅Π»Π° Π²Ρ‹Ρ…ΠΎΠ΄Π° Π²ΠΎ Π²Π½Π΅ΡˆΠ½ΠΈΠΉ ΠΌΠΈΡ€ ΠΈΠ»ΠΈ выходящий Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π»ΡΡ. БвязанныС с ΡΡ‚ΠΈΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π½ΠΈΠΊΠΎΠ³ΠΎ Π½Π΅ Π²ΠΎΠ»Π½ΠΎΠ²Π°Π»ΠΈ, Ρ‚. ΠΊ. этот Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π±Ρ‹Π» вСсьма Π½Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ. ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ нСбольшом, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΌ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ сСти ΡΡ‡ΠΈΡ‚Π°Π»ΠΈΡΡŒ достаточно Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΌΠΈ.

Но ΡΠ΅Π³ΠΎΠ΄Π½ΡΡˆΠ½ΠΈΠ΅ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ сСти Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‚ΡΡ согласно Π½ΠΎΠ²Ρ‹ΠΌ модСлям ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ: корпоративная ΡΠ΅Ρ‚ΡŒ сСгодня это Π½Π°Π±ΠΎΡ€ физичСски Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтСй, соСдинСнных посрСдством общСдоступной сСти Internet, Π° Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ компаниями сСгодня ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°. Π­Ρ‚Π° новая модСль ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ вынСсла Π½Π° ΠΎΠ±Ρ‰Π΅Π΅ ΠΎΠ±ΠΎΠ·Ρ€Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π»Π° старая корпоративная ΡΠ΅Ρ‚ΡŒ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ VPN Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡΠΎΠ·Π½Π°Π²Π°Ρ‚ΡŒ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ этой открытости ΠΈ Π·Π°Ρ‰ΠΈΡ‰Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Π½Π΅Π΅. Π₯ΠΎΡ€ΠΎΡˆΠΎ продуманная ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° Π·Π°Ρ‰ΠΈΡ‚Ρ‹ VPN ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ соСдинСния ΠΌΠ΅ΠΆΠ΄Ρƒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ сСтями ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ компаниями с Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠ΅ΠΉ, ΠΊΠ°ΠΊ ΠΈ Π² ΡΡ‚Π°Ρ€Ρ‹Ρ… Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… сСтях.

Для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π²Π½ΡƒΡ‚Ρ€ΠΈ VPN Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΈΡΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ для получСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² соСдинСния ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΊ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° относятся AH (Authentication Header) ΠΈ ESP (Encapsulating Security Payload). AH ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Π½Π΅ΠΊΡƒΡŽ подпись ΠΏΠΎ ΡΡ‚ΠΈΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ обСспСчиваСт ΠΈΡ… Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΠΎΠ΄Π»ΠΈΠ½Π½ΠΎΡΡ‚ΡŒ. ESP ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‡Ρ‚ΠΎ обСспСчиваСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ….

К ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌ, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌ AH ΠΈ ESP Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ, относится ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ISAKMP. Он ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ рассмотрСн Π΄Π°Π»Π΅Π΅ Π² ΡΡ‚ΠΎΠΉ Π³Π»Π°Π²Π΅.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ISAKMP

Π’ ΡΡ‚ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСно, ΠΊΠ°ΠΊ ISAKMP ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» договариваСтся ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… ΠΈ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Π΅Ρ‚ся ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя систСмами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ сСкрСтноС соСдинСниС.

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΡ€ΠΈΠΌΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ — Π·Π°Ρ€Π°Π½Π΅Π΅ извСстный сСкрСтный ΠΊΠ»ΡŽΡ‡ (preshared key).

ВсС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€Ρ‹ Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ установлСния соСдинСния, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с ISAKMP Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°. Он ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ (Initiator Cookie, Responder Cookie ΠΈ Message ID), Ρ‚ΠΈΠΏ ΠΎΠ±ΠΌΠ΅Π½Π°, Ρ„Π»Π°Π³ΠΈ, Π½ΠΎΠΌΠ΅Ρ€ вСрсии ΠΈ Π΄Π»ΠΈΠ½Ρƒ всСго ΠΏΠ°ΠΊΠ΅Ρ‚Π°.

ОсновноС Ρ‚Π΅Π»ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° состоит ΠΈΠ· payload-ΠΎΠ². Payload — объСм ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, нСсущий ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΡΠΌΡ‹ΡΠ»ΠΎΠ²ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ. Π’ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌ этот элСмСнт Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ «ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ».

Π€Π°Π·Π° 1 (Main Mode)

ЦСлью ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ„Π°Π·Ρ‹ являСтся созданиС сСкрСтного соСдинСния, ΠΏΠΎΠ΄ Π·Π°Ρ‰ΠΈΡ‚ΠΎΠΉ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ всС ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠ±ΠΌΠ΅Π½Ρ‹. Π€Π°Π·Π° состоит ΠΈΠ· 6 ΠΎΠ±ΠΌΠ΅Π½ΠΎΠ² — 3 со ΡΡ‚ΠΎΡ€ΠΎΠ½Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€Π° ΠΈ 3 со ΡΡ‚ΠΎΡ€ΠΎΠ½Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚Ρ‡ΠΈΠΊΠ° (Рис. 1).

Рис. 1. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Ρ„Π°Π·Ρ‹ 1 (Main Mode)

Π’ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ 1 ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€ посылаСт SA payload, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит всС ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² соСдинСния. Π•Π³ΠΎ структура прСдставлСна Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 2.

Рис. 2. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° SA payload

SA payload содСрТит Π²Π½ΡƒΡ‚Ρ€ΠΈ сСбя список Proposal payload-ΠΎΠ², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… прСдставляСт собой ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ». Proposal payload-Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒΡΡ Π² Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΠΎ «Π˜» ΠΈ ΠΏΠΎ «Π˜Π›Π˜». Π­Ρ‚ΠΎ осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ — ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ Π½ΠΎΠΌΠ΅Ρ€Π° ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ объСдинСниС ΠΏΠΎ «Π˜», Π° Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠΎ Π˜Π›Π˜. Π’ ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Proposal payload содСрТит список Transform payload-ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°. ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ «Π˜Π›Π˜». Transform payload содСрТит список Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… Π΄Π°Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ (Π΄Π»ΠΈΠ½Π° ΠΊΠ»ΡŽΡ‡Π°) ΠΈ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ соСдинСния. Атрибуты Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ, ΠΈΠ»ΠΈ принимаСтся вСсь список Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΈΠ»ΠΈ всС ΠΎΡ‚Π²Π΅Ρ€Π³Π°Π΅Ρ‚.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€ посылаСт ΠΎΡ‚Π²Π΅Ρ‚Ρ‡ΠΈΠΊΡƒ Π½Π° Π²Ρ‹Π±ΠΎΡ€ список списков ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² ΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π½Π° Π²Ρ‹Π±ΠΎΡ€ список Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ². Из Π²ΡΠ΅Π³ΠΎ этого ΠΎΡ‚Π²Π΅Ρ‚Ρ‡ΠΈΠΊ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ список ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ², ΠΏΡ€ΠΈΡ‡Π΅ΠΌ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΈ Π½Π°Π±ΠΎΡ€ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² для Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ (Π½ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ / удалСния, Π½ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ), Ρ‚. Π΅. Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΈΠ»ΠΈ принимаСтся со Π²ΡΠ΅ΠΌ списком Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², ΠΈΠ»ΠΈ отвСргаСтся. Выбранная информация оформляСтся Ρ‚Π°ΠΊΠΆΠ΅ Π² SA payload, ΠΈ ΠΎΡ‚правляСтся ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€Ρƒ Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ.

Π˜Ρ‚ΠΎΠ³ΠΎΠΌ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π΄Π²ΡƒΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π°, ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² соСдинСния.

Π’ ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ… 3 ΠΈ 4 ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ KE payload ΠΈ Nonce payload. Π’ ΠšΠ• payload ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€ ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‡ΠΈΠΊ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ своими ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ для Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Diffie-Hellman. Они ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… этапах для расчСта ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΊΠ»ΡŽΡ‡Π°. Nonce payload содСрТит ΡΠ»ΡƒΡ‡Π°ΠΉΠ½ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ любого Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΡ‡Π°ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ расчСтС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

ПослС этого ΠΎΠ±ΠΌΠ΅Π½Π° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ расчСт ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. На ΠΎΡΠ½ΠΎΠ²Π΅ Ρ‡ΡƒΠΆΠΎΠ³ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ сСкрСтного ΠΊΠ»ΡŽΡ‡Π΅ΠΉ рассчитываСтся ΠΎΠ±Ρ‰ΠΈΠΉ ΠΊΠ»ΡŽΡ‡ (g^xy) ΠΏΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ Diffie-Hellman. Π—Π°Ρ‚Π΅ΠΌ производится расчСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… слуТСбных констант.

SKEYID = PRF (Preshared Key, Ni | Nr)

Π³Π΄Π΅ Preshared Key — Π·Π°Ρ€Π°Π½Π΅Π΅ извСстный сСкрСтный ΠΊΠ»ΡŽΡ‡.

SKEYID_d = PRF (SKEYID, g^xy | CKY-I | CKY-R | 0)

SKEYID_a = PRF (SKEYID, SKEYID_d | g^xy | CookieI | CookieR | 1)

SKEYID_e = PRF (SKEYID, SKEYID_a | g^xy | CookieI | CookieR | 2)

Из Ρ„ΠΎΡ€ΠΌΡƒΠ» Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π² Ρ€Π°ΡΡ‡Π΅Ρ‚Π΅ всСх констант (Π°, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΈ Π²ΠΎ Π²ΡΠ΅Ρ… ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… расчСтах) участвуСт извСстный Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΡΡ сторонам сСкрСтный ΠΊΠ»ΡŽΡ‡ (Preshared Key), Ρ‡Ρ‚ΠΎ обСспСчиваСт Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ сторон, Ρ‚. ΠΊ. Π½ΠΈΠΊΡ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ рас Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ эти константы.

Из SKEYID_e ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ константы Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΏΡ€ΠΈ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… расчСтах.

Π’ ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ… 5 ΠΈ 6 ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€Ρ‹ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ, которая ΠΈΡ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ (IDii ΠΈ IDir) ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ, которая ΠΈΡ… Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ (HASH_I, HASH_R). Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Π°Ρ информация пСрСдаСтся посрСдством Identification payload, Π³Π΄Π΅ указываСтся Ρ‚ΠΈΠΏ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ (IP Π°Π΄Ρ€Π΅Ρ, имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, SubNet ΠΈ Ρ‚. ΠΏ.) ΠΈ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

АутСнтификационная информация пСрСдаСтся Ρ‡Π΅Ρ€Π΅Π· Hash payload. Π•Π³ΠΎ содСрТимоС рассчитываСтся ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π°ΠΌ (для ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€Π° ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‡ΠΈΠΊΠ° соотвСтствСнно):

HASH_I = PRF (SKEYID, g^xi | g^xr | CookieI | CookieR | SAi | IDii)

HASH_R = PRF (SKEYID, g^xr | g^xi | CookieR | CookieI | SAi | IDir)

ПослСдний ΠΎΠ±ΠΌΠ΅Π½ (ΠΏΠ°ΠΊΠ΅Ρ‚ 5 ΠΈ 6) ΡƒΠΆΠ΅ пСрСдаСтся Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€Π΅Π½Π½Ρ‹Ρ… Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ этапС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΈ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Π½Π½ΠΎΠΉ послС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ.

Π€Π°Π·Π° 1 (Aggressive Mode)

Aggressive Mode выполняСт Ρ‚Π΅ ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΈ Main Mode, Π½ΠΎ ΡƒΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ся всСго Π² Ρ‚Ρ€ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π’Π°ΠΊΠΎΠ΅ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½ Π°Ρ‚Π°ΠΊΠ°ΠΌ, Ρ‡Π΅ΠΌ Main Mode. На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 3 прСдставлСна структура Aggressive Mode.

Π’ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ 1 ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€ посылаСт сразу SA payload с ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² соСдинСния, KE payload со ΡΠ²ΠΎΠΈΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ, Nonce payload со ΡΠ»ΡƒΡ‡Π°ΠΉΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ сСбя с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Identification payload.

Π‘Ρ€Π°Π·Ρƒ Π²ΠΈΠ΄Π½Ρ‹ нСдостатки Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ°. Π’ SA payload-Π΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² для Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Diffie-Hellman-Π° Ρ‚. ΠΊ. сразу ΠΆΠ΅ посылаСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡, Π° Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ зависит ΠΎΡ‚ ΡΡ‚ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π’ Π΄Π°Π½Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Main Mode, идСнтификационная информация посылаСтся Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅.

ΠžΡ‚Π²Π΅Ρ‚Ρ‡ΠΈΠΊ, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ² ΠΏΠ°ΠΊΠ΅Ρ‚ 1, ΡƒΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ достаточно ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ для расчСта Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… констант ΠΈ ΡΠ²ΠΎΠ΅ΠΉ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² ΠΏΠ°ΠΊΠ΅Ρ‚ 2 состоит ΠΈΠ· Ρ‚Π΅Ρ… ΠΆΠ΅ частСй, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ 1 (с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Π½Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ) ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ‚ся Hash payload, содСрТащий ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰ΡƒΡŽ ΠΎΡ‚Π²Π΅Ρ‚Ρ‡ΠΈΠΊΠ°. ΠŸΠ°ΠΊΠ΅Ρ‚ Π΅Ρ‰Π΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ (Ρ‚. ΠΊ. ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€ Π½Π΅ Π·Π½Π°Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΈ Ρƒ Π½Π΅Π³ΠΎ Π½Π΅Ρ‚ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ), Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΆΠ΅ провСсти ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, которая Π±ΡƒΠ΄Π΅Ρ‚ использована Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ.

Рис. 3. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Ρ„Π°Π·Ρ‹ 1 (Aggressive Mode)

Π˜Π½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€ ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° 2 Π±Π΅Ρ€Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. Π—Π°Ρ‚Π΅ΠΌ вычисляСт Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ константы, Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ ΠΊΠ»ΡŽΡ‡ΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ. ΠŸΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ 3 ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ сСбя.

Π€Π°Π·Π° 2 (Quick Mode)

ЦСлью Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„Π°Π·Ρ‹ являСтся ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² сСкрСтного соСдинСния ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ [6]. ВсС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„Π°Π·Ρ‹, Π·Π°Ρ‰ΠΈΡ‰Π°ΡŽΡ‚ΡΡ сСкрСтным соСдинСниСм, созданным Π²ΠΎ Π²Ρ€Π΅ΠΌΡ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ„Π°Π·Ρ‹. ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ обСспСчиваСтся ΠΈ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡƒΡ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ значСния Ρ…Π΅Ρˆ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‚ Π΄Π°Π½Π½Ρ‹Ρ….

Рис. 4. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Ρ„Π°Π·Ρ‹ 2 (Quick Mode)

Π Π΅ΠΆΠΈΠΌ состоит ΠΈΠ· Ρ‚Ρ€Π΅Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². Π•Π³ΠΎ структура прСдставлСна Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 4. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€ посылаСт SA payload, содСрТащий прСдлоТСния ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ соСдинСния, ΡΠ»ΡƒΡ‡Π°ΠΉΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ (Nonce payload) для создания ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Если для расчСта ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ трСбуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ «ΡΠ²Π΅ΠΆΠΈΠΉ» ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π», Ρ‚ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚вляСтся Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΠΌΠ΅Π½ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС для расчСта бСрСтся информация ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ„Π°Π·Ρ‹. Π’Π°ΠΊΠΆΠ΅, Ссли локальная ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ использованиС Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„Π°Π·Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΎΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ„Π°Π·Π΅, Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Identification payload-Ρ‹.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ заполняСтся ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎΠ± ΠΎΡ‚Π²Π΅Ρ‚Ρ‡ΠΈΠΊΠ΅. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ (ΠΈ Ρ‚ΠΎΠ³Π΄Π° Π² Ρ‚Π°ΠΊΠΎΠΌ ΠΆΠ΅ Π²ΠΈΠ΄Π΅ ΠΈ ΠΎΡ‚ΡΡ‹Π»Π°ΡŽΡ‚ΡΡ) ΠΈΠ»ΠΈ Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ся ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° установлСния соСдинСния считаСтся Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎΠΉ.

Π’Ρ€Π΅Ρ‚ΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ посылаСтся ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€ΠΎΠΌ Π² ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ принятой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Hash payload, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ вычисляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΡƒΡ„Π΅Ρ€Π° случайных Π΄Π°Π½Π½Ρ‹Ρ…, посланных ΠΎΡ‚Π²Π΅Ρ‚Ρ‡ΠΈΠΊΠΎΠΌ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Hash payload-ΠΎΠ² Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π°ΠΌ:

HASH (1) = PRF (SKEYID_a, Message ID | SA | Ni [| KE] [| IDic | IDcr])

HASH (2) = PRF (SKEYID_a, Message ID | Ni | SA | Nr | [| KE] [| IDic | IDcr])

HASH (3) = PRF (SKEYID_a, 0 | Message ID | Ni | Nr)

Π€ΠΎΡ€ΠΌΡƒΠ»Π° для расчСта ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π±Ρ‹Π» Π»ΠΈ ΠΎΠ±ΠΌΠ΅Π½ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΊΠ»ΡŽΡ‡Π°. Если Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π° Π½Π΅ Π±Ρ‹Π»ΠΎ, Ρ‚ΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ:

KEYMAT = PRF (SKEYID_d, protocol | SPI | Ni | Nr)

Π³Π΄Π΅ protocol — Π½ΠΎΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°, для Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ считаСтся ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π».

Если всС ΠΆΠ΅ вычислСниС ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΊΠ»ΡŽΡ‡Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ, Ρ„ΠΎΡ€ΠΌΡƒΠ»Π° для расчСта ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ:

KEYMAT = PRF (SKEYID_d, g^xy | protocol | SPI | Ni | Nr)

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, послС Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„Π°Π·Ρ‹ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ всю Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ для создания сСкрСтного соСдинСния. Бписок примСняСмых ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² Π½ΠΈΡ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ получаСтся послС ΠΎΠ±ΠΌΠ΅Π½Π° SA payload-Π°ΠΌΠΈ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„Π°Π·Π΅. ΠšΠ»ΡŽΡ‡Π΅Π²Π°Ρ информация для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° рассчитываСтся ΠΏΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌ Π²Ρ‹ΡˆΠ΅ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π°ΠΌ. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ привСдСнная Π²Ρ‹ΡˆΠ΅ структура ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π±Ρ‹Π»Π° ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π° для простоты восприятия (отсутствуСт рассмотрСниС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ New Group Mode).

Π’ΠΈΠ΄Ρ‹ сСтСвых Π°Ρ‚Π°ΠΊ

НС ΡΠΌΠΎΡ‚Ρ€Ρ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» сам ΠΏΠΎ ΡΠ΅Π±Π΅ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π° Π»ΠΈΡˆΡŒ создаСт соСдинСния для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ½ ΡΠ°ΠΌ являСтся ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΠΌ Π°Ρ‚Π°ΠΊΠΈ. ΠŸΠΎΠ΄Π²Π΅Ρ€Π³Π½ΡƒΡ‚ΡŒΡΡ Π°Ρ‚Π°ΠΊΠ΅ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ ΠΌΠΎΠ³ΡƒΡ‚ процСсс Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, процСсс обСспСчСния цСлостности ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, сама Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°. Π’ ΡΡ‚ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ основныС Π²ΠΈΠ΄Ρ‹ сСтСвых Π°Ρ‚Π°ΠΊ ΠΈ Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΈΠΌ ΠΏΡ€ΠΎΡ‚ивостоят.

ΠžΡ‚ΠΊΠ°Π· Π² ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Π½ΠΈΠΈ (Denial of Service)

Данная Π°Ρ‚Π°ΠΊΠ° являСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ°ΠΌΡ‹Ρ… простых ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ…. ЦСлью Π°Ρ‚Π°ΠΊΠΈ являСтся Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ систСмы ΠΈΠ»ΠΈ, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС, ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°.

Π‘Π°ΠΌΠ° Π°Ρ‚Π°ΠΊΠ° прСдставляСт собой посылку Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠΎΠΌ большого числа запросов Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ соСдинСния, вынуТдая ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΡƒΡŽ сторону Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ рСсурсы Π½Π° ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΡ€Ρ‹Ρ‚ΡŒ свой истинный адрСс ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡΡ‹Π»Π°Ρ‚ΡŒΡΡ с Ρ„ΠΈΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… адрСсов. Если посылаСмыС Π»ΠΎΠΆΠ½Ρ‹Π΅ запросы Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ собой всС рСсурсы систСмы, Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° приходящих ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… запросов откладываСтся Π½Π° Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ врСмя ΠΈΠ»ΠΈ ΠΎΠ½ΠΈ просто ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ. Π‘ΠΎ ΡΡ‚ΠΎΡ€ΠΎΠ½Ρ‹ внСшнСго ΠΌΠΈΡ€Π° систСма выглядит Π½Π΅Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΉ.

ΠžΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌΡΡ сразу, способа, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ защитится ΠΎΡ‚ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π°Ρ‚Π°ΠΊ Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΠ΅Ρ‚. Атаку ΠΌΠΎΠΆΠ½ΠΎ лишь ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠ΅Π½Π΅Π΅ эффСктивной. Π’ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ ISAKMP это достигаСтся Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π·Π° ΡΡ‡Π΅Ρ‚ откладывания основных «Ρ‚яТСлых» расчСтов Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΠ΅ ΠΎΠ±ΠΌΠ΅Π½Ρ‹. Π’ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΎΠ±ΠΌΠ΅Π½Ρ‹ производятся простыС вычислСния (Π²Ρ‹Π±ΠΎΡ€ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² соСдинСния). Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя сама Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° состоит ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΠ±ΠΌΠ΅Π½ΠΎΠ², Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΈΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ адрСса, Ρ‚. ΠΊ. Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΡ‚ Π½Π°Ρ, ΠΎΠ½ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚. Π’. Π΅. Ссли Π°Ρ‚Π°ΠΊΠ° ΠΈ ΡΡ‚Π°Π½Π΅Ρ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ‚ΠΎΡ‡Π½ΠΎ Π·Π½Π°Ρ‚ΡŒ, ΠΊΡ‚ΠΎ нас Π°Ρ‚Π°ΠΊΠΎΠ²Π°Π». Однако слСдуСт Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ способ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Aggressive Mode, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, ΠΊΠ°ΠΊ ΡƒΠΆΠ΅ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π»ΠΎΡΡŒ, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстрСС, Π½ΠΎ ΠΌΠ΅Π½Π΅Π΅ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½.

Π§Π΅Π»ΠΎΠ²Π΅ΠΊ посСрСдинС (Man-in-the-Middle)

ЦСлью Π°Ρ‚Π°ΠΊΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…. Атака Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ, вклиниваясь Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡ установлСния сСкрСтного соСдинСния, прСдставляСтся для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΡΡ‚ΠΎΡ€ΠΎΠ½ Π΅Π΅ ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€ΠΎΠΌ ΠΈ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ установлСниС соСдинСния ΠΎΡ‚ Π΅Π΅ ΠΈΠΌΠ΅Π½ΠΈ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ вмСсто ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π° ΠΌΠ΅ΠΆΠ΄Ρƒ двумя ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€Π°ΠΌΠΈ получаСтся Π΄Π²Π° ΠΊΠ°Π½Π°Π»Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΡΡ‚ΠΎΡ€ΠΎΠ½ ΠΈ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠΎΠΌ. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€ΠΎΠ² всС выглядит ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½ΠΎ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ ΠΏΠΎ «Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠΌΡƒ» ΠΊΠ°Π½Π°Π»Ρƒ, Π½ΠΎ Π΄Π°ΠΆΠ΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ…. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° описанной Π°Ρ‚Π°ΠΊΠΈ прСдставлСна Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 5.

Sx — сСкрСтный ΠΊΠ»ΡŽΡ‡, Px — ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π—Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° Π°Ρ‚Π°ΠΊΠΈ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ ISAKMP Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этого процСсса Π²ΠΎ Π²Ρ€Π΅ΠΌΡ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ„Π°Π·Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ±Π΅ΠΈΠΌ сторонам отсутствиС «Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° посСрСдинС», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ смог Π±Ρ‹ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„Π°Π·Π΅, Π½ΠΎ ΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ основной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΡΡ‚ΠΎΠΉΠΊΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ΠΊ Π΄Π°Π½Π½ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ Π°Ρ‚Π°ΠΊΠΈ опрСдСляСтся Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. Для ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π·Π°Ρ€Π°Π½Π΅Π΅ извСстного сСкрСтного ΠΊΠ»ΡŽΡ‡Π° это опрСдСляСтся ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π°, для ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… сСртификаты — Π΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ сСртификата.

ΠŸΠΎΠ²Ρ‚ΠΎΡ€ посылки (Replay attack)

Атака Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΠ΅Ρ€Π΅ΠΏΠΎΡΡ‹Π»ΠΊΠ΅ Ρ€Π°Π½Π΅Π΅ записанных ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² Ρ€Π°ΡΡ‡Π΅Ρ‚Π΅ Π½Π° Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ Ρ€Π΅Π°ΠΊΡ†ΠΈΡŽ Π°Ρ‚Π°ΠΊΡƒΠ΅ΠΌΠΎΠ³ΠΎ. НапримСр, ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΏΠΎΠ΄ΡΠ»ΡƒΡˆΠ°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π΄Π²ΡƒΡ… ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€ΠΎΠ², ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½ΠΈΡ… ΠΏΡ€ΠΈ установлСнии соСдинСния со Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ. Π”Π°ΠΆΠ΅ Ссли Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ просто повторят ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ соСдинСниС (Ρ‚.Π΅. Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π±ΡƒΠ΄Π΅Ρ‚ создано Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ соСдинСниС ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ с ΠΏΡ€Π΅ΠΆΠ½ΠΈΠΌ), это ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ рСсурсов.

Для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ ΡΡ‚ΠΎΠΉ Π°Ρ‚Π°ΠΊΠΈ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ Π±Ρ‹Π» Π²Π²Π΅Π΄Π΅Π½ Nonce payload, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ стороны ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ случайной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ. Π­Ρ‚Π° информация ΠΏΠΎΡ‚ΠΎΠΌ участвуСт Π² Ρ€Π°ΡΡ‡Π΅Ρ‚Π°Ρ… всСх констант ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ². ИспользованиС Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±ΠΌΠ΅Π½Π΅ «ΡΠ²Π΅ΠΆΠ΅ΠΉ» случайной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΎΡ‚ Π°Ρ‚Π°ΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΎΠ².

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΉ части Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π° Π±Ρ‹Π»Π° рассмотрСна структура ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° создания Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Ρ… сСтСвых соСдинСний ISAKMP. Π’ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ рассмотрСния Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ порядок посылки ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΈΡ… ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ ΠΈ ΠΎΠ±ΡŠΡΡΠ½Π΅Π½ΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π’Π°ΠΊΠΆΠ΅ Π±Ρ‹Π»ΠΈ Π΄Π°Π½Ρ‹ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ проводятся расчСты Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… констант ΠΈ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°.

Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ части Π±Ρ‹Π»ΠΈ прСдставлСны основныС Ρ‚ΠΈΠΏΡ‹ сСтСвых Π°Ρ‚Π°ΠΊ, объяснСн ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΈΡ… Π΄Π΅ΠΉΡΡ‚вия ΠΈ, Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ структуры ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ISAKMP, ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΏΡ€ΠΎΡ‚ивостоит этим Π°Ρ‚Π°ΠΊΠ°ΠΌ.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ мСста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ сСтСвого Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°

Π’ ΡΡ‚ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ, ΠΈΠ· ΠΊΠ°ΠΊΠΈΡ… основных ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ состоит систСма Π·Π°Ρ‰ΠΈΡ‚Ρ‹ сСтСвого Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этих ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΎΠ½ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚.

На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 6 прСдставлСна структура систСмы Π·Π°Ρ‰ΠΈΡ‚Ρ‹ сСтСвого Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°. Рассмотрим ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ управлСния

Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ опрСдСляСт ΠΎΠ±Ρ‰Π΅Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ систСмы. Π’Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π³ΠΎ происходит считываниС, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΈ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, согласно ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ ΡƒΠΏΡ€Π°Π²Π»ΡΠ΅Ρ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ модулями. ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ интСрфСйсы ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ модулям. Π’ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΎΠ½ ΠΏΡ€ΠΎΠ³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»Π° Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° (входящСго ΠΈ ΠΈΡΡ…одящСго), ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° (Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ ISAKMP). Из ΠΌΠΎΠ΄ΡƒΠ»Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΎΠ½ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ запросы, Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ сСкрСтного соСдинСния (ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Π² ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ISAKMP. Π’Π°ΠΊΠΆΠ΅ Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ модуля ISAKMP ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° Π½Π΅ΠΌ Π»Π΅ΠΆΠΈΡ‚ ΠΎΠ±ΡΠ·Π°Π½Π½ΠΎΡΡ‚ΡŒ формулирования ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² соСдинСния ΠΈ Π²Ρ‹Π±ΠΎΡ€ ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌ Π½Π°Π±ΠΎΡ€Π΅. Π”ΠΎ ΠΏΡ€ΠΎΠ³Ρ€ΡƒΠ·ΠΊΠΈ сСкрСтного соСдинСния, созданного ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ ISAKMP, ΠΎΠ½ΠΎ сохраняСтся Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ хранСния основной ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ хранСния основной ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ

ЯвляСтся Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ мСстом хранСния ΠΏΡ€Π°Π²ΠΈΠ» ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° (Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ находится Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сСтСвого Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°). ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ дублирования ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² Π΄Π²ΡƒΡ… мСстах ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ врСмя ΠΆΠΈΠ·Π½ΠΈ соСдинСния Π² ΡΠ΅ΠΊΡƒΠ½Π΄Π°Ρ… Π»Π΅Π³Ρ‡Π΅ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π² ΡΡ‚ΠΎΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅, Π° Π² ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚Π°Ρ… Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ появляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΡ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π΄Π°Π²Π½ΠΎ Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π»ΠΈΡΡŒ, Π° Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ Π½Π΅ΠΎΠ±Ρ…одимости. ВзаимодСйствиС вСдСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ управлСния, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ принимаСтся информация ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ для сохранСния ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ соСдинСния, Π° Π²Ρ‹Π΄Π°Π΅Ρ‚ся сигнал ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ соСдинСния ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΎΡΡŒ врСмя ΠΆΠΈΠ·Π½ΠΈ.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сСтСвого Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°

ΠžΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ входящий ΠΈ ΠΈΡΡ…одящий Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠΈ согласно ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ управлСния. Для противостояния Π°Ρ‚Π°ΠΊΠ°ΠΌ ΠΎΡ‚ΠΊΠ°Π·Π° Π² Π΄ΠΎΡΡ‚ΡƒΠΏΠ΅, Ссли для входящСго ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π½Π΅ Π½Π°Ρ…одится ΠΏΡ€Π°Π²ΠΈΠ»Π° Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ‚ΠΎ ΠΎΠ½ ΠΏΡ€ΠΎΡΡ‚ΠΎ игнорируСтся. Наоборот, Ссли подобная ситуация ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ для исходящСго ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Ρ‚ΠΎ Π² ΠΌΠΎΠ΄ΡƒΠ»ΡŒ управлСния пСрСдастся запрос Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Ρ‚Π°ΠΊΠΎΠ³ΠΎ соСдинСния. Π’Π°ΠΊΠΆΠ΅ Π² ΠΌΠΎΠ΄ΡƒΠ»ΡŒ управлСния ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ сигнал ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ соСдинСния истСкло врСмя ΠΆΠΈΠ·Π½ΠΈ Π² ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚Π°Ρ…. ΠžΡ‚ ΠΌΠΎΠ΄ΡƒΠ»Ρ управлСния Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ созданноС соСдинСниС ΠΈ ΡΠΈΠ³Π½Π°Π» Π½Π° ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠ΅ соСдинСния.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ ISAKMP

По Π·Π°ΠΏΡ€ΠΎΡΡƒ со ΡΡ‚ΠΎΡ€ΠΎΠ½Ρ‹ модуля управлСния ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, создаСт ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°. ВзаимодСйствуСт с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ управлСния ΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ хранСния ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ISAKMP. Π’ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ хранСния ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ соСдинСния, созданныС Π²ΠΎ Π²Ρ€Π΅ΠΌΡ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ„Π°Π·Ρ‹ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ΡΡ для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ„Π°Π·. ΠžΡ‚ ΠΌΠΎΠ΄ΡƒΠ»Ρ управлСния ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ запрос Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ соСдинСния, ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ для формирования / Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² соСдинСния ΠΈ Ρ„ормирования / ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ сСбя. ΠžΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² ΠΌΠΎΠ΄ΡƒΠ»ΡŒ управлСния отдаСтся созданноС соСдинСниС ΠΈΠ»ΠΈ сигнал ΠΎ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎΠΉ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π΅Π³ΠΎ создания.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ хранСния ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ISAKMP

Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ являСтся Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΡΠ΅ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… соСдинСниях ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ISAKMP, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΈΠΌ Π΄Π»Ρ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ своСго Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°. Π”Π°Π½Π½Ρ‹Π΅ соСдинСния ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ скрыты для модуля управлСния. ΠœΠΎΠ΄ΡƒΠ»ΡŒ осущСствляСт ΠΏΡ€ΠΈΠ΅ΠΌ Π½Π° Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΡ…, поиск ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ соСдинСния ΠΈ ΠΎΡ‚слСТиваниС окончания Π²Ρ€Π΅ΠΌΠ΅Π½ ΠΆΠΈΠ·Π½ΠΈ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… соСдинСний (ΠΏΡ€ΠΈ истСчСнии срока соСдинСниС Ρ‚ΡƒΡ‚ ΠΆΠ΅ удаляСтся).

На ΠΎΡΠ½ΠΎΠ²Π΅ прСдставлСнной структуры ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ISAKMP, вписываСтся Π² ΡΠΈΡΡ‚Π΅ΠΌΡƒ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ сСтСвого Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ собой ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ISAKMP, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ хранСния ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ISAKMP ΠΈ Ρ‡Π°ΡΡ‚ΡŒ модуля Ρ…Ρ€Π°Π½ΡΡ‰ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ модуля ISAKMP, ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‰Π°Ρ запросы Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ соСдинСния ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠ° созданных ΠΏΡ€Π°Π²ΠΈΠ» ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, получаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ интСрфСйс со Π²ΡΠ΅ΠΉ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ систСмой, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π²Π·Π°ΠΈΠΌΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‡Π°ΡΡ‚ΡŒΡŽ модуля управлСния вошСдшСй Π² ΡΠΎΡΡ‚Π°Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΠΎΡΡ‚Π°Π²ΡˆΠ΅ΠΉΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ модуля управлСния.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΎΠ±Ρ‰Π΅ΠΉ структуры ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π’Π°ΠΊ ΠΊΠ°ΠΊ прСдставлСнная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° написана с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ «Π½ΠΈΡ‚Π΅ΠΉ» (Thread), Ρ‚ΠΎ Π² Π½Π°Ρ‡Π°Π»Π΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π° Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π°Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ этому Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρƒ, описаны ΠΏΠ»ΡŽΡΡ‹ ΠΈ ΠΌΠΈΠ½ΡƒΡΡ‹ использования этой Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π° Π·Π°Ρ‚Π΅ΠΌ рассмотрСно ΠΈΠ· ΠΊΠ°ΠΊΠΈΡ… ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ (Π½ΠΈΡ‚Π΅ΠΉ) состоит ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΠΈΡ… Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ собой.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π½ΠΈΡ‚ΡŒ (thread)?

Под Π½ΠΈΡ‚ΡŒΡŽ (ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ Π½ΠΈΡ‚ΡŒΡŽ контроля) понимаСтся нСзависимая ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ процСсса. Нити Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ собой всю ΠΏΠ°ΠΌΡΡ‚ΡŒ процСсса, ΠΈ Π΅ΡΠ»ΠΈ ΠΎΠ΄Π½Π° Π½ΠΈΡ‚ΡŒ ΠΏΠΈΡˆΠ΅Ρ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ, другая ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ эти Π΄Π°Π½Π½Ρ‹Π΅. Нити Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ рСсурсы процСсса, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, дСскриптор Ρ„Π°ΠΉΠ»Π°, Ρ‚. Π΅. сразу нСсколько Π½ΠΈΡ‚Π΅ΠΉ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ„Π°ΠΉΠ». Нити Π²Π½ΡƒΡ‚Ρ€ΠΈ процСсса Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‚ся Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ нСзависимо, Ρ‚. Π΅. Ссли ΠΎΠ΄Π½Π° Π½ΠΈΡ‚ΡŒ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ Π²Π²ΠΎΠ΄Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, это Π½ΠΈΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π΅Ρ‚ исполнСниС Π΄Ρ€ΡƒΠ³ΠΈΡ… Π½ΠΈΡ‚Π΅ΠΉ. Π’ ΠΌΡƒΠ»ΡŒΡ‚ипроцСссорных систСмах Ρ€Π°Π·Π½Ρ‹Π΅ Π½ΠΈΡ‚ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ процСссорами. Π’ ΠΎΠ΄Π½ΠΎΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½Ρ‹Ρ… ΠΆΠ΅ систСмах — Π½ΠΈΡ‚ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΌ порядкС. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ, Π½ΠΈΡ‚ΡŒ исполняСтся, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ запросом ΠΈΠ»ΠΈ ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ся ΠΎΡ‚Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π΅ΠΉ ΠΎΡ‚Ρ€Π΅Π·ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (ΠΊΠ²Π°Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ).

НС ΡΠΌΠΎΡ‚Ρ€Ρ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ использованиС Π½ΠΈΡ‚Π΅ΠΉ нСсколько услоТняСт процСсс программирования, ΠΎΠ½ΠΈ Π΄Π°ΡŽΡ‚ прСимущСства. Рассмотрим эти прСимущСства ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, рСализованная с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΉ Π½ΠΈΡ‚ΠΈ, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Ρ€Π΅ΠΆΠΈΠΌ оТидания ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ систСмном Π²Ρ‹Π·ΠΎΠ²Π΅. ИспользованиС Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ Π½ΠΈΡ‚ΠΈ (ΠΈ Π΄Π»Ρ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½Ρ‹Ρ…, ΠΈ Π΄Π»Ρ однопроцСссорных систСм) позволяСт ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π° оТидания выполнСния систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ². ΠΠΈΡ‚ΡŒ, которая Π΄Π΅Π»Π°Π΅Ρ‚ запрос, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Ρ€Π΅ΠΆΠΈΠΌ оТидания, Π½ΠΎ Π΄Ρ€ΡƒΠ³Π°Ρ Π½ΠΈΡ‚ΡŒ Π² Π΄Π°Π½Π½ΠΎΠΌ процСссС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ. ΠŸΡ€ΠΈ этом ΠΎΠ΄Π½ΠΎΠΌΡƒ процСссу Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ нСсколько запросов ΠΊ ΡΠΈΡΡ‚Π΅ΠΌΠ΅. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ запросы ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ синхронными.

ΠœΡƒΠ»ΡŒΡ‚ΠΈΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½Ρ‹Π΅ систСмы. ИспользованиС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π½ΠΈΡ‚Π΅ΠΉ Π² ΠΎΠ΄Π½ΠΎΠΌ процСссС являСтся эффСктивным способом использования возмоТности ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

ГрафичСский интСрфСйс для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. ΠžΠ΄Π½ΠΎΠ½ΠΈΡ‚Π΅Π²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ графичСский интСрфСйс, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π·Π°ΠΌΠΈΡ€Π°Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Сля (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ). Если Π±Ρ‹ это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΈΡ‚Π΅Π²Ρ‹ΠΌ, Ρ‚ΠΎ Ρ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ΠΌ наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π½ΠΈΡ‚ΡŒ, Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π½ΠΈΡ‚ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π»ΠΈ Π±Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Π’Π°ΠΊ ΠΆΠ΅ Π² ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… систСмах мноТСство Π½ΠΈΡ‚Π΅ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹ΠΌ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ слуТСбных дСйствий (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, автоматичСскоС сохранСниС).

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ сСрвСрных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘Π΅Ρ€Π²Π΅Ρ€Π½Ρ‹Π΅ прилоТСния ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ запросы, приходящиС ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ². ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΉΡ‚ΠΈ нСсколько запросов. Π’ ΡΠ»ΡƒΡ‡Π°Π΅ ΠΎΠ΄Π½ΠΎΠ½ΠΈΡ‚Π΅Π²ΠΎΠ³ΠΎ прилоТСния запросы Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ слоТного запроса ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Π΄ΠΎΠ»Π³ΠΎ ΠΎΡ‚Π»ΠΎΠΆΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΡ…, Π±ΠΎΠ»Π΅Π΅ простых ΠΈ Π²Π°ΠΆΠ½Ρ‹Ρ… запросов. Много нитСвая структура Π² ΡΡ‚ΠΎΠΌ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ прСдставляСтся Π±ΠΎΠ»Π΅Π΅ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎΠΉ, Ρ‚. ΠΊ. ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ запрос ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ согласно Π΅Π³ΠΎ слоТности ΠΈ Π²Π°ΠΆΠ½ΠΎΡΡ‚ΠΈ. Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ для сСрвСрных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ являСтся Π²Π·Π°ΠΈΠΌΠ½Ρ‹Π΅ запросы. Π­Ρ‚ΠΎ происходит Ссли сСрвСр 1, обрабатывая клиСнтский запрос, Π΄Π΅Π»Π°Π΅Ρ‚ запрос ΠΊ ΡΠ΅Ρ€Π²Π΅Ρ€Ρƒ 2, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΏΡ€ΠΈ Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ обращаСтся ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΊ ΡΠ΅Ρ€Π²Π΅Ρ€Ρƒ 1. Π’ ΠΎΠ΄Π½ΠΎΠ½ΠΈΡ‚Π΅Π²ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ это ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π·Π°Π²ΠΈΡΠ°Π½ΠΈΡŽ ΠΎΠ±ΠΎΠΈΡ… сСрвСров, Ρ‚. ΠΊ. СдинствСнная Π½ΠΈΡ‚ΡŒ сСрвСра 1 ΡƒΠΆΠ΅ занята ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ запроса ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ запрос сСрвСра 2. ИспользованиС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π½ΠΈΡ‚Π΅ΠΉ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Ρ‚. ΠΊ. для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ запроса выдСляСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ Π½ΠΈΡ‚ΡŒ, которая выполняСтся нСзависимо ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ….

Однако использованиС Π½ΠΈΡ‚Π΅ΠΉ нСсСт Π² ΡΠ΅Π±Π΅ нСсколько опасностСй, ΠΈ Π³Π»Π°Π²Π½Π°Ρ ΠΈΠ· Π½ΠΈΡ… это Ρ€Π°Π±ΠΎΡ‚Π° с ΠΎΠ±Ρ‰Π΅ΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ. Рассмотрим ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ увСличСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ выливаСтся Π² 3 дСйствия:

Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ Π£Π²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ рСгистр Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ рСгистра Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Если Π΄Π²Π΅ Π½ΠΈΡ‚ΠΈ Π½Π°Ρ‡Π½ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ этот ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ дСйствий:

ΠΠΈΡ‚ΡŒ 1 ΠΠΈΡ‚ΡŒ 2

1 Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€

1 Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€

2 Π£Π²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ рСгистр

3 Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ рСгистра Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ

2 Π£Π²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ рСгистр

3 Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ рСгистра Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π’ ΡΡ‚ΠΎΠΌ случаС Π½ΠΈΡ‚ΡŒ 1 ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ записанной Π½ΠΈΡ‚ΡŒΡŽ 2, ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ увСличится лишь Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ вмСсто Π΄Π²ΡƒΡ…. Π’Π°ΠΊΠΈΠ΅ мСста Π² ΠΊΠΎΠ΄Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ критичСскими сСкциями ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΉ Π½ΠΈΡ‚ΡŒΡŽ.

ИспользованиС ΠΌΠ½ΠΎΠ³ΠΎΠ½ΠΈΡ‚Π΅Π²ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° построСния ΠΌΠΎΠ΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Ρ‹Π·Π²Π°Π½ΠΎ двумя ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌΠΈ:

ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ постоянно ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΠΎΡ€Ρ‚ Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΡ€ΠΈΡˆΠ΅Π΄ΡˆΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ дСйствия ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ сСрвСрного прилоТСния (Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ запросов ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ приходящиС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹). Π’ ΡΠ²ΡΠ·ΠΈ с ΡΡ‚ΠΈΠΌ ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‡Π΅Π½ΡŒ Ρ†Π΅Π½Π½Ρ‹ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² согласно ΠΈΡ… Π²Π°ΠΆΠ½ΠΎΡΡ‚ΠΈ.

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΎΠ±ΠΌΠ΅Π½Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ нитями

Π’ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ нитями Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ. Π’ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ это ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ Π·Π°ΠΏΡ€ΠΎΡΠΎΠ² с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ. Для осущСствлСния ΠΎΠ±ΠΌΠ΅Π½Π° использовался ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ pipe. Pipe прСдставляСт собой ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. ЕдинствСнным Π΅Π³ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ этот ΠΌΠΎΠ΄ΡƒΠ»ΡŒ создаСт ΠΎΠ΄Π½ΠΎΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ…. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ производится с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ pipe.

#include

int pipe (int filedes[2]);

Ѐункция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 0 Π² ΡΠ»ΡƒΡ‡Π°Π΅ успСха ΠΈ -1 ΠΏΡ€ΠΈ ошибкС. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ прСдаСтся массив ΠΈΠ· Π΄Π²ΡƒΡ… дСскрипторов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ дСскриптор (filedes[0]) ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для чтСния ΠΈΠ· pipe, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ (filedes[1]) для записи Π² pipe. Π§Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ· pipe ΠΈ Π·Π°ΠΏΠΈΡΡŒ Π² Π½Π΅Π³ΠΎ производятся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ стандартных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ read ΠΈ write. Для этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ дСскриптор pipe Π½ΠΈΡ‡Π΅ΠΌ Π½Π΅ ΠΎΡ‚личаСтся ΠΎΡ‚ Π΄Π΅ΡΠΊΡ€ΠΈΠΏΡ‚ΠΎΡ€Π° Ρ„Π°ΠΉΠ»Π°.

#include

ssize_t read (int fildes, void *buf, size_t nbyte);

ssize_t read (int fildes, void *buf, size_t nbyte);

Π’Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ пСрСдаСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π±ΡƒΡ„Π΅Ρ€, ΠΊΡƒΠ΄Π° Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ (для read) ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΡƒΠ΄Π° ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… (для write). Π’Ρ€Π΅Ρ‚ΡŒΠΈΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ для read пСрСдаСтся максимальноС число Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, я Π΄Π»Ρ write число записываСмых Π±Π°ΠΉΡ‚.

Π’Ρ‹Π±ΠΎΡ€ pipe Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ срСдства ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ нитями обусловлСн простотой ΠΈ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡ‚ΡŒΡŽ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Плюс ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΠ³Π΄Π° Π² pipe ΠΏΠΈΡˆΡƒΡ‚ сразу 2 сообщСния — эти сообщСния Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠΈΠ²Π°ΡŽΡ‚ся, Π° Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. ΠŸΡ€Π°Π²Π΄Π° Π² ΡΡ‚ΠΎΠΌ случаС встаСт Π·Π°Π΄Π°Ρ‡Π° раздСлСния этих Π΄Π²ΡƒΡ… сообщСний, Ρ‚. ΠΊ. read Π½Π΅ Ρ€Π°Π·Π΄Π΅Π»ΡΠ΅Ρ‚ ΠΈΡ…, Π°, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² сразу Π΄Π²Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ»ΠΈ Π½Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ сообщСниС ΠΈΠ»ΠΈ ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½Π΅Π²Π΅Ρ€Π½ΠΎΠΉ структуру ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ. Для избСТания этого Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ сообщСния, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π² pipe Π² ΠΌΠΎΠ΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ.

Рис. 8. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… запросов ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Π±Π°ΠΉΡ‚ΠΎΠΌ Π² ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠΈ ΠΈΠ΄Π΅Ρ‚ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½ΠΎΠ³ΠΎ сообщСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ. Если Ρ‚ΠΈΠΏ сообщСния Π½Π΅ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Π½ Π² ΠΌΠ΅ΡΡ‚Π΅, ΠΊΡƒΠ΄Π° это сообщСниС ΠΏΡ€ΠΈΡˆΠ»ΠΎ, сообщаСтся ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅ ΠΈ ΠΈΠ· pipe считываСтся Π±ΡƒΡ„Π΅Ρ€ максимальной Π΄Π»ΠΈΠ½Ρ‹. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π° Ρ‚ΠΈΠΏΠΎΠΌ сообщСния 4 Π±Π°ΠΉΡ‚Π° содСрТат Π΄Π»ΠΈΠ½Ρƒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Если Ρ‚ΠΈΠΏ сообщСния Π½Π°Π»Π°Π³Π°Π΅Ρ‚ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ограничСния Π½Π° Π΄Π»ΠΈΠ½Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли пСрСдаСтся IP адрСс, Ρ‚ΠΎ Π΅Π³ΠΎ Π΄Π»ΠΈΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ 4 Π±Π°ΠΉΡ‚Π°) ΠΈ ΡΡ‡ΠΈΡ‚анная Π΄Π»ΠΈΠ½Π° этим ограничСниям Π½Π΅ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚воряСт, Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ сообщаСтся ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅, ΠΈ ΡΡ‚араСмся всС Π²Ρ‹Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈΠ· pipe. ПослС этого ΠΈΠ· pipe Π΄ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹. ПослС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ считанного запроса ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° повторяСтся Π·Π°Π½ΠΎΠ²ΠΎ, начиная с ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡ Ρ‚ΠΈΠΏΠ° сообщСния. Π’Π°ΠΊΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ сообщСния ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ порядок Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠ΅ сообщСниС Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ потСряно.

НитСвая структура ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π’ ΡΡ‚ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСно, ΠΈΠ· ΠΊΠ°ΠΊΠΈΡ… Π½ΠΈΡ‚Π΅ΠΉ состоит ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΠΈΡ… Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ. На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 9 прСдставлСна нитСвая структура ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°.

Рис. 9. НитСвая структура ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ окруТностями условно ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π½ΠΈΡ‚ΠΈ, ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ стрСлками ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ нитями, Π° Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌΠΈ взаимодСйствиС с Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ (Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅, поиск ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅). ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° содСрТит 4 Π²ΠΈΠ΄Π° Π½ΠΈΡ‚Π΅ΠΉ:

ΠΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡΠ΅Ρ‚ΡŒΡŽ ΠΠΈΡ‚ΡŒ распрСдСлСния ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΠΈΡ‚ΡŒ выполнСния ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ„Π°Π·Ρ‹ ΠΠΈΡ‚ΡŒ выполнСния Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„Π°Π·Ρ‹

ΠΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡΠ΅Ρ‚ΡŒΡŽ. Π—Π°Π΄Π°Ρ‡Π΅ΠΉ Π΄Π°Π½Π½ΠΎΠΉ Π½ΠΈΡ‚ΠΈ являСтся нСпрСрывная ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠΎΡ€Ρ‚Π° Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌ запросов ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π½Π° ΠΎΡ‚сылку ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². Π Π°Π±ΠΎΡ‚Π° Π΄Π°Π½Π½ΠΎΠΉ Π½ΠΈΡ‚ΠΈ начинаСтся с ΠΎΡ‚крытия ΠΏΠΎΡ€Ρ‚Π° (функция socket) ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΡ адрСса ΠΈ ΠΏΠΎΡ€Ρ‚Π°, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ[9].

struct sockaddr_in serveraddr;

if ((sockdscr = socket (AF_INET, SOCK_DGRAM, 0)) == -1) {

printf («Server error: cannot open socketn»);

return NULL;

}

memset (&serveraddr, 0, sizeof (serveraddr));

serveraddr.sin_family = AF_INET;

serveraddr.sin_port = htons (Conf. LocalPort);

serveraddr.sin_addr.s_addr = inet_addr (Conf. LocalAddress); if (bind (sockdscr, (struct sockaddr *)&serveraddr, sizeof (serveraddr))==-1) {

printf («Server error: cannot bindn»);

return NULL;

}

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Π΄Π°Π½Π½ΠΎΠ³ΠΎ части исходного ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ IP адрСс ΠΈ Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠΎΡ€Ρ‚ бСрутся ΠΈΠ· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. ПослС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½ΠΈΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΎΠΉΡ‚ΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌ оТидания ΠΈ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Π΄Π²Π° события ΠΏΡ€ΠΈΡ…ΠΎΠ΄ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ запроса Π½Π° ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π”Π°Π½Π½ΠΎΠ΅ дСйствиС выполняСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ select. Она ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для слСТСния Π·Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΠΌΠΈ дСскрипторами ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ ΠΈΡ… Π³ΠΎΡ‚овности ΠΊ Ρ‡Ρ‚Π΅Π½ΠΈΡŽ, записи ΠΈΠ»ΠΈ Ссли ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ошибка.

#include

int select (int nfds, fd_set *readfds, fd_set *writefds,

fd_set *errorfds, struct timeval *timeout);

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² ΡΡ‚ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ — ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ рассматриваСмых дСскрипторов. Π’Ρ€ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° — массивы дСскрипторов. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ содСрТит Π½ΠΎΠΌΠ΅Ρ€Π° дСскрипторов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ возмоТности чтСния ΠΈΠ· Π½Π΅Π³ΠΎ, Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ возмоТности записи Π² Π½Π΅Π³ΠΎ ΠΈ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ возникновСния Π² Π½ΠΈΡ… ошибок. ПослСдний ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π·Π°Π΄Π°Π΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π», Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ функция Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ΡŒΡΡ, Ссли Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ события. Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊΠ°ΠΊ Ρ‚Π°ΠΉΠΌΠ΅Ρ€. Π’ ΡΠ»ΡƒΡ‡Π°Π΅ срабатывания ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ события возвращаСтся число ΡΡ€Π°Π±ΠΎΡ‚Π°Π²ΡˆΠΈΡ… дСскрипторов, ΠΈ Π² ΠΌΠ°ΡΡΠΈΠ²Π°Ρ… ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ эти ΡΡ€Π°Π±ΠΎΡ‚Π°Π²ΡˆΠΈΠ΅ дСскрипторы. ΠŸΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΏΠΎ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Ρƒ функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ноль. Π’ ΡΠ»ΡƒΡ‡Π°Π΅ ошибки возвращаСтся -1.

Вся Π½ΠΈΡ‚ΡŒ, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, прСдставляСт собой Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ select, которая провСряСт Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ чтСния ΠΈΠ· Π΄Π΅ΡΠΊΡ€ΠΈΠΏΡ‚ΠΎΡ€Π° ΠΏΠΎΡ€Ρ‚Π° ΠΈ Ρ‡ΠΈΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ½Ρ†Π° pipe, ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΡΡ‚Ρƒ Π½ΠΈΡ‚ΡŒ. Π’.ΠΊ. Π²Ρ‹Ρ…ΠΎΠ΄ ΠΏΠΎ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Ρƒ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ΅Π½, пятым ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ пСрСдаСтся NULL.

FD_SET (sockdscr, &rfds); /* Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΠΌΠ°ΡΡΠΈΠ² дСскриптора ΠΏΠΎΡ€Ρ‚Π°*/

FD_SET (pipefd[0],&rfds); /* Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΠΌΠ°ΡΡΠΈΠ² дСскриптора pipe*/

retval=select (1024,&rfds, NULL, NULL, NULL);

if (SOCKET_ERROR == retval) {

/* ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибки*/

}

if (FD_ISSET (sockdscr, &rfds)) {

/* ДСйствия, выполняСмыС ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΡ…ΠΎΠ΄Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π° */

}

if (FD_ISSET (pipefd[0], &rfds)) {

/* ДСйствия, выполняСмыС ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ запроса */

}

Π’ ΡΠ»ΡƒΡ‡Π°Π΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΎΠ½ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ пСрСдаСтся Π½ΠΈΡ‚ΠΈ распрСдСлСния ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² (вмСстС с Π½ΠΈΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΆΠ΅ IP адрСс ΠΈ Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠΎΡ€Ρ‚Π° отправитСля). ΠŸΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ запроса Π½Π° ΠΏΠΎΡΡ‹Π»ΠΊΡƒ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΏΠ°ΠΊΠ΅Ρ‚ отсылаСтся, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ адрСс ΠΈ Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠΎΡ€Ρ‚Π° получатСля Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Π·Π°ΠΏΡ€ΠΎΡΠ΅.

ΠΠΈΡ‚ΡŒ распрСдСлСния ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². Π’ Π·Π°Π΄Π°Ρ‡Ρƒ Π΄Π°Π½Π½ΠΎΠΉ Π½ΠΈΡ‚ΠΈ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·Π±ΠΎΡ€ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΏΠ°ΠΊΠ΅Ρ‚Π°, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ структуры ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π½ΠΈΡ‚ΠΈ, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½. Вся информация для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈ Π½Π°Ρ…оТдСния Π½ΠΈΡ‚ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ° бСрСтся ΠΈΠ· ISAKMP Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π”Π°Π½Π½Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈ ΡΠ»ΡƒΠΆΠΈΡ‚ для опрСдСлСния, ΠΊ ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ установлСния соСдинСния ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ISAKMP Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 10.

ΠŸΠ΅Ρ€Π²Ρ‹Π΅ 8 Π±Π°ΠΉΡ‚ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Initiator Cookie — ΠΈΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ установлСния соСдинСния со ΡΡ‚ΠΎΡ€ΠΎΠ½Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€Π°. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ поля выбираСтся Π½Π° ΡΡ‚ΠΎΡ€ΠΎΠ½Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€Π° (случайным ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ) ΠΈ ΡΠ»ΡƒΠΆΠΈΡ‚ ΠΏΡ€ΠΈ дальнСйшСм распрСдСлСнии ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². Responder Cookie ΠΈΠ³Ρ€Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½ΠΎ Π΄Π»Ρ ΠΎΡ‚Π²Π΅Ρ‚Ρ‡ΠΈΠΊΠ°.

Рис. 10. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ISAKMP Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΠΎΠ»Π΅ΠΌ ΠΈΠ΄Π΅Ρ‚ Next Payload, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΈΠΏ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° (payload) ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π·Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ. Version ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Π΅Ρ€ΡΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°. Exchange type Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ΅, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ (Main Mode, Aggressive Mode, Quick Mode ΠΈ Ρ‚. ΠΏ.). Π€Π»Π°Π³ΠΈ содСрТат ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΡΠΎΡΡ‚оянии ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ ΠΎΠ½ ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π° являСтся Message ID. ПослСдниС 4 Π±Π°ΠΉΡ‚Π° содСрТат Π΄Π»ΠΈΠ½Ρƒ всСго ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ сам Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ.

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΏΠ°ΠΊΠ΅Ρ‚Π° проводится ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°ΠΌ. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€ проставляСт Initiator Cookie, Π° Responder Cookie оставляСт Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ, давая Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚Ρ‡ΠΈΠΊΡƒ ΠΏΡ€ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ. Message ID слуТит для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ установлСния соСдинСния Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„Π°Π·Π΅, ΠΈΠ΄ΡƒΡ‰ΠΈΡ… ΠΏΠΎΠ΄ Π·Π°Ρ‰ΠΈΡ‚ΠΎΠΉ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ„Π°Π·Ρ‹, Π°, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ CookieI ΠΈ CookieR.

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄Π»ΠΈΠ½Ρ‹ ΠΏΠ°ΠΊΠ΅Ρ‚Π°. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡΡ простым сравнСниСм Π΄Π»ΠΈΠ½Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈΠ· ΠΏΠΎΡ€Ρ‚Π° ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ поля Π² ISAKMP Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅. Данная ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° являСтся ΠΎΡ‡Π΅Π½ΡŒ простой, Π½ΠΎ Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя вСсьма эффСктивной, Ρ‚. ΠΊ. позволяСт быстро (фактичСски Π½Π° ΡΠ°ΠΌΠΎΠΌ ΠΏΠ΅Ρ€Π²ΠΎΠΌ этапС), Π±Π΅Π· затрачивания Π±ΠΎΠ»ΡŒΡˆΠΈΡ… рСсурсов ΠΎΡ‚ΡΠ΅Ρ‡ΡŒ случайныС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ встрСчаСмся с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Ρ€Π°Π·Π½ΠΎΠ³ΠΎ способа хранСния чисСл Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ…. Если Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΠΎ Ρ‡ΠΈΡΠ»ΠΎ 0×1 020 304 Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅ с ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ΠΎΠΌ Sun Sparc Π±ΡƒΠ΄Π΅Ρ‚ прСдставлСно Π² Π²ΠΈΠ΄Π΅ Ρ‚. Π΅. сначала ΠΈΠ΄ΡƒΡ‚ ΡΡ‚Π°Ρ€ΡˆΠΈΠ΅ Ρ†ΠΈΡ„Ρ€Ρ‹ (Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ big-endian прСдставлСниС), Π° Π΄Π»Ρ процСссора Intel

сначала ΠΈΠ΄ΡƒΡ‚ младшиС Ρ†ΠΈΡ„Ρ€Ρ‹ (little-endian). Из-Π·Π° трСбования ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ простоС ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ памяти ΠΊ Ρ‚ΠΈΠΏΡƒ unsigned int нСльзя, Ρ‚. ΠΊ. Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ‹ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 100 для Sun Sparc Π±ΡƒΠ΄Π΅Ρ‚ 100, Π° Π΄Π»Ρ Intel 1 677 721 600. Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π±Ρ‹Π»ΠΈ написаны макросы для ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° чисСл ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ состояния Π² Π΄Ρ€ΡƒΠ³ΠΎΠ΅ для ΠΎΠ±Π΅ΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ.

#define GET_32BIT (cp)

(((unsigned long) (unsigned char) (cp) [3]) |

((unsigned long) (unsigned char) (cp) << 8) |

((unsigned long) (unsigned char) (cp) << 16) |

((unsigned long) (unsigned char) (cp) << 24))

#define GET_16BIT (cp)

(((unsigned long) (unsigned char) (cp) [1]) |

((unsigned long) (unsigned char) (cp) << 8))

#define PUT_32BIT (cp, value)

(cp) = (value);

(cp) = (value) >> 8;

(cp) = (value) >> 16;

(cp) = (value) >> 24;

#define PUT_16BIT (cp, value)

(cp) = (value);

(cp) = (value) >> 8;

Если ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π΅ ΠΏΡ€ΠΎΡˆΠ»Π°, Ρ‚ΠΎ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅Π΅ рассмотрСниС ΠΏΠ°ΠΊΠ΅Ρ‚Π° заканчиваСтся ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ удаляСтся.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»Π΅ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° — Next Payload, Version, Exchange Type ΠΈ Flags. Π­Ρ‚ΠΈ поля ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ΡΡ Π½Π΅ Π½Π° Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ совпадСниС, ΠΊΠ°ΠΊ Π΄Π»ΠΈΠ½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π° Π½Π° Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ значСния Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ допустимых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° коррСктности Π΄Π°Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π° ΠΏΠΎΠ·ΠΆΠ΅, ΠΏΡ€ΠΈ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠΌ рассмотрСнии структуры ΠΏΠ°ΠΊΠ΅Ρ‚Π° Поиск Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΡ‚Π΅ΠΉ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ„Π°Π·Ρ‹ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ получатСля ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Поиск вСдСтся Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ CookieI ΠΈ CookieR. Π’.ΠΊ. Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ собой запросы Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ соСдинСний с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны (Ρ‚.Π΅. Π½ΠΈΡ‚ΡŒ для ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΅Ρ‰Π΅ Π½Π΅ ΡΠΎΠ·Π΄Π°Π½Π°), ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ²Ρ‚ΠΎΡ€Ρ‹ этих запросов (Π½ΠΈΡ‚ΡŒ ΡƒΠΆΠ΅ создана ΠΈ ΡƒΠΆΠ΅ проставлСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ CookieR, Ρ‚. Π΅. Π² Π΄Π°Π½Π½ΡƒΡŽ Π½ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π΅Ρ‚), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° Π½Π°ΡˆΠΈ запросы (CookieR Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ стоят Π½ΡƒΠ»Π΅Π²Ρ‹Π΅), Ρ‚ΠΎ ΠΏΠΎΡ€ΡΠ΄ΠΎΠΊ поиска подходящСй записи Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ: «Π΅ΡΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ CookieR Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ ΠΈΠ»ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΡƒΠ»Π΅Π²ΠΎΠ΅, Ρ‚ΠΎ Π·Π°ΠΏΠΈΡΡŒ считаСтся ΡΡ€Π°Π±ΠΎΡ‚Π°Π²ΡˆΠ΅ΠΉ, Ссли совпало Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ CookieI, ΠΈΠ½Π°Ρ‡Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ²ΠΏΠ°ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ CookieR, ΠΈ CookieI». Если ΠΌΡ‹ Π½Π°ΡˆΠ»ΠΈ ΡΡ€Π°Π±ΠΎΡ‚Π°Π²ΡˆΡƒΡŽ запись, Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ дСскриптор записи для pipe, ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ с Π½ΡƒΠΆΠ½ΠΎΠΉ Π½ΠΈΡ‚ΡŒΡŽ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΄ΠΈΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚. Если запись Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π° ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ CookieR Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠ»ΡŽ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ это ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ Π½ΠΎΠ²ΠΎΠΉ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ установлСния соСдинСния. Для Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΌΡ‹ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡƒΡŽ Π½ΠΈΡ‚ΡŒ, pipe для связи с ΡΡ‚ΠΎΠΉ Π½ΠΈΡ‚ΡŒΡŽ, Π΄Π΅Π»Π°Π΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ записи Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π½ΠΈΡ‚Π΅ΠΉ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ„Π°Π·Ρ‹, послС Ρ‡Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ созданной Π½ΠΈΡ‚ΠΈ. Если Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΎΡΡŒ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Ρ… условий, Ρ‚ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚ считаСтся Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΌ ΠΈ ΡƒΠ΄Π°Π»ΡΠ΅Ρ‚ся.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, происходит ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΈΡˆΠ΅Π΄ΡˆΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π½ΠΎ Π½ΠΈΡ‚ΡŒ распрСдСлСния ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ запрос Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ сСкрСтного соСдинСния Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€Π°. Π’ ΡΡ‚ΠΎΠΌ случаС создаСтся Π½ΠΈΡ‚ΡŒ, pipe для связи с Π½Π΅ΠΉ ΠΈ Π½ΠΈΡ‚ΠΈ пСрСдаСтся пустой ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΊΠ°ΠΊ Π·Π½Π°ΠΊ Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€Π°.

ΠΠΈΡ‚ΡŒ выполнСния ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ„Π°Π·Ρ‹. Данная Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для провСдСния ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ„Π°Π·Ρ‹ установлСния соСдинСния.

Как Π±Ρ‹Π»ΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π²Ρ‹ΡˆΠ΅ Π½ΠΈΡ‚ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ нСзависимоС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Но, Π½Π΅ ΡΠΌΠΎΡ‚ря Π½Π° ΡΡ‚ΠΎ, каТдая Π½ΠΈΡ‚ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ свой собствСнный стСк, Π° Π·Π½Π°Ρ‡ΠΈΡ‚ всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΠΈΡ‚ΠΈ. Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для хранСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, связанной Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΎΠΉ установлСния соСдинСния (ΠΊΠ»ΡŽΡ‡ΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ, Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ константы, ΠΌΠ΅Ρ‚ΠΎΠ΄ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ CookieI ΠΈ CookieR ΠΈ Ρ‚. Π΄.).

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΈΡˆΠ΅Π΄ΡˆΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° начинаСтся с Π±ΠΎΠ»Π΅Π΅ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π‘Π½Π°Ρ‡Π°Π»Π° провСряСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ Ρ‚ΠΈΠΏ ΠΎΠ±ΠΌΠ΅Π½Π° (Ссли это ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚, Ρ‚ΠΎ Π΄Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ сохраняСтся для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ). Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ дСлаСтся со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ вСрсии Π² ISAKMP Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅. ПослС этого происходит Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π° (Ссли это трСбуСтся). Π”Π°Π»ΡŒΡˆΠ΅ происходит Ρ€Π°Π·Π±ΠΎΡ€ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… дСйствий (расчСтов), составлСниС ΠΈ ΠΎΡ‚сылка ΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… пСрСчислСнныС Π²Ρ‹ΡˆΠ΅ дСйствия, отличаСтся для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, построСниСм простого Ρ†ΠΈΠΊΠ»Π° Π·Π°Π΄Π°Ρ‡Π° Π½Π΅ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ся. Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π±Ρ‹Π»Π° Π²Π²Π΅Π΄Π΅Π½Π° пСрСмСнная, которая ΠΎΡ‚Ρ€Π°ΠΆΠ°Π»Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ состояниС ΠΎΠ±ΠΌΠ΅Π½Π°, ΠΈ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ. Для наглядности ΠΈ ΠΏΡ€ΠΎΡΡ‚ΠΎΡ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡΡ‚ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±Ρ‹Π»ΠΈ описаны ряд define.

#define INITIATOR 0x0

#define RESPONDER 0×80

#define MAIN 0x0

#define AGGRESSIVE 0×40

#define ABSENT 0×0 /* ΠœΠ΅Ρ‚ΠΎΠ΄ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π΅Ρ‰Π΅ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½*/

#define PRESHARED 0x8

#define DSA_SIGN 0×10

#define RSA_SIGN 0×18

#define RSA_ENC 0×20

#define RSA_REV_ENC 0×28

#define RENCRYPT 0×30

#define GET_ROLE (State) (State&0×80)

#define GET_EXCH (State) (State&0×40)

#define GET_MODE (State) (State&0×38)

#define GET_STEP (State) (State&0×03)

#define SET_ROLE (State, Role) {State &= 0×80; State+=Role;}

#define SET_MODE (State, Meth) {State &= 0xC7; State+=Meth;}

#define SET_EXCH (State, Meth) {State &= 0xBF; State+=Meth;}

#define STATE (role, exch_type, mode, step) (role+exch_type+mode+step)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π΄Π°Π»Π΅Π΅. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠΌΡƒ Π½Π°Π±ΠΎΡ€Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π²Ρ‹Π±ΠΎΡ€Π° switch. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ пСрСмСнная Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояния Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ состояниС (Ρ‡Π°Ρ‰Π΅ всСго это просто ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½ΠΎΠΌΠ΅Ρ€Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π°) ΠΈΠ»ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒΡΡ Ρ„Π»Π°Π³, говорящий ΠΎΠ± ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ„Π°Π·Ρ‹.

/*ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΠ°ΠΊΠ΅Ρ‚Π°*/

switch (state. State) /* Π’Ρ‹Π±ΠΎΡ€ Π½Π°Π±ΠΎΡ€Π° Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ */

{

case STATE (RESPONDER, AGGRESSIVE, ABSENT, 0):

/* Набор Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ состояния */

break;

case STATE (RESPONDER, MAIN, ABSENT, 0):

/* Набор Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ состояния */

break;

case STATE (INITIATOR, MAIN, DSA_SIGN, 2):

/* Набор Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ состояния */

break;

}

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояния Ρ‚Π°ΠΊΠΆΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ расчСтах, Π³Π΄Π΅ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ исполняСмой Ρ€ΠΎΠ»ΠΈ (ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€ ΠΈΠ»ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‡ΠΈΠΊ). ΠžΡ‚ΡΡ‹Π»ΠΊΠ° созданного ΠΏΠ°ΠΊΠ΅Ρ‚Π° осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· доступный ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΈΡ‚ΠΈ дСскриптор записи pipe Π½ΠΈΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡΠ΅Ρ‚ΡŒΡŽ ПослС окончания ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ„Π°Π·Ρ‹ Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Ρ€Π΅ΠΆΠΈΠΌ управлСния нитями Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„Π°Π·Ρ‹. ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ для этих Π½ΠΈΡ‚Π΅ΠΉ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ CookieI ΠΈ CookieR приходят Π² Π΄Π°Π½Π½ΡƒΡŽ Π½ΠΈΡ‚ΡŒ, Π° Π·Π°Ρ‚Π΅ΠΌ согласно Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Message ID ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² Π½ΠΈΡ‚ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„Π°Π·Ρ‹ ΠΈΠ»ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΡŽΡ‚ ΠΈΡ… ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅. Для провСдСния ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² каТдая Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ„Π°Π·Ρ‹ содСрТит свою Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π½ΠΈΡ‚Π΅ΠΉ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„Π°Π·Ρ‹, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ поиск.

ΠΠΈΡ‚ΡŒ выполнСния Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„Π°Π·Ρ‹. Π—Π°Π΄Π°Ρ‡Π° Π΄Π°Π½Π½ΠΎΠΉ Π½ΠΈΡ‚ΠΈ — ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„Π°Π·Ρ‹ установлСния соСдинСния. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ‚Π°ΠΊΠΈΠ΅ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² Π½ΠΈΡ‚ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ„Π°Π·Ρ‹. ΠŸΡ€ΠΈ создании вмСстС с ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ Π½ΠΈΡ‚ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΆΠ΅ значСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… (Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ константы, ΠΊΠ»ΡŽΡ‡ΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Ρ‚. ΠΏ.) Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ работоспособности Π½ΠΈΡ‚ΠΈ. По Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„Π°Π·Ρ‹ Π½ΠΈΡ‚ΡŒ Π²Ρ‹Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, удаляСт сСбя ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π½ΠΈΡ‚Π΅ΠΉ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„Π°Π·Ρ‹ ΠΈ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

Π’Π°Π±Π»ΠΈΡ†Ρ‹ поиска Π½ΠΈΡ‚Π΅ΠΉ

Π’Π°Π±Π»ΠΈΡ†Π° Π½ΠΈΡ‚Π΅ΠΉ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ… ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ„Π°Π·Ρƒ прСдставляСт собой список CookieTable_t структур

struct CookieTable_t;

typedef struct CookieTable_t {

uchar CookieI[8]; /*Initiator Cookie */

uchar CookieR[8]; /* Responder Cookie */

int pd; /* Pipe Descriptor */

uchar Ready; /* Ready Flag */

struct in_addr AlienAddr; /* Peer IP Address */

struct CookieTable_t *next; /* Next Member (NULL if last) */

};

ΠΠ΅ΠΎΠ±ΡŠΡΡΠ½Π΅Π½Π½Ρ‹ΠΌΠΈ Π² Π΄Π°Π½Π½ΠΎΠΉ структурС ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ Π΄Π²Π° поля: Ρ„Π»Π°Π³ Ready ΠΈ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° IP адрСса. Π’ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π΅ IP адрСса находится адрСс ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€Π°, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΡ‹ Π²Π΅Π΄Π΅ΠΌ процСсс установлСния соСдинСния. Π€Π»Π°Π³ Ready ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΎΡΡŒ ΠΈΠ»ΠΈ Π½Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ„Π°Π·Ρ‹. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ся, Ссли со ΡΡ‚ΠΎΡ€ΠΎΠ½Ρ‹ модуля управлСния ΠΏΡ€ΠΈΡˆΠ»ΠΎ 2 запроса Π½Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ†ΠΈΡŽ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ установлСния соСдинСния. Π’ ΡΡ‚ΠΎΠΌ случаС просматриваСтся Ρ‚Π°Π±Π»ΠΈΡ†Π° Π½ΠΈΡ‚Π΅ΠΉ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ„Π°Π·Ρ‹ Π² ΠΏΠΎΠΈΡΠΊΠ°Ρ… записи с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ IP адрСсом. Если Ρ„Π»Π°Π³ Ready Π² Π΄Π°Π½Π½ΠΎΠΉ записи Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ пСрвая Ρ„Π°Π·Π° ΡƒΠΆΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°, Ρ‚ΠΎ Π·Π°ΠΏΡ€ΠΎΡ формируСтся Π½Π° ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ сразу Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„Π°Π·Ρ‹. IP Π°Π΄Ρ€Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ поискС Π½ΠΈΡ‚ΠΈ для ΠΏΡ€ΠΈΡˆΠ΅Π΄ΡˆΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ поиска записи Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΏΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΡŽ ΠΈ CookieI ΠΈ CookieR.

CookieTable_t *FindCookieRecord (uchar *CI, uchar *CR) {

uchar Test[8] = {0, 0, 0, 0, 0, 0, 0, 0};

struct CookieTable_t *ptr = CookieTable;

while (ptr)

(MEMCMP (Test, ptr->CookieR, 8)&&MEMCMP (CR, ptr->CookieR, 8)))

ptr = ptr->next;

else

return ptr;

return NULL;

}

Π’Π°Π±Π»ΠΈΡ†Π° Π½ΠΈΡ‚Π΅ΠΉ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„Π°Π·Ρ‹ Ρ‚ΠΎΠΆΠ΅ прСдставляСт собой список структур.

struct Phase2Table_t;

typedef struct Phase2Table_t {

uchar MessageID[4]; /* Message ID */

int pd; /* Pipe Descriptor */

struct SPIlist_t SPIlist; /* List of SPIs */

struct Phase2Table_t next; /* Next Member (NULL if last) */

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ