Борьба с утечкой данных с помощью файлов rdp
Использование клиента Remote Desktop Connection 6.1 и групповой политики в Vista SP1 и XP SP3
С ростом популярности виртуальных приложений и программ, предоставляемых как услуги (Software as a Service, SaaS), стираются различия между удаленными, локальными и виртуализованными приложениями. Среди многочисленных усовершенствований служб Terminal Services в Windows Server 2008 — возможность представить удаленные приложения так, как будто они выполняются локально на компьютерах пользователей, а не в окне удаленного рабочего стола, как в предшествующих версиях Windows Server.
Такая «локальность» дает несколько преимуществ, в частности повышается удобство работы, улучшается интеграция с рабочими столами пользователей и появляется возможность открывать программы на разных серверах терминалов одновременно без необходимости управлять окном удаленного рабочего стола на каждом сервере. Но у удобного визуального восприятия есть и оборотная сторона — иногда пользователям бывает трудно отличить локальные приложения от удаленных. Более того, сопоставляя локальные ресурсы с сервером терминалов, пользователи рискуют открыть конфиденциальные данные, неосмотрительно устанавливая связь с компьютером злоумышленника. Не следует возлагать на пользователя заботу о безопасности.
Чтобы устранить эту проблему, специалисты Microsoft предусмотрели возможность цифровой подписи файлов Remote Desktop Protocol (RDP) и определили список доверенных издателей в групповой политике. В результате администраторы могут принимать только файлы RDP, подписанные с использованием доверенных сертификатов. Таким образом уменьшается вероятность, что пользователи по ошибке подключатся и передадут данные на сервер терминалов вне компании.
Далее в статье будет показано, как запросить сертификат из удостоверяющего центра, интегрированного с Active Directory (AD), подписать файлы RDP удаленных приложений и настроить групповую политику на разрешение использования только файлов RDP, подписанных посредством указанного сертификата. Для этого требуется домен AD Windows Server 2008, член домена сервер Server 2008 с установленными службами терминалов и сертификатов AD и рабочая станция Windows Vista SP1 или Windows XP SP 3, присоединенная к домену.
Запрос и установка сертификата на сервере терминалов
Файлы RDP должны быть подписаны с использованием SSL или сертификата подписи кода. Пользователи Terminal Services Gateway могут подписывать файлы RDP с применением существующего сертификата SSL. В этом случае используется стандартный сервер служб терминалов и требуется получить сертификат подписи кода от внутреннего удостоверяющего центра. Это означает, что сертификату будут доверять только клиенты корпоративной сети, если он не подписан также общедоступным удостоверяющим центром.
Шаблон сертификатов подписи кода не задействован по умолчанию, поэтому сначала нужно добавить подписывание кода к списку шаблонов сертификатов на своем удостоверяющем центре. Зарегистрируйтесь на удостоверяющем центре в качестве администратора домена и выполните следующие действия.
- Нажмите кнопку Start, перейдите к Administrative Tools, Certification Authority и откройте консоль управления (MMC) центра сертификации.
- Разверните удостоверяющий центр в разделе Certification Authority (Local) и щелкните Certificate Templates, чтобы просмотреть текущие задействованные шаблоны.
- Щелкните правой кнопкой мыши на Certificate Templates и выберите пункт New, Certificate Template to Issue из контекстного меню.
- В диалоговом окне Enable Certificate Templates выберите элемент Code Signing из списка и нажмите OK.
- В консоли Certification Authority MMC, в списке шаблонов сертификатов, должен появиться элемент Code Signing. Закройте консоль Certification Authority MMC.
Теперь, когда можно запросить сертификат подписи кода у своего удостоверяющего центра, необходимо зарегистрироваться на сервере терминалов и запросить сертификат. Зарегистрируйтесь с правами администратора домена.
- Введите MMC в поле Search меню Start и нажмите Enter.
- В окне MMC выберите команду Add/Remove Snap-In из меню File.
- В диалоговом окне Add or Remove Snap-ins выберите элемент Certificates в разделе Available snap-ins и нажмите кнопку Add в центре окна. Выберите My user account в диалоговом окне Certificates snap-in и нажмите Finish.
- Щелкните OK.
- В консоли MMC разверните Certificates — Current User, затем Personal.
- Щелкните правой кнопкой мыши на папке Certificates под Personal и выберите All Tasks, Request New Certificate в контекстном меню.
- Нажмите кнопку Next на экране Before You Begin в диалоговом окне Certificate Enrollment. Выберите Code Signing в разделе Request Certificates и щелкните Enroll.
- В разделе Certificate Installation Results должно быть отображено состояние Succeeded. Нажмите кнопку Finish. Новый сертификат подписи кода должен появиться в личном хранилище сертификатов, как показано на экране 1.
- Дважды щелкните на сертификате подписи кода в центральной области и перейдите на вкладку Details.
- Убедитесь, что Show имеет значение All и просмотрите нижнюю часть поля, которое представляет собой отпечаток SHA1, показанный на экране 2. Запомните значение или скопируйте его в Notepad, так как оно потребуется позднее.
- Нажмите OK в диалоговом окне Certificates, а затем закройте консоль Certificates MMC.
Подписывание файлов RDP
Разместив сертификат подписи кода на сервере терминалов, можно создать подписанные файлы RDP для существующих или новых удаленных приложений. На сервере терминалов откройте диспетчер Terminal Services RemoteApp Manager.
- Чтобы открыть TS RemoteApp Manager, нажмите кнопку Start и перейдите к Administrative Tools, Terminal Services.
- Справа от Digital Signature Settings щелкните Change в разделе Overview окна TS RemoteApp Manager.
- В диалоговом окне RemoteApp Deployment Settings должна быть выбрана вкладка Digital Signature и установлен флажок Sign with a digital certificate.
- В разделе Digital certificate details нажмите Change. В диалоговом окне Select Certificate выберите из списка сертификат подписи кода и нажмите кнопку OK.
- Детали сертификата должны появиться в окне RemoteApp Deployment Settings, как показано на экране 3. Нажмите ОК.
После этого любые удаленные приложения, добавленные на сервер, будут публиковаться с файлом RDP с цифровой подписью. Добавим WordPad в качестве удаленного приложения и подготовим файл RDP.
- Щелкните Add RemoteApp Programs в области Actions справа в диспетчере TS RemoteApp Manager. Нажмите кнопку Next в мастере RemoteApp Wizard.
- Выберите WordPad в списке RemoteApp Programs и щелкните Next.
- Нажмите кнопку Finish на экране Review Settings.
- WordPad должен появиться в нижней части окна TS RemoteApp Manager под RemoteApp Programs (экран 4). Выберите WordPad под RemoteApp Programs и щелкните Create.rdp File под WordPad в области Actions.
- Нажмите кнопку Next в мастере RemoteApp Wizard, оставив на экране Specify Package Settings параметры, принятые по умолчанию. Убедитесь, что файл подписан с использованием сертификата, и щелкните Next. Нажмите кнопку Finish на экране Review Settings.
Местоположение по умолчанию для файлов RDP, созданных диспетчером TS RemoteApp Manager (c:program filespackaged programs), должно быть открытым и содержать новый файл, wordpad.rdp.
Настройка доверенных издателей в групповой политике
Режим по умолчанию для удаленного подключения рабочего стола в групповой политике — разрешить запуск всех файлов; неподписанных, доверенных и иных. Настроим групповую политику так, чтобы выполнять на рабочей станции только файлы RDP, подписанные с использованием сертификатов.
- Откройте консоль управления групповой политики (GPMC) и разверните лес, домен и папку Group Policy Objects.
- Щелкните правой кнопкой мыши папку Group Policy Objects и выберите из меню пункт New. Дайте новому объекту GPO имя RemoteApp Trusted Publishers и нажмите OK.
- Щелкните правой кнопкой мыши новый объект GPO в разделе Group Policy Objects и выберите из меню команду Edit.
- В окне Group Policy Editor под Computer Configuration разверните Policies, Administrative Templates, Windows Components, Terminal Services и щелкните Remote Desktop Connection Client.
- В правой части окна отключите первые два параметра, Allow.rdp files from valid publishers and user’s default.rdp settings и Allow.rdp files from unknown publishers.
- Перейдите в окно GPMC и привяжите новый объект GPO к домену. Щелкните правой кнопкой мыши на домене, в данном случае ad.contoso.com, в левой части GPMC и выберите из меню пункт Link an Existing GPO.
- В диалоговом окне Select GPO выберите RemoteApp Trusted Publishers GPO из списка и нажмите кнопку OK.
Зарегистрируйтесь на рабочей станции в качестве администратора домена и выполните обновление групповой политики, запустив
gpupdate/force
из командной строки. После обновления групповой политики запустите wordpad.rdp из папки Packaged Programs на сервере терминалов. Файл должен быть блокирован.
Продолжим настройку объекта GPO в редакторе Group Policy Management Editor. Сертификат подписи кода добавляется к списку доверенных издателей.
- Дважды щелкните Specify SHA 1 thumbprints of certificates representing trusted.rdp publishers в правой области окна редактора.
- Выберите Enabled в диалоговом окне параметров политики и введите отпечаток SHA 1 для сертификата подписи кода, сохраненного ранее. Отпечаток нужно вводить без пробелов.
На рабочей станции обновите групповую политику, как показано выше. На этот раз wordpad.rdp должен выполняться без предупреждений.
Ограничение доступа
Очень важно ограничивать такую мощную функциональность, как Remote Desktop Connection, на углубленном уровне. В дополнение к диспетчеру TS RemoteApp Manager компания Microsoft предоставляет инструмент командной строки для подписывания файлов RDP, rdpsign.exe. Если добавить Terminal Services Web Access к описанной выше конфигурации, сертификаты и групповая политика будут применяться также к удаленным приложениям, запускаемым из сайта TS Web Access. Как и политика ограничений программ, ограничение отдельных файлов RDP на основе цифровых сертификатов снижает вероятность подключения пользователей к любым серверам терминалов, кроме разрешенных системными администраторами.
Рассел Смит ([email protected]) — независимый ИТ-консультант, специализируется на управлении системами
Проблема
Возможность сопоставить локальные ресурсы серверу терминалов связана с риском разглашения конфиденциальных данных пользователями, неосторожно подключившимися к компьютеру злоумышленника.
Решение
Используйте клиент Remote Desktop Connection 6.1 с файлами RDP с цифровой подписью, затем определите список доверенных издателей в групповой политике.
Необходимые ресурсы
Домен Windows Server 2008 Active Directory (AD), член домена Server 2008 с установленными службами Terminal Services и AD Certificate Services и рабочая станция Windows Vista SP1 или Windows XP SP 3, присоединенная к домену.
Этапы решения
- Добавьте подписывание кода к списку шаблонов сертификатов в удостоверяющем центре.
- Зарегистрируйтесь на сервере терминалов и запросите сертификат.
- Подготовьте подписанные файлы RDP удаленных приложений.
- Настройте доверенных издателей в групповой политике.
Уровень сложности
3 из 5
Вариант 1: росреестр
С 2021 года правительство укрепило защиту от подделки. Теперь вместо самого документа, подписывается архив, в который его запаковывают, ведь кодировку сжатых файлов практически невозможно сфальсифицировать. Поэтому на сайте Росреестра появился инструмент, позволяющий проверить действительность таких выписок.
Перейти на официальный сайт удостоверяющего центра Росреестра
- Чтобы просмотреть SIG-файл на сайте Росреестра, откройте страницу удостоверяющего цента.
- В поле выбора электронной подписи нажмите кнопку «Выберите файл».
- На своём компьютере выберите файл SIG и нажмите «Открыть».
- Далее снова потребуется нажать кнопку «Выберите файл», только на этот раз в поле исходного документа.
- В открывшемся окне выберите подписанный документ, в нашем случае это ZIP-архив. Загрузите его на сайт кнопкой «Открыть».
- Кликните «Проверить» и перед вами появятся данные о вашем файле SIG.
Вставить подпись в pdf или как спасти деревья
В век перехода к цифровому документообороту появляются курьёзные случаи когда цифровизация вроде есть, а вроде и нет. Одним из таких случаев оказалась ситуация, когда сотрудники распечатывали договор, присланный на электронную почту, ставили на распечатке факсимиле или печать, затем сканировали и отправляли обратно.
Исправить данное недоразумение, мне представляется возможным двумя путями: переходом на цифровые подписи, что потребует изменений в ведении документооборота у обоих сторон, либо программной вставкой изображения печати. Ввиду невозможности влиять на документооборот клиентов пришлось использовать второй путь, программной вставки изображения в документ.
Существует множество программ для работы с pdf, но вставка изображений в них либо платная, либо лимитированная. Текущая же задача требует безлимитной возможности редактирования документов и максимально простого интерфейса, чтобы программой мог сходу пользоваться любой человек без какого-либо обучения.
Таким образом я решил написать свое приложение для вставки изображений в pdf, отвечающего всем указанным выше требованиям. А так-как размер приложения и скорость работы (в пределах разумного!) не являются ключевыми, мне представилось оптимальным написать приложение на python после чего завернуть его в исполняемый файл.
Итак, приложение. Для создания графического интерфейса использовался модуль tkinter, так-как он осваивается “на лету”, а внешний вид приложения был пожертвован в угоду скорости разработки. Таким образом получилось нечто такое:
Окно состоит всего из двух основных элементов: меню с кнопками и холста на котором будет размещено изображение документа. Так-как холст не может отображать pdf, для начала документ необходимо конвертировать в объект изображения. Для этих целей удобно использовать обертку над библиотекой poppler – pdf2image, которая имеет команду convert_from_path получающая путь к pdf файлу и возвращающая объект изображения. Далее, для удобства использования, изображение сжимается для размера холста (я выбрал размер 768*768 пикселей) по формуле коэф. масштабирования = размер холста / max(длина изображения, ширина изображения). После чего на холст добавляется изображение печати, которое можно перетаскивать по холсту. Таким образом получилось следующая картина:
Теперь переходим к сохранению готового документа. Изначально была идея просто вставить картинку в исходный pdf файл и для этих целей был найден модуль reportlab, но в ходе экспериментов с ним выяснилось, что pdf файлы имеют несколько иную координатную сетку, начинающуюся с левого нижнего угла, но при этом, некоторые документы имели сетку с началом в левом верхнем углу. Чтобы глубоко не вникать в особенности реализации pdf файлов, было решено просто конвертировать изображение обратно в pdf, благо это умеет делать модуль PIL, который уже использовался, для масштабирования изображений ранее. В остальном сохранение происходит по следующему сценарию: берется исходное изображение (не масштабированное), с помощью функции tkinter-а ‘coord’ находятся текущее координаты печати, координаты умножаются на коэф. масштабирования и печать размещается на документе (функция paste класса PIL Image). Таким образом документы не теряют в качестве и ни в чем не уступают отсканированным.
На этом этапе приложение было готово к работе, но возникала проблема с отсутствием python на пользовательских компьютерах. Для решения этой задачи использовался pyinstaller, который заворачивает код и интерпретатор python в один исполняемый файл. Здесь возникает только один нюанс: так-как приложение для открытия pdf требует установленной библиотеки poppler, нужно либо упаковать библиотеку внутрь exe файла, либо положить рядом с exe файлом. И в первом и во втором случае если собирать приложение с командой -noconsole путь до библиотеки не находится, так что пришлось оставить висящее окошко консоли при работе с приложением. На этом все, код приложения:
from tkinter import *
from tkinter import filedialog
from PIL import ImageTk, Image
from pathlib import Path
from pdf2image import convert_from_path
import os
canvas_size = 768
document_type = (("document file", "*.jpg *.jpeg *.pdf"),
("pdf files", "*.pdf"), ("image files", "*.jpg *.jpeg"))
sign_type = (("stamp file","*.png"),)
class DocCanv(Canvas):
#Document
DocumentList=None
DocumentImage = None
DocResize = 1
DocImgLink = None
CurentPage=0
#Signature
SignImage = None
SignResize = DocResize
SignImgLink = None
SignObj = None
def DocFile(self, use_in_func=False):
if use_in_func is False:
doc_path = filedialog.askopenfilename(filetypes=document_type)
if (Path(doc_path).suffix).lower() == '.pdf':
try:
#try to use poppler from pyinstaller bundle temp directory
self.DocumentList=convert_from_path(doc_path, poppler_path = os.path.join(sys._MEIPASS, "poppler") )
except:
#reserve for poppler
self.DocumentList=convert_from_path(doc_path, poppler_path = "poppler" )
self.DocumentImage=self.DocumentList[0]
else:
self.DocumentImage = Image.open(doc_path)
self.DocumentList = [self.DocumentImage]
(width, height) = self.DocumentImage.size
self.DocResize = canvas_size / max(height, width)
self.DocImgLink=ImageTk.PhotoImage(
self.DocumentImage.resize((int(width * self.DocResize), int(height * self.DocResize)), Image.ANTIALIAS))
self.create_image(0, 0, image=self.DocImgLink, anchor=NW)
def SignFile(self, sign_path=None):
if self.SignImage is not None:
self.MergeFile()
self.DocFile(True)
if sign_path is None:
sign_path = filedialog.askopenfilename(filetypes = sign_type)
self.SignImage = Image.open(sign_path)
(width, height) = self.SignImage.size
self.SignResize=self.DocResize
self.SignImgLink=ImageTk.PhotoImage(
self.SignImage.resize((int(width * self.SignResize), int(height * self.SignResize)), Image.ANTIALIAS))
self.SignObj = self.create_image(0, 0, image=self.SignImgLink, anchor=NW)
def MoveSign(self, event):
self.coords(self.SignObj, event.x, event.y)
def ResizeSign(self, event):
if event.delta > 0:
self.SignResize = self.SignResize 0.1
else:
self.SignResize = self.SignResize - 0.1
(width, height) = self.SignImage.size
self.SignImage.resize((int(width * self.SignResize), int(height * self.SignResize)), Image.ANTIALIAS)
self.SignImgLink=ImageTk.PhotoImage(
self.SignImage.resize((int(width * self.SignResize), int(height * self.SignResize)), Image.ANTIALIAS) )
x, y = self.coords(self.SignObj)
self.SignObj = self.create_image(x, y, image=self.SignImgLink, anchor=NW)
def MergeFile(self):
sign_coords =self.coords(self.SignObj)
sign_coords = [(int)(x / self.DocResize) for x in sign_coords]
(width, height) = self.SignImage.size
width=int((width * self.SignResize)/self.DocResize)
height=int((height * self.SignResize) / self.DocResize)
ResizedSign=self.SignImage.resize((width,height), Image.ANTIALIAS)
self.DocumentImage.paste(ResizedSign, box=sign_coords , mask=ResizedSign.convert('RGBA'))
def SaveFile(self,f_type="jpg"):
try:
self.MergeFile()
except:
pass
SavePath=filedialog.asksaveasfilename()
if (SavePath.split('.'))[-1]!=f_type:
SavePath=(SavePath.split('.'))[0] '.' f_type
if f_type == 'pdf':
self.DocumentList[0].save(SavePath,save_all=True,append_images=self.DocumentList[1:])
else:
self.DocumentImage.save(SavePath)
def NextPage(self):
try:
self.MergeFile()
self.DocumentList[self.CurentPage]=self.DocumentImage
except:
pass
if (len(self.DocumentList)-1) > self.CurentPage:
self.CurentPage =1
self.DocumentImage=self.DocumentList[self.CurentPage]
self.SignImage = None
self.SignImgLink = None
self.SignObj = None
self.DocFile(True)
def PrevPage(self):
try:
self.MergeFile()
self.DocumentList[self.CurentPage]=self.DocumentImage
except:
pass
if self.CurentPage>0:
self.CurentPage-=1
self.DocumentImage=self.DocumentList[self.CurentPage]
self.SignImage = None
self.SignImgLink = None
self.SignObj = None
self.DocFile(True)
root = Tk()
root.title("Documents signer")
DocCan = DocCanv(root, width=canvas_size, height=canvas_size)
DocCan.pack(side='right', fill=BOTH, expand=1)
MenuFrame = Frame(root, width=120, bg='gray22')
MenuFrame.pack(side='right', fill=Y)
OpenDocBtn = Button(MenuFrame, text='Open Document',command=DocCan.DocFile)
OpenDocBtn.pack(fill=X, padx=5,pady=3)
SignDocBtn = Button(MenuFrame, text='Open sign',command=DocCan.SignFile)
SignDocBtn.pack(fill=X, padx=5,pady=3)
SavePDFBtn = Button(MenuFrame, text='Save as pdf',command = lambda arg1=DocCan, arg2='pdf': DocCanv.SaveFile(arg1,arg2))
SavePDFBtn.pack(fill=X, padx=5,pady=3)
SaveJPGBtn = Button(MenuFrame, text='Save as jpg',command = lambda arg1=DocCan, arg2='jpg': DocCanv.SaveFile(arg1,arg2))
SaveJPGBtn.pack(fill=X, padx=5,pady=3)
NextPageBtn = Button(MenuFrame, text='Next page',command = DocCan.NextPage)
NextPageBtn.pack(fill=X, padx=5,pady=3)
PrevPageBtn = Button(MenuFrame, text='Prev page',command = DocCan.PrevPage)
PrevPageBtn.pack(fill=X, padx=5,pady=3)
DocCan.bind("<B1-Motion>", DocCan.MoveSign)
DocCan.bind("<MouseWheel>", DocCan.ResizeSign)
root.mainloop()
Ссылка на git с готовым приложением
Как поставить подпись в pdf-документе
В условиях «удаленки» большинство контрактов с подрядчиками заключается методом отправки сканов с подписью и печатью организации. Однако печать, подписание и сканирование документа порой отнимает так много ресурсов! Посчитайте, какое количество времени и сколько бумаги приходится тратить на эти рутинные операции. В этой статье мы расскажем, как сохранить лес, помочь экологии и сберечь собственные силы с помощью одной замечательной программы!
Теперь для подписания формы PDF достаточно ввести, нарисовать или вставить изображение своей подписи и даже печати организации. Также разработчики Adobe добавили возможность вставки текста рядом с подписью (например, расшифровки подписи, даты). При сохранении введенные данные моментально станут частью документа.
- Установите на смартфон мобильное приложение Adobe Acrobat Reader, запустите его, войдите в свой аккаунт и сфотографируйте печать организации и подпись. Полученное фото не нужно будет загружать в компьютер! Оно будет автоматически загружено в Adobe Document Cloud и синхронизируется со всеми устройствами и приложениями вашей учетной записи.
- Вероятно, вам придется сделать это только в первый раз, ведь полученные фотографии останутся в программе и их останется только выбрать! Мобильное приложение необязательно, если у вас на компьютере уже есть изображение с печатью и подписью, например, если вы заранее его отсканировали.
- Попросите контрагента направить вам документы в формате PDF (или воспользуйтесь конвертером из одного формата документа в другой).
- Полученный документ pdf откройте, найдите значок с изображением пера на панели инструментов и нажмите на него.
- Далее нажмите Добавить подпись или Добавить инициалы. Подсказка — можно добавить подпись для проставления факсимиле подписи, а в инициалы добавить печать организации. Так будет удобнее оформлять документы.
- Наведите курсор на подсвеченное поле и щелкните на него. Выберите желаемый цвет подписи. По умолчанию вставляется подпись черным цветом. Убедитесь, что флажок «Сохранить исходный цвет подписи» снят.
- Нажмите на значок «Подписание» и выберите подпись и/или печать для вставки и нажмите на поле, куда их необходимо вставить. На этом этапе вы можете ввести, нарисовать подпись или выбрать из файл с изображением подписи или печати. Перенести подпись и печать в другое место документа можно, выделив их и передвигая стрелками. Также вы можете изменить их размер.
Готово! Теперь за несколько простых операций вы подписали документ!
Уважаемые пользователи! Данный материал носит исключительно информационный характер. «Ю-Софт» не является центром поддержки пользователей программы Adobe, по всем вопросам просим обращаться в официальный справочный центр Adobe. Спасибо за понимание!
Проверка работоспособности
После применения групповой политики Windows клиенты должны в автоматическом порядке получить сертификат. Если этого не произошло, стоит обратить внимание на:
- Отсутствие в правильной группе безопасности, которая указана в шаблоне;
- Отсутствие к ЦС необходимых сетевых портов от клиента. Напомню, это tcp/135 (RPC) и динамические порты tcp/49152—65535.
Проверить что сертификат был успешно выпущен можно в консоли ADCS:
При следующем RDP подключении, стоит обратить внимание на наличие «замка» в верхнем меню RDP подключения. Нажав на этот «замок» можно удостоверится что используется нужный сертификат.
Создание шаблона сертификата rdp в adcs
Первый шаг состоит в создании шаблона сертификата, с помощью которого Windows клиенты будут автоматически генерировать сертификаты используемые в RDP подключениях. Для этого в оснастке ADCS переходим к управлению шаблонами сертификатов:
Дублируем сертификат Computer
Задаем имя будущего шаблона:
Указываем настройки совместимости:
В Extensions, необходимо задать правильные Application Policies для поддержки TLS в RDP протоколе
Для этого удаляем Client Authentication и Server Authentication и добавляем Remote Desktop Authentication с OID 1.3.6.1.4.1.311.54.1.2, как показано на скриншоте:
Далее, необходимо задать группу безопасности, члены которой должны автоматически сгенерировать сертификат по этому шаблону. Для этого добавляем нужную группу безопасности в DACL и назначаем соответствующие права:
Завершающим шагом будет его выпуск на выдающем корпоративном ЦС:
Установка своего сертификата для rdp
Чисто для себя заметка
Можно ли каким-то образом, в клиентской винде не входящей в AD, для сервера удалённых рабочих столов установить свой сертификат?
Немного подробнее:
После запуска службы (или если она у вас запущена, то после установки соответствующей галки на вкладке “Удалённый доступ” ) “Службы удаленных рабочих столов” создаётся самоподписанный сертификат (который помещается в хранилище Удалённый рабочий стол > Сертификаты) – хотелось бы его заменить на свой.
Чего только не перепробовал, но после удаления сертификата и перезапуска “Службы удаленных рабочих столов” создаётся новый самоподписанный сертификат, а все мои игнорируются.
1. Идем (gpedit.msc) по пути PC ConfigurationAdministrative TemplatesWindows ComponentsRemote Desktop ServicesRemote Desktop Session HostSecurity: Require use of specific security layer for remote (RDP) connections выбираем SSL (TLS 1.0).
2. Импортируем сертификат в “Сертификаты (локальный компьютер)PersonalRegistryCertificates. Сертификат должен быть в формате PKCS12 (.p12). Выбираем, щелчок – All Tasks – Manage Private Keys… Добавляем NETWORK SERVICE (права Чтение). Сохраняем.
3. Идем в реестр “HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp”, добавляем Binary Value (Value name: SSLCertificateSHA1Hash ; Value data: <отпечаток сертификата/certificate thumbprint>). Сохраняем.
4. Идем в “Сертификаты (локальный компьютер)”Remote DesktopRegistryCertificates. Удаляем сертификат ПК. Перезагружаем ПК. (Сертификат ПК создастся заново автоматом (после рестарта компьютера), но использоваться уже не будет).
Собственно все!
terasto
Спасибище!
Цитата:
Добавляем NETWORK SERVICE (права Чтение).
Про это я не знал!
Цитата:
Идем в реестр … добавляем Binary Value (Value name: SSLCertificateSHA1Hash ; Value data: <отпечаток сертификата/certificate thumbprint>).
Для этого дела есть скрипт – запускать с такими параметрами:
Код:
cscript rdconfig.js <thumbprint of your certificate>
(если лень пробелы их хеша убирать, то можно в кавычки его)
§
Чисто для себя заметка
Можно ли каким-то образом, в клиентской винде не входящей в AD, для сервера удалённых рабочих столов установить свой сертификат?
Немного подробнее:
После запуска службы (или если она у вас запущена, то после установки соответствующей галки на вкладке “Удалённый доступ” ) “Службы удаленных рабочих столов” создаётся самоподписанный сертификат (который помещается в хранилище Удалённый рабочий стол > Сертификаты) – хотелось бы его заменить на свой.
Чего только не перепробовал, но после удаления сертификата и перезапуска “Службы удаленных рабочих столов” создаётся новый самоподписанный сертификат, а все мои игнорируются.
1. Идем (gpedit.msc) по пути PC ConfigurationAdministrative TemplatesWindows ComponentsRemote Desktop ServicesRemote Desktop Session HostSecurity: Require use of specific security layer for remote (RDP) connections выбираем SSL (TLS 1.0).
2. Импортируем сертификат в “Сертификаты (локальный компьютер)PersonalRegistryCertificates. Сертификат должен быть в формате PKCS12 (.p12). Выбираем, щелчок – All Tasks – Manage Private Keys… Добавляем NETWORK SERVICE (права Чтение). Сохраняем.
3. Идем в реестр “HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp”, добавляем Binary Value (Value name: SSLCertificateSHA1Hash ; Value data: <отпечаток сертификата/certificate thumbprint>). Сохраняем.
4. Идем в “Сертификаты (локальный компьютер)”Remote DesktopRegistryCertificates. Удаляем сертификат ПК. Перезагружаем ПК. (Сертификат ПК создастся заново автоматом (после рестарта компьютера), но использоваться уже не будет).
Собственно все!
terasto
Спасибище!
Цитата:
Добавляем NETWORK SERVICE (права Чтение).
Про это я не знал!
Цитата:
Идем в реестр … добавляем Binary Value (Value name: SSLCertificateSHA1Hash ; Value data: <отпечаток сертификата/certificate thumbprint>).
Для этого дела есть скрипт – запускать с такими параметрами:
Код:
cscript rdconfig.js <thumbprint of your certificate>
(если лень пробелы их хеша убирать, то можно в кавычки его)
§
Чисто для себя заметка
Можно ли каким-то образом, в клиентской винде не входящей в AD, для сервера удалённых рабочих столов установить свой сертификат?
Немного подробнее:
После запуска службы (или если она у вас запущена, то после установки соответствующей галки на вкладке “Удалённый доступ” ) “Службы удаленных рабочих столов” создаётся самоподписанный сертификат (который помещается в хранилище Удалённый рабочий стол > Сертификаты) – хотелось бы его заменить на свой.
Чего только не перепробовал, но после удаления сертификата и перезапуска “Службы удаленных рабочих столов” создаётся новый самоподписанный сертификат, а все мои игнорируются.
1. Идем (gpedit.msc) по пути PC ConfigurationAdministrative TemplatesWindows ComponentsRemote Desktop ServicesRemote Desktop Session HostSecurity: Require use of specific security layer for remote (RDP) connections выбираем SSL (TLS 1.0).
2. Импортируем сертификат в “Сертификаты (локальный компьютер)PersonalRegistryCertificates. Сертификат должен быть в формате PKCS12 (.p12). Выбираем, щелчок – All Tasks – Manage Private Keys… Добавляем NETWORK SERVICE (права Чтение). Сохраняем.
3. Идем в реестр “HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp”, добавляем Binary Value (Value name: SSLCertificateSHA1Hash ; Value data: <отпечаток сертификата/certificate thumbprint>). Сохраняем.
4. Идем в “Сертификаты (локальный компьютер)”Remote DesktopRegistryCertificates. Удаляем сертификат ПК. Перезагружаем ПК. (Сертификат ПК создастся заново автоматом (после рестарта компьютера), но использоваться уже не будет).
Собственно все!
terasto
Спасибище!
Цитата:
Добавляем NETWORK SERVICE (права Чтение).
Про это я не знал!
Цитата:
Идем в реестр … добавляем Binary Value (Value name: SSLCertificateSHA1Hash ; Value data: <отпечаток сертификата/certificate thumbprint>).
Для этого дела есть скрипт – запускать с такими параметрами:
Код:
cscript rdconfig.js <thumbprint of your certificate>
(если лень пробелы их хеша убирать, то можно в кавычки его)
Цифровая подпись драйвера в windows
В операционных системах Windows, начиная с версии Vista, все драйверы устройств должны иметь цифровую подпись. В этой публикации о том, как можно выйти из ситуации. Возможно ли подписать драйвер своими силами?
Переломным моментом стал выход пакета обновления SP1 для Windows Vista, поскольку до него оставалась возможность отключения проверки подписей. В командной строке необходимо было выполнить:
bcdedit /set loadoptions DDISABLE_INTEGRITY_CHECKS
С выходом различных заплаток и пакетов обновления это «правильное» отключение было заблокировано разработчиками Microsoft. Однако остались и другие методы, позволяющие использовать драйверы устройств, не имеющие цифровой подписи.
Самый доступный и очевидный — это ручной метод, предусматривающий нажатие клавиши «F8» на начальном этапе загрузки операционной системы. В появляющемся меню загрузчика присутствует пункт «Отключение обязательной проверки подписи драйверов». Конечно же, чтобы работать с неподписанными драйверами устройств в таком режиме, требуется каждый раз во время загрузки выполнять данное действие, что, согласитесь, в конечном итоге может сильно надоесть. Именно по этой причине данный метод был усовершенствован.
Как-то я уже рассказывали про программу ReadyDriver Plus, которая способна автоматизировать ручной способ. Она интегрируется в стандартный загрузчик Windows Vista, после чего во время каждой загрузки автоматически выбирает пункт меню «Отключение обязательной проверки подписи драйверов». К сожалению, применение данной программы нельзя назвать полностью безопасным, ведь одна производит модификацию системных файлов. К тому же, как выяснилось, программа не работает в новой операционной системе Windows 7, хотя возможно, что её автор в будущем выпустит совместимую версию.
К счастью, существует еще один метод, предназначенный для разработчиков драйверов. Ведь очевидно, что они не могут предоставлять каждую бету версию своих драйверов для подписи в Microsoft. Именно по этой причине в Windows Vista, а также в новой операционной системе Windows 7 встроен тестовый режим. Он позволяет разработчикам протестировать их программный код еще до того, как он будет отправлен в лабораторию Microsoft. Правда, здесь тоже есть один нюанс. Даже в тестовом режиме системные файлы драйверов должны получить свидетельство, прежде чем их можно будет установить. Благо, на помощь пришли энтузиасты со своей программой Driver Signature Enforcement Overrider (DSEO). Она позволяет создавать свои собственные непроверенные свидетельства.
Таким образом, суть метода относительно проста. Требуется лишь включить тестовый режим в операционной системе и для всех драйверов устройств, не имеющих цифровой подписи, при помощи программы Driver Signature Enforcement Overrider получить свидетельства. Радует то, что при этом полностью отсутствуют риски привести операционную систему к нерабочему состоянию. Ведь от нас не требуется изменение загрузчика или других её системных файлов. Используется штатный метод, специально предусмотренный Microsoft. Единственное неудобство, которое вы получите, будет заключаться в том, что на рабочем столе возле часов будет выводиться маленькая надпись, сообщающая версию билда операционной системы.
Программа Driver Signature Enforcement Overrider работает как с 32-битными, так и с 64-битными операционными системами. Перед использованием необходимо обязательно отключить контроль учетных записей пользователей (UAC). Инсталляция программы не требуется, просто скачайте её и запустите. Интерфейс предельно прост, и вся работа осуществляется в виде мастера.
Согласитесь с тем, что вы используете данную программу на свой страх и риск, нажав соответствующую кнопку. Я, как и разработчики программы, не несём никакой ответственности за любой вызванный ущерб. Хотя, как уже было отмечено, программа использует штатный режим операционной системы и не может навредить сама по себе. Над чем действительно стоит задуматься, так это над тем, а стоит ли вообще использовать драйверы устройств, не имеющие цифровой подписи. Насколько они будут корректно работать? Доверяете ли вы их разработчику и источнику?
Включите тестовый режим, установив переключатель в положение «Enable Test Mode». Кстати, обратите внимание, что здесь же предусмотрено обратное действие «Disable Test Mode», отключающее тестовый режим.
Теперь нужно добавить подписи для непроверенных системных файлов. Для этого выберите «Sign a System File» и введите имя файла, включая полный путь. Например, если файл драйвера ATITool64.sys
расположен в каталоге C:WindowsSystem32Drivers
, то вам необходимо указать C:WindowsSystem32DriversATITool64.sys
.
В случае если необходимо подписать несколько файлов, то просто повторите эту процедуру несколько раз.
Вот собственно и все. После перезапуска компьютера драйверы будут работать. Если, конечно, они на это способны. Мы ведь просто решаем вопрос подписания дрйверов. А вот подходят ли они к вашему оборудованию и т.д. — это совсем другое.