Растершлюссель 44: Забытый шифр последних дней Третьего рейха

Растершлюссель 44: Забытый шифр последних дней Третьего рейха

Как ошибка радиста обрушила миллиарды комбинаций RS-44.

image

Весна 1944 года. Берлин, некогда блистательная столица, теперь живёт в ритме воздушных тревог. В подвале штаба связи «ОКВ/Chi» на Тирпитцуфер, 72-76, молодой астроном Вальтер Фрике склонился над рабочим столом. Перед ним — калька, линейка и цветные карандаши. Фрике предпочитает работать ночью: бомбёжки реже, да и мысли яснее. Ему поручено невозможное — создать полевой шифр, который будет достаточно стойким, чтобы противостоять лучшим умам британской разведки, и при этом настолько простым, чтобы измотанный боями радист мог работать с ним практически вслепую. Так родился «Растершлюссель 44» (Rasterschlüssel 44, или RS-44) — последний серьёзный ручной шифр Вермахта, ставший криптографическим эхом агонии Третьего рейха.

Критический момент: почему понадобился новый полевой шифр

К зиме 1943-1944 ситуация на фронтах для Германии становилась катастрофической. Войска отступали по всем направлениям, снабжение трещало по швам, а линии коммуникаций растягивались на тысячи километров. В этих условиях шифрование приобретало критическое значение. Союзники вскрывали немецкие коды один за другим. «Энигма» — гордость немецкой криптографии — уже несколько лет читалась в Блетчли-парке благодаря гигантским электромеханическим «Бомбам». Но даже более простые полевые шифры, такие как «Двойной Плейфэйр» (Double Playfair), не выдерживали напора британских и американских криптоаналитиков.

Полковник Вильгельм Фенне, глава Инспектората шифровальной службы (OKW/Chi), поставил перед своими специалистами три жёстких требования к новому шифру:

  • Механическая надёжность: никаких хрупких машин и зависимости от электричества. Шифр должен работать в окопе, блиндаже, под дождём, снегом и артобстрелом.
  • Операционная простота: процедура должна быть настолько интуитивно понятной, чтобы солдат после пятиминутного инструктажа мог сразу приступить к работе.
  • Криптографическая стойкость: минимум две недели на дешифровку даже при наличии известного текста (криба).

Эти требования звучали почти взаимоисключающе. Как совместить примитивность инструментов с высоким уровнем защиты? Как сделать систему, которая выживет в полевых условиях восточного фронта, где к зиме 1944 года температура опускалась до -30°C, а чернила замерзали в авторучках?

Любопытный факт: выбор Вальтера Фрике для этой работы не был случайным. До войны он работал в Берлинской обсерватории и специализировался на звёздной статистике — области, требующей глубокого понимания многомерных комбинаторных систем. Именно его математическое мышление помогло создать шифр, в котором каждый параметр, от расположения клеток до порядка чтения столбцов, становился отдельной степенью свободы в криптографическом уравнении.

Математическая элегантность в простоте: устройство решётки RS-44

Фрике нашёл решение в идее, которая восходила ещё к старым методам стеганографии: решётчатым шифрам. Но вместо того, чтобы использовать традиционный подход "кардано", он создал многоуровневую динамическую систему перестановок.

Основу шифра составляла книжка размером с карманный блокнот, содержащая 31 лист — по одному на каждый день месяца. На каждом листе располагалась:

  1. Сетка 25×24. Размер был выбран не случайно: 25 столбцов соответствовали стандартному количеству знаков в строке радиограммы, а 24 строки позволяли уместить до 240 символов текста (с учётом того, что в каждой строке только 10 из 25 клеток были рабочими).
  2. Уникальная маска. В каждой строке ровно 10 клеток были "белыми" (рабочими), а 15 — "чёрными" (блокированными). Расположение этих клеток менялось от листа к листу по псевдослучайному алгоритму.
  3. Система координатной адресации. Строки и столбцы подписывались не просто цифрами, а диграфами — парами букв из множества {a, b, c, d, e}. Это давало 25 возможных комбинаций для столбцов (от "aa" до "ee") и 24 для строк.
  4. Таблица перенумерации столбцов. Под сеткой располагалась строка с числами от 1 до 25 в случайном порядке. Эти числа указывали порядок считывания столбцов при шифровании.
  5. Три вспомогательных алфавита-шифратора. Они использовались для кодирования географических названий и для шифрования самого заголовка сообщения (message key).

Анатомия решётки: инженерные детали

Визуально лист RS-44 напоминал шахматную доску с неравномерной закраской клеток. При ближайшем рассмотрении можно было заметить несколько технических деталей, продуманных до мелочей:

  • Плотность распределения белых клеток была рассчитана так, чтобы обеспечить максимальную энтропию кодирования при сохранении простоты использования. Десять рабочих клеток в строке — это компромисс между стойкостью (чем меньше белых клеток, тем сложнее восстановить исходный текст) и удобством (оператору нужно достаточно места для записи сообщения).
  • Диграфы, обозначающие строки и столбцы, печатались расплывчатым шрифтом на границе видимости. Это защищало от случайного прочтения при беглом взгляде на решётку, но позволяло радисту быстро ориентироваться при правильном освещении.
  • Сами листы изготавливались из особой бумаги с водоотталкивающей пропиткой — опыт войны в России показал, что обычная бумага быстро размокает даже от конденсата дыхания в холодную погоду.
  • На обратной стороне каждого листа располагались краткие инструкции по применению системы и таблица наиболее распространённых сокращений для экономии места в радиограммах.

Координаты стартовой клетки и номер первого "съёмного" столбца образовывали так называемый message key — ключ сообщения. Он состоял из шести букв (две для строки, две для столбца начала и две для указания первого считываемого столбца) и подвергался дополнительному шифрованию через специальную таблицу замен. Этот шестибуквенный код помещался в заголовке радиограммы вместе с указанием времени отправки и длины текста.

Шесть символов, определяющих безопасность

Порядок шифрования message key был, пожалуй, самой изящной частью всей системы. Координаты "aa-bb" стартовой клетки и диграф "cc" первого считываемого столбца подвергались преобразованию через таблицу подстановок, превращаясь в шесть совершенно иных букв, например, "RVHPJM". Для противника, не знающего алгоритма, эти буквы выглядели как случайный набор, но для получателя они давали точные указания, где начать чтение и в каком порядке собирать текст.

Интересно, что для затруднения криптоанализа немецкие инженеры ввели ещё один уровень запутывания: если в течение дня отправлялось несколько сообщений одному адресату, рекомендовалось каждый раз выбирать новую стартовую позицию и новый порядок считывания. Тем самым, даже при условии перехвата всех сообщений, противник не мог использовать корреляцию между ними для упрощения взлома.

Криптографический вальс: алгоритм шифрования пошагово

Представим себе весну 1945 года. Узел связи 9-й армии, где-то на восточных подступах к Берлину. Ефрейтор Курт Вагнер, радист полевой радиостанции, получает приказ зашифровать и передать срочное донесение о перемещении советских танковых частей. Как выглядел процесс кодирования в реальных условиях?

Подготовка

Шаг 1. Вагнер достаёт из планшета книжку RS-44, находит лист, соответствующий текущей дате (12 апреля), и кладёт на него лист кальки.

Шаг 2. Сверяет время: 15:40. По инструкции, для определения стартовой позиции и первого "съёмного" столбца могла использоваться "крестовая сумма" — сложение часов и минут (15+40=55). До реформы 1944 года именно это число определяло бы номер первого считываемого столбца, но после реформы Вагнер может выбрать любой столбец по своему усмотрению.

Шаг 3. Вагнер выбирает случайную белую клетку в середине сетки, на пересечении строки "bd" и столбца "ce". Именно с этой клетки он начнёт писать открытый текст сообщения.

Кодирование

Шаг 4. Вагнер начинает аккуратно вписывать буквы сообщения в белые клетки, двигаясь слева направо и сверху вниз, как при обычном чтении. Чёрные клетки он пропускает. Когда заканчивается строка, переходит к следующей. Текст сообщения представляет собой приблизительно следующее:

BEOBACHTETZWEITRUSSKEPANZERBRIGADENOSTLICHPFAFFENSEEBEWEGTRICHWESPUNKT66

Что в переводе означает: "Наблюдаются две русские танковые бригады восточнее Пфаффензее, движутся в западном направлении, точка 66".

Шаг 5. Поскольку длина сообщения составляет 66 знаков, что меньше минимальной рекомендуемой длины в 80 знаков (это число варьировалось в разных версиях инструкций), Вагнер дополняет текст бессмысленными фразами до 80 символов:

BEOBACHTETZWEITRUSSKEPANZERBRIGADENOSTLICHPFAFFENSEEBEWEGTRICHWESPUNKT66HASEKLEEKASERN

Где "HASEKLEEKASERN" (заяц-клевер-казармы) — ничего не значащее дополнение.

Транспозиция

Шаг 6. Вагнер решает, что первым будет считываться столбец "db". Согласно таблице перенумерации в нижней части листа, этот столбец имеет номер 17.

Шаг 7. Теперь он считывает буквы по столбцам, начиная с 17-го, затем по порядку номеров в таблице перенумерации (например, 17, 4, 22, 9...). В результате получается совершенно бессмысленный на первый взгляд набор букв — зашифрованный текст.

Формирование заголовка

Шаг 8. Вагнер шифрует координаты начальной клетки (bd-ce) и номер первого столбца (db) с помощью специальной таблицы, получая шесть букв: "LKANRD".

Шаг 9. Формирует полный заголовок радиограммы: "1540-80-LKANRD", где 1540 — время отправки, 80 — длина сообщения, LKANRD — зашифрованный ключ сообщения.

Передача

Шаг 10. Готовый шифртекст с заголовком Вагнер передаёт по радио. На приёмной стороне, радист, имеющий идентичную книжку RS-44, расшифровывает LKANRD, находит начальную клетку и порядок считывания столбцов, а затем восстанавливает исходное сообщение.

Весь процесс при должной тренировке занимал не более 8-10 минут для сообщения средней длины, что было вполне приемлемо для полевых условий.

Числа не лгут: криптостойкость на практике

Теоретическая стойкость RS-44 была впечатляющей. Согласно расчётам самого Фрике, полное пространство ключей составляло астрономическую величину — примерно 2,06 × 10185. Даже с учётом ограничений реальной реализации (повторяющиеся шаблоны в расположении клеток, ограниченный набор используемых диграфов), система обеспечивала практическую стойкость на уровне 1070 возможных комбинаций.

Для сравнения: знаменитая "Энигма" в конфигурации 1944-1945 годов (с тремя роторами из набора в пять возможных, отражателем и коммутационной панелью) давала около 1023 возможных начальных состояний. Это значит, что теоретически RS-44 был на 47 порядков сильнее роторной машины!

Откуда бралась такая мощь?

  • Комбинаторика маски. Размещение 10 белых клеток среди 25 в каждой из 24 строк давало огромное число возможных конфигураций.
  • Динамический выбор стартовой позиции. Для каждого сообщения начальная клетка выбиралась произвольно, что исключало возможность использования статистического анализа на большом объёме перехваченных сообщений.
  • Произвольный порядок считывания. После реформы 1944 года оператор мог выбрать любой столбец в качестве начального, что ещё больше увеличивало энтропию шифрования.
  • Ежедневная смена ключей. Каждый день использовался новый лист с уникальным расположением клеток и таблицей перенумерации.

Особую роль играла также мультипликативность защиты: чтобы взломать шифр, криптоаналитику требовалось одновременно решить несколько задач — восстановить маску клеток, определить начальную позицию, вычислить порядок считывания столбцов. Каждый из этих уровней защиты сам по себе представлял нетривиальную задачу.

Практическая стойкость

На практике британская и американская разведки признавали, что без наличия значительного криба (известного фрагмента открытого текста длиной не менее 40 символов) атака на RS-44 была практически невозможна. Даже при наличии такого криба полный взлом одного сообщения занимал от 10 до 14 дней при условии привлечения лучших специалистов и значительных ресурсов.

Это было именно то, чего добивалось командование Вермахта: тактические сообщения о передвижениях войск, запросах снабжения и локальных операциях устаревали за 7-10 дней, что делало их дешифровку малополезной для противника.

Трещины в броне: как был взломан "непробиваемый" шифр

Как часто бывает в истории криптографии, падение RS-44 началось не с математических прорывов, а с человеческих ошибок и производственных компромиссов. Первые успехи в криптоанализе RS-44 были достигнуты британскими специалистами уже к осени 1944 года, всего через несколько месяцев после внедрения системы.

Повторная передача — криптографическое самоубийство

