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

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

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

29 ответов

31 просмотр

Всё, что выполняется в виде 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, вполне себе типичная ситуация, разве не так?

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

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

https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Ребят в СИ можно реализовать ООП?
Николай
33
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
core\config\database\connections\default.php На всякий случай проверь всё же файл <?php return [ 'driver' => env('DB_TYPE', 'mysql'), //$database_type 'host' => env('D...
Andrey K
2
Всем доброго вечера. Разрабатываю 32 раз. приложение в Delphi. Столкнулся с тем, что стандартный  TFilestream  не работает с большим файлом > 2 ГБайт (после вызова функции see...
Vadim Gl
16
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
добрый день. Подскажите, есть сайт на 1.4.7 и я хочу обновиться, особо ничего не меняя. мне выбирать версию 1.4.35 или третью ветку? и можно ли обновлять "как есть", или нужно...
Digital Cat
12
народ, плиз хелп, всю голову сломал себе уже... разве может быть так, что GetProcAddress( GetModuleHandle( "kernel32.dll" ), "SetThreadDescription" ) вернёт ненулевое значение...
Iluha Companets
12
Кто кодит под Лазарем на винде, у вас аналогично VCL переопределяются CreateWnd и CreateParams для конкретных классов контролов и все заданные флаги влияют?
А Андрей
11
Карта сайта