172 похожих чатов

Последний вопрос: будет ли дешифровка происходить на клиенте(libpq), или ключ

будет обрабатываться на сервере?

29 ответов

12 просмотров

Всё, что выполняется в виде sql-запросов, происходит на сервере, входные параметры и сам текст запроса, а также результаты запроса (если только вы не план строите с explain analyze) будут и на клиенте, и на сервере (в памяти).

Ale><ander- Автор вопроса
Radist
Всё, что выполняется в виде sql-запросов, происход...

это печально с точки зрения безопасности

Ale><ander
это печально с точки зрения безопасности

Дешифруйте на клиенте если хотите , что мешает?

Ale><ander- Автор вопроса
central hardware
Дешифруйте на клиенте если хотите , что мешает?

то, что его придётся переписывать, чего не хотелось бы, т.к. из меня плохой программист, хотелось бы обойтись настройкой....

Ale><ander
это печально с точки зрения безопасности

Вы клиенту доверяете больше чем серверу? У вас там мессенджер с end-to-end шифрованием или что? Мне кажется, в большинстве продуктов доверия больше к серверу, т.к. клиентам доступ имеют больше людей.

Ale><ander- Автор вопроса
Radist
Вы клиенту доверяете больше чем серверу? У вас там...

я не доверяю каналу связи, там симметричное шифрование, данные хранятся на сервере в зашифрованном виде, шифруются и дешефруются сейчас на клиенте средствами клиента, хочу переехать с одного клиента на другого, который не поддерживает шифрования, по этому хочу реализовать средствами postgresql

Ale><ander
я не доверяю каналу связи, там симметричное шифров...

Ну, добавьте TLS в канал связи. Для самоуспокоения.

Ale><ander- Автор вопроса
Ilya Anfimov
Ну, добавьте TLS в канал связи. Для самоуспокоени...

да, возможно, это вариант (а разве он не используется по умолчанию?), да, найти варианты можно, но с точки зрения безопасности -- удивлён что нет возможности обработки на стороне клиента.... хотя я понимаю, что с точки зрения sql это не совсем правильно.

Ale><ander
да, возможно, это вариант (а разве он не используе...

1) Нет, по умолчанию вообще SSL в pg_hba не написан, да и сертификатов надо положыть. 2) Потому, что постгрес — это SQL-сервер. Клиенты — это проблемы клиентов, он вообще этим не занимается.

Ale><ander
да, возможно, это вариант (а разве он не используе...

Например, есть масса клиентов, в которых нет вообще ни строчки из libpq и кода от сообщества. Тот жэ джавовский, плюс есть нативные клиенты на Tcl и вроде js.

Ale><ander- Автор вопроса
Ilya Anfimov
Например, есть масса клиентов, в которых нет вообщ...

так речь о нативной клиентской библиотеке, очевидно, что за сторонние клиенты сообщество не отвечает

Ale><ander
да, возможно, это вариант (а разве он не используе...

TLS -это дополнительные накладные расходы на транспорт, большинству это не нужно, т.к. обычно к субд подключаются по контролируемому каналу. Если надо подключаться "из интернета", то правильнее поднять vpn, чем светить наружу портом PostgreSQL (пусть даже с изменённым номером). Что касается обработки на стороне клиента - это вам к sqlite и т.п. решениям (но там и данные будут у клиента). Серверные реляционные субд выполняют запросы на сервере, на клиенте выполняются только действия, связанные с представлением получаемого от сервера потока байт в удобоваримую форму. Естественно, никто не мешает вам хранить в бд двоичные зашифрованные данные и на клиенте кодировать/закодировать, но при этом для субд это будет просто набором байт и, например, пофильтровать по ним уже не выйдет (кроме как проверки на равенство/неравенство).

Radist
TLS -это дополнительные накладные расходы на транс...

Судя по намёкам — vpn там ужэ есть, пвтор его просто в чём-то подозревает.

Ale><ander
так речь о нативной клиентской библиотеке, очевидн...

В нативной клиентской библиотеке не будут появляться фичи, трудно(не)реализуемые в сторонних клиентских библиотеках и относящиеся к непосредственно обработке данных. Это тупо снижает применимость субд.

Ale><ander- Автор вопроса
Ilya Anfimov
Судя по намёкам — vpn там ужэ есть, пвтор его прос...

да, сетка условно внутренняя, но внутри бегают аутентификационные данные, по этому лучше перестраховаться, да и от ИБ наверняка будут вопросы

Ale><ander- Автор вопроса
Radist
В нативной клиентской библиотеке не будут появлять...

ну кажется, это лишь полезное расширение функционала -- и оно достаточно легко реализуемо на любом клиенте, кажется, это стандартная фича, ну и особенно, если кому-то нужно аппаратное шифрование....

Ale><ander
ну кажется, это лишь полезное расширение функциона...

Шифрование канала есть в виде TLS (и его, по идее, должны поддерживать большинство клиентов), а шифровать отдельные значения - это несколько странная задача для (драйвера) субд. Если вам такое нужно - вы вольны делать это в коде, который непосредственно работает с драйвером.

Ale><ander- Автор вопроса
Radist
Шифрование канала есть в виде TLS (и его, по идее,...

да, наверное, Вы правы, просто я до последнего надеялся что в код лезть не придётся:)

Ale><ander
да, наверное, Вы правы, просто я до последнего над...

Вы понимаете, что есть ненулевой шанс что то, что вы прикрутите, будет уязвимее TLS-шифрования подключения между БД и клиентом?

Ale><ander- Автор вопроса
Radist
Вы понимаете, что есть ненулевой шанс что то, что ...

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

Ale><ander
я писал про стандартные механизмы шифрования, в то...

TLS - это стандартный поддерживаемый механизм

Ale><ander- Автор вопроса
Radist
TLS - это стандартный поддерживаемый механизм

tls это стандарт защиты канала, я же немного про другое -- про защиту данных, она может применяться для разных целей, от защиты от неавторизированных клиентов до каких-либо экзотических кейсов

Ale><ander
tls это стандарт защиты канала, я же немного про д...

Вот вы определитесь с векторами атаки, а то я когда спросил, кому вы больше доверяете, вы сказали, что опасаетесь перехвата данных в канале передачи.

Ale><ander- Автор вопроса
Radist
Вот вы определитесь с векторами атаки, а то я когд...

это мой кейс, да, и tls его решает, но если смотреть чуть шире, то возможны и другие кейсы, это я к тому, что данный функционал может быть востребован не только в моём единичном случае попытки скрещивания ежа и ужа:))

