ESNI рдорд╛рд░реНрдлрдд рддрдкрд╛рдИрдВрдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХрд╕рд░реА рд╕реБрд░рдХреНрд╖рд┐рдд рдЧрд░реНрдиреЗ

рдирдорд╕реНрддреЗ рд╣рдмрд░, рдореЗрд░реЛ рдирд╛рдо рдЗрд▓реНрдпрд╛ рд╣реЛ, рдо Exness рдорд╛ рдкреНрд▓реЗрдЯрдлрд░реНрдо рдЯреЛрд▓реАрдорд╛ рдХрд╛рдо рдЧрд░реНрдЫреБред рд╣рд╛рдореА рд╣рд╛рдореНрд░рд╛ рдЙрддреНрдкрд╛рджрди рд╡рд┐рдХрд╛рд╕ рдЯреЛрд▓реАрд╣рд░реВрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдЖрдзрд╛рд░рднреВрдд рдкреВрд░реНрд╡рд╛рдзрд╛рд░ рдШрдЯрдХрд╣рд░реВ рд╡рд┐рдХрд╛рд╕ рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдЫреМрдВред

рдпрд╕ рд▓реЗрдЦрдорд╛, рдо рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯрд╣рд░реВрдХреЛ рдкреВрд░реНрд╡рд╛рдзрд╛рд░рдорд╛ рдЗрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб SNI (ESNI) рдкреНрд░рд╡рд┐рдзрд┐ рд▓рд╛рдЧреВ рдЧрд░реНрдиреЗ рдореЗрд░реЛ рдЕрдиреБрднрд╡ рд╕рд╛рдЭрд╛ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреБред

ESNI рдорд╛рд░реНрдлрдд рддрдкрд╛рдИрдВрдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХрд╕рд░реА рд╕реБрд░рдХреНрд╖рд┐рдд рдЧрд░реНрдиреЗ

рдпрд╕ рдкреНрд░рд╡рд┐рдзрд┐рдХреЛ рдкреНрд░рдпреЛрдЧрд▓реЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджрд╛ рд╕реБрд░рдХреНрд╖рд╛рдХреЛ рд╕реНрддрд░ рдмрдврд╛рдЙрдиреЗрдЫ рд░ рдХрдореНрдкрдиреАрд▓реЗ рдЕрдкрдирд╛рдПрдХреЛ рдЖрдиреНрддрд░рд┐рдХ рд╕реБрд░рдХреНрд╖рд╛ рдорд╛рдкрджрдгреНрдбрд╣рд░реВрдХреЛ рдкрд╛рд▓рдирд╛ рдЧрд░реНрдиреЗрдЫред

рд╕рдмреИрднрдиреНрджрд╛ рдкрд╣рд┐рд▓реЗ, рдо рдпреЛ рдХреБрд░рд╛ рдФрдВрд▓реНрдпрд╛рдЙрди рдЪрд╛рд╣рдиреНрдЫреБ рдХрд┐ рдпреЛ рдкреНрд░рд╡рд┐рдзрд┐ рдорд╛рдирдХреАрдХреГрдд рдЫреИрди рд░ рдЕрдЭреИ рдорд╕реНрдпреМрджрд╛рдорд╛ рдЫ, рддрд░ рдХреНрд▓рд╛рдЙрдбрдлреНрд▓реЗрдпрд░ рд░ рдореЛрдЬрд┐рд▓рд╛рд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ рдпрд╕рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ (рдорд╛ рдбреНрд░рд╛рдлреНрдЯ режрез)ред рдпрд╣реА рдХреБрд░рд╛рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдпрд╕реНрддреЛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдкреНрд░реЗрд░рд┐рдд рдЧрд░реНтАНрдпреЛред

рдмрд┐рдЯ рд╕рд┐рджреНрдзрд╛рдиреНрдд

