HTTPS. Редактирование конфигов на дисках терминалов

Темы, которые не попадают в остальные категории.
Ответить
aka
Разработчик
Разработчик
Сообщения: 9786
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

HTTPS. Редактирование конфигов на дисках терминалов

Сообщение aka » Пн апр 11, 2016 11:45 pm

Настройки терминалов, хранящиеся на локальных дисках, начиная с 5.4.26 редактируются только с паролем и по https. Пока только конфиги терминала и config.txt на Raspberry, но дальше будет больше.

Есть проблема: https сделан для настоящих серверов. С заранее известными именами. Сертификаты шифрования, необходимые для https, привязаны к именам или IP адресам серверов. Но мы же не знаем ни адресов, ни имён машин ваших терминалов с втварями.

Нельзя выдать https сертификат на произвольный IP. Браузеры такой не понимают.

Нельзя выдать https сертификат на любое имя. Максимум, на что согласны браузеры - произвольная часть доменного имени на третьем уровне.

Есть два варианта.

1. Соглашаться на исключение безопасности для каждого терминала, на котром надо что-то редактировать. Шифрование в https всегда работает, и, хоть браузер и ругается, всё равно такой https с ошибками безопаснее, чем нешифрованный http. Можно работать так и не читать дальше.

2. Можно установить наш корневой сертификат и настроить DNS. Сложнее, зато браузер будет показывать зелненый замок, как с настоящими https сайтами.

Наш корневой сертификат можно взять на любом терминале. Откройте IP терминала по http (не https) и зайдите в раздел "About HTTPS". При установке сертификата на Firefox надо поставить одну галку:
firefox.png
firefox.png (12.6 КБ) 4500 просмотров
Internet Explorer и Chrome:
ie1.png
ie1.png (16.47 КБ) 4500 просмотров
ie2.png
ie2.png (11.74 КБ) 4500 просмотров
ie3.png
ie3.png (9.52 КБ) 4500 просмотров
ie4.png
ie4.png (11.96 КБ) 4500 просмотров
Сертификат сделан на *.wtware.local. Надо настроить DNS, чтобы у терминалов были имена в этой зоне. Простой и скучный вариант - руками добавить в файл C:\Windows\System32\drivers\etc\hosts несколько строчек такого вида про нужные терминалы:

Код: Выделить всё

192.168.5.25 term1.wtware.local
192.168.5.26 term2.wtware.local
192.168.5.33 buh.wtware.local
Интереснее настроить DNS. WTware умеет присылать обновления DNS при настройке по DHCP, но инструкции про настройку обновления DNS от DHCP в Windows придётся искать в гугле самостоятельно.

Когда корневой сертификат установлен и DNS имя терминала прописано, должно получиться так:
success.png
success.png (15.26 КБ) 4500 просмотров

Rushmore
Сообщения: 358
Зарегистрирован: Пн фев 11, 2013 9:36 pm

Re: HTTPS. Редактирование конфигов на дисках терминалов

Сообщение Rushmore » Вт апр 12, 2016 11:09 am

А пароль-то как настраивать?

aka
Разработчик
Разработчик
Сообщения: 9786
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: HTTPS. Редактирование конфигов на дисках терминалов

Сообщение aka » Вт апр 12, 2016 3:12 pm

Rushmore писал(а):Как вариант все http-модификации подтверждать паролем, хэш пароля из опции DHCP 018.
Или в меню Press Del to enter SETUP, там есть установка пароля на эту машину.

Rushmore
Сообщения: 358
Зарегистрирован: Пн фев 11, 2013 9:36 pm

Re: HTTPS. Редактирование конфигов на дисках терминалов

Сообщение Rushmore » Вт апр 12, 2016 5:30 pm

ОК, с паролем понятно. А будет возможность подложить свои сертификаты на диск? Типа cert.pem?

aka
Разработчик
Разработчик
Сообщения: 9786
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: HTTPS. Редактирование конфигов на дисках терминалов

Сообщение aka » Вт апр 12, 2016 9:12 pm

Взять сертификат и ключ с диска просто, плюс четыре строчки кода.

Подложить сертификаты на диск - это интерфейс, документация, и вообще придумывать надо...

Rushmore
Сообщения: 358
Зарегистрирован: Пн фев 11, 2013 9:36 pm