Любое секьюрити начинается с проработки оценки всесторонних потенциальных векторов атаки (в т.ч. тех, которые вы закрыли теми или иными средствами), их вероятностей, критичности и возможного ущерба. В т.ч. в некоторых случаях оценивают trade-off между возможностью безвозвратной потери данных и их утечки. В идеале, если секьюрити важна, это должен быть поддерживаемый (обновляемый и аудируемый) внутренний документ. А без такого подхода, у вас не от чего отталкиваться и вы либо оставляете части системы менее защищёнными чем следовало, либо занимаетесь оверинжинирингом (либо ваш архитектор - гений, интуитивно чувствующий такие вещи).

Ale><ander- Автор вопроса
Radist
Любое секьюрити начинается с проработки оценки все...

допустим база это DBaS, вполне себе типичная ситуация, разве не так?

Похожие вопросы

Обсуждают сегодня

читать файл максимально быстро? странный вопрос))
zamtmn
50
у меня такой вопрос про память в x86 возник, может кто пояснить?.. у процессора есть (как минимум) 3 типа адресов (названия "п1", "п2", "п3" --- мои, чтобы проще было дальше)...
Toideng
5
А какие расширения активно используются в промышленности? Именно идейные, по типу гадт, а не всякие оверлоадедстрингс
Степан
10
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
у процессора есть (как минимум) 3 типа адресов (названия "п1", "п2", "п3" --- мои, чтобы проще было дальше): - "п1" --- виртуальный адрес, то есть тот, который ресолвится в "п...
Toideng
3
Guys Who’s kurdish on this group?
Hiwa Amiri
11
Hello, I need a hand, this is my code: body: ExtendedImageGesturePageView.builder( scrollDirection: Axis.vertical, controller: _pageController, itemCou...
𝘞𝘦𝘢𝘳𝘪𝘯𝘨𝘔𝘦𝘥𝘢𝘭 🦋
2
In nodejs if you do something as follows const before = Date.now() async someDBIO() const after = Date.now()-before Ideally the after time would give you the time it spent i...
Omnipotent
3
Всем привет! Нужно найти номер позиции, с которой подстрока входит в строку. Код работает правильно за исключением случаев, когда две одинаковые буквы идут подряд (см. скрин)....
Ыиу
6
можно эстетический вопрос? у меня есть кучка мелких-мелких функций типа: function AddInteger(aparent:pointer; aname:PWideChar; aval:Int32):pointer; begin result:=AddNode(apa...
Alexey Kulakov
3
Карта сайта