ESNIComment тАУ TLS рез.рей рдкреНрд░реЛрдЯреЛрдХрд▓рдХреЛ рдПрдХреНрд╕рдЯреЗрдиреНрд╕рди рд╣реЛ рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ "рдХреНрд▓рд╛рдЗрдиреНрдЯ рд╣реЗрд▓реЛ" TLS рд╣реНрдпрд╛рдиреНрдбрд╢реЗрдХ рд╕рдиреНрджреЗрд╢рдорд╛ SNI рдЗрдиреНрдХреНрд░рд┐рдкреНрдЯ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред ESNI рд╕рдорд░реНрдерди рднрдПрдХреЛ рдХреНрд▓рд╛рдЗрдиреНрдЯ рд╣реЗрд▓реЛ рдХрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ рднрдиреЗрд░ рдпрд╣рд╛рдБ рджрд┐рдЗрдПрдХреЛ рдЫ (рд╕рд╛рдорд╛рдиреНрдп SNI рдХреЛ рд╕рдЯреНрдЯрд╛, рд╣рд╛рдореА ESNI рджреЗрдЦреНрдЫреМрдВ):

ESNI рдорд╛рд░реНрдлрдд рддрдкрд╛рдИрдВрдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХрд╕рд░реА рд╕реБрд░рдХреНрд╖рд┐рдд рдЧрд░реНрдиреЗ

 ESNI рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди, рддреАрдирд╡рдЯрд╛ рдШрдЯрдХрд╣рд░реВ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджрдЫ:

  • DNS; 
  • рдЧреНрд░рд╛рд╣рдХ рд╕рд╣рдпреЛрдЧ;
  • рд╕рд░реНрднрд░ рд╕рд╛рдЗрдб рд╕рдорд░реНрдердиред

DNS

рддрдкрд╛рдИрдВрд▓реЗ рджреБрдИрд╡рдЯрд╛ DNS рд░реЗрдХрд░реНрдбрд╣рд░реВ рдердкреНрдиреБ рдкрд░реНрдЫ - Aрд░ TXT (TXT рд░реЗрдХрд░реНрдбрдорд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдЮреНрдЬреА рд╣реБрдиреНрдЫ рдЬрд╕рдХреЛ рд╕рд╛рде рдХреНрд▓рд╛рдЗрдиреНрдЯрд▓реЗ SNI рдЗрдиреНрдХреНрд░рд┐рдкреНрдЯ рдЧрд░реНрди рд╕рдХреНрдЫ) - рддрд▓ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реНред рдпрд╕рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╕рдорд░реНрдерди рд╣реБрдиреБрдкрд░реНрдЫ DoH (HTTPS рдорд╛ DNS), рдХрд┐рдирдХрд┐ рдЙрдкрд▓рдмреНрдз рдХреНрд▓рд╛рдЗрдиреНрдЯрд╣рд░реВрд▓реЗ (рддрд▓ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН) DoH рдмрд┐рдирд╛ ESNI рд╕рдорд░реНрдерди рд╕рдХреНрд░рд┐рдп рдЧрд░реНрджреИрдирдиреНред рдпреЛ рддрд╛рд░реНрдХрд┐рдХ рдЫ, рдХрд┐рдирдХрд┐ ESNI рд▓реЗ рд╣рд╛рдореАрд▓реЗ рдкрд╣реБрдБрдЪ рдЧрд░рд┐рд░рд╣реЗрдХреЛ рд╕реНрд░реЛрдд рдирд╛рдордХреЛ рдЗрдиреНрдХреНрд░рд┐рдкреНрд╢рдирд▓рд╛рдИ рдЬрдирд╛рдЙрдБрдЫ, рдЕрд░реНрдерд╛рддреН UDP рдорд╛рд░реНрдлрдд DNS рдкрд╣реБрдБрдЪ рдЧрд░реНрдиреБрдХреЛ рдХреБрдиреИ рдЕрд░реНрде рдЫреИрдиред рдпрд╕рдмрд╛рд╣реЗрдХ, рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ DNSSEC рдпрд╕ рдкрд░рд┐рджреГрд╢реНрдпрдорд╛ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдХреНрдпрд╛рд╕ рд╡рд┐рд╖рд╛рдХреНрддрддрд╛ рдЖрдХреНрд░рдордгрд╣рд░реВрдмрд╛рдЯ рдЬреЛрдЧрд╛рдЙрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред

рд╣рд╛рд▓ рдЙрдкрд▓рдмреНрдз рдЫ рдзреЗрд░реИ DoH рдкреНрд░рджрд╛рдпрдХрд╣рд░реВ, рддрд┐рдиреАрд╣рд░реВ рдордзреНрдпреЗ:

