Передача файлов B2B - PullRequest
       16

Передача файлов B2B

0 голосов
/ 07 февраля 2012

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

VPN не вариант, и они предпочитают использовать общие портыкак 80,443 и т. д., поэтому не нужно выполнять дополнительную настройку брандмауэра.

Я нашел достаточно решений, таких как oftp2 и as2.хотя у меня есть несколько вопросов, прежде чем я смогу решить:

  • недостаточно безопасен для передачи файлов https.поэтому я могу использовать asp.net/C# для выполнения этой задачи.
  • как насчет существующих инструментов, таких как SFTP, rsync и других * nix инструментов.
  • как насчет использования SOAP?

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

Все идеи приветствуются.

Заранее спасибо.

Ответы [ 5 ]

0 голосов
/ 25 января 2013

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

Другой вариант заключается в том, чтоЕсть несколько очень хороших и доступных решений для управляемой передачи файлов (MFTP), которые уже разработали и решили все эти проблемы безопасности.Они также освоили рабочий процесс управления передачей файлов, чтобы значительно упростить этот процесс для ИТ-персонала.Одним из таких MFTP-решений, которое я использовал в течение последних нескольких лет, является продукт GoAnywhere от Linoma Software.Это сэкономило нашей команде месяцы времени и головную боль, позволив нам сосредоточиться на нашей основной деятельности.

Надеюсь, это поможет ...

0 голосов
/ 07 февраля 2012

ОК, вы не хотите раскрывать содержимое файла, с файлами, которыми обмениваются три стороны, кому-либо еще.

Есть две вещи, которые следует учитывать:

1)Берегите транспорт.Здесь файлы отправляются по зашифрованной ссылке.Итак, вы в основном помещаете обычные биты в туннель, который зашифрован, чтобы защитить кого-либо от отслеживания канала.Обычно это делается с использованием SFTP для обмена данными между компаниями, а ключи передаются и проверяются вне полосы перед передачей.

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

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

Итак, что вы хотите сделать?Это решение о риске.Если вас беспокоит только тот, кто перехватывает содержимое файла, не принадлежащее компании A или B (или C), вам нужно защитить транспорт (SFTP и др.).Если вы хотите защитить каждый файл независимо и убедиться, что только определенные процессы на принимающей стороне могут расшифровать файл, вы хотите защитить файлы.Если данные очень чувствительны и подвержены высокому риску, вы можете сделать и то, и другое.

0 голосов
/ 07 февраля 2012

, если вы используете блочный шифр, такой как AES, для шифрования данных и отправки результата с использованием шифрования RSA, которое выполнит эту работу. Для RSA вы шифруете, используя их «Открытый ключ», который вы заставляете их отправлять вам вне полосы (Курьерская служба), а затем они дешифруют своим закрытым ключом. Это абсолютно безопасно, если обе компании хранят секретный ключ в секрете. У вас есть пара ключей для каждой из 3 компаний. Дополнительный уровень AES - это если вы действительно параноик и действительно хотите убедиться, что даже если кто-то получил закрытые ключи, он все еще не может прочитать данные. Также вы должны подписать все сообщения: отправьте хеш остальной части сообщения в зашифрованном виде (AES) с помощью вашего закрытого ключа, после чего получатель сможет расшифровать ваш открытый ключ и хешировать сами данные, и если их хеш не совпадает с вашим. который был прикреплен после того, как был расшифрован, тогда это было не от вас. Это предотвращает перехваты человека в середине, домена в середине и т. Д. Это позволит кому-то вмешиваться, только если он получит открытый и закрытый ключи и пароль AES ... в этот момент предполагаемое время взлома составляет более 2 миллиардов лет с 2048-битным RSA, так что я думаю, что вы в безопасности.

0 голосов
/ 07 февраля 2012

Технически вы всегда можете выполнить scp / rsync через ssh, если порт 22 входит в список белых.Если нет, вы можете запустить демон ssh на 80/443 и т. Д.

Чтобы ответить на ваш вопрос, да, https / SFTP достаточно безопасны, так что rsync, если выполняется по зашифрованному каналу (см. http://troy.jdmz.net/rsync/index.html)

Еще одна вещь, которую вы можете изучить, - это stunnel (http://www.stunnel.org/)

Я могу придумать несколько способов сделать это. Полностью зависит от ОС вашего сервера и других ограничений, которые вы можетеесть.

0 голосов
/ 07 февраля 2012

Основная проблема с SSL - проверка сертификата. По умолчанию все сертификаты, соответствующие целевому домену, которые подписаны любым из множества CA, считаются действительными. Если вы параноик, вы должны проверить сертификат, используемый в соединении, непосредственно на сертификат, сохраненный в вашей конфигурации.

Использование рукопожатия DHE для достижения идеальной конфиденциальности при пересылке также было бы неплохо, но встроенный SSL API в .net не предоставляет способа обеспечить это. Таким образом, вы можете получить или не получить DHE в зависимости от версии Windows и .net.


Еще один хороший выбор - туннелирование через SSH. Например, SCP - это существующая утилита копирования файлов, которая делает это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...