Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Безопасность данных: ЭЦП / 10 сообщений из 10, страница 1 из 1
18.07.2007, 09:48
    #34665998
Dmitry Zhukov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность данных: ЭЦП
Добрый день всем!
Вопрос вот какой:
хочу организовать средствами ЭЦП подпись некоторых данных в таблицах PostgreSQL.
Имеется информационная система, в которой каждому пользователю выдается 2 ключа - открытый и закрытый (например, сгенерированных средствами openssl). Можно ли штатными средствами PostgreSQL сделать асимметричное шифрование данных? Если да, какие есть для этого функции, где что можно почитать?


Заранее всем спасибо за помощь!
...
Рейтинг: 0 / 0
18.07.2007, 10:42
    #34666226
Dan Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность данных: ЭЦП
можно глянуть в contrib/pgcrypto и посмотреть, что там есть

Код: plaintext
1.
----------------------------
 Verba volent, scripta manent 
...
Рейтинг: 0 / 0
18.07.2007, 12:26
    #34666645
Ми
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность данных: ЭЦП
Интересная тема. Вот что есть в документации:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
 5 . 4 .  pgp_pub_encrypt(data, pub_key)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  pgp_pub_encrypt(data text, key bytea [, options text] ) RETURNS bytea
  pgp_pub_encrypt_bytea(data bytea, key bytea [, options text] ) RETURNS bytea
Encrypt data with a public key.  Giving this function a secret key will
produce a error.
Options are described in section  5 . 8 .
 5 . 5 .  pgp_pub_decrypt(msg, sec_key [, psw])
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  pgp_pub_decrypt(msg bytea, key bytea [, psw text [, options text]] ) \
  RETURNS text
  pgp_pub_decrypt_bytea(msg bytea, key bytea [,psw text [, options text]] ) \
  RETURNS bytea
Decrypt a public-key encrypted message with secret key.  If the secret
key is password-protected, you must give the password in `psw`.  If
there is no password, but you want to specify option for function, you
need to give empty password.
Decrypting bytea data with `pgp_pub_decrypt` is disallowed.
This is to avoid outputting invalid character data.  Decrypting
originally textual data with `pgp_pub_decrypt_bytea` is fine.

Хотя мне не вполне понятно, как это должно работать в случае с базой данных.
Есть пользователи А, B, C, у каждого пара - открытый/закрытый ключ. Открытый ключ каждого пользователя должен быть известен всем другим пользователям. Пользователь А добавляет данные в базу. При этом он шифрует их открытым ключом (ОК) - но не своим (тогда их никто не расшифрует, кроме него самого :)), а либо ОК пользователя B, либо ОК пользователя С. В любом случае расшифровать данные сможет только владелец соответствующего закрытого ключа....
Или че-то я неправильно понимаю....
...
Рейтинг: 0 / 0
18.07.2007, 12:44
    #34666725
Dan Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность данных: ЭЦП
вроде верно написано.
а в чём затруднение?

Код: plaintext
1.
----------------------------
 Verba volent, scripta manent 
...
Рейтинг: 0 / 0
18.07.2007, 12:48
    #34666738
Dan Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность данных: ЭЦП
2 Ми
... правда, принцип работы ЭЦП немного другой
но если требуется обычное шифрование, то описание верное

Код: plaintext
1.
----------------------------
 Verba volent, scripta manent 
...
Рейтинг: 0 / 0
18.07.2007, 13:24
    #34666920
Dmitry Zhukov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность данных: ЭЦП
МиИнтересная тема. Вот что есть в документации:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
 5 . 4 .  pgp_pub_encrypt(data, pub_key)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  pgp_pub_encrypt(data text, key bytea [, options text] ) RETURNS bytea
  pgp_pub_encrypt_bytea(data bytea, key bytea [, options text] ) RETURNS bytea
Encrypt data with a public key.  Giving this function a secret key will
produce a error.
Options are described in section  5 . 8 .
 5 . 5 .  pgp_pub_decrypt(msg, sec_key [, psw])
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  pgp_pub_decrypt(msg bytea, key bytea [, psw text [, options text]] ) \
  RETURNS text
  pgp_pub_decrypt_bytea(msg bytea, key bytea [,psw text [, options text]] ) \
  RETURNS bytea