CloudFlare рдШреЛрд╖рдгрд╛ рдЧрд░реНрджрдЫ (рдореЗрд░реЛ рдмреНрд░рд╛рдЙрдЬрд░ рдЬрд╛рдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реН тЖТ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб SNI тЖТ рдердк рдЬрд╛рдиреНрдиреБрд╣реЛрд╕реН), рдХрд┐ рддрд┐рдиреАрд╣рд░реВрдХреЛ рд╕рд░реНрднрд░рд╣рд░реВрд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ ESNI рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ, рдЕрд░реНрдерд╛рддреН, DNS рдорд╛ CloudFlare рд╕рд░реНрднрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╣рд╛рдореАрд╕рдБрдЧ рдХрдореНрддрд┐рдорд╛ рджреБрдИ рд░реЗрдХрд░реНрдбрд╣рд░реВ рдЫрдиреН - A рд░ TXTред рддрд▓рдХреЛ рдЙрджрд╛рд╣рд░рдгрдорд╛, рд╣рд╛рдореА Google DNS (HTTPS рдорд╛рд░реНрдлрдд) рдЕрдиреБрд░реЛрдз рдЧрд░реНрдЫреМрдВ: 

╨Р рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐:

curl 'https://dns.google.com/resolve?name=www.cloudflare.com&type=A' 
-s -H 'accept: application/dns+json'
{
  "Status": 0,
  "TC": false,
  "RD": true,
  "RA": true,
  "AD": true,
  "CD": false,
  "Question": [
    {
      "name": "www.cloudflare.com.",
      "type": 1
    }
  ],
  "Answer": [
    {
      "name": "www.cloudflare.com.",
      "type": 1,
      "TTL": 257,
      "data": "104.17.210.9"
    },
    {
      "name": "www.cloudflare.com.",
      "type": 1,
      "TTL": 257,
      "data": "104.17.209.9"
    }
  ]
}

TXT рд░реЗрдХрд░реНрдб, рдЕрдиреБрд░реЛрдз рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЕрдиреБрд╕рд╛рд░ рдЙрддреНрдкрдиреНрди рд╣реБрдиреНрдЫ _esni.FQDN рд▓рд╛рдИ рдкрд╣рд┐рд▓реЗ рдиреИ рдкрдЫреНрдпрд╛рдЙрдиреБ рднрдПрдХреЛ рдЫ?:

curl 'https://dns.google.com/resolve?name=_esni.www.cloudflare.com&type=TXT' 
-s -H 'accept: application/dns+json'
{
  "Status": 0,
  "TC": false,
  "RD": true,
  "RA": true,
  "AD": true,
  "CD": false,
  "Question": [
    {
    "name": "_esni.www.cloudflare.com.",
    "type": 16
    }
  ],
  "Answer": [
    {
    "name": "_esni.www.cloudflare.com.",
    "type": 16,
    "TTL": 1799,
    "data": ""/wEUgUKlACQAHQAg9SiAYQ9aUseUZr47HYHvF5jkt3aZ5802eAMJPhRz1QgAAhMBAQQAAAAAXtUmAAAAAABe3Q8AAAA=""
    }
  ],
  "Comment": "Response from 2400:cb00:2049:1::a29f:209."
}

рддреНрдпрд╕реИрд▓реЗ, DNS рджреГрд╖реНрдЯрд┐рдХреЛрдгрдмрд╛рдЯ, рд╣рд╛рдореАрд▓реЗ DoH рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрдкрд░реНрдЫ (рдЕрдзрд┐рдорд╛рдирддрдГ DNSSEC рд╕рдБрдЧ) рд░ рджреБрдИ рд░реЗрдХрд░реНрдбрд╣рд░реВ рдердкреНрдиреБрдкрд░реНрдЫред 

рдЧреНрд░рд╛рд╣рдХ рд╕рд╣рдпреЛрдЧ

