Пример шифрования данных.

14.08.09

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

Обработка представляет собой простой пример шифровки/дешифровки произвольного текста, без использования внешних библиотек, средствами Windows (c помощью объекта «CAPICOM.EncryptedData»). Если capicom.dll всё же нет в Вашей версии Windows - то её можно скачать здесь же.

Скачать файл

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

Наименование Бесплатно
Encipher.zip
.1227601701 252,40Kb
832
832 Скачать бесплатно
capicom.dll
.1227175352 456,00Kb
774
774 Скачать бесплатно
Encrypt.zip
.1227168937 4,84Kb
890
890 Скачать бесплатно
Использование данного подхода на практике, можно увидеть в моей разработке «Обфускация кода 1С» ( //infostart.ru/projects/2057 ).

+ Бонус от Abadonna!
Encipher - внешнее приложение, всё то же самое, но без использования 1С. :)

См. также

Защита ПО и шифрование Программист Платформа 1С v8.3 1С:Бухгалтерия 3.0 Абонемент ($m)

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

1 стартмани

09.02.2023    2751    12    aximo    5    

2

Защита ПО и шифрование Программист Абонемент ($m)

Для установки защиты pdf документа, полученного в 1С, написано консольное приложение на c#., использующее одну зависимость pdfSharp.dll. В результате работы приложения ограничены операции над документом и записаны метаданные. С помощью аргументов командной строки можно управлять работой приложения.

2 стартмани

30.01.2023    2163    2    olevlasam    3    

3

Защита ПО и шифрование Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Универсальный синтаксический анализатор ASN.1, который может декодировать любую допустимую структуру ASN.1 DER или BER, независимо от того, закодирована ли она в кодировке Base64 (распознаются необработанные base64, защита PEM и begin-base64) или в шестнадцатеричном кодировании.

1 стартмани

