Ця стаття має кілька недоліків. Будь ласка, допоможіть удосконалити її або обговоріть ці проблеми на .
|
ALPN (англ. Application-Layer Protocol Negotiation — протокол узгодження прикладного рівня) — це розширення Transport Layer Security (TLS), яке дозволяє прикладному рівню узгоджувати, який протокол слід виконувати через захищене з'єднання, таким чином, щоб уникнути додаткових двосторонніх запитів, і яке не залежить від протоколів прикладного рівня. Це потрібно для безпечних з'єднань (HTTP/2), що покращує стиснення вебсторінок і зменшує їх затримку у порівнянні з HTTP/1.x. Стандарт ALPN з'явився внаслідок роботи Google, над уже вилученим протоколом SPDY, який став основою HTTP/2.
Підтримка
ALPN підтримується цими бібліотеками.
- GnuTLS з версії 3.2.0, випущеної у травні 2013.
- MatrixSSL з версії 3.7.1, випущеної у грудні 2014.
- Network Security Services з версії 3.15.5, випущеної у квітні 2014.
- OpenSSL з версії 1.0.2, випущеної у січні 2015.
- LibreSSL з версії 2.1.3, випущеної у січні 2015.
- (раніше PolarSSL) з версії 1.3.6, випущеної у квітні 2014.
- SChannel з Windows 8.1 / 2012 R2.
- з моменту першого публічного випуску, у червні 2015.
- wolfSSL (раніше CyaSSL) з версії 3.7.0, випущеної у жовтні 2015.
- Go (у стандартній бібліотеці crypto/tls) з версії 1.4, випущеної у грудні 2014.
- picotls.
- JSSE в Java, починаючи з випуску JDK 9, у вересні 2017., [en] у JDK 8, починаючи з квітня 2020.
- з версії 0.3.
- Win32 SSPI з часу випуску Windows 8.1 та Windows Server 2012 R2, 18 жовтня 2013.
Історія
11 липня 2014 р. ALPN був опублікований як RFC 7301. Згодом замінює NPN.
Помилковий запуск TLS було вимкнено у Google Chrome, з версії 20 (2012), за винятком вебсайтів із попереднім розширенням NPN (англ. Next Protocol Negotiation — узгодження наступного протоколу).
Приклад
ALPN - це розширення TLS, яке надсилається при відкритті сеансу (рукостискання TLS) 'Client Hello', і в ньому перелічуються протоколи, які підтримує клієнт (наприклад, веббраузер):
Handshake Type: Client Hello (1) Length: 141 Version: TLS 1.2 (0x0303) Random: dd67b5943e5efd0740519f38071008b59efbd68ab3114587... Session ID Length: 0 Cipher Suites Length: 10 Cipher Suites (5 suites) Compression Methods Length: 1 Compression Methods (1 method) Extensions Length: 90 [other extensions omitted] Extension: application_layer_protocol_negotiation (len=14) Type: application_layer_protocol_negotiation (16) Length: 14 ALPN Extension Length: 12 ALPN Protocol ALPN string length: 2 ALPN Next Protocol: h2 ALPN string length: 8 ALPN Next Protocol: http/1.1
У результаті 'Server Hello', з вебсервера, також міститиметься розширення ALPN, яке підтверджує, який саме протокол буде використаний для запиту HTTP:
Handshake Type: Server Hello (2) Length: 94 Version: TLS 1.2 (0x0303) Random: 44e447964d7e8a7d3b404c4748423f02345241dcc9c7e332... Session ID Length: 32 Session ID: 7667476d1d698d0a90caa1d9a449be814b89a0b52f470e2d... Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f) Compression Method: null (0) Extensions Length: 22 [other extensions omitted] Extension: application_layer_protocol_negotiation (len=5) Type: application_layer_protocol_negotiation (16) Length: 5 ALPN Extension Length: 3 ALPN Protocol ALPN string length: 2ALPN Next Protocol: h2
Примітки
- . Архів оригіналу за 31 січня 2016. Процитовано 26 січня 2015.
- . 4 грудня 2014. Архів оригіналу за 14 лютого 2015. Процитовано 26 січня 2015.
- NSS 3.15.5 release notes. Mozilla Developer Network. Mozilla. Архів оригіналу за 26 січня 2015. Процитовано 26 січня 2015.
- . The OpenSSL Project. The OpenSSL Project. 22 січня 2015. Архів оригіналу за 4 вересня 2014. Процитовано 26 січня 2015.
- . 22 січня 2015. Архів оригіналу за 31 січня 2016. Процитовано 26 січня 2015.
- . 11 квітня 2014. Архів оригіналу за 9 лютого 2015. Процитовано 26 січня 2015.
- . 26 жовтня 2015. Архів оригіналу за 16 березня 2016. Процитовано 11 вересня 2015.
- . 10 грудня 2014. Архів оригіналу за 16 вересня 2020. Процитовано 28 листопада 2017.
- . Github. Архів оригіналу за 23 березня 2019. Процитовано 2 серпня 2018.
- . 7 серпня 2017. Архів оригіналу за 21 жовтня 2020. Процитовано 29 серпня 2018.
- {{cite web|title=Release Note: TLS Application-Layer Protocol Negotiation Extension|url=https://bugs.openjdk.java.net/browse/JDK-8242894%7Cdate=2020-04-30%7Caccessdate=2020-06-11}
- . Архів оригіналу за 9 травня 2021. Процитовано 8 вересня 2010.
- . Архів оригіналу за 14 вересня 2020. Процитовано 30 березня 2020.
- Langley, Adam. . Архів оригіналу за 8 серпня 2013. Процитовано 2 квітня 2013.
- Langley, Adam. . Архів оригіналу за 12 вересня 2013. Процитовано 25 вересня 2013.
Посилання
- Реєстр ідентифікаторів протоколу ALPN підтримується IANA як розширення TLS. [ 16 вересня 2020 у Wayback Machine.]
- draft-agl-tls-nextprotoneg-04 (проект NPN) [ 13 грудня 2016 у Wayback Machine.] (останнє оновлення: травень 2012 р.)
- RFC 7301 «Протокол узгодження прикладного рівня, захисту на транспортному рівні (TLS)»
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Cya stattya maye kilka nedolikiv Bud laska dopomozhit udoskonaliti yiyi abo obgovorit ci problemi na Cya stattya posilayetsya na pervinni dzherela Bud laska udoskonalte yiyi dodavshi posilannya na nezalezhni vtorinni chi tretinni dzherela veresen 2020 ALPN angl Application Layer Protocol Negotiation protokol uzgodzhennya prikladnogo rivnya ce rozshirennya Transport Layer Security TLS yake dozvolyaye prikladnomu rivnyu uzgodzhuvati yakij protokol slid vikonuvati cherez zahishene z yednannya takim chinom shob uniknuti dodatkovih dvostoronnih zapitiv i yake ne zalezhit vid protokoliv prikladnogo rivnya Ce potribno dlya bezpechnih z yednan HTTP 2 sho pokrashuye stisnennya vebstorinok i zmenshuye yih zatrimku u porivnyanni z HTTP 1 x Standart ALPN z yavivsya vnaslidok roboti Google nad uzhe viluchenim protokolom SPDY yakij stav osnovoyu HTTP 2 PidtrimkaALPN pidtrimuyetsya cimi bibliotekami GnuTLS z versiyi 3 2 0 vipushenoyi u travni 2013 MatrixSSL z versiyi 3 7 1 vipushenoyi u grudni 2014 Network Security Services z versiyi 3 15 5 vipushenoyi u kvitni 2014 OpenSSL z versiyi 1 0 2 vipushenoyi u sichni 2015 LibreSSL z versiyi 2 1 3 vipushenoyi u sichni 2015 ranishe PolarSSL z versiyi 1 3 6 vipushenoyi u kvitni 2014 SChannel z Windows 8 1 2012 R2 z momentu pershogo publichnogo vipusku u chervni 2015 wolfSSL ranishe CyaSSL z versiyi 3 7 0 vipushenoyi u zhovtni 2015 Go u standartnij biblioteci crypto tls z versiyi 1 4 vipushenoyi u grudni 2014 picotls JSSE v Java pochinayuchi z vipusku JDK 9 u veresni 2017 en u JDK 8 pochinayuchi z kvitnya 2020 z versiyi 0 3 Win32 SSPI z chasu vipusku Windows 8 1 ta Windows Server 2012 R2 18 zhovtnya 2013 Istoriya11 lipnya 2014 r ALPN buv opublikovanij yak RFC 7301 Zgodom zaminyuye NPN Pomilkovij zapusk TLS bulo vimkneno u Google Chrome z versiyi 20 2012 za vinyatkom vebsajtiv iz poperednim rozshirennyam NPN angl Next Protocol Negotiation uzgodzhennya nastupnogo protokolu PrikladALPN ce rozshirennya TLS yake nadsilayetsya pri vidkritti seansu rukostiskannya TLS Client Hello i v nomu perelichuyutsya protokoli yaki pidtrimuye kliyent napriklad vebbrauzer Handshake Type Client Hello 1 Length 141 Version TLS 1 2 0x0303 Random dd67b5943e5efd0740519f38071008b59efbd68ab3114587 Session ID Length 0 Cipher Suites Length 10 Cipher Suites 5 suites Compression Methods Length 1 Compression Methods 1 method Extensions Length 90 other extensions omitted Extension application layer protocol negotiation len 14 Type application layer protocol negotiation 16 Length 14 ALPN Extension Length 12 ALPN Protocol ALPN string length 2 ALPN Next Protocol h2 ALPN string length 8 ALPN Next Protocol http 1 1 U rezultati Server Hello z vebservera takozh mistitimetsya rozshirennya ALPN yake pidtverdzhuye yakij same protokol bude vikoristanij dlya zapitu HTTP Handshake Type Server Hello 2 Length 94 Version TLS 1 2 0x0303 Random 44e447964d7e8a7d3b404c4748423f02345241dcc9c7e332 Session ID Length 32 Session ID 7667476d1d698d0a90caa1d9a449be814b89a0b52f470e2d Cipher Suite TLS ECDHE RSA WITH AES 128 GCM SHA256 0xc02f Compression Method null 0 Extensions Length 22 other extensions omitted Extension application layer protocol negotiation len 5 Type application layer protocol negotiation 16 Length 5 ALPN Extension Length 3 ALPN Protocol ALPN string length 2 ALPN Next Protocol h2Primitki Arhiv originalu za 31 sichnya 2016 Procitovano 26 sichnya 2015 4 grudnya 2014 Arhiv originalu za 14 lyutogo 2015 Procitovano 26 sichnya 2015 NSS 3 15 5 release notes Mozilla Developer Network Mozilla Arhiv originalu za 26 sichnya 2015 Procitovano 26 sichnya 2015 The OpenSSL Project The OpenSSL Project 22 sichnya 2015 Arhiv originalu za 4 veresnya 2014 Procitovano 26 sichnya 2015 22 sichnya 2015 Arhiv originalu za 31 sichnya 2016 Procitovano 26 sichnya 2015 11 kvitnya 2014 Arhiv originalu za 9 lyutogo 2015 Procitovano 26 sichnya 2015 26 zhovtnya 2015 Arhiv originalu za 16 bereznya 2016 Procitovano 11 veresnya 2015 10 grudnya 2014 Arhiv originalu za 16 veresnya 2020 Procitovano 28 listopada 2017 Github Arhiv originalu za 23 bereznya 2019 Procitovano 2 serpnya 2018 7 serpnya 2017 Arhiv originalu za 21 zhovtnya 2020 Procitovano 29 serpnya 2018 cite web title Release Note TLS Application Layer Protocol Negotiation Extension url https bugs openjdk java net browse JDK 8242894 7Cdate 2020 04 30 7Caccessdate 2020 06 11 Arhiv originalu za 9 travnya 2021 Procitovano 8 veresnya 2010 Arhiv originalu za 14 veresnya 2020 Procitovano 30 bereznya 2020 Langley Adam Arhiv originalu za 8 serpnya 2013 Procitovano 2 kvitnya 2013 Langley Adam Arhiv originalu za 12 veresnya 2013 Procitovano 25 veresnya 2013 PosilannyaReyestr identifikatoriv protokolu ALPN pidtrimuyetsya IANA yak rozshirennya TLS 16 veresnya 2020 u Wayback Machine draft agl tls nextprotoneg 04 proekt NPN 13 grudnya 2016 u Wayback Machine ostannye onovlennya traven 2012 r RFC 7301 Protokol uzgodzhennya prikladnogo rivnya zahistu na transportnomu rivni TLS