рдпрджрд┐ рд╣рд╛рдореА рдмреНрд░рд╛рдЙрдЬрд░рд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛ рдЧрд░реНрджреИрдЫреМрдВ рднрдиреЗ, рдЕрд╣рд┐рд▓реЗ рд╕рдорд░реНрдерди рдХреЗрд╡рд▓ рдлрд╛рдпрд░рдлрдХреНрд╕рдорд╛ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫред. рдпреЛ рдЫ FireFox рдорд╛ ESNI рд░ DoH рд╕рдорд░реНрдерди рдХрд╕рд░реА рд╕рдХреНрд░рд┐рдп рдЧрд░реНрдиреЗ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫред рдмреНрд░рд╛рдЙрдЬрд░ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рд╕рдХреЗрдкрдЫрд┐, рд╣рд╛рдореАрд▓реЗ рдпрд╕реНрддреЛ рдХреЗрд╣рд┐ рджреЗрдЦреНрдиреБрдкрд░реНрдЫ:

ESNI рдорд╛рд░реНрдлрдд рддрдкрд╛рдИрдВрдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХрд╕рд░реА рд╕реБрд░рдХреНрд╖рд┐рдд рдЧрд░реНрдиреЗ

рд▓рд┐рдЩреНрдХ рдмреНрд░рд╛рдЙрдЬрд░ рдЬрд╛рдБрдЪ рдЧрд░реНрдиред

рдЕрд╡рд╢реНрдп рдкрдирд┐, ESNI рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрди TLS рез.рей рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрдкрд░реНрдЫ, рдХрд┐рдирдХрд┐ ESNI TLS рез.рей рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реЛред

ESNI рд╕рдорд░реНрдердирдХреЛ рд╕рд╛рде рдмреНрдпрд╛рдХрдПрдиреНрдб рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрдиреЗ рдЙрджреНрджреЗрд╢реНрдпрд▓реЗ, рд╣рд╛рдореАрд▓реЗ рдПрдЙрдЯрд╛ рдХреНрд▓рд╛рдЗрдиреНрдЯ рд▓рд╛рдЧреВ рдЧрд░реНрдпреМрдВ go, рддрд░ рддреНрдпрд╕рдмрд╛рд░реЗ рдкрдЫрд┐ рдердк рдХреБрд░рд╛ рдЧрд░реМрдВрд▓рд╛ред

рд╕рд░реНрднрд░ рд╕рд╛рдЗрдб рд╕рдорд░реНрдерди

рд╣рд╛рд▓ ESNI рд▓рд╛рдИ nginx/apache рдЖрджрд┐ рдЬрд╕реНрддрд╛ рд╡реЗрдм рд╕рд░реНрднрд░рд╣рд░реВрд▓реЗ рд╕рдорд░реНрдерди рдЧрд░реНрджреИрдирдиреН, рдХрд┐рдирдХрд┐ рддрд┐рдиреАрд╣рд░реВ OpenSSL/BoringSSL рдорд╛рд░реНрдлрдд TLS рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдЫрдиреН, рдЬрд╕рд▓реЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░реВрдкрдорд╛ ESNI рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджреИрдирдиреНред

рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореАрд▓реЗ рд╣рд╛рдореНрд░реЛ рдЖрдлреНрдиреИ рдлреНрд░рдиреНрдЯ-рдПрдиреНрдб рдХрдореНрдкреЛрдиреЗрдиреНрдЯ (ESNI рд░рд┐рднрд░реНрд╕ рдкреНрд░реЛрдХреНрд╕реА) рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрдпреМрдВ, рдЬрд╕рд▓реЗ ESNI рд╕рдБрдЧ TLS 1.3 рдЯрд░реНрдорд┐рдиреЗрд╢рдирд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрдиреЗрдЫ рд░ HTTP(S) рдЯреНрд░рд╛рдлрд┐рдХрд▓рд╛рдИ рдЕрдкрд╕реНрдЯреНрд░реАрдордорд╛ рдкреНрд░реЛрдХреНрд╕реА рдЧрд░реНрдиреЗрдЫ, рдЬрд╕рд▓реЗ ESNI рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджреИрдиред рдпрд╕рд▓реЗ рдореБрдЦреНрдп рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рдирдЧрд░реА рдкрд╣рд┐рд▓реЗ рдиреИ рдЕрд╡рд╕реНрдерд┐рдд рдкреВрд░реНрд╡рд╛рдзрд╛рд░рдорд╛ рдкреНрд░рд╡рд┐рдзрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ - рдЕрд░реНрдерд╛рддреН, ESNI рд▓рд╛рдИ рд╕рдорд░реНрдерди рдирдЧрд░реНрдиреЗ рд╣рд╛рд▓рдХреЛ рд╡реЗрдм рд╕рд░реНрднрд░рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ред 