04.12.2022    3599    16    keyn5565`    0    

14

Защита ПО и шифрование Программист Платформа 1С v8.3 Абонемент ($m)

Демонстрация возможностей шифрования строки на основе мастер-пароля в 1С Предприятие 8.3.19. AES без zip файла, RSA, PKDF2. (c использованием библиотеки С# через com).

2 стартмани

31.08.2022    4498    9    vit59    2    

6

Защита ПО и шифрование Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Обработка, позволяющая запутывать и шифровать байт-код, поставлять модули без исходных текстов и т.д. Работает только в файловом варианте с версии платформы 8.3.22.1368 из-за конструктора ГенераторСлучайныхЧисел, поскольку алгоритм был изменён.

10 стартмани

16.06.2022    12841    106    ZhokhovM    12    

45

Защита ПО и шифрование Программист Платформа 1С v7.7 Платформа 1С v8.3 Абонемент ($m)

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

2 стартмани

09.03.2022    6162    3    ge_ni    9    

2

Защита ПО и шифрование Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Система построена на веб платформе, все управление происходит на сайте в личном кабинете пользователя.

1 стартмани

27.12.2021    5135    2    idm80    12    

9
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. coder1cv8 3477 20.11.08 11:33 Сейчас в теме
Ей также можно дешифровать строки после моего обфускатора, только т-с-с-с! )
67. teorver 19.02.15 10:37 Сейчас в теме
(1) Один умник до меня сделал обфускацию общего модуля... теперь сижу и парюсь, не могу обратно все вернуть, а очень надо, ибо нужны изменения в этом модуле. Ума не приложу как де-обфускацию сделать :(
2. vde69 925 20.11.08 12:20 Сейчас в теме
давно хотел поиграться на эту тему, а тут повод :)
конечно все простенько

кстати можно нельзя шифровать несколькими ключами?
3. coder1cv8 3477 20.11.08 12:34 Сейчас в теме
(2) Что значит несколькими? Типа массива из нескольких строк?... Нет, насколько я знаю...
4. vde69 925 20.11.08 12:39 Сейчас в теме
(3) нет я имею в виду шифрование с резервным ключем, тоесть есть 2 ключа (разных), мы шифруем и расшифровать можно любым из этих двух.

например шифрование дисков так сделано, в случае утраты ключа можно расшифроврать ключем администратора
6. coder1cv8 3477 20.11.08 12:45 Сейчас в теме
(4) Вот насчет этого не в курсе... Вот описание Crypto API в msdn: http://msdn.microsoft.com/en-us/library/aa380254(VS.85).aspx там есть ответ, я в англицком не силен, к сожалению! (
7. vde69 925 20.11.08 12:51 Сейчас в теме
(6) похоже, что можно... хотя надо будет попробовать, может вечером поиграюсь
Тут можно прикольную систему сделать...
5. vde69 925 20.11.08 12:41 Сейчас в теме
кстати EncryptedData - не штатная библиотека, (укажи в загаловке ссылку на скачивание) хотя и халявная
10. coder1cv8 3477 20.11.08 12:56 Сейчас в теме
(5) Вроде же входит в состав Windows?...
ЗЫ: У кого нету можно скачать тут: http://www.microsoft.com/downloads/details.aspx?FamilyID=860ee43a-a843-462f-abb5-ff88ea5896f6&DisplayLang=en
14. Noy 1079 20.11.08 14:36 Сейчас в теме
Учитывая (10) думаю что обработку надо переименовать - "штатно" уже не катит...
15. coder1cv8 3477 20.11.08 14:46 Сейчас в теме
(14) А кто бы подсказал в каких виндах этой длл-ки нету?... ) Похоже от ХР и выше?...
16. Noy 1079 20.11.08 15:56 Сейчас в теме
(15) у меня на ноуте ХР СП3 - длл-ки нет...
17. coder1cv8 3477 20.11.08 17:19 Сейчас в теме
(16) Хм, странно... У меня XP Prof SP2 dll-ка есть.
Ладно, в любом случае, шапку переименовал и сюда библиотеку положил )
8. MRAK 724 20.11.08 12:54 Сейчас в теме
При нажатии "дешифровать" выдает "Ошибка при вызове конструктора (COMОбъект): Недопустимая строка с указанием класса"
9. MRAK 724 20.11.08 12:55 Сейчас в теме
а, ясно... качать надоть...
11. coder1cv8 3477 20.11.08 13:04 Сейчас в теме
Для тех у кого по каким-то причинам (ха-ха) не получается скачать с сайта microsoft, добавил dll-ку в шапку.
12. MRAK 724 20.11.08 13:50 Сейчас в теме
Теперь:
{Форма.Форма(29)}: Ошибка при вызове метода контекста (SetSecret): Произошла исключительная ситуация: Параметр задан неверно.
Пытаюсь расшифровать код "Обфускация кода 1С")))
Elena_Shaulskay; +1 Ответить
13. coder1cv8 3477 20.11.08 14:16 Сейчас в теме
(12) Дык, задавай ключ верно, что ж ты хочешь! )
18. luns 20.11.08 19:05 Сейчас в теме
coder1cv8 красвчик!!! Всегда плюсую авансом...
19. Душелов 4020 21.11.08 01:34 Сейчас в теме
Вот из-за таких, как он decode для 1С-ки не нужна будет :)
20. coder1cv8 3477 21.11.08 09:52 Сейчас в теме
Добавил генерацию ключа :)
21. Abadonna 3969 24.11.08 08:18 Сейчас в теме
(0) Я тут от не фиг делать написал внешнее приложение для шифрования. На разработку, по моим понятиям, как-то не тянет, если хочешь - кину тебе на мыло, прицепишь еще файлик ;)
(тоже с генерацией ключа - GUID)
luns; Olga_siberia; Yasen; vasilykushnir; JohnyDeath; ded00786; coder1cv8; +7 Ответить
22. coder1cv8 3477 24.11.08 09:30 Сейчас в теме
(21) Давай, кидай. Отчего же не прицепить? )
23. coder1cv8 3477 24.11.08 09:32 Сейчас в теме
+(22) coder1cv8 собака yandex.ru
24. vde69 925 24.11.08 18:42 Сейчас в теме
ну собствено как я и говорил, ты меня сподвиг на подвиг :) сделал идентификацию изменения критических полей элементов базы по хешу http://infostart.ru/projects/2964/
25. German 413 25.11.08 09:45 Сейчас в теме
а зная закодированный фрагмент и результат можно вычислить ключ?
26. coder1cv8 3477 25.11.08 10:07 Сейчас в теме
(25) Ну насколько я знаю, абсолютно надежных алгоритмов шифрования нет ) Кстати, ты заметил, каждое повторное шифрование одних и тех же данных, одним и тем же ключем, дает различающийся результат.
ЗЫ: Вот здесь http://www.inattack.ru/article/472.html можно почитать про Crypto API на русском.
27. vde69 925 25.11.08 10:22 Сейчас в теме
(25) если это MD5 то практически нет (а там пожно юзать MD5), есть статьи по этому, в отдельных случаях подломать можно, но это исключение.
ХЕШ MD5 ломают по таблицам извесных хешей, кстати виндовые пароли именно на хешах MD5 базируються
28. ded00786 347 25.11.08 11:28 Сейчас в теме
А как насчет графического шифрования?
Это так, информация к размышлению ;)
29. coder1cv8 3477 25.11.08 11:32 Сейчас в теме
Добавил утилитку написанную Abadonna. Плюсики ему можно поставить здесь же в комментах :)
30. ded00786 347 25.11.08 11:37 Сейчас в теме
32. vladnet 367 26.12.08 09:16 Сейчас в теме
У меня вот такая ошибка: {Форма.Форма(30)}: Ошибка при вызове метода контекста (Decrypt): Произошла исключительная ситуация: Встречено неверное значение тега ASN1.

Библиотеку выкачал, хотя она и была и зарегил.
33. Abadonna 3969 26.12.08 09:22 Сейчас в теме
(32) Ха! У меня как раз такое на 7-ке вчера было, когда восстанавливал зашифрованные пароли пользователей из базы по учету всякой хрени ;)
После шифрования заменил символы перевода строки на ‡ перед запистью в справочник (dbf), а при считывании - опять меняю ‡ на РазделительСтрок. Так взлетело
34. vladnet 367 26.12.08 09:36 Сейчас в теме
(33) В исходном тексте не встречается переводов строк (

Да ошибка вылетает как в обработке 1с, так и в твоем Encipher

Кстати а можно ли с помощью этой библиотеки шифровать 2 ключами:
один для шифрования, другой для расшифрования?
36. coder1cv8 3477 26.12.08 09:39 Сейчас в теме
(34) А перешифрование исходного текста не помогает?...
37. Abadonna 3969 26.12.08 09:39 Сейчас в теме
(34) Ты Encipher запусти, набери, например, слово "молоко" и зашифруй.
Сколько строчек внизу будет? ДВЕ! Думаешь я сам их там так разбил? Ни фига, там образовался при шифровании символ перевода строки
38. Abadonna 3969 26.12.08 09:41 Сейчас в теме
+(37) А вот при записи уже в базу (в дбф уж - точно) - происходит корявая запись в поле
39. coder1cv8 3477 26.12.08 09:42 Сейчас в теме
(37) По моим наблюдениям перевод строки в шифрованном тексте сделан исключительно для удобства. В частности, в моем "Обфускаторе" я совсем убираю переводы строк из шифрованного текста, на расшифровку это никоим образом не влияет!
40. Abadonna 3969 26.12.08 09:44 Сейчас в теме
(39) Ну попробуй ради интереса записать в dbf строку "мама"+РазделительСтрок+"папа" и погляди, что запишется
43. vladnet 367 26.12.08 09:46 Сейчас в теме
(40) пока совсем не понял при чем тут ДБФ?
Все происходит внутри одной обработки. Понимаю что там может быть разные переводы.
41. vladnet 367 26.12.08 09:44 Сейчас в теме
(34) Перешифрование не помогает, пробовал разные алгоритмы
(38) Так я ведь в ДБФ не пишу, пробовал убрать переводы не помогает (
42. Abadonna 3969 26.12.08 09:45 Сейчас в теме
(41) Ну не знаю.. Именно так я вчера победил её
44. coder1cv8 3477 26.12.08 09:46 Сейчас в теме
(41) Можно пример текста и ключ?...
45. vladnet 367 26.12.08 09:47 Сейчас в теме
(44)

молоко
237541f0ca3e432ba2dbac92485d1207
48. coder1cv8 3477 26.12.08 09:52 Сейчас в теме
(45) У меня проблема не воспроизводится.
(47) Та я шучу! )
31. logarifm 1123 08.12.08 15:10 Сейчас в теме
35. coder1cv8 3477 26.12.08 09:38 Сейчас в теме
Действительно, получается что-то с зашифрованными данными не так...
46. coder1cv8 3477 26.12.08 09:47 Сейчас в теме
ДБФ тут ни причем! Это Абадонна о своем, о наболевшем наверно ))
47. Abadonna 3969 26.12.08 09:49 Сейчас в теме
(46) О каком наболевшем? У меня все базы на скуле, но не делать же на нем и вшивенькую базу по учету компов-паролей-логинов...
49. vladnet 367 26.12.08 09:52 Сейчас в теме
У меня почему то всегда эта ошибка вылезает, даже если ключом неправильным расшифровывать. Может и прав Абадонна, проблема в переводах строки, то что 1с автоматом заменяет переводы строк на свои, хотя вроде бы не должен. Сейчас проверю.
50. coder1cv8 3477 26.12.08 09:57 Сейчас в теме
51. vladnet 367 26.12.08 10:02 Сейчас в теме
Все извиняюсь неправильно понял то как работает обработка - думал что она при дешифровании берет нижнее поле дешифрует его и в верхнее поле засовывает, оказалось нужно копировать из нижнего в верхнее и потом только дешифровать.
52. coder1cv8 3477 26.12.08 10:04 Сейчас в теме
54. vladnet 367 26.12.08 10:14 Сейчас в теме
(52) (53) Ну я бы так сделал, чтобы тестировать было удобнее (
55. Abadonna 3969 26.12.08 10:16 Сейчас в теме
(54) И нашелся бы человек, который понял все правильно, и начал вставлять в верхнее окошко, и недоумевал бы почему оно не пашет :)))
56. vladnet 367 26.12.08 10:19 Сейчас в теме
(55) По любому )

А все таки не смотрели как можно шифровать 1 ключом, а расшифровывать другим. Один ключ публичный для расшифровки, другой для шифрования.
57. coder1cv8 3477 26.12.08 10:37 Сейчас в теме
(56) Crypto API это позволяет, а объект CAPICOM, в свою очередь поддерживает практически все возможности Crypto API. Как это реализовать на практике, я лично, не задумывался... Я здесь давал уже ссылку, по-моему, на описание Crypto API на русском, почитай...
ЗЫ: Это называется асимметричный алгоритм )
53. Abadonna 3969 26.12.08 10:12 Сейчас в теме
58. vladnet 367 26.12.08 11:01 Сейчас в теме
Читаю, пока не разобрался (
59. BOZKURT 13.01.09 00:51 Сейчас в теме
60. BOZKURT 13.01.09 00:55 Сейчас в теме
по поводу ошибки http://infostart.ru/profile/657/
я с третьей попытки допер.. :)
61. coder1cv8 3477 13.01.09 07:42 Сейчас в теме
(60) А я то думал это очевидно! :)
62. mov68 37 11.11.09 14:34 Сейчас в теме
Вопрос к спецам: есть ли шэш функции и как к ним обратиться, или плиз ссылку толковую на функции DDL.
63. xvas 29.09.11 14:28 Сейчас в теме
64. ms200999 22.11.11 14:24 Сейчас в теме
(63)Согласен.
Сохранил в закладки.
65. fr.myha 16.07.13 11:15 Сейчас в теме
Конечно код 1С можно защищать с помощью сложных программно-аппаратных решений(ключи, специальные продукты для защиты конфигураций), и соответственно, на защиту надо тратить немалые средства и время. А если стоимость разработки находится в переделах 3-5 тысяч рублей, тогда затраты на защиту превышают стоимость самой разработки.

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

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

http://protect1c.ru/sites/default/files/protect_1c_pic1.png
Загрузка ВК (Addin.dll) и пример работы с защищенным модулем на странице http://protect1c.ru/modules-for-1c
Шифрование кода в ЗМ на странице http://protect1c.ru/upload4code (необходима регистрация на сайте protect1c.ru)
Данная технология работает только для традиционного толстого клиента 1С (обычного приложения )
Несколько замечаний по уязвимости, предваряя флейм на тему «это не защита».
Недостатком этого способа, как неоднократно отмечалось, является необходимость наличия расшифрованной обработки в виде файла на диске. Однако, на самом деле, недостаток этот не так велик, как кажется. Во-первых, время жизни этого файла сведено к минимуму, во-вторых, в модуле объекта ЗМ есть смысл написать следующую строчку:
http://protect1c.ru/sites/default/files/protect_1c_pic2.png
Такая строка не приводит к неработоспособности обработки, но затрудняет отладку. Не следует пренебрегать и стандартными способами защиты: установка пароля на код модуля объекта, поставка без исходных текстов, обфускация кода (http://nashe1c.ru/materials-view.jsp?id=121). При выполнении этих условий вскрытие кода становится достаточно непростой задачей.
Много говорилось о наличии в каталоге %TEMP% файлов с байт-кодом загруженного модуля. Нами было проведено несколько экспериментов на эту тему. В результате выяснилось, что по крайней мере платформа версии 8.2.16.352 не создает файл с кодом МОДУЛЯ ОБЪЕКТА(!). В %TEMP% только модуль формы. Если у кого-то есть другая обоснованная информация – welcome в комментарии.
В ходе экспериментов выяснилось, что оператор Выполнить(СтрокаКоманды) (естественно!) не приводит к компиляции выражения, переданного как СтрокаКоманды, то есть байт-код для этих команд отсутствует. Этот факт предоставляет широкое поле для экспериментов на тему защиты кода. В скобках замечу, что нам так и не удалось заставить выполняться команду выполнить внутри ВК, (злополучный method not supported by automation object () ). Если у кого-то получится – welcome в комментарии.
Достоинством данного подхода является отсутствие необходимости перекомпилировать код ВК, а также то ,что весь код может быть написан только на 1С. Единственной операцией вне рамок 1С программирования является шифрование ЗМ.
66. akifjevda 18.11.13 14:31 Сейчас в теме
Ребята, подскажите такую штуку. Шифрую строку по AES-128 (по факту - XML документ) с помощью capicom.dll и получаю зашифрованную строку. Как я понял она сразу обработана через base64. Проблема в том, что не могу расшифровать в php через mcrypt (алгоритм MCRYPT_RIJNDAEL_128). Даже если просто зашифровать mcrypt эту же строку, то зашифрованный вариант получается совсем другой чем в 1С или в Encipher.exe и примерно 2 раза короче. Где могут быть грабли?

PS Немного разобрался в вопросе. CAPICOM заворачивает свой ответ в структуру ASN.1 для передачи бинарных данных и передает в структуре и алгоритм шифрования и длину ключа и сам зашифрованный поток и похоже вектор инициализации. Но все равно не могу расшифровать стандартными средствами php эти данные, уже все варианты перепробовал.

Может кто-нибудь подсказать как указать capicom что надо шифровать в режиме ECB (чтобы не использовать вектор инициализации при расшифровке) и выдавать наружу только зашифрованный кусок, а не структуру???
68. timothy_ 2 01.12.17 22:16 Сейчас в теме
С текстом понятно, а как с числами дело обстоит?
69. пользователь 02.04.18 15:02
Сообщение было скрыто модератором.
...
Оставьте свое сообщение