Первой серьёзной брешью стала повторная отправка сообщений. В условиях плохой связи, атмосферных помех или просто из-за ошибок операторов нередко приходилось передавать одно и то же сообщение дважды или трижды. При этом радисты часто экономили время и силы, используя ту же стартовую позицию и тот же порядок считывания. Даже при смене этих параметров, текст оставался идентичным, что давало криптоаналитикам критически важную зацепку.

Летом 1944 года группа под руководством Джона Тилтмана в Блетчли-парке перехватила три варианта одного и того же сообщения, переданного в течение часа. Сопоставление шифртекстов позволило определить некоторые закономерности в структуре решётки и сделать первые шаги к её восстановлению.

Производственные компромиссы

Второй удар по RS-44 нанесла банальная нехватка ресурсов. К концу 1944 года положение Германии стало катастрофическим: бомбардировки разрушали промышленные центры, нехватка сырья ощущалась повсеместно. В этих условиях производство миллионов листов для книжек RS-44 столкнулось с серьёзными ограничениями.

Как выяснилось после войны, для штамповки трафаретов использовалось всего 36 металлических матриц с фиксированными наборами отверстий. Операторы печатных машин просто комбинировали эти матрицы, поворачивали их и меняли местами строки, чтобы создать иллюзию полной случайности. В результате количество действительно уникальных конфигураций сократилось с теоретических 10185 до вполне обозримых нескольких миллионов.

Когда британская разведка в феврале 1945 года захватила в районе Аахена двух связистов с полными комплектами трафаретов за несколько месяцев, этого оказалось достаточно для выявления закономерностей в структуре решёток. Математики Блетчли-парка смогли разработать алгоритмы для прогнозирования будущих конфигураций на основе анализа уже известных листов.

Статистические методы атаки

Третьим и, пожалуй, решающим фактором стало применение передовых для того времени статистических методов. Группа под руководством Алана Тьюринга разработала специальную методику анализа частот появления определённых комбинаций букв в перехваченных сообщениях.

Особое внимание уделялось преамбулам — стандартным заголовкам сообщений, которые часто содержали устойчивые формулировки. Например, донесения часто начинались с фраз вроде "MELDE FEINDLICHE" (докладываю о противнике) или "ANFORDERE SOFORT" (требую немедленно). Зная вероятное содержание начала сообщения и имея достаточное количество перехватов, аналитики могли с высокой вероятностью восстановить часть решётки.

Дальнейший анализ основывался на особенностях немецкого языка: характерных биграммах, триграммах и распределении частот букв. Постепенно, словно собирая пазл, британские специалисты научились восстанавливать и остальные части решётки.

Человеческий фактор: когда карандаш подводит надёжнее, чем шифр

Любая криптосистема настолько сильна, насколько силен её самый слабый компонент. Для RS-44 таким слабым компонентом стал человек.

В теории RS-44 был элегантным, математически обоснованным шифром. На практике же его использование сталкивалось с множеством бытовых трудностей, которые в конечном итоге привели к появлению критических уязвимостей.

Физические ограничения полевых условий

Представьте себе радиста, который должен работать с тонкой калькой и мелкой сеткой в следующих условиях:

  • В темноте. После наступления темноты использование света в прифронтовой полосе было ограничено из-за угрозы авианалётов. Работать приходилось при тусклом свете керосиновых ламп или вовсе в темноте.
  • В холоде. Зимой 1944-1945 годов температура на Восточном фронте опускалась значительно ниже нуля. Пальцы коченели, чернила замерзали, бумага становилась хрупкой.
  • Под обстрелом. Полевые радиостанции часто становились приоритетными целями для артиллерии противника. Работать приходилось в условиях постоянного стресса, порой прерываясь на укрытие в бомбоубежище.
  • В движении. В условиях маневренной войны кодирование нередко приходилось выполнять в кузове трясущегося грузовика или в переполненном штабном бункере.

Всё это приводило к многочисленным ошибкам, которые можно классифицировать следующим образом:

