Шифрование в 1С по-взрослому

01.09.26

Разработка - Защита ПО и шифрование

Настоящее современное криптостойкое шифрование с помощью сертификатов.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Шифрование в 1С по-взрослому
.epf 16,40Kb ver:1.1
0 5 800 руб. Купить
Скрипт генерации RSA сертификатов
.7z 0,37Kb ver:1.0
0 3 400 руб. Купить
Скрипт генерации GOST сертификатов
.7z 0,30Kb ver:1.0
0 3 800 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Всем криптопривет!

В этой небольшой публикации я покажу вам, как можно зашифровать информацию, которую практически невозможно будет расшифровать за обозримое время (пока не придумали квантовые компьютеры).

Не буду томить вас долгой теорией, как математически осуществляется преобразование в разных алгоритмах, скажу лишь, что в 1С уже есть готовые объекты, которые позволяют производить шифрование / расшифровку с помощью цифровых сертификатов. А сертификат по сути представляет из себя пару из открытого и закрытого ключа с некоторой метаинформацией. Внутри этой кухни используется ассиметричное шифрование (открытый_ключ <> закрытый_ключ). Данные шифруются открытым ключом, который можно всем светить и пересылать по открытым каналам любому и каждому, а расшифровываются закрытым ключом, который нужно держать в строгом секрете. Если нет закрытого ключа, расшифровать информацию НЕ получится. На этом принципе построена защита данных в современном мире.

В своей небольшой обработке я накидал возможность двустороннего шифрования/расшифровки plain-текста:

 

 

и произвольного файла (с ограничением ~100 MB):

 

 

Причём двумя разными алгоритмами: на основе амеровского RSA и на основе нашего ГОСТ.

Обратите внимание, что 12 символов на первом скрине превратились в большой шифрованный текст. Это потому что к зашифрованным данным присоединяется открытый ключ (~1 KB). И информацию я вывожу в base64, чтобы можно было пересылать зашифрованный текст. Плюс к этому base64 увеличивает длину сообщения на треть!

После обработки произвольного файла можно увидеть, что его внутренности качественно пошифровались:

 

 

Если у вас нет сертификатов от доверенных центров сертификации, то можете сами создать ключевую пару самоподписанного сертификата - это относительно несложно.

 

 

Но если будут трудности, к статье приложены скрипты для генерации.

Для RSA с помощью встроенных в Windows инструментов (gen_RSA_cert.7z):

 

 

и для ГОСТ с помощью КриптоПро (gen_GOST_cert.7z):

 

 

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

Обработка из статьи протестирована на платформе 8.3.27.1989 (использована асинхронность). Но будет работать с 8.3.18 . Если перевести на синхронный режим, будет работать с 8.3.10 .

 

Держите ваши чувствительные данные в секретах!

но на моём ГитХабе ещё больше интересного

Проверено на следующих конфигурациях и релизах:

  • 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.11.466

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Защита ПО и шифрование Программист 1С 8.3 1С:Библиотека стандартных подсистем Россия Абонемент ($m)

Дешифровка PEM файлов с SGN пакетом. PEM - стандартизированный текстовый формат текстовых контейнеров, используемый для безопасного хранения и передачи криптографических ключей, SSL/TLS-сертификатов и запросов на подпись (CSR). (Privacy-Enhanced Mail). SGN - стандартизированное расширение файла, содержащего отсоединенную (detached) электронную цифровую подпись для целевого документа. Пример файла: reportfile.zip.sgn.pem

1 стартмани

21.08.2026    302    0    DrZombi    1    

8

Защита ПО и шифрование Программист 1С 8.3 1С:Розница 2 Бесплатно (free)

Учебная обработка показывает, как 1С шифрует номер карты публичным ключом RSA перед отправкой в платёжный шлюз и подписывает тело запроса - на чистом встроенном языке, без COM, .NET и внешних компонент. Почти все реализации RSA в 1С зовут .NET через COM, а он требует регистрации сборки и не работает на Linux и в тонком клиенте. Здесь RSA написан целиком на BSL: длинная арифметика, деление Кнута, возведение в степень по модулю. Корректность сверена с эталоном на больших числах байт в байт. Демо-ключ 256 бит, всё локально, одной кнопкой. Код открыт.

07.08.2026    568    3    nedomolkov.ivan    1    

1

Защита ПО и шифрование Программист Бесплатно (free)

Платёжный шлюз принимает номер карты только зашифрованным по RSA, а почти все реализации RSA в 1С зовут .NET через COM - и это молча ломается на Linux-сервере, в тонком клиенте и на голой Windows без regasm. Разбираю, как написать RSA целиком на встроенном языке: как хранить большие числа лимбами по основанию миллион, откуда берётся деление Кнута и square-and-multiply, почему первая версия считала 25 секунд и как это ускорилось в 8 раз. С проверкой байт в байт против внешнего эталона на больших числах.

07.08.2026    1008    nedomolkov.ivan    2    

3

Защита ПО и шифрование Программист 1С:Предприятие 8 Бесплатно (free)

Платформенная защита модулей конфигураций, внешних обработок и расширений 1С легко «взламывается» общедоступными декомпиляторами, а использование СЛК (Система лицензирования и защиты конфигураций) часто избыточно из-за необходимости установки дополнительного ПО и покупки ключей. Рассмотрим использование методики защиты логики через обфускацию байт-кода, а именно частный случай использования метода, который позволит привязать решение к «железу» пользователя без использования внешних компонент и онлайн-активации.

19.02.2026    3646    1c-izh    9    

9

Защита ПО и шифрование Программист Бухгалтер Пользователь 1С:Предприятие 8 Россия Абонемент ($m)

