Я создал программное решение для использования в больницах. Он использует PHP / MySQL и не может быть скомпилирован в двоичные файлы. Больница, заинтересованная в лицензировании этого программного обеспечения, просит разместить код PHP на принадлежащем им сервере, где несколько администраторов серверов будут иметь доступ к этому исходному коду. Для меня это явно неприемлемо. Мое встречное предложение заключалось в том, что мы размещаем исходный код на сервере нашей компании, но из-за риска того, что клинические данные покинут больницу, они также не хотят использовать этот вариант.
Меня интересуют ваши мысли по поводу следующих вариантов - и есть ли другой способ, который бы работал:
Вариант 1. Разместите сервер, которым владеет и управляет моя компания, и доступ к которому есть только у нас в больнице, за безопасным межсетевым экраном. Это защищает исходный код и снижает риск для больницы. Они могут защитить этот сервер брандмауэром, чтобы никакие данные не покидали больницу. Сетевой администратор, с которым я разговаривал, не предпочитает этот вариант, поскольку у них есть единая сетевая архитектура, которую они используют, и они не хотят включать другой сервер. Этот ответ не имеет для меня большого смысла.
Вариант 2: договор с Amazon Web Services или другой взаимоприемлемой облачной платформой для размещения кода PHP. Это означает, что клинические данные будут отправлены из больницы для обработки, и, следовательно, риск этого может быть менее предпочтительным, чем вариант 1.
Вариант 3: мне не хватает других вариантов?
Спасибо.
Вариант 3: используйте ioncube для шифрования кода. Это предотвращает обратное проектирование или вмешательство и позволяет вам явно назначать лицензии (и печатать лицензиата на экране).
Затем клиент может запускать вещи где угодно, но ioncube делает их неизменными для администраторов.
Ваши варианты хостинга в AWS не обязательно предполагают гораздо больший риск. Во-первых, AWS чертовски хорошо защищает свое оборудование и вашу информацию, если вы будете следовать всем лучшим практикам. Если вы используете шлюз VPN для подключения VPC к сети больницы и удаления всех других подключений к Интернету из VPC, он может быть таким же изолированным, как и сеть больницы, к которой он подключен.
Вы также можете разместить в другом месте, не являющемся больницей, но, честно говоря, для одного сервера это намного больше работы. С финансовой точки зрения это, вероятно, не будет удачным выбором.
Если исходный код доступен, вы можете рассмотреть лицензионное соглашение, запрещающее передачу / повторное использование программного обеспечения в другом месте. Не идеальная безопасность, но многие люди, делающие программное обеспечение, зарабатывают деньги на ограниченных по времени лицензионных соглашениях, которые дополнительно предлагают обслуживание и обновления.
Ваш вариант 1 кажется мне лучшим, но он может стоить вам дороже, чем вы думаете. Некоторым больницам нужен специальный токен для входа в VPN для доступа к некоторым ресурсам, поэтому они могут продать вам эту часть, поскольку у них наверняка есть прокси-сервер, так что вашему серверу тоже будет сложно подключиться.
Это может быть OVH или виртуальная машина для развертывания, если они так предпочитают.
Не забудьте вариант 1 защиты вашего кода от новичков, но тот факт, что сервер размещен на сайте, совсем не защищает его от загрузки сервера в режиме восстановления для копирования файлов.