Типология ошибок операторов

  • "Гуано-сообщения" — так со своеобразным немецким юмором называли сообщения с многочисленными ошибками, которые приводили к полной невозможности расшифровки. Название происходит от любимого немецкого ругательства времён войны. Такие сообщения требовали повторной отправки, что увеличивало объём радиообмена и давало противнику больше материала для анализа.
  • Ошибки в подсчёте координат. Усталые операторы часто сбивались при подсчёте клеток или неверно определяли координаты начальной позиции. Это приводило к смещению при дешифровке и, как следствие, к запросам повторной передачи.
  • Неверная трансляция message key. Шестибуквенный код в заголовке сообщения нередко передавался с ошибками или неточностями, что делало невозможной корректную расшифровку.
  • Стандартизация порядка. Вопреки инструкциям, требовавшим выбирать случайную начальную позицию, многие операторы для упрощения работы использовали одни и те же участки решётки (например, верхний левый угол) или предсказуемые схемы выбора первого столбца (например, всегда столбец с номером, равным дате).

Отдельной проблемой стали так называемые "шаблонные фразы" — стандартные формулировки, которые регулярно встречались в сообщениях определённого типа. Например, метеосводки почти всегда начинались с "WETTERBERICHT FÜR", а запросы снабжения — с "ANFORDERE FOLGENDE". Такие предсказуемые фрагменты текста становились идеальными кандидатами на роль криба и существенно облегчали работу криптоаналитиков.

В сравнении с конкурентами: RS-44 и другие шифры эпохи

Чтобы лучше понять место RS-44 в истории криптографии Второй мировой войны, полезно сравнить его с другими системами шифрования, применявшимися в тот период.

Система Тип Среднее время взлома Требования к оборудованию Основные уязвимости
Enigma Heer Роторная машина Часы (при удачной настройке «бомб») Электропитание, механический ротор, запасные части Неизменность структуры коммутации, предсказуемость настроек, невозможность шифрования одной буквы самой собой
Lorenz SZ-40/42 Телетайп с шифрованием Дни (с помощью "Колосса") Электропитание, телетайп, сложная электроника Детерминированная структура генератора псевдослучайных чисел, повторное использование настроек
Double Playfair Двойная подстановка Дни Блокнот, карандаш, таблица подстановок Ограниченное ключевое пространство, уязвимость к частотному анализу, проблемы с диграфами
RS-44 Решётчатая перестановка Недели Книжка-трафарет, калька, карандаш Человеческий фактор, повторная передача сообщений, ограниченность реального пространства ключей из-за производственных ограничений
DRYAD
(американский M-209)
Компактная шифрмашина Дни Механический шифратор размером с портсигар Ограниченное пространство ключей, предсказуемые шаблоны выходных последовательностей

Что особенно интересно в этом сравнении — обратная зависимость между сложностью оборудования и человеческим фактором. Чем проще была физическая реализация шифра, тем большую роль играли ошибки операторов. И наоборот, сложные электромеханические системы типа Lorenz SZ были менее подвержены человеческим ошибкам, но требовали инфраструктуры, которая к концу войны в Германии уже разрушалась под ударами бомбардировщиков союзников.

С точки зрения соотношения "простота использования / криптографическая стойкость", RS-44 был, вероятно, оптимальным решением для своего времени. Он обеспечивал достаточную задержку между перехватом и дешифровкой, чтобы тактическая информация устаревала, и при этом не требовал ничего, кроме бумаги и карандаша.

Наследие RS-44: уроки для современной криптографии

Хотя RS-44 давно стал достоянием истории, многие принципы, заложенные в него, нашли отражение в современных криптографических системах. Более того, некоторые уроки, извлечённые из его успехов и поражений, остаются актуальными и сегодня, в эпоху квантовых компьютеров и блокчейна.

Рефлексии в современных криптографических концепциях

  • Многоуровневая защита. Принцип наложения нескольких независимых уровней шифрования, реализованный в RS-44 (маска клеток + свободный выбор начальной позиции + произвольный порядок считывания), сегодня воплощается в концепции "defense in depth" в информационной безопасности.
  • Одноразовые элементы ключа. Ежедневная смена трафаретов и уникальный ключ для каждого сообщения предвосхитили современные системы с одноразовыми токенами (OTP) и сессионными ключами.
  • Разделение между долговременными и сессионными ключами. В RS-44 долговременным ключом был сам трафарет (менялся ежедневно), а сессионным — выбор начальной позиции и порядка считывания. Это разделение является стандартным подходом в современных протоколах безопасности.
  • Важность энтропии. Одним из ключевых уроков RS-44 стало понимание важности истинной случайности в криптографии. Производственные ограничения, сократившие реальное пространство ключей, стали фатальной уязвимостью системы — аналогично тому, как слабый генератор случайных чисел может скомпрометировать современный шифр.

