Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline TsDmitry  
#1 Оставлено : 6 апреля 2008 г. 17:07:31(UTC)
TsDmitry

Статус: Новичок

Группы: Участники
Зарегистрирован: 06.04.2008(UTC)
Сообщений: 1
Откуда: Москва

Здравствуйте!

В криптопровайерах от SUN и некоторых других есть возможность хранить
ключи в двух эквивалентных формах - спецификация ключа и сам ключ.
С помощью метода getEncoded() можно получать материал ключа и переводить его
в нужный объект. В спецификацию - созданием SecretKeySpec, а в ключ при помощи SecretKeyFactory.

Код:


        SecretKey keyFirst = KeyGenerator.getInstance("DES").generateKey();
        byte rawFirst[] =  keyFirst .getEncoded();
        
        SecretKeySpec spec = new SecretKeySpec(rawFirst, "DES");
        SecretKey keySecond = SecretKeyFactory.getInstance("DES").generateSecret(spec);
        byte rawSecond[] =keySecond.getEncoded();

        byte message[] = "example".getBytes();
        
        Cipher cipher = Cipher.getInstance("DES/CFB/PKCS5Padding");
        cipher.init(Cipher.ENCRYPT_MODE, keyFirst );
        byte encrypted[] = cipher.doFinal(message);
        
        cipher.init(Cipher.DECRYPT_MODE, keySecond);
        byte decrypted[] = cipher.doFinal(encrypted);
        

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

Таким образом можно хранить ключевой метериал и информацию об алгоритме в зашифрованном виде в
какой-нибудь БД.
Есть ли в КроптоПро возможность организовать что-то похожее?

Отредактировано пользователем 15 сентября 2008 г. 20:33:45(UTC)  | Причина: Не указана

Offline Русев Андрей  
#2 Оставлено : 5 мая 2008 г. 15:34:59(UTC)
Русев Андрей

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,271

Сказал(а) «Спасибо»: 22 раз
Поблагодарили: 446 раз в 325 постах
СКЗИ должны обеспечивать заданный уровень надёжности применяемых криптографических преобразований информации, определяемый значением допустимой вероятности неисправностей или сбоев, приводящих к получению злоумышенником дополнительной информации о криптографическом преобразовании. К сожалению, на данный момент аппаратные средства для хранения и обработки данных не обладают достаточной надёжностью, поэтому приходится хранить ключ разделённым на две части (маскированный ключ и маску). Причём маскированный ключ и маска по отдельности не дают злоумышленнику никакой информации о ключе. В таком виде ключ находится и на контейнере, и в памяти компьютера, а в открытом виде - только на регистрах процессора. Также есть ряд других ограничений, касающихся персональной ответственности за ключевую информацию. Таким образом, ключи нельзя хранить ни в одном файле, ни в базе данных, ни передавать по сети, даже в зашифрованном виде.
Официальная техподдержка. Официальная база знаний.
Offline Serge3leo  
#3 Оставлено : 8 мая 2008 г. 6:38:00(UTC)
Serge3leo

Статус: Активный участник

Группы: Участники
Зарегистрирован: 28.01.2008(UTC)
Сообщений: 40
Мужчина
Откуда: Москва

Поблагодарили: 3 раз в 2 постах
olin написал:
СКЗИ должны обеспечивать заданный уровень надёжности применяемых криптографических преобразований информации, определяемый значением допустимой вероятности неисправностей или сбоев, приводящих к получению злоумышенником дополнительной информации о криптографическом преобразовании. К сожалению, на данный момент аппаратные средства для хранения и обработки данных не обладают достаточной надёжностью, поэтому приходится хранить ключ разделённым на две части (маскированный ключ и маску). Причём маскированный ключ и маска по отдельности не дают злоумышленнику никакой информации о ключе. В таком виде ключ находится и на контейнере, и в памяти компьютера, а в открытом виде - только на регистрах процессора.

Мало того, есть исполнения СКЗИ, когда и на регистрах процессора их нет. :)
olin написал:
Также есть ряд других ограничений, касающихся персональной ответственности за ключевую информацию. Таким образом, ключи нельзя хранить ни в одном файле, ни в базе данных, ни передавать по сети,

Всё правильно.
olin написал:
даже в зашифрованном виде.

А здесь не совсем, "персональная ответственность" устанавливается для долговременных ключей, например, закрытый ключ ЭЦП, ключ центра обработки смарт-карт и др.

Однако есть ключи сессий для шифрования и/или имитозащиты данных, которые по своей природе разделяются участниками взаимодействия (например, ключи TLS соединения или ключ шифрования файла (FEK) в EFS и др.), соответственно для них невозможно установить строгую "персональную ответственность", только "коллективную". Вот такие ключи можно (нужно) хранить и/или передавать по сети, разумеется, в защищённом виде, таком, что только участники данного конкретного взаимодействия могли бы ими воспользоваться.

По существу вопроса TsDmitry, такая возможность есть:
- в принципе, Вы можете импортировать/экспортировать (wrap/unwrap) одни ключи на других;
- это делать не желательно, без особой на то необходимости, и без соответствующего анализа;
- кроме того лучше использовать криптографические функции достаточно высокого уровня (например, CMS/PKCS#7), иначе очень высок риск ошибки. Поэтому обязательно следует выполнять криптографический анализ, например, шифровать данные в режиме ECB строго запрещено (что в США, что у нас), даже в примере (это как не стоит показывать на себе, как делать харакири, кухонным ножом - примета плохая). А в качестве упражнения: исправьте своё сообщение на пример с шифрованием/расшифрованием в режиме CFB со случайной синхропосылкой (IV); ?-)

Отредактировано пользователем 8 мая 2008 г. 7:02:16(UTC)  | Причина: Не указана

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.