Здравствуйте, Passerby, Вы писали:
P>Могу сделать такой вывод, значение которого буду понимать только я. В таком случае, как отключить вывод на монитор на сервере?
Не понял насчет фразы про "вывод".
У тебя есть возможность подготавливать специальную сборку программы для сервера?
На каком языке и ГУИ-фреймворке вообще она написана?
Re[7]: Что нужно для размещения программы на удаленном серве
Здравствуйте, Passerby, Вы писали:
P>Могу сделать такой вывод, значение которого буду понимать только я. В таком случае, как отключить вывод на монитор на сервере?
Сделай тогда прогу как сервис(служба). Можешь из нее сервер сделать и с помощью SSL подключаться за получением результатов.
Re[8]: Что нужно для размещения программы на удаленном серве
G>У тебя есть возможность подготавливать специальную сборку программы для сервера? G>На каком языке и ГУИ-фреймворке вообще она написана?
Это моя программа. Написал для себя на С шарпе. ГУИ никакого нет, только консоль и вывод в файлы. ГУИ планировал сделать в дальнейшем, не особенно важно.
Re[9]: Что нужно для размещения программы на удаленном серве
Здравствуйте, Passerby, Вы писали:
G>>У тебя есть возможность подготавливать специальную сборку программы для сервера? G>>На каком языке и ГУИ-фреймворке вообще она написана? P>Это моя программа. Написал для себя на С шарпе. ГУИ никакого нет, только консоль и вывод в файлы. ГУИ планировал сделать в дальнейшем, не особенно важно.
К сожалению на Си Шарпе сломать будет легко, т.к. это байт код выполняемый в дотнет машине. И Энигмой не защитишь.
Если это прям тебе важно, лучше перепиши на компилируемом языке, типа C++ или Free Pascal, а потом защити бинарник вирт.машиной энигмы.
Re[10]: Что нужно для размещения программы на удаленном серве
Здравствуйте, Passerby, Вы писали:
P>А как взломают, если она ее поместить на шифрованном диске? Или ты имеешь в виду дамп памяти?
Вариантов масса, тут ключевой фактор то, что это чужая инфраструктура, а не твоя, и контролируешь её не ты.
Могут например сделать дамп ОЗУ, тогда шифрование диска смысла вообще не имеет.
Могут перехватить нажатия клавиш пароля, который ты вводишь. Если ты вводишь пароль вирт.клавиатурой, то могут тупо подсмотреть экран.
И т.д. и т.п. И всё проистекает из того, что это чужая инфраструктура.
Re[12]: Что нужно для размещения программы на удаленном серве
Никаких паролей вводить не буду. Есть только два длинных ключа от главного сервера, которые планирую защитить одним из 2 вариантов:
!. Зашифровать у себя на компе, а когда прога на сервере запустится, она скачает эти зашифрованные ключи, распакует их и начнет работу.
2. Зашифровать их и поместить в отдельный файл, в начале работы программа расшифровывает их и удаляет файл.
Что касается перекомпиляции в С++, возможно, сделаю для основного секретного метода.
Re[13]: Что нужно для размещения программы на удаленном серве
Здравствуйте, Passerby, Вы писали:
P>Никаких паролей вводить не буду. Есть только два длинных ключа от главного сервера, которые планирую защитить одним из 2 вариантов: P>!. Зашифровать у себя на компе, а когда прога на сервере запустится, она скачает эти зашифрованные ключи, распакует их и начнет работу. P>2. Зашифровать их и поместить в отдельный файл, в начале работы программа расшифровывает их и удаляет файл. P>Что касается перекомпиляции в С++, возможно, сделаю для основного секретного метода.
Да, это вариант. Секретный метод можно в dll, а dll защитить энигмой, и все сенситивные данные генерить только в этом методе, чтобы они не попали в дамп ОЗУ.
Re[11]: Что нужно для размещения программы на удаленном серве
Здравствуйте, Passerby, Вы писали:
P>А как взломают, если она ее поместить на шифрованном диске? Или ты имеешь в виду дамп памяти?
Да, в памяти-то ты не шифруешь эти данные? А даже если шифруешь, то ключ шифрования тоже хранится в памяти, значит надо его прятать, в общем одно тянет за другое и в итоге получается только гемор, поэтому нужно исправить саму архитектуру программы, сеситивные данные хранить в защищеной вирт.машине энигмы, вынеся в dll секретный метод как и говоришь.
Re[12]: Что нужно для размещения программы на удаленном серве
Попробуй еще что-нибудь из класса защищенных вирт.машин, если энигма смущает. Слабый триал не обязательно говорит о слабой защите вирт.машины. Лично мне энигма нравится, ни разу не ломали мои продукты (либо если частным образом и ломали, то это не влияло заметно на продажи). Это не значит что это идеальная защита, ведь сломать можно всё, это вопрос уровня профессионалов и затраченных усилий, и абсолютной защиты наверное не существует. Энигма мне ещё нравится тем, что у неё есть детектор запуска из-под виртуалок, детектор запущенных дебаггеров и т.д.
А тебе нужна абсолютная защита?
Здравствуйте, gyraboo, Вы писали: G>А тебе нужна абсолютная защита?
Абсолютной защиты, вероятно, нет. Но хочется максимально обезопаситься.
Встречаются 2 психиатра.
— Как жизнь?
— Эх, лечил параноика от мании преследования, почти вылечил, и тут его убили...
Re[2]: Что нужно для размещения программы на удаленном сервере?
Здравствуйте, L.K., Вы писали:
P>>должна быть ее защита от обслуживающего персонала
LK>Единственная возможность — это поставить в ЦОД свой физический сервер (colocation).
LK>Всё остальное ("облачная инфраструктура") находится во власти хостера, он может зайти на любой сервер под рутом.
Если уж мы тут обсуждаем злонамеренных сотрудников, что мешает сотруднику ЦОДа взломать физический сервер? Он от виртуального принципиально ничем не отличается.
Re[15]: Что нужно для размещения программы на удаленном серв
Здравствуйте, Passerby, Вы писали:
P>Здравствуйте, gyraboo, Вы писали: G>>А тебе нужна абсолютная защита? P>Абсолютной защиты, вероятно, нет. Но хочется максимально обезопаситься. P>Встречаются 2 психиатра. P>- Как жизнь? P>- Эх, лечил параноика от мании преследования, почти вылечил, и тут его убили...
Более надёжные инструменты стоят дороже. Энигма — это некий баланс цены и качества, всё из коробки за двести баксов.
Re[3]: Что нужно для размещения программы на удаленном сервере?
vsb>что мешает сотруднику ЦОДа взломать физический сервер? Он от виртуального принципиально ничем не отличается.
На физическом сервере у владельца — полноценные рутовые права. Взлом тут возможен только физический (замораживание памяти, изучение на всяких электронных микроскопах, получение снимка памяти). При этом на сервере может быть защита от вскрытия корпуса, что ещё сильнее усложняет задачу.
А виртуальный сервер полностью во власти хостера, который может в любую минуту зайти на сервер под рутом.
Re[4]: Что нужно для размещения программы на удаленном серве
Здравствуйте, L.K., Вы писали:
LK>На физическом сервере у владельца — полноценные рутовые права. Взлом тут возможен только физический (замораживание памяти, изучение на всяких электронных микроскопах, получение снимка памяти). При этом на сервере может быть защита от вскрытия корпуса, что ещё сильнее усложняет задачу.
Зачем электронный микроскоп? Если нет шифрования диска — просто перезагружаешься, нажимаешь e в меню grub-а, дописываешь init=/bin/sh и вот тебе рут.
LK>А виртуальный сервер полностью во власти хостера, который может в любую минуту зайти на сервер под рутом.
Как ты себе это представляешь? Не может он зайти под рутом в работающую виртуальную машину. Откуда он пароль возьмёт?
Разумеется, шифрование диска есть. Ключ — у владельца сервера на флешке. Любой перезапуск сервера (обновление ядра, сбой питания...) происходит в присутствии владельца.
vsb>Не может он зайти под рутом в работающую виртуальную машину. Откуда он пароль возьмёт?
Пароль от vds хостер сам выдаёт. И, разумеется, он этот пароль знает.
Образ системы также подготовлен хостером. Т.е. в системе могут быть какие угодно закладки на уровне ядра.
Re[6]: Что нужно для размещения программы на удаленном серве
Здравствуйте, L.K., Вы писали:
vsb>>Если нет шифрования диска
LK>Разумеется, шифрование диска есть. Ключ — у владельца сервера на флешке. Любой перезапуск сервера (обновление ядра, сбой питания...) происходит в присутствии владельца.
Это непрактично до жути.
vsb>>Не может он зайти под рутом в работающую виртуальную машину. Откуда он пароль возьмёт?
LK>Пароль от vds хостер сам выдаёт. И, разумеется, он этот пароль знает.
Пароль меняется командой passwd.
LK>Образ системы также подготовлен хостером. Т.е. в системе могут быть какие угодно закладки на уровне ядра.
Это фантазии. Нет там никаких закладок, обычный образ с преднастроенной сетью и изредка парой изменённых sysctl-ов. Ну и никто не мешает переустановить систему, что лично я всегда и делаю на всякий случай.
Re[7]: Что нужно для размещения программы на удаленном серве
А безопасность почти всегда не практична. Шлюзовые проходные с биометрией, запрет на мобильные телефоны в офисе, ограничение физического перемещения (только по своему отделу), ограничение сетевых прав (с долгой бюрократией в случае необходимости расширить эти права), постоянное наблюдение видеокамерами — это на любом военном заводе или НИИ.
В какой-нибудь разведке наверняка пользуются одноразовыми бумажными шифроблокнотами — потому что компьютерной технике никакого доверия нет.
vsb>Пароль меняется командой passwd.
А смысл? Если хостер знает изначальный пароль, то он полностью контролирует систему в т.ч. сессию ssh. И хостер сразу же узнает новый пароль.
vsb>Нет там никаких закладок, обычный образ с преднастроенной сетью
Это уже дело веры. Можно верить, что закладок нет. А можно подозревать, что они там есть. И то, и другое — недоказуемо. Но теоретически хостеру ничто не мешает вставить закладку в образ системы.