Re: HTTPS. Редактирование конфигов на дисках терминалов

Сообщение Rushmore » Ср апр 13, 2016 1:05 am

aka писал(а):вообще придумывать надо...
Сделать через тот же редактор, это ведь текстовый файл. Скопипастил и всё.

В нескольких железяках в прошивках такое видел. Там правда приватный ключ изначально зашит в прошивке, и надо сначала делать CertRequest, потом полученный сертификат копировать обратно в железку.

aka
Разработчик
Разработчик
Сообщения: 9786
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: HTTPS. Редактирование конфигов на дисках терминалов

Сообщение aka » Ср апр 13, 2016 2:25 am

Через какой редактор, откуда скопипастил? Редактор на HTTP? Я по HTTP сейчас втварь научу файлы закачивать без редактора, для будущего обновления пригодится. Но сама идея закачивать сертификат и ключ для https по http это особо циничное издевательство над https.

Приватный ключ от корневого сертификата в прошивке? Заходим на HTTP, нажимаем кнопку "сделай себе сертификат", втварь сама смотрит IP или имя, по которому к ней обратились, генерит под этот IP/имя сертификат, сохраняет, использует.

По обоим пунктам: а как защитить эти интерфейсы, чтоб работали только когда их кто надо вызывает, а когда кто не надо - не работали? Не паролем же по http.

Rushmore
Сообщения: 358
Зарегистрирован: Пн фев 11, 2013 9:36 pm

Re: HTTPS. Редактирование конфигов на дисках терминалов

Сообщение Rushmore » Ср апр 13, 2016 2:49 pm

aka писал(а):Но сама идея закачивать сертификат и ключ для https по http это особо циничное издевательство над https.
Нет, по http никто ничего закачивать не предлагает.

1) заходим на железку по https. Браузер ругается на кривой самоподписанный сертификат. ОК. Пофик.
2) заходим в меню сертификатов. Вводим пароль. ОК.
3) выбираем что-то типа "сформировать запрос на получение сертификата". Вводим параметры запроса: CN=*.company.com или какое-то определенное имя, не важно. Другие параметры на вкус разработчика.
4) железка генерирует стандартный PKCS#10 CSR.
5) сохраняем запрос (это как правило текстовый файл в кодировке base64) и уносим/копипастим его в наш центр сертификации. Выпускаем на его основе сертификат, подписанный доверенным корпоративным или публичным ЦС.
6) выбираем "Установить сертификат" и устанавливаем полученный сертификат в железку.

aka
Разработчик
Разработчик
Сообщения: 9786
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: HTTPS. Редактирование конфигов на дисках терминалов

Сообщение aka » Ср апр 13, 2016 5:48 pm

Rushmore писал(а):1) заходим на железку по https. Браузер ругается на кривой самоподписанный сертификат. ОК. Пофик.
Не пофиг. Я в этой ругани вижу главную проблему, мне её больше всего хочется избежать. Если первую ругань прошли и исключение в барузер добавили, то дальше будет работать без ругани, только замочка зелёного не будет, и что-то дальше делать я уже не вижу смысла. Подлинный дзен https с хранящимся на диске с fat ключом всё равно не получается, одна видимость.
Rushmore писал(а):3) выбираем что-то типа "сформировать запрос на получение сертификата". Вводим параметры запроса: CN=*.company.com или какое-то определенное имя, не важно. Другие параметры на вкус разработчика.
4) железка генерирует стандартный PKCS#10 CSR.
5) сохраняем запрос (это как правило текстовый файл в кодировке base64) и уносим/копипастим его в наш центр сертификации. Выпускаем на его основе сертификат, подписанный доверенным корпоративным или публичным ЦС.
1. Не осилят. Много букв.
2. Я не понимаю, какую роль в этом выполняет втварь. То же можно сделать без участия втвари, сделать используя привычные инструменты, отдать втвари готовый подписанный сертификат и ключ от него. Я вижу сложность только в методе, которым готовый ключ будет втвари отдан.

Rushmore
Сообщения: 358
Зарегистрирован: Пн фев 11, 2013 9:36 pm

Re: HTTPS. Редактирование конфигов на дисках терминалов

Сообщение Rushmore » Ср апр 13, 2016 6:45 pm