рд╕реНрдкрд╖реНрдЯрддрд╛рдХреЛ рд▓рд╛рдЧрд┐, рдпрд╣рд╛рдБ рдПрдЙрдЯрд╛ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ рдЫ:

ESNI рдорд╛рд░реНрдлрдд рддрдкрд╛рдИрдВрдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХрд╕рд░реА рд╕реБрд░рдХреНрд╖рд┐рдд рдЧрд░реНрдиреЗ

рдо рдпреЛ рдХреБрд░рд╛ рдпрд╛рдж рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреБ рдХрд┐ рдкреНрд░реЛрдХреНрд╕реА ESNI рдмрд┐рдирд╛ TLS рдЬрдбрд╛рди рд╕рдорд╛рдкреНрдд рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛рдХреЛ рд╕рд╛рде рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, ESNI рдмрд┐рдирд╛ рдХреНрд▓рд╛рдЗрдиреНрдЯрд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрдиред рд╕рд╛рдереИ, рдЕрдкрд╕реНрдЯреНрд░рд┐рдорд╕рдБрдЧ рд╕рдЮреНрдЪрд╛рд░ рдЧрд░реНрдиреЗ рдкреНрд░реЛрдЯреЛрдХрд▓ HTTP рд╡рд╛ HTTPS рд╣реБрди рд╕рдХреНрдЫ рдЬрд╕рдХреЛ TLS рд╕рдВрд╕реНрдХрд░рдг рез.рей рднрдиреНрджрд╛ рдХрдо рдЫ (рдпрджрд┐ рдЕрдкрд╕реНрдЯреНрд░рд┐рдорд▓реЗ рез.рей рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджреИрди рднрдиреЗ)ред рдпреЛ рдпреЛрдЬрдирд╛рд▓реЗ рдЕрдзрд┐рдХрддрдо рд▓рдЪрд┐рд▓реЛрдкрди рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред

ESNI рд╕рдорд░реНрдердирдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди go рд╣рд╛рдореАрд▓реЗ рдмрд╛рдЯ рд╕рд╛рдкрдЯреА рд▓рд┐рдПрдХрд╛ рдЫреМрдВ CloudFlareред рдо рддреБрд░реБрдиреНрддреИ рдзреНрдпрд╛рди рджрд┐рдиреЗрдЫреБ рдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЖрдлреИрдВрдорд╛ рдПрдХрджрдореИ рд╕рд╛рдорд╛рдиреНрдп рдЫреИрди, рдХрд┐рдирдХрд┐ рдпрд╕рд▓реЗ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпрдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рд╕рдВрдХреЗрдд рдЧрд░реНрджрдЫред crypto/tls рд░ рддреНрдпрд╕реИрд▓реЗ "рдкреНрдпрд╛рдЪрд┐рдЩ" рдЖрд╡рд╢реНрдпрдХ рдЫ GOROOT рд╕рднрд╛ рдЧрд░реНрдиреБ рдЕрдШрд┐ред

ESNI рдХреБрдЮреНрдЬреАрд╣рд░реВ рдЙрддреНрдкрдиреНрди рдЧрд░реНрди рд╣рд╛рдореАрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдпреМрдВ рдПрд╕реНрдирд┐рдЯреБрд▓ (рдХреНрд▓рд╛рдЙрдбрдлреНрд▓реЗрдпрд░ рд╕рд┐рд░реНрдЬрдирд╛ рдкрдирд┐)ред рдпреА рдХреБрдЮреНрдЬреАрд╣рд░реВ SNI рдЗрдиреНрдХреНрд░рд┐рдкреНрдЯ/рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред
рд╣рд╛рдореАрд▓реЗ go рез.резрей рдЕрди рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдмрд┐рд▓реНрдбрдХреЛ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрдпреМрдВред Linux (Debian, рдЕрд▓реНрдкрд╛рдЗрди) рд░ MacOSред 

рд╕рдЮреНрдЪрд╛рд▓рди рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреЗрд╣рд┐ рд╢рдмреНрджрд╣рд░реВ