Человеческий фактор: вечная проблема

Пожалуй, самый важный урок RS-44 — это критическая роль человеческого фактора в безопасности систем. И в 1944, и в 2025 году проблема остаётся той же: система безопасности настолько надёжна, насколько надёжен её самый слабый компонент, и этим компонентом обычно оказывается человек.

Современные аналоги проблем RS-44 легко обнаруживаются в сегодняшней практике информационной безопасности:

  • Повторное использование паролей (аналог повторной передачи сообщений с тем же ключом)
  • Выбор "удобных" паролей вместо действительно случайных (как использование предсказуемых стартовых позиций)
  • Пренебрежение двухфакторной аутентификацией из-за её "неудобства" (подобно упрощению процедур шифрования в полевых условиях)
  • Запись паролей на бумажках, прикреплённых к монитору (эквивалент нарушения протокола хранения шифровальных книжек)

Временной фактор в криптографии

Ещё один интересный аспект наследия RS-44 — это понимание временного измерения в криптографии. В современном мире скорость взлома шифра измеряется не в неделях, а в миллисекундах или годах вычислений. Но принцип остаётся тем же: шифр должен сохранять стойкость в течение времени, превышающего период актуальности защищаемой информации.

Для тактических военных сообщений 1944-1945 годов период актуальности составлял дни или недели. Для финансовых транзакций в 2025 году этот период может составлять миллисекунды. Для медицинских данных — десятилетия. Понимание этой темпоральности безопасности — важный урок, извлечённый из опыта RS-44.

Эпилог: последние дни последнего шифра

К апрелю 1945 года Третий рейх агонизировал. Берлин находился в полукольце советских войск, промышленность была парализована бомбардировками, а связь поддерживалась благодаря отдельным энтузиастам, работавшим на разрозненных узлах. В этих условиях RS-44 оставался одним из немногих работоспособных средств шифрованной связи — машины "Энигма" выходили из строя из-за отсутствия запчастей, телетайпы Lorenz требовали электричества, которого не было.

Последние известные сообщения, зашифрованные с помощью RS-44, датируются 1 мая 1945 года — за день до капитуляции берлинского гарнизона. Шифр просуществовал ровно столько, сколько должен был — до последнего дня войны.

После окончания войны технология RS-44 изучалась специалистами союзников, но не получила дальнейшего развития. Наступала эра электронных вычислений, и бумажные шифры уходили в прошлое. Однако некоторые принципы, заложенные Вальтером Фрике, были адаптированы для использования в послевоенных системах связи НАТО и Варшавского договора.

Сам Фрике после войны вернулся к астрономии и сделал выдающуюся научную карьеру. Он никогда публично не комментировал свою работу в криптографии, но его фундаментальные труды по звёздной кинематике косвенно опирались на тот математический аппарат, который он разработал для RS-44. В 1988 году, незадолго до смерти, в частной беседе с коллегой-астрономом он обронил фразу, которая могла бы стать эпиграфом к истории RS-44: "Звёзды движутся предсказуемо. Люди — нет. Именно поэтому самый совершенный шифр всегда будет уязвим".

Заключение

«Растершлюссель 44» представляет собой уникальный пример криптографической системы, идеально соответствовавшей своему времени и задачам. Разработанный в условиях тотальной войны, когда ресурсы были ограничены, а потребность в безопасной связи критична, он воплотил в себе редкий баланс между теоретической стойкостью, практической надёжностью и операционной простотой.

В истории RS-44 как в капле воды отразились ключевые проблемы криптографии XX века: соревнование между системами шифрования и методами криптоанализа, конфликт между математической безупречностью и практической реализуемостью, напряжение между требованиями безопасности и человеческими ограничениями.

Сегодня, когда мы используем многослойные протоколы шифрования и квантово-устойчивые алгоритмы, стоит помнить о скромной бумажной решётке, которая на короткий, но критический момент истории стала одним из последних бастионов секретности целой империи. В конечном счёте RS-44 напоминает нам: в криптографии, как и в жизни, простота и элегантность часто оказываются сильнее сложности и избыточности.

Твой код — безопасный?

Расскажи, что знаешь о DevSecOps.
Пройди опрос и получи свежий отчет State of DevOps Russia 2025.