LINUX.ORG.RU

Посоветуйте документацию по cipher'ам

 , , , ,


0

2

Доброго времени суток

Сабж.

Есть некоторое количество криптографических библиотек ( libssl, libcrypt, libgcrypt, наверняка и другие. Плюс код в ядре ), которые реализуют сотню или больше cipher'ов. И есть я, для которого название «ECDHE-RSA-AES256-GCM-SHA384» звучит как «тумба-юмба-723-ага»

Но зато у openssl есть крайне полезная утилитка ciphers, которая с ключами -v и -V покажет информацию по cipher'ам

router@rhea:~$ openssl ciphers -v -V | less
          0xC0,0x30 - ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AESGCM(256) Mac=AEAD
          0xC0,0x2C - ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AESGCM(256) Mac=AEAD
          0xC0,0x28 - ECDHE-RSA-AES256-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA384
          0xC0,0x24 - ECDHE-ECDSA-AES256-SHA384 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AES(256)  Mac=SHA384
          0xC0,0x14 - ECDHE-RSA-AES256-SHA    SSLv3 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA1
[...]
          0x00,0x12 - EDH-DSS-DES-CBC-SHA     SSLv3 Kx=DH       Au=DSS  Enc=DES(56)   Mac=SHA1
          0x00,0x09 - DES-CBC-SHA             SSLv3 Kx=RSA      Au=RSA  Enc=DES(56)   Mac=SHA1
И эта информация даже дилетанту вроде меня многое скажет. Что cipher характеризуется алгоритмом обмена ключами ( Kx ), алгоритмом аутентификации ( Au ), алгоритмом шифрования и силой шифра ( Enc ). И эта информация очень сильно облегчает жизнь и помогает ориентироваться в 80 cipher'ах, которые знает openssl. Не нужно гуглить по каждому конкретному cipher'у, достаточно в общих чертах понимать работу 6 Au, 7 Kx, 7 Enc и т.д.

По тому же openssl есть openssl cookbook (скачивается после регистрации), в котором среди прочего перечислены уже заведомо небезопасные Au, Kx, Enc, Mac. И это ещё сильнее ограничит список cipher'ов, которыми можно пользоваться. И после, сузив круг поиска, можно гуглить конкретный cipher или читать исходники.

Но openssl только для SSL/TLS. Для шифрования файлов в GnuPG используется libgcrypt, в cryptsetup - libcrypt, у них свои нескучные шифры. Можно ли для них получить полный список поддерживаемых cipher'ов и краткую справку?

Если нет, что стоит прочитать, чтобы начать в этом разбираться?

★★★★★

Последнее исправление: Klymedy (всего исправлений: 1)

Что cipher характеризуется алгоритмом обмена ключами ( Kx ), алгоритмом аутентификации ( Au ), алгоритмом шифрования и силой шифра ( Enc ).

Во-первых, вот этот агрегат принято называть не cipher (шифр), а cipher-suite (шифровальная систем), ибо состоит из нескольких разных алгоритмов. А под cipher обычно понимают симметрический алгоритм шифрования. Во-вторых, Enc - это не сила шифра, а как раз и есть тот самый cipher - алгоритм симметричного шифрования. И цифры, которые ты видишь в скобочках в Enc, это просто длинна ключа, которая хоть и кореллирует со стойкостью, но не есть стойкость.

Если нет, что стоит прочитать, чтобы начать в этом разбираться?

Я начинал читать с

http://www.amazon.com/SSL-Tls-Practice-Information-Security/dp/1596934476

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

Vovka-Korovka ★★★★★
()
Ответ на: комментарий от Vovka-Korovka

Спасибо, почитаю

Но похоже что эта книга посвящена SSL/TLS, с которыми я уже более-менее разобрался, и никак не поможет понять cipher'ы, например, GnuPG.

router ★★★★★
() автор топика
Ответ на: комментарий от router

А ты думаешь там другие алгоритмы используются ? Те же самые, из «специфичного» там только Эль-Гамаль - просто название для одной из реализации Диффи-Хеллмана, который используется и в SSL/TLS. Ну и область применения немного другая, но основа она одна.

Vovka-Korovka ★★★★★
()
Последнее исправление: Vovka-Korovka (всего исправлений: 1)
Ответ на: комментарий от Vovka-Korovka

Да. Проблема именно в том, как

1. получить полный список поддерживаемых библиотекой cipher'ов

2. перейти от названия cipher'а к используемым алгоритмам ( в примере выше «ECDHE-RSA-AES256-GCM-SHA384» => "[Kx=ECDH,Au=RSA,Enc=AESGCM(256),Mac=AEAD]"

router ★★★★★
() автор топика
Ответ на: комментарий от router

получить полный список поддерживаемых библиотекой cipher'ов

Я не специались по pgp, но судя по тому, что прочитал - там нету понятия cipher suite. В SSL при установлении соединения выполняется сразу несколько криптографических операций - аутентификация, обмен ключами, а затем идет шифрование с аутентификацией. В gpg утилите ты делаешь все операции отдельно, указывая нужный алгоритм для каждой операции. Ну а получить список поддерживаемых алгоритмов в том же gpt проще простого - достаточно просто вызвать help

$ gpg2 --help
gpg (GnuPG) 2.0.25
libgcrypt 1.5.4
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: ~/.gnupg
Поддерживаются следующие алгоритмы:
  с открытым ключом: RSA, ELG, DSA
  симметричные шифры: IDEA, 3DES, CAST5, BLOWFISH,
                      AES, AES192, AES256, TWOFISH, CAMELLIA128,
                      CAMELLIA192, CAMELLIA256
  хэш-функции: MD5, SHA1, RIPEMD160, SHA256, SHA384,
               SHA512, SHA224
  алгоритмы сжатия: без сжатия, ZIP, ZLIB,
                    BZIP2

Vovka-Korovka ★★★★★
()
Ответ на: комментарий от Vovka-Korovka

Во-первых, вот этот агрегат принято называть не cipher (шифр), а cipher-suite (шифровальная систем), ибо состоит из нескольких разных алгоритмов

Я не специались по pgp, но судя по тому, что прочитал - там нету понятия cipher suite. В SSL при установлении соединения выполняется сразу несколько криптографических операций - аутентификация, обмен ключами, а затем идет шифрование с аутентификацией. В gpg утилите ты делаешь все операции отдельно, указывая нужный алгоритм для каждой операции

Спасибо, со второго раза до меня всё-таки дошло, что я перепутал cipher с cipher-suite :) Тогда извини за глупые вопросы, в шифровании я слабо разбираюсь

router ★★★★★
() автор топика
Ответ на: комментарий от router

Да ничего страшного, обращайся :) Я сам долго въезжал и до сих пор специалистом себя не ощущаю.

Vovka-Korovka ★★★★★
()
11 мая 2015 г.

Твоим путём пойдёшь получишь: ECDH-ECDSA-AES256-GCM-SHA384

Есть чуть другой алгоритм поиска «правильного» метода шифрования.

1. Из списка удаляем все слабые.

2. Удаляем рекомендованные NSA (друзья Сновдена)

3. Шифруем 2 раза!!! Причём алгоритмами разработанными в разных странах, например в Европе и Японии.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.