aka писал(а):Не пофиг. Я в этой ругани вижу главную проблему, мне её больше всего хочется избежать.
Делаем это _ОДИН_ раз, для того чтобы зааплоадить сертификат. Всё равно терминал надо хотя бы проверить перед установкой юзеру. Потом будет всё зеленое.
aka писал(а):Подлинный дзен https с хранящимся на диске с fat ключом всё равно не получается, одна видимость.
Дык если к диску есть локальный доступ, ничего не спасёт кроме тотального шифрования. Мы вроде как защищаемся от сетевых эксплойтов.
aka писал(а):Я не понимаю, какую роль в этом выполняет втварь. То же можно сделать без участия втвари, сделать используя привычные инструменты, отдать втвари готовый подписанный сертификат и ключ от него.
Просто недавно конфигурял сетевую железку, выдавал ей сертификат. Написал по аналогии, как там это устроено.

aka
Разработчик
Разработчик
Сообщения: 9786
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: HTTPS. Редактирование конфигов на дисках терминалов

Сообщение aka » Ср апр 13, 2016 7:39 pm

Rushmore писал(а):Делаем это _ОДИН_ раз, для того чтобы зааплоадить сертификат.
Мне не нравится сенарий, в котором этот один раз обязателен.

Ещё вариант: в начальном меню сделать пункт "сформировать сертификат". Запросить ввести с клавиатуры имя или ip, и к этому имени или ip привязать сертификат.

И новая проблема. Вот сейчас я предлагаю поставить мой рутовый сертификат. Я зуб даю, что этим сертификатом не будет подписано ничего кроме *.wtware.local. Не знаю, кому нужен мой зуб, но хотя бы так.

А если встроить в втварь генерилку сертификатов для самой себя, то рутовый так же придётся ставить. Но этому руту доверия уже не будет даже в объёме моего зуба, потому что злонбный хакер может выколупать его из втвари, подписать им свой файковый paypal.com и затем, подменив твой dns, украсть твои деньги.

Сложно всё :(
Rushmore писал(а):Просто недавно конфигурял сетевую железку, выдавал ей сертификат. Написал по аналогии, как там это устроено.
Сначала генерится ключ. Ключ секретный. Если в железке есть реально секретное хранилище, то для неё разумно сгенерить ключ самой, захмячить поглубже (в идеале в аппаратную шифровалку, типа распаяного на плате токена, из которой ключ в принципе не достаётся, для производителя серьёзной железки это не должно быть проблемой), а наружу отдать только подписанный этим ключом, нисколько не секретный CSR.

У втвари нет хранилища с намёком на секретность. Есть только диск с fat. Не вижу смысла генерить и пытаться прятать ключ на диске с fat. Лучше попрошу у тебя готовую пару, ключ и сертификат. Сможешь сделать?

Rushmore
Сообщения: 358
Зарегистрирован: Пн фев 11, 2013 9:36 pm

Re: HTTPS. Редактирование конфигов на дисках терминалов

Сообщение Rushmore » Ср апр 13, 2016 11:46 pm

aka писал(а):А если встроить в втварь генерилку сертификатов для самой себя, то рутовый так же придётся ставить. Но этому руту доверия уже не будет даже в объёме моего зуба
Рутовый не придется ставить. Рутовый (точнее, удостоверяющий ЦС) находится в отделе безопасности и умеет только заверять (подписывать) присланные CSRы. А вот после этого доверие на сертификат распространяется автоматически, поскольку сертификат удостоверяющего ЦС сидит у всех юзеров организации в списке корневых доверенных ЦС.
aka писал(а):Сложно всё :(
Да, не очень просто ((
aka писал(а):Лучше попрошу у тебя готовую пару, ключ и сертификат. Сможешь сделать?
Корпоративный сертификат мне безопасность не разрешит выдать без основания, а самоподписанный я делаю под виндами так:

1) создаем файл req.inf такого содержания:

Код: Выделить всё

[Version]
Signature="$Windows NT$

[NewRequest]
RequestType = Cert
Subject = "CN=*.wtware.local"
Exportable = true
KeyLength = 2048
ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
HashAlgorithm = sha256
KeySpec = 1
KeyUsage = 0xf0
ValidityPeriodUnits = 10
ValidityPeriod = Years
;MachineKeySet = true

[EnhancedKeyUsageExtension]
OID=1.3.6.1.5.5.7.3.1 ; Server Authentication
2) Запускаем: certreq.exe -new req.inf cert.req
В персональном хранилище создается сертификат. Файл cert.req не нужен, его можно удалить.

3) Проверяем наличие сертификата в хранилище: certutil.exe -store -user my *.wtware.local
Обращаем внимание на поля Subject и Serial Number

4) Если предыдущая команда вывела один сертификат, экспортируем его в формате pkcs12 (он же pfx):
certutil -exportpfx -p P@ssw0rd -user my *.wtware.local cert.pfx