Обработка для подписи с помощью сертификата (ЭЦП) произвольных файлов, средствами платформы 1С.

5 стартмани

19.06.2025    2261    4    krundel    2    

0

Защита ПО и шифрование 1С:Предприятие 8 Абонемент ($m)

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

1 стартмани

03.06.2025    2781    user1195929    13    

4

Защита ПО и шифрование Программист 1С:Предприятие 8 Абонемент ($m)

Статья посвящена практическому применению XOR-шифрования в среде 1С:Предприятие. Рассматривается теоретическая основа операции XOR, её особенности как метода шифрования, а также преимущества и недостатки в контексте защиты данных. Подробно описываются методы реализации XOR-шифрования и дешифрования на языке 1С, включая примеры кода и практические сценарии использования, такие как шифрование паролей, защита конфиденциальных данных в файлах и передача зашифрованной информации между системами. Обсуждаются аспекты безопасности, выбор ключей, а также интеграция с другими механизмами защиты данных в 1С. Статья ориентирована на разработчиков 1С, стремящихся повысить уровень защиты информации в своих решениях.

1 стартмани

09.04.2025    4398    user1195929    6    

4

Защита ПО и шифрование Программист 1С:Предприятие 8 Россия Абонемент ($m)

Обработки, в которых реализованы алгоритмы шифрования ГОСТ 34.10-2012, RSA-1024, AES-256-GCM, XChacha20-poly1305. Реализация нативно на чистом 1С без COM-объектов и внешних компонент.

1 стартмани

17.03.2025    5506    60    alexyur    10    

7
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. gml 01.09.26 20:46 Сейчас в теме
Это, кажется, ваш первый опыт в прозе? Поздравляю вас! «Волны перекатывались через мол и падали вниз стремительным домкратом…» (С) И.Ильф, Е. Петров Двенадцать стульев


А сертификат по сути представляет из себя пару из открытого и закрытого ключа с некоторой метаинформацией.


Вообще-то сертификат - это открытый ключ шифрования (он же ключ проверки электронной подписи) с дополнительной метаинформацией. Сам по себе сертификат никакой закрытой информации не содержит и может передаваться другим лицам по открытым каналам.

Закрытый ключ шифрования (он же ключ электронной подписи), хранится отдельно от сертификата в другом месте - на ключевом носителе или в хранилище ключей криптопровайдера.

Внутри этой кухни используется ассиметричное шифрование


Всё не так однозначно. Обычно для зашифрования вначале генерируется длинный сеансовый(одноразовый) ключ, на котором исходные данные зашифровываются с помощью симметричного алгоритма (который работает гораздо быстрее). Затем сеансовый ключ шифруется уже асимметричным алгоритмом (работает гораздо медленнее) на закрытом ключе шифрования. Из зашифрованных данных сообщения + зашифрованный сеансовый ключ + метаданные формируется структура зашифрованного сообщения.
2. SerVer1C 1139 01.09.26 22:31 Сейчас в теме
(1) Ждём от вас статью с полным обоснованием механизмов шифрования и математическими доказательствами надёжности RSA и GOST. Наверное, будет интересно почитать. )
5. gml 02.09.26 19:43 Сейчас в теме
(2) Меня опередили (см (3) :-)
4. booksfill 02.09.26 13:10 Сейчас в теме
(1) Согласен по всем пунктам. Автор статьи немного погорячился.
И вообще, что нового/важного/удобного делает обработка?

Я могу ошибаться (я это вообще люблю), но, кажется, работа с Crypto-Pro реализована стандартно. Причем как раз через гибридный механизм шифрования и те самые сертификаты.
Если это не нравится, платный же модуль, то есть стандартные менеджеры криптографии в Windows и Linux. И с ними 1С тоже умеет работать.

Если и это не устраивает, ну напишите вызов необходимого, например, из node.js (там есть и встроенный и библиотеки, например, библиотека node-forge вроде как умеет даже в сертификаты X.509).
Специально для автора статьи - нет, писать я это буду, только, если мне это понадобится, думаю, с помощью ИИ, даже бесплатного, это не займет много времени. Это не 1С, такое он делает четко и быстро.

Кстати, где-то тут уже видел реализацию шифрования чисто на языке 1С, но, учитывая скорость такого шифрования, не вижу в этом практического смысла.
6. gml 02.09.26 20:06 Сейчас в теме
(4) В платформе 1С криптографические функции (ЭЦП, шифрование) не реализованы. Разработчики предлагают использовать одно из двух криптографических средств (криптопровайдеров) сторонней разработки: КриптоПро CSP или VipNet CSP.
(я пробовал подключать к 1С и другие, всё вроде-бы работает, но есть ряд технических замечаний).
Взаимодействие программ на языке 1С с криптопровайдером происходит через объект платформы МенеджерКриптографии.

Набор алгоритмов, которые можно будет использовать в работе, определяется используемым криптографическим средством.

Наборы ключей шифрования/ЭЦП для работы можно выпустить, пользуясь услугами одного из существующих на рынке удостоверяющих центров, либо приобрести вместе с ПО криптопровайдера ещё и ПО для организации собственного удостоверяющего центра (для алгоритмов семейства ГОСТ).

ПО удостоверяющего центра для алгоритмов RSA является частью серверных ОС Windows, также можно использовать для этой цели ПО OpenSSL.
3. rozer 323 02.09.26 12:24 Сейчас в теме
в свое время очень пригодилась статья от Раруса, оставлю тут https://rarus.ru/publications/20220930-ot-ekspertov-vvedenie-v-kriptografiyu-1c-552609
Для отправки сообщения требуется регистрация/авторизация