ESNI рд░рд┐рднрд░реНрд╕ рдкреНрд░реЛрдХреНрд╕реАрд▓реЗ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдврд╛рдБрдЪрд╛рдорд╛ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ, рдЬрд╕реНрддреИ rps, рдЕрдкрд╕реНрдЯреНрд░реАрдо рд▓реЗрдЯреЗрдиреНрд╕реА рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛрдбрд╣рд░реВ, рдЕрд╕рдлрд▓/рд╕рдлрд▓ TLS рд╣реНрдпрд╛рдиреНрдбрд╢реЗрдХрд╣рд░реВ рд░ TLS рд╣реНрдпрд╛рдиреНрдбрд╢реЗрдХ рдЕрд╡рдзрд┐ред рдкрд╣рд┐рд▓реЛ рдирдЬрд░рдорд╛, рдпреЛ рдкреНрд░реЛрдХреНрд╕реАрд▓реЗ рдЯреНрд░рд╛рдлрд┐рдХ рдХрд╕рд░реА рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░реНрдЫ рднрдиреЗрд░ рдореВрд▓реНрдпрд╛рдЩреНрдХрди рдЧрд░реНрди рдкрд░реНрдпрд╛рдкреНрдд рджреЗрдЦрд┐рдиреНрдереНрдпреЛред 

рд╣рд╛рдореАрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрдЕрдШрд┐ рд▓реЛрдб рдкрд░реАрдХреНрд╖рдг рдкрдирд┐ рдЧрд░реНрдпреМрдВред рдирддрд┐рдЬрд╛рд╣рд░реВ рддрд▓ рдЫрдиреН:

wrk -t50 -c1000 -d360s 'https://esni-rev-proxy.npw:443' --timeout 15s
Running 6m test @ https://esni-rev-proxy.npw:443
  50 threads and 1000 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     1.77s     1.21s    7.20s    65.43%
    Req/Sec    13.78      8.84   140.00     83.70%
  206357 requests in 6.00m, 6.08GB read
Requests/sec:    573.07
Transfer/sec:     17.28MB 

рд╣рд╛рдореАрд▓реЗ ESNI рд░рд┐рднрд░реНрд╕ рдкреНрд░реЛрдХреНрд╕реАрд╕рдБрдЧ рд░ рдмрд┐рдирд╛ рдпреЛрдЬрдирд╛рдХреЛ рддреБрд▓рдирд╛ рдЧрд░реНрди рд╡рд┐рд╢реБрджреНрдз рдЧреБрдгрд╛рддреНрдордХ рд▓реЛрдб рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрдпреМрдВред рд╣рд╛рдореАрд▓реЗ рдордзреНрдпрд╡рд░реНрддреА рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВрдорд╛ "рд╣рд╕реНрддрдХреНрд╖реЗрдк" рд╣рдЯрд╛рдЙрди рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ рдЯреНрд░рд╛рдлрд┐рдХ "рдкреЛрд░реНрдпреМрдВ"ред

рддреНрдпрд╕реИрд▓реЗ, ESNI рд╕рдорд░реНрдерди рд░ HTTP рд╕рдБрдЧ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдкреНрд░реЛрдХреНрд╕реАрдХреЛ рд╕рд╛рде, рд╣рд╛рдореАрд▓реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдгрдмрд╛рдЯ рд▓рдЧрднрдЧ ~релрелреж rps рдкрд╛рдпреМрдВ, ESNI рд░рд┐рднрд░реНрд╕ рдкреНрд░реЛрдХреНрд╕реАрдХреЛ рдФрд╕рдд CPU/RAM рдЦрдкрддрдХреЛ рд╕рд╛рде:

  • реореж% CPU рдЙрдкрдпреЛрдЧ (рек vCPU, рек GB RAM рд╣реЛрд╕реНрдЯрд╣рд░реВ, Linux)
  • резрейреж рдПрдордмреА рдореЗрдо рдЖрд░рдПрд╕рдПрд╕

ESNI рдорд╛рд░реНрдлрдд рддрдкрд╛рдИрдВрдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХрд╕рд░реА рд╕реБрд░рдХреНрд╖рд┐рдд рдЧрд░реНрдиреЗ