Если выдано несколько сертификатов с одинаковым subject'ом, экспортируем по Serial Number:
certutil -exportpfx -p P@ssw0rd -user my 53a48dcad96fd58244176ba7e8516e85 cert.pfx
Здесь Serial Number я написал просто от балды.

5) Сертификат и приватный ключ экспортированы в файл cert.pfx с паролем P@ssw0rd.
Если надо преобразовать в формат PEM, ставим openssl (либо несем pfx на линукс, где установлен openssl) и делаем экспорт:
openssl pkcs12 -in cert.pfx -out cert.pem -nodes
openssl спросит пароль. После экспорта в файле cert.pem приватный ключ лежит в открытом виде!

Если сервер откажется принимать сертификат, можно попробовать поменять HashAlgorithm = sha1 вместо sha256 и повторить выдачу.

После всех манипуляций можно удалить сертификат из юзеровского хранилища, если больше не нужен:
certutil -delstore -user my <Certificate_Serial_Number>

Описание утилиты certreq и формат inf-файла запроса

aka
Разработчик
Разработчик
Сообщения: 9786
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: HTTPS. Редактирование конфигов на дисках терминалов

Сообщение aka » Чт апр 14, 2016 12:26 am

Rushmore писал(а):
aka писал(а):А если встроить в втварь генерилку сертификатов для самой себя, то рутовый так же придётся ставить. Но этому руту доверия уже не будет даже в объёме моего зуба
Рутовый не придется ставить. Рутовый (точнее, удостоверяющий ЦС) находится в отделе безопасности и умеет только заверять (подписывать) присланные CSRы. А вот после этого доверие на сертификат распространяется автоматически, поскольку сертификат удостоверяющего ЦС сидит у всех юзеров организации в списке корневых доверенных ЦС.
Мы с тобой о разных вещах говорим. Я говорю про маленькую конторку из двадцати компьютеров, в которой нет отдела безопасности. И я говорю про выдачу себе уже законченных сертификатов, а не CSR. Полный цикл внутри втвари. Твой случай, когда втварь должна принять сертификат снаружи от внешнего авторитета, совсем другой.
Rushmore писал(а):
aka писал(а):Лучше попрошу у тебя готовую пару, ключ и сертификат. Сможешь сделать?
Корпоративный сертификат мне безопасность не разрешит выдать без основания,
Вот это особенно любопытно. Ещё раз: тебе не дадут сгенерить сертификат для того, чтобы подписать свою машину?
А на железку ту умную почему дали?
А когда новый компьютер с виндовсом в домен входит, ему что, подписанный доменконтроллером сертификат при этом автомагически не выдаётся?

aka
Разработчик
Разработчик
Сообщения: 9786
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: HTTPS. Редактирование конфигов на дисках терминалов

Сообщение aka » Чт апр 14, 2016 1:12 am

Гы!!! Так это же решение. Беру твой req.inf. Выполняю пункт 2. Получается сертификат. Свой, самодельный.
Control Panel, Internet Option, Content, Certifcates
Вижу там свежесделанный на *.wtware.local
Export. Пароль пусть будет wtware, чтобы втварь смогла открыть, имя файла https.pfx
Открываю вкладку Trusted Root
Import.
Отдаю втвари https.pfx. Втварь им подписывается, в IE и Хроме получается зелёный замочек.

aka
Разработчик
Разработчик
Сообщения: 9786
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: HTTPS. Редактирование конфигов на дисках терминалов

Сообщение aka » Чт апр 14, 2016 2:27 am

Работает!
Вложения
Untitled.png
Untitled.png (51.44 КБ) 4451 просмотр

Rushmore
Сообщения: 358
Зарегистрирован: Пн фев 11, 2013 9:36 pm

Re: HTTPS. Редактирование конфигов на дисках терминалов

Сообщение Rushmore » Чт апр 14, 2016 7:13 am

