|
Программно зашифровать файл шифром с открытым ключом из 1C | ☑ | ||
---|---|---|---|---|
0
ИС-2
naïve
12.12.15
✎
14:17
|
На веб сервис выкладывается файл с данными для другого лица. Надо зашифровать файл перед его отправкой открытым ключом (храниться в базе).
С попощью какой бибилотеки можно это сделать программно? |
|||
1
Asmody
12.12.15
✎
14:19
|
(0) так есть же криптография в платформе
|
|||
2
zak555
12.12.15
✎
14:24
|
||||
3
XLife
12.12.15
✎
14:32
|
(2) уёвая ссылка...
|
|||
4
zak555
12.12.15
✎
14:40
|
(3) почему ?
процедура ШифрованиеФайла на клиенте вызывает процедуру ЗашифроватьНаСервере по шифрованию файла на сервере |
|||
5
XLife
12.12.15
✎
14:43
|
(4) авторизацию требует
|
|||
6
zak555
12.12.15
✎
14:46
|
(5) так зарегистрируйся
|
|||
7
zak555
12.12.15
✎
14:46
|
&НаСервере
Функция ЗашифроватьНаСервере(АдресДанных, ДанныеСертификатов) // Создадим сертификаты на основании двоичных данных сертификатов с клиента Сертификаты = Новый Массив(); Для Каждого ДанныеСертификата Из ДанныеСертификатов Цикл Сертификаты.Добавить(Новый СертификатКриптографии(ДанныеСертификата)); КонецЦикла; МенеджерКриптографии = Новый МенеджерКриптографии("", "", 75); // Получим файл для шифрования из временного хранилища Данные = ПолучитьИзВременногоХранилища(АдресДанных); Если ТипЗнч(Данные) <> Тип("ДвоичныеДанные") Тогда Возврат Ложь; КонецЕсли; // Шифруем двоичные данные ЗашифрованныеДвоичныеДанные = МенеджерКриптографии.Зашифровать(Данные, Сертификаты); // Сохраняем во временное хранилище АдресДанных = ПоместитьВоВременноеХранилище(ЗашифрованныеДвоичныеДанные); Возврат Истина; КонецФункции &НаКлиенте Процедура ШифрованиеФайла() Адрес = ""; Результат = ПоместитьФайл(Адрес, , , Истина); Если Не Результат Тогда Возврат; КонецЕсли; ТипыСертификатов = Новый Массив; ТипыСертификатов.Добавить(ТипХранилищаСертификатовКриптографии.ПерсональныеСертификаты); Список = ПолучитьСписокСертификатов(75, ТипыСертификатов, Истина); // В примере всегда шифруем с помощью первого по порядку сертификата Сертификаты = Новый Массив; Сертификаты.Добавить(Список[0].Выгрузить()); // Шифруем файл Результат = ЗашифроватьНаСервере(Адрес, Сертификаты); Если Не Результат Тогда Возврат; КонецЕсли; // Интерактивно сохраняем зашифрованный файл на диск ПолучитьФайл(Адрес, , Истина); КонецПроцедуры |
|||
8
XLife
12.12.15
✎
14:48
|
(6) мне не надо))
|
|||
9
Jump
12.12.15
✎
15:11
|
(0) Так не делают.
Никто не шифрует файлы открытым ключом. Файлы всегда шифруют симметричным алгоритмом например AES. |
|||
10
Jump
12.12.15
✎
15:13
|
Ассиметричные алгоритмы для шифрования данных нигде не применяются.
|
|||
11
Смотрящий
12.12.15
✎
15:17
|
(10) ЭЭэээээ.... а как же PGP ?
|
|||
12
Jump
12.12.15
✎
15:25
|
(11)Точно так же. Данные в PGP шифруются симметричным алгоритмом.
|
|||
13
oleg_km
12.12.15
✎
15:43
|
(9) Ну это само делает CryptoAPI. На вход ты подаешь данные и открытый ключ, а уже само криптоапи формирует сеансовый симметричный ключ, шифрует его открытым и сеансовым шифрует сами данные.
|
|||
14
Jump
12.12.15
✎
15:54
|
(13) Ну данные то шифруются случайным симметричным ключом.
Ассиметричное применяется только для шифрования этого самого случайного ключа. |
|||
15
ИС-2
naïve
14.12.15
✎
07:02
|
22) спс, посмотрю
(9) почему? Ситуация - до сервера добрался враг, зашел в конфигуратор, открыл обработку по шифрованию и получил к ключу шифрованию. В итоге получив файл он сможет его открыть. Поэтому надо шифровать одним ключом, а расшифровывать другим. При этом желательно, чтобы ключ расшифровки был неизменным. |
|||
16
StupidTeddy
14.12.15
✎
08:02
|
(15) Насколько я понимаю, симметричный ключ каждый раз генерируется новый, и злоумышленник может его получить только во время процесса шифрования, а если он сможет получить ключ в процессе шифрования, то с тем же успехом он сможет получить и исходные данные.
Не являюсь специалистом по криптографии и СЗИ, высказываю ИМХО. |
|||
17
Serginio1
14.12.15
✎
08:10
|
||||
18
vde69
14.12.15
✎
09:10
|
(0) для ответа на твой вопрос, для начала опиши как и какими средствами получатель файла должен его расшифровывать ???
тут ведь дело тонкое, в шифровании нету единых стандартов и большинство провайдеров не сильно заморачиваются с совместимостью с конкурентами.. а поскольку файл шлется на веб предположу, что получатели - довольно разношерстная банда.... и софт у них разношерстный... |
|||
19
ИС-2
naïve
14.12.15
✎
11:59
|
(18) хороший вопрос. Значит нужна прога и с возможностью зашифровать из кода и с клиентской частью.
Жаль, что WinRar не поддерживает асиммитричное шифрование. |
|||
20
Jump
14.12.15
✎
12:25
|
(15) Ассимметричное шифрование очень ресурсоемкий процесс.
Поэтому им и пользуются очень редко, и шифруют только ключи. Например тот же самый https - шифрование всегда идет симметричным алгоритмом, а чтобы передать ключи шифрования по открытому каналу используют ассимметричный. Нет никакого смысла использовать ассимметричный алгоритм там где можно использовать симметричный. |
|||
21
Jump
14.12.15
✎
12:26
|
(15) Ситуацию с тем что до сервера добрался враг, я вообще не понял.
Если на сервере хранится ключ - он получит доступ к данным, неважно какой именно алгоритм используется. |
|||
22
Garikk
14.12.15
✎
12:30
|
(21) если сервер шифрует данные открытым ключем, а пользователь ходит за своими данными со своим закрытым (который хранится во внешнем хранилище), то ничего с данными враг сделать не сможет
(12) а какже я на прошлой работе чтобы письмо комуто отправить, всегда ему сначала свой открытый ключ отсылал? Это не то? |
|||
23
Jump
14.12.15
✎
12:42
|
(22)
1)Какая разница каким ключом шифрует сервер? О каких данных идет речь? 2)Это то, только вот текст письма шифровался обычным симметричным алгоритмом. А ассиметричным шифровался ключ шифрования симметричного алгоритма. |
|||
24
oleg_km
14.12.15
✎
12:54
|
(22) Открытый ключ ты отсылал, чтобы могли проверить твою электронную подпись, или могли зашифровать письмо, которое можешь расшифровать только ты.
|
|||
25
Jump
14.12.15
✎
13:10
|
(24) Не совсем так.
Твой собеседник шифрует письмо симметричным ключом X Ты отправляешь ему открытый ключ Y, он этим ключом шифрует ключ шифрования X. После чего отсылает тебе письмо зашифрованное ключом X И ключ шифрования письма зашифрованный ключом Y После чего ты расшифровываешь ключ X c помощью своего секретного ключа. И уже ключом X расшифровываешь само письмо. |
|||
26
oleg_km
14.12.15
✎
13:19
|
(25) Ну вот приведите, в каком АПИ разработчик должен так делать? МенеджерКриптографии все это сам делает, CryptoAPI тоже, .NET тоже. Просто блеснуть ерундицией?
|
|||
27
Jump
14.12.15
✎
14:10
|
(26)Разумеется если вы используете готовый инструмент, то все уже сделано за вас. Ничего шифровать вообще не нужно, и не нужно знать какие алгоритмы используются и как это работает.
Пользуйся и все. |
|||
28
DES
14.12.15
✎
14:29
|
можно ли в 1с8 встроенной криптографией заменить PGP ?
который https://www.gpg4win.org/ |
|||
29
oleg_km
14.12.15
✎
15:20
|
(28) Ну если он ГОСТ поддерживает, почему бы и нет
|
|||
30
Stim
14.12.15
✎
15:22
|
(15) все правильно.
шифруется открытым ключом ЭП, расшифровывается - закрытой частью. |
|||
31
DES
14.12.15
✎
19:19
|
Новый МенеджерКриптографии("", "", 75);
а где узнать какой номер - какой криптопровайдер ? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |