![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Prol |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 11.1.2008 Где: Кыев, Украина Репутация: нет Всего: нет |
Привет :о)
Прошу у общества совета по такой проблеме. У меня возник тупик. Одно из приложений создаёт файлы, содержащие незашифрованные данные. Эти файлы разными путями доставляются другим приложениям. Требуется защитить файлы с незашифрованными данными от несанкционированного изменения. Шифровать файлы нельзя по требованию заказчика. Ну я подумал, что берём файл, считаем МД5, добавляем к файлу полученный МД5 и отсылаем. На принимающей стороне отрезаем от файла МД5, счиаем МД5 с исходного файла и сравниваем. Если равно, то несанкционированных изменений не было. Но если кто-то тоже отрежет оригинальный МД5, изменит файл, пересчитает МД5 и новый МД5 добавит? На получающей стороне изменений не заметят :о) Я в тупике. Помогите, коллеги, пожалуйста! Просто идею подскажите, что делать... :о((( |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
ЭЦП спасет Отца Русской Демократии
Подписываем файл, присобачиваем к файлу подпись шлем заказчику. У заказчика отрезаем подпись (не обязательно ее отрезать физически, достаточно пропустить при проверке подписи). Фишка в том, что для проверки подписи требуется публичный ключ, а для подписания приватный. И если кто-то изменит данные, то подписать их без приватного ключа он не сможет. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: 9 Всего: 39 |
||||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Насколько я понимаю MAC требует, чтобы секретный ключ был зашит и в клиентскую программу. А значит потенциально его можно оттуда вытащить и подменить данные. Так? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: 9 Всего: 39 |
Так. Однако ЭЦП в данном плане ничуть не лучше, так как подразумевает, что в клиентскую программу также будет зашит секретный ключ для выработки ЭЦП. Данный ключ можно вытащить и сгенерировать ЭЦП повторно для подмененного куска данных. Так то. Да и из описания ситуации как-то складывается ощущение, что обе стороны доверенные, а подмена ожидается именно по каналу передачи. |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Нет не так В данном случае приложения которые генерируют данные и которые их парсят - это разные приложения.
Если у злоумышленника есть доступ к приложению которое гененрирует данные, то тут в принципе нет и не может быть никакой надежной защиты. Потому как всегда можно подменить входные данные для приложения, модифицировать алгоритм работы и т.п. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: 9 Всего: 39 |
||||
|
||||
| Prol |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 11.1.2008 Где: Кыев, Украина Репутация: нет Всего: нет |
О! Появилась необходимость в важном уточнении, которым я пренебрёг при постановке задачи.
Защиту передаваемого сообщения невозможно встроить в приложения, которые его генерируют и принимают. Задача состоит в том, чтобы взять готовое сообщение у источника, что-то с ним сделать так, чтобы на принимающей стороне после приёма сообщения стало ясно, были ли внесены в него несанкционированные изменения или не были. Шифровать сообщение нельзя. Недостаток МАС в том, что он вскрываемый. Недостаток ЭЦП в том, что нужно иметь базу ключей, которые тоже рассылать придётся. Контрольная сумма в виде МД5 конечно лучше всего подходит, но перехватчик то тоже знает алгоритм МД5 и может заменить в сообщении исходный МД5 на новый. На етом мысль останавливается :о))) |
|||
|
||||
| LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
ОК. Есть центр который генерирует данные, есть клиенты которые эти данные обрабатывают. Центр будем считать хорошо защищенным от взлома и утечки приватного ключа. Клиент и каналы передачи данных считаем не защищенными. Но у клиента есть эталонный дистрибутив, с помощью которого он всегда может проверить и восстановить целостностность клиентского приложения.
Не базу а один публичный ключ, а лучше даже сертификат. И вообще я предполагал, что сертификат будет зашит в клиентское приложение. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
| Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: 9 Всего: 39 |
Один публичный ключ нужен, только если связь односторонняя и при этом один рассылает многим (как раз так, как ты описал в своем случае) Если много клиентов должны посылать данные на сервер, то тут каждому клиенту необходимо будет иметь свой секретный ключ для выработки подписи. Собственно поэтому я и говорил, что никакой разницы между ЭЦП и MAC в данной ситуации нет. После прочтения, клинануло меня, что именно клиенты посылают данные на сервер, поэтому про твой случай, где ЭЦП действительно подходит больше я что-то не подумал ))). чего? чего? |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |