tcpcrypt — расширение протокола TCP, добавляющее в TCP возможность оппортунистического шифрования трафика[1][2]. В случае, если один из абонентов не поддерживает расширение tcpcrypt, устанавливается обычное TCP-соединение. Если оба абонента поддерживают tcpcrypt, данные шифруются незаметно для приложений (поддержка со стороны приложений не требуется; настройка не требуется (в отличие от VPN)).
tcpcrypt | |
---|---|
Название | Cryptographic Protection of TCP Streams |
Уровень (по модели OSI) | Транспортный |
Семейство | TCP/IP |
Создан в | июнь 2013 |
Спецификация | RFC 8547, RFC 8548 |
Разработчик | Марк Хэндли[вд] и Дэн Боне |
Описание расширения
правитьРасширение tcpcrypt создано для решения следующих задач:
- шифрование трафика;
- обеспечение целостности данных.
Расширение tcpcrypt, в отличие от протоколов TLS и IPsec, не содержит средств аутентификации пользователей, но предоставляет поле «Session ID». «Session ID» может использоваться на более высоких уровнях сетевой модели OSI для реализации любых схем аутентификации (например, аутентификации с помощью паролей или аутентификации с помощью сертификатов PKI).
Работа расширения tcpcrypt является прозрачной для приложений (то есть, для поддержки tcpcrypt модификация приложения не требуется). В случае работы по умолчанию (без аутентификации) расширение не требует настройки. Однако, при работе без аутентификации расширение уязвимо для активной[3] атаки человек посредине.
Большая часть работы по установке соединения (организации шифрования с использованием открытого ключа) выполняется на стороне клиента. Это сделано намеренно для уменьшения нагрузки на сервера и снижения вероятности DoS-атак[4].
Согласно исследованиям авторов, при использовании расширения tcpcrypt, по сравнению с TCP/TLS, нагрузка на сервера снижается за счёт более простой и быстрой процедуры рукопожатия (англ. handshake).
Расширение tcpcrypt использует TCP timestamps и добавляет в каждый пакет несколько своих TCP options. Из-за этого размер пакета увеличивается на 36 байт по сравнению с размером обычного TCP пакета. Если принять средний размер пакета TCP равным 471 байту[5], пропускная способность канала уменьшится на 8 %. Пользователи со скоростью канала, превышающей 64kbs, не должны заметить разницы, но работа пользователей dial up может существенно замедлиться.
История
правитьРасширение tcpcrypt спроектировано командой из шести человек[6]:
- Andrea Bittau
- Mike Hamburg
- Mark Handley[англ.]
- David Mazières
- Dan Boneh
- Quinn Slack
и представлено на 19-м собрании «USENIX security symposium» в 2010 году.
В июле 2010 был опубликован первый черновик спецификации, а в августе 2010 — исходные коды эталонной реализации. Представители IETF ознакомились с черновиком, но стандарт не приняли. Из-за этого проект не развивался до 2011 года[7].
В 2013‑2014 годах Эдвард Сноуден раскрыл информацию о массовой слежке АНБ и других правительственных организаций за пользователями интернета. IETF решила защитить пользователей от слежки путём создания безопасных протоколов интернета[8][9]. Расширение tcpcrypt выполняло прозрачное шифрование всего трафика, и IETF проявила интерес к его стандартизации.
В марте 2014 года IETF создала список рассылки (англ. mailing list) для обсуждения tcpcrypt[10]. В июне 2014 года IETF сформировала рабочую группу под названием «TCPINC» (от англ. TCP increased security) для стандартизации расширения tcpcrypt[11] и опубликовала новый черновик спецификации.
С черновиком (англ. internet draft) можно ознакомиться по ссылке[12].
В 2019 году после длительных обсуждений и девятнадцати редакций документа стандарт был принят как экспериментальный и оформлен как RFC 8548.
Реализации
правитьРеализации расширения tcpcrypt подготовлены для нескольких операционных систем: Linux, FreeBSD, Windows и Mac OS X. Все реализации:
- работают в пространстве пользователя;
- считаются экспериментальными (англ. experimental) и по сообщениям пользователей работают нестабильно (англ. unstable).
Протокол IPv6 пока поддерживается только реализацией для ОС Linux.
Ожидается, что после стандартизации расширения tcpcrypt, встроенные реализации появятся во всех операционных системах.
См. также
править- TCP
- SSL/TLS
- IPsec
- VPN
- DTLS
- Obfuscated TCP[англ.] — более ранняя попытка реализации оппортунистического шифрования для TCP.
Примечания
править- ↑ Andrea Bittau; et al. (13 августа 2010). The case for ubiquitous transport-level encryption (PDF). 19th USENIX Security Symposium. Архивировано (PDF) 18 ноября 2011. Дата обращения: 25 марта 2015.
{{cite conference}}
: Явное указание et al. в:|author=
(справка) Источник . Дата обращения: 25 марта 2015. Архивировано 18 ноября 2011 года. - ↑ Michael Cooney (19 июля 2010). "Is ubiquitous encryption technology on the horizon?". Network World. Архивировано 20 октября 2013. Дата обращения: 25 марта 2015.
- ↑ Пассивная (англ. passive) атака — прослушивание трафика.
Активная (англ. active) атака — изменение трафика. - ↑ Jake Edge (25 августа 2010). "Transport-level encryption with Tcpcrypt". LWN.net. Архивировано 2 апреля 2015. Дата обращения: 25 марта 2015.
- ↑ "Sean McCreary and kc klaffy". Trends in Wide Area IP Traffic Patterns A View from Ames Internet Exchange . Дата обращения: 25 марта 2015. Архивировано 2 апреля 2015 года.
- ↑ tcpcrypt - About us . tcpcrypt.org. Дата обращения: 25 марта 2015. Архивировано 28 марта 2015 года.
- ↑ Mark Handley (09.09.2013). "Kernel patch for Linux 3.10.10?" (Mailing list). Архивировано 2014-07-27. Дата обращения: 2015-03-25.
Two years ago we failed to get much traction for the takeup of tcpcrypt.
{{cite mailing list}}
: Проверьте значение даты:|date=
(справка) - ↑ Richard Chirgwin (14.05.2014). "IETF plans to NSA-proof all future internet protocols". The Register. Архивировано 2017-07-07. Дата обращения: 2017-09-29.
{{cite news}}
: Проверьте значение даты:|date=
(справка) - ↑ Mark Jackson (13.05.2014). "IETF Commits to Hamper State Sponsored Mass Internet Surveillance". ISP Review. Архивировано 2015-04-02. Дата обращения: 2015-03-25.
{{cite news}}
: Проверьте значение даты:|date=
(справка) - ↑ "New Non-WG Mailing List: Tcpcrypt -- Discussion list for adding encryption to TCP" (Mailing list). IETF Secretariat. 24.03.2014. Архивировано 2015-09-24. Дата обращения: 2015-03-25.
{{cite mailing list}}
: Проверьте значение даты:|date=
(справка) - ↑ TCP Increased Security (tcpinc) . Charter for Working Group. Дата обращения: 25.07.2014. Архивировано 29 марта 2015 года.
- ↑ Bittau, A. (21.07.2014), Cryptographic protection of TCP Streams (tcpcrypt), IETF
{{citation}}
: Проверьте значение даты:|date=
(справка); Неизвестный параметр|coauthors=
игнорируется (|author=
предлагается) (справка); Неизвестный параметр|draft=
игнорируется (справка)
Ссылки
править- tcpcrypt.org (англ.) — официальный сайт проекта tcpcrypt.
- https://github.com/scslab/tcpcrypt/ — исходный код реализаций tcpcrypt для нескольких ОС.
- Протокол tcpcrypt — тотальное шифрование трафика (рус.) — О протоколе tcpcrypt