Decrypt a public-key encrypted message with secret key.  If the secret
key is password-protected, you must give the password in `psw`.  If
there is no password, but you want to specify option for function, you
need to give empty password.
Decrypting bytea data with `pgp_pub_decrypt` is disallowed.
This is to avoid outputting invalid character data.  Decrypting
originally textual data with `pgp_pub_decrypt_bytea` is fine.

Хотя мне не вполне понятно, как это должно работать в случае с базой данных.
Есть пользователи А, B, C, у каждого пара - открытый/закрытый ключ. Открытый ключ каждого пользователя должен быть известен всем другим пользователям. Пользователь А добавляет данные в базу. При этом он шифрует их открытым ключом (ОК) - но не своим (тогда их никто не расшифрует, кроме него самого :)), а либо ОК пользователя B, либо ОК пользователя С. В любом случае расшифровать данные сможет только владелец соответствующего закрытого ключа....
Или че-то я неправильно понимаю....

Ну для организации защищенного канала связи описанная Вами технология подходит. Мне же нужно было организацию ЭЦП: есть строчка данных в БД. Например, делаем ее HASH (к стати, может кто знает есть ли в PostgreSQL реализация SHA1 ?), потом полученное значение шифруем закрытым ключом. А при проверки корректности хранимых данных, делаем хэш строки, расшифровываем пользовательский хэш открытым ключом, сравниваем полученные результаты. Если они совпадают, то все ок, если нет - была попытка влома/подмены данных.

а за найденные материалы Вам спасибо - то что надо :) !
...
Рейтинг: 0 / 0
18.07.2007, 18:22
    #34668305
Ёш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность данных: ЭЦП
Dmitry Zhukovк стати, может кто знает есть ли в PostgreSQL реализация SHA1 ?эта реализация делается за одну минуту (спасибо перлу) :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
create or replace function sha1(val text) returns text
as $$
	use Digest::SHA1  qw(sha1_hex);

	my $data = $_[ 0 ];

	return sha1_hex($data);
$$
	language plperlu;
...
Рейтинг: 0 / 0
18.07.2007, 18:27
    #34668325
Dan Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность данных: ЭЦП
в контрибах всё есть...
Код: plaintext
1.
----------------------------
 Verba volent, scripta manent 
...
Рейтинг: 0 / 0
19.07.2007, 07:02
    #34668803
Dmitry Zhukov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность данных: ЭЦП
Dan Blackв контрибах всё есть...
Код: plaintext
1.
----------------------------
 Verba volent, scripta manent 


А можно немного попобробнее?
что такое contrib ? где его найти, и как с ним работать.
и Ми написал цитату из документации. Только вот я не нашел в стандартной PostgreSQL документации ничего из того, что он процитировал. Интересно, откуда он взял эти строки?
...
Рейтинг: 0 / 0
19.07.2007, 20:50
    #34671676
Shweik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Безопасность данных: ЭЦП
[mod] пусто-порожний треп и бессмысленные аттачменты которые наверняка есть в любом
архиве исходников сабжа версий 8.x.x в подкаталоге /postgresql-8.0.3/contrib/pg_crypto/ [mod]
2Dmitry Zhukov Если ты непонимаешь что такое contrib то вполне может оказаться что ты не
вкурсе что такое cvs ,svn , autoconf и configure. И тогда сначала тебе точно нужно в ясли для DBA.
И я тебе,Дима не гуру и не сэнсей,а скорее сэмпай который имеет право на эмоции и ошибки.
Так вот - насчёт архитектуры - я ошибся и извиняюсь -спутал тебя с Druxa. Впрочем то что
ты невсостоянии просеять дерево ихсдохников сервера вполне понятно и простительно... для человеку не знающего для чего преднезначены find и fgrep
Впрочем ты справился - так что поздравляю ещё раз извиняюсь за грубость и тему закрываю.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Безопасность данных: ЭЦП / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]