рддреБрд▓рдирд╛рдХреЛ рд▓рд╛рдЧрд┐, TLS рдЯрд░реНрдорд┐рдиреЗрд╢рди (HTTP рдкреНрд░реЛрдЯреЛрдХрд▓) рдмрд┐рдирд╛ рдЙрд╣реА nginx рдЕрдкрд╕реНрдЯреНрд░реАрдордХреЛ рд▓рд╛рдЧрд┐ RPS ~ резрезрежреж рдЫ:

wrk -t50 -c1000 -d360s 'http://lb.npw:80' тАУ-timeout 15s
Running 6m test @ http://lb.npw:80
  50 threads and 1000 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     1.11s     2.30s   15.00s    90.94%
    Req/Sec    23.25     13.55   282.00     79.25%
  393093 requests in 6.00m, 11.35GB read
  Socket errors: connect 0, read 0, write 0, timeout 9555
  Non-2xx or 3xx responses: 8111
Requests/sec:   1091.62
Transfer/sec:     32.27MB 

рдЯрд╛рдЗрдордЖрдЙрдЯрдХреЛ рдЙрдкрд╕реНрдерд┐рддрд┐рд▓реЗ рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ рдЕрднрд╛рд╡ рднрдПрдХреЛ рд╕рдВрдХреЗрдд рдЧрд░реНрдЫ (рд╣рд╛рдореАрд▓реЗ рек рд╡рдЯрд╛ vCPU, рек GB RAM рд╣реЛрд╕реНрдЯрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдпреМрдВ, Linux), рд░ рд╡рд╛рд╕реНрддрд╡рдорд╛ рд╕рдореНрднрд╛рд╡рд┐рдд RPS рдЙрдЪреНрдЪ рдЫ (рд╣рд╛рдореАрд▓реЗ рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╕реНрд░реЛрддрд╣рд░реВрдорд╛ реиренрежреж RPS рд╕рдореНрдордХреЛ рддрдереНрдпрд╛рдЩреНрдХ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдпреМрдВ)ред

рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛, рдо рдпреЛ рдХреБрд░рд╛ рдпрд╛рдж рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреБ рдХрд┐ ESNI рдкреНрд░рд╡рд┐рдзрд┐ рдПрдХрджрдореИ рдЖрд╢рд╛рдЬрдирдХ рджреЗрдЦрд┐рдиреНрдЫред рдЕрдЭреИ рдкрдирд┐ рдзреЗрд░реИ рдЦреБрд▓рд╛ рдкреНрд░рд╢реНрдирд╣рд░реВ рдЫрдиреН, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, DNS рдорд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ ESNI рдХреБрдЮреНрдЬреА рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрдиреЗ рд░ ESNI рдХреБрдЮреНрдЬреАрд╣рд░реВ рдШреБрдорд╛рдЙрдиреЗ рдореБрджреНрджрд╛рд╣рд░реВ - рдпреА рдореБрджреНрджрд╛рд╣рд░реВ рд╕рдХреНрд░рд┐рдп рд░реВрдкрдорд╛ рдЫрд▓рдлрд▓ рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреН, рд░ ESNI рдХреЛ рдорд╕реНрдпреМрджрд╛рдХреЛ рдкрдЫрд┐рд▓реНрд▓реЛ рд╕рдВрд╕реНрдХрд░рдг (рд▓реЗрдЦрдирдХреЛ рд╕рдордпрдорд╛) рдкрд╣рд┐рд▓реЗ рдиреИ рдЫред 7.

рд╕реНрд░реЛрдд: www.habr.com

DDoS рд╕реБрд░рдХреНрд╖рд╛, VPS VDS рд╕рд░реНрднрд░рд╣рд░реВ рднрдПрдХрд╛ рд╕рд╛рдЗрдЯрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рднрд░рдкрд░реНрджреЛ рд╣реЛрд╕реНрдЯрд┐рдЩ рдЦрд░рд┐рдж рдЧрд░реНрдиреБрд╣реЛрд╕реН ЁЯФе DDoS рд╕реБрд░рдХреНрд╖рд╛, VPS VDS рд╕рд░реНрднрд░рд╣рд░реВ рд╕рд╣рд┐рддрдХреЛ рднрд░рдкрд░реНрджреЛ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╣реЛрд╕реНрдЯрд┐рдЩ рдХрд┐рдиреНрдиреБрд╣реЛрд╕реН | ProHoster