aka писал(а):Вот это особенно любопытно. Ещё раз: тебе не дадут сгенерить сертификат для того, чтобы подписать свою машину?
А на железку ту умную почему дали?
Сгенерю сертификат я сам, мне его безопасность в ЦС не подпишет без основания. Основание - надо заполнять разные бумажки, это долго. На ту железку умную писали много бумажек.
aka писал(а):А когда новый компьютер с виндовсом в домен входит, ему что, подписанный доменконтроллером сертификат при этом автомагически не выдаётся?
Смотря как настроить. У нас по умолчанию не выдается, потому как нет таких задач. На тех серверах, которым выданы сертификаты, все приватные ключи сделаны неэкспортируемыми. Юзерам выдаются сертификаты на смарт-картах и токенах для входа в домен, но этим тоже безопасность рулит.
aka писал(а):Открываю вкладку Trusted Root. Import.
Для безопасности лучше делать два раза экспорт. Один раз в формате pfx для втвари, второй раз в формате crt для импорта в Trusted Root, чтобы там не было приватного ключа. И сразу после экспорта удалить исходный сертификат из Internet Options/Content/Certifcates.


CkopnuoH
Сообщения: 20
Зарегистрирован: Вт авг 10, 2004 9:06 pm
Откуда: Таганрог
Контактная информация:

Re: HTTPS. Редактирование конфигов на дисках терминалов

Сообщение CkopnuoH » Вт дек 12, 2017 11:51 am

Не нашел подходящей темы...напишу тут - не ругайтесь.
Я правильно понимаю что ЛОКАЛЬНЫЙ (установленный на флешке терминала) конфигурационный файл доступен для редактирования только для Raspberry?
Тоесть на обычных железках эта функция не доступана?

aka
Разработчик
Разработчик
Сообщения: 9786
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: HTTPS. Редактирование конфигов на дисках терминалов

Сообщение aka » Вт дек 12, 2017 2:14 pm

Сейчас на обычных железках со свежей версией втвари уже доступен и конфиг, и все файлы в каталоге /configs (скины, лицензии, отдельный косттыль для онлайн касс атол, скрипт-конфиг WiFi) и удаленное обновление втвари.

CkopnuoH
Сообщения: 20
Зарегистрирован: Вт авг 10, 2004 9:06 pm
Откуда: Таганрог
Контактная информация:

Re: HTTPS. Редактирование конфигов на дисках терминалов

Сообщение CkopnuoH » Вт дек 12, 2017 4:48 pm

Хм....5.6.22
Записал на флешку образ+Сеть+Лиц+Конфиг при помощи кликабельного.....вставляю в железку - все работает.
Понадобилось циферку изменить в параметре одном - нажимаю на DEL - выбираю изменить конфиг - вижу только один параметр "connection"
Где все остальное? Тоже самое и по вебу. Пароль ЗАДАН.
Заглядываю на флешку - вижу - config.wtc в котором этот самый "connection" и есть и XX.XX.XX.XX.XX.XX.wtc в котором все остальные параметры.
Думаю - ну дай скопирую XX.XX.XX.XX.XX.XX.wtc в config.wtc методом ЗАМЕНЫ файла......снова захожу по DEL - он вообще "ругается" (красным цветом) что мол нет конфигурационного файла.
ЧЯДНТ?

aka
Разработчик
Разработчик
Сообщения: 9786
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: HTTPS. Редактирование конфигов на дисках терминалов

Сообщение aka » Вт дек 12, 2017 6:16 pm

Редакторы конфига (оба редактора - и через веб, и в текстовом меню на терминале через Del во время загрузки) редактируют общий конфиг config.wtc. Догадываться, что есть более специальный конфиг именно для этого МАКа, их ещё не научили.

И красное ругательство тоже проверяет config.wtc, спецконфиг для МАКа игнорирует.

Да, это неправильно, получается что терминал предлагает редактировать общий конфиг, а работать потом будет со спецконфигом. Так получилось потому что спецконфиги для МАКа изначально делали для CD и про редактирование не думали. Когда-нибудь починится, но не завтра, там думать надо.

Метод ЗАМЕНЫ конфига через веб должен работать. Если не сработало, значит глюк какой-то. Если сможешь медленно, фоткая действия, воспроизвести - выкладывай фотки, починю.

Ответить