Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Практическая криптография

..pdf
Скачиваний:
6
Добавлен:
12.11.2023
Размер:
16.23 Mб
Скачать

Глава 25

Привлечение экспертов

Криптографии присуще одно странное свойство: каждый думает, что зна­ ет о ней достаточно для того, чтобы разрабатывать собственные системы. Мы никогда не попросим второкурсника физического факультета спроектировать атомную электростанцию. Мы бы никогда не легли под нож медсестры-ста­ жерки, объявившей, что она придумала революционный метод операций на сердце. Тем не менее, прочитав одну-две книги по криптографии, многие по­ чему-то начинают думать, что могут разработать собственную криптографи­ ческую систему. Что еще хуже, иногда им удается убедить руководство ком­ пании, предпринимателей, готовых идти на риск, и даже некоторых клиентов в том, что их система будет представлять собой самое удачное воплощение человеческой мысли со времен изобретения бутерброда.

Первая книга Брюса, Applied Cryptography [86, 87], является как самой популярной, так и самой печально известной среди криптографов. Она снис­ кала популярность за привлечение к криптографии внимания десятков тысяч людей. Печальную же известность ей принесли системы, которые эти люди пытались разработать и реализовать, прочитав ее.

В качестве одного из недавних примеров можно привести стандарт беспро­ водных сетей 802.11. Первоначальный стандарт включал в себя безопасный канал общения, который называется WEP (wired equivalent privacy — экви­ валент конфиденциальности проводных сетей) и применяется для шифро­ вания и аутентификации беспроводного обмена данными. Этот стандарт был разработан комитетом, в составе которого не было криптографов. Результат оказался ужасным. Решение использовать алгоритм шифрования RC4, воз­ можно, было и не самым удачным, но не таким уж роковым. Тем не менее RC4 — это поточный шифр, для работы которого требуется уникальная ока­ зия. Алгоритм WEP не выделял достаточного количества битов для оказии, в результате чего одно и то же значение оказии приходилось использовать несколько раз. Это, в свою очередь, привело к тому, что многие пакеты были

Глава 25. Привлечение экспертов

405

зашифрованы с помощью одного и того же ключевого потока. Безопасность поточного шифра RC4 была нарушена, и сообразительный злоумышленник мог без труда взломать шифр. Еще один, более тонкий момент состоял в сле­ дующем: система не проводила хэширования комбинации секретного ключа и оказии прежде, чем использовать ее в качестве ключа RC4, что в конце кон­ цов привело к осуществлению атак с восстановлением ключа [35]. Для аутен­ тификации применялась контрольная сумма CRC (cyclic redundancy check — контроль с помощью циклического избыточного кода), но, поскольку при ее подсчете используются линейные вычисления, подделать пакет и контроль­ ную сумму (с помощью аппарата линейной алгебры) не составляло труда, а обнаружить такую подделку было невозможно. Все пользователи сети при­ меняли один и тот же общий ключ, что значительно усложняло его обнов­ ление. Сетевой пароль непосредственно применялся для шифрования всех сообщений без использования какого-либо протокола согласования ключей. И наконец, по умолчанию шифрование было отключено. Это означало, что в большинстве реализаций никто не утруждался его включить. Алгоритм WEP не просто был взломан; он был взломан окончательно и бесповоротно.

Разработать замену WEP было нелегко, поскольку ее требовалось адап­ тировать к существующему аппаратному обеспечению. Но выбора не было: безопасность исходного стандарта оказалась отвратительной. Замена полу­ чила название WPA (wireless protected access — защищенный беспроводной доступ) и на момент выхода этой книги уже должна быть доступной.

История WEP — не исключение. Она привлекла к себе более присталь­ ное внимание прессы, чем остальные плохие криптографические алгоритмы, только из-за популярности стандарта 802.11, однако подобные ситуации мож­ но повсеместно наблюдать и в других системах. Как сказал однажды коллега Брюса: “В мире полно плохих систем безопасности, разработанных людьми, которые прочитали Applied Cryptography”.

Появление книги Практическая криптография, скорее всего, приведет к аналогичным результатам.

Все это делает нашу книгу крайне опасной. Всегда найдутся люди, кото­ рые, прочитав ее, попытаются разработать криптографический алгоритм или протокол. Готовый результат может выглядеть довольно неплохим и даже работоспособным, однако о безопасности этой системы лучше не говорить. Возможно, полученное решение окажется правильным на 70%. Возможно, разработчикам повезет, и оно окажется правильным даже на 90%. Но крип­ тография не терпит понятия “почти правильный”. Система безопасности на­ дежна настолько, насколько надежно ее самое слабое звено. Чтобы система была безопасной, правильным должно быть все. А этому нельзя научиться, просто читая книги.

406

Глава 25. Привлечение экспертов

Так для чего же мы написали эту книгу, если она приводит к появлению плохих систем? Мы написали ее потому, что люди, которые хотят научиться разрабатывать криптографические системы, должны где-то этому учиться, а других подходящих книг мы не знаем. Рассматривайте данную книгу как введение в разработку криптографических систем, хотя она и не является руководством или учебником. Мы также написали ее для других специали­ стов, участвующих в разработке системы. Каждая часть системы безопас­ ности играет критически важную роль, и все, кто работает над проектом, должны обладать базовым пониманием проблем безопасности и методов ее обеспечения. К числу этих людей относятся программисты, тестировщики, составители документации, руководство и даже персонал из отдела продаж. Каждый сотрудник должен иметь достаточное понимание проблем безопас­ ности, чтобы правильно выполнять свою работу. Мы надеемся, что данная книга снабдит вас адекватной информацией о практической стороне крипто­ графии.

Если вы не против получить хоть какой-нибудь дельный совет, вот он: по мере возможности всегда привлекайте к сотрудничеству экспертов в области криптографии. Если в проекте каким-либо образом задействован криптогра­ фический аппарат, вам не обойтись без опытного разработчика криптогра­ фических систем. Подключите его к работе в самом начале проекта. Чем раньше вы проконсультируетесь с экспертом в области криптографии, тем легче и дешевле обойдется разработка проекта. Довольно часто нас звали взглянуть на проект только затем, чтобы заткнуть “дыры” в частях систе­ мы, которые уже давно были спроектированы или реализованы. Конечный результат всегда обходился слишком дорого — либо в терминах затраченных усилий, срока сдачи проекта и денежных средств, либо в терминах безопас­ ности пользователя конечного продукта.

Создать правильную криптографическую систему невероятно сложно. Да­ же системы, разработанные экспертами, время от времени дают сбой. Неваж­ но, насколько вы умны или какой опыт работы имеете в других областях. Проектирование и реализация криптографических систем требуют наличия специальных знаний и опыта, а единственный способ набраться опыта — раз­ рабатывать системы снова и снова. Однако этот процесс никогда не обходится без ошибок. Так для чего же нужен эксперт, если он тоже делает ошибки? По той же причине, по которой мы отдаем свою жизнь в руки квалифициро­ ванного хирурга. Нельзя сказать, что хирурги вообще не допускают ошибок; просто они их делают намного реже, да и сами ошибки гораздо менее серьез­ ны. Кроме того, хирурги придерживаются консервативных правил, поэтому небольшие ошибки не приводят к катастрофическим последствиям; хирурги знают достаточно для того, чтобы ошибка оказалась безобидной.

Глава 25. Привлечение экспертов

407

Реализация криптографических систем — это практически такой же спе­ циализированный вид деятельности, как и их проектирование. Найти проек­ тировщиков криптографических систем не так уж сложно. Найти программи­ стов, занимающихся реализацией криптографических систем, намного труд­ нее, отчасти потому, что их требуется гораздо больше. Один проектиров­ щик может создать работу для 10-20 программистов. Большинство людей не рассматривают реализацию криптографических систем как специализиро­ ванный вид деятельности. Один и тот же программист может перейти от на­ писания баз данных к написанию графического интерфейса, а затем заняться реализацией криптографических систем. Разумеется, написание баз данных и графического интерфейса — тоже специализированные виды деятельности, однако опытный программист, немного подучившись, может вполне успешно заниматься и тем и другим. Это не касается реализации криптографических систем, где все должно быть сделано правильно.

Лучший из известных нам способов реализации криптографических си­ стем — нанять компетентных программистов и натренировать их для выпол­ нения данной задачи. Одной из составляющих тренинга может стать и на­ ша книга, однако в большинстве своем написание криптографических систем требует опыта и правильного отношения к проблеме. Кроме того, на овла­ дение написанием криптографических систем, как и любым другим специ­ альным навыком, уходят годы. Учитывая, сколько времени требуется для приобретения данного опыта, вы должны уметь удержать подготовленных вами специалистов. Это еще одна проблема, решение которой мы с радостью перекладываем на других членов нашего общества.

Вероятно, даже более важную роль, чем эта или любая другая книга, иг­ рает культура ведения проекта. Фраза “безопасность в первую очередь” не должна оставаться просто девизом; она должна быть вплетена в саму мате­ рию проекта и его разработчиков. Каждый участник проекта должен посто­ янно жить с безопасностью, дышать безопасностью, говорить и думать о без­ опасности. Достичь этого невероятно трудно, но все-таки возможно. Подоб­ ная команда сотрудников была у компании DigiCash в 1990-х годах. Анало­ гичная культура всеобъемлющей безопасности характерна для авиационной промышленности. Разумеется, культуры безопасности нельзя достичь в ко­ роткий срок, однако к этому нужно стремиться. Наша книга — это всего лишь начальное пособие по наиболее важным проблемам безопасности, предназна­ ченное для технических специалистов команды разработчиков.

В книге Secrets and. Lies [88] Брюс написал следующее: “Безопасность — это процесс, а не продукт”. Помимо культуры безопасности, нам нужен еще и процесс безопасности. Авиационная промышленность обладает всесторон­ ним, строго отлаженным процессом контроля безопасности. Большинство производителей программных продуктов не имеют даже устоявшегося про­

408

Глава 25. Привлечение экспертов

цесса выпуска программного обеспечения, не говоря уже о процессе выпуска высококачественного программного обеспечения и тем более систем безопас­ ности. Написание хороших систем безопасности, вероятно, выходит за рамки текущих качеств нашей компьютерной индустрии. Это, однако, не означа­ ет, что мы должны сдаться. Поскольку информационные технологии играют все более и более критическую роль в нашей инфраструктуре, нашей свободе и нашей безопасности, мы должны улучшать безопасность своих систем. Мы просто обязаны делать все, что только в наших силах.

Надеемся, что эта книга внесет свою лепту в улучшение систем безопас­ ности, обучая их разработчиков основам практической криптографии.

Благодарности

Данная книга основана на совместном опыте, приобретенном нами за дол­ гие годы работы в области криптографии. Мы глубоко признательны всем, кто сотрудничал с нами. Именно они сделали нашу работу интересной и по­ могли нам достичь того понимания, без которого было бы невозможно на­ писать эту книгу. Мы также хотим поблагодарить своих клиентов, которые предоставили нам не только средства, позволившие продолжить наши крип­ тографические исследования, но и возможность приобрести практический опыт, необходимый для написания книги.

Особого упоминания заслуживают Бет Фридман (Beth Friedman), кото­ рая оказалась неоценимым выпускающим редактором, и Дениз Дик (Denise Dick), значительно улучшившая наше творение, тщательно вычитав его. Сле­ дует отметить Джона Келси, снабдившего нас ценными советами по поводу криптографического содержимого. А состоялось наше сотрудничество бла­ годаря Internet. Особую признательность мы хотим выразить Кэрол Лонг (Carol Long) и другим сотрудникам издательства Wiley за претворение на­ ших идей в реальность.

И наконец, мы благодарим всех программистов мира, которые самоот­ верженно продолжают писать криптографический код и предоставлять его широкой общественности на бесплатных началах.

Список основных источников информации

1.Anderson R.J. Security Engineering: A Guide to Building Dependable Dis­ tributed Systems. — John Wiley & Sons, Inc., 2001 (ISBN 0-471-38922-6).

2.Anderson R., Biham E. and Knudsen L. Serpent: A proposal for the Ad­ vanced Encryption Standard. — In: National Institute of Standards and Technology, August 1998 (CM . http: //www. c l . cam.a c.uk/~rj a l4/serpen t. html или http://www .nist.gov/aes).

3.Bellare M., Canetti R. and Krawczyk H. Keying Hash Functions for Mes­ sage Authentication. — In: Koblitz N. (ed.). Advances in Cryptology CRYPTO ’96. Lecture Notes in Computer Science. Springer-Verlag, 1996, vol. 1109, p. 1-15.

4.Bellare M., Killian J. and Rogaway P. The Security of Cipher Block Chain­ ing. — In: Desmedt Y.G. (ed). Advances in Cryptology — CRYPTO ’94Lecture Notes in Computer Science. Springer-Verlag, 1994, vol. 839, p. 341— 358.

5.Bennett C.H. and Brassard G. An update on quantum cryptography. — In: Blackley G.R. and Chaum D. (ed). Advances in Cryptology, Proceedings of CRYPTO 84Lecture Notes in Computer Science. Springer-Verlag, 1984, vol. 196, p. 475-480.

6.Biham E., Dunkelman O. and Keller N. The Rectangle Attack — Rectangling the Serpent. — In: Pfitzmann B. (ed). Advances in Cryptology EURO­ CRYPT 2001. Lecture Notes in Computer Science. Springer-Verlag, 2001, vol. 2045, p. 340-357.

7.Biham E. New Types of Cryptoanalytic Attacks Using Related Keys. — In: Helleseth T. (ed). Advances in Cryptology EUROCRYPT ’93. Lecture Notes in Computer Science. Springer-Verlag, 1993, vol. 765, p. 398-409.

8.Black J., Halevi S., Krawczyk H., Krovetz T. and Rogaway P. UMAC: Fast and Secure Message Authentication. — In: Michael Wiener (ed). Advances in Cryptology — CRYPTO ’99. Lecture Notes in Computer Science. SpringerVerlag, 1999, vol. 1666, p. 216-233.

Список основных источников информации

411

9.Bos J. Booting problems with the JEC computer. — Personal Communica­ tions, 1983.

10.Bos J. Practical Privacy. — PhD thesis : Eindhoven University of Technol­ ogy, 1992 (CM . http://www.macfergus.com/niels/lib/bosphd.html).

11.Brassard G. and Crepeau C. Quantum Bit Commitment and Coin-Tossing Protocols. — In: Menezes A.J. and Vanstone S.A. (ed). Advances in Crypto­ logy CRYPTO *90. Lecture Notes in Computer Science. Springer-Verlag, 1990, vol. 537 p. 49-61.

12.Brincat K. and Mitchell C.J. New CBC-MAC forgery attacks. — In: Varadharajan V. and Mu Y. (ed). Information Security and Privacy, ACISP 2001. Lecture Notes in Computer Science. Springer-Verlag, 2001, vol. 2119,

p.3-14.

13.Burwick C., Coppersmith D., D’Avignon E., Gennaro R., Halevi S., Jutla C., Matyas S.M. Jr., O’Connor L., Peyravian M., Safford D., Zunic N. MARS —

acandidate cipher for AES. — In: National Institute of Standards and Tech­ nology, August 1998 (CM . http://www.research.ibm.com/security/mars. html или http://w w w .nist.gov/aes).

14.Cachin C. Entropy Measures and Unconditional Security in Cryptography.

PhD thesis, ETH : Swiss Federal Institute of Technology (Zurich, 1997) (CM . ft p : / / f t p . in f . ethz. ch/pub/publications/dissertations/thl2187. ps.gz).

15.Carroll L. The Hunting of the Snark: an Agony, in Eight Fits. — London : Macmillan and Co., 1876.

16.Chabaud F. and Joux A. Differential Collisions in SHA-0. — In: Krawczyk H. (ed). Advances in Cryptology CRYPTO ’98. Lecture Notes in Computer Science. Springer-Verlag, 1998, vol. 1462, p. 56-71.

17.Courtois N. and Pieprzyk J. Cryptanalysis of Block Ciphers with Overdefined

Systems of Equations. — Cryptology ePrint Archive, Report 2002/044, 2002 (CM . h ttp: //e p r in t . ia cr .org/).

18.Daemen J. and Rijmen V. AES Proposal: Rijndael. — In: National Insti­ tute of Standards and Technology, August 1998 (CM. http://www.esat. kuleuven.ac.be/~rijm en/rijndael или http://www .nist.gov/aes).

19.Davis D., Ihaka R. and Fenstermacher P. Cryptographic Randomness from Air Turbulence in Disk Drives. — In: Desmedt Y.G. (ed). Advances in Cryp­ tology — CRYPTO Щ. Lecture Notes in Computer Science. Springer-Verlag, 1994, vol. 839, p. 114-120.

20.Den Boer B. and Bosselaers A. Collisions for the compression function of MD5. - In: Helleseth T. (ed). Advances in Cryptology - EUROCRYPT ’93.

412

Список основных источников информации

Lecture Notes in Computer Science. Springer-Verlag, 1993, vol. 765, p. 293304.

21.Diffie W. and Heilman M.E. New Directions in Cryptography // IEEE Transactions on Information Theory. — 1976. — IT-22(6). — P. 644-654.

22.Dijkstra E.W. The Humble Programmer J/ Comm, of the ACM. — 1972. — 15(10). —P. 859-866. (Также издана как EWD340, h ttp : //www. c s .utexas. edu/users/EWD/ewd03xx/EWD340.PDF.)

23.Di Crescenzo G., Ferguson N., Impagliazzo R. and Jakobsson M. How To Forget a Secret. — In: Meinel C. and Tison S. (ed). STACS 99. Lecture Notes in Computer Science. Springer-Verlag, 1999, vol. 1563, p. 500-509.

24.Dobbertin H. Cryptanalysis of MD4 / / J. Cryptology. — 1998. — 11(4). — P. 253-271.

25.Dusse S.R. and Kaliski B.S. Jr. A Cryptographic Library for the Motorola DSP56000. — In: Damgerd I.B. (ed). Advances in Cryptology — EURO­ CRYPT *90. Lecture Notes in Computer Science. Springer-Verlag, 1990, vol. 473, p. 230-244.

26.Dworkin M. Recommendation for Block Cipher Modes of Operation — Me­

thods and Techniques. — National Institute of Standards and Technology, December 2001 (CM . h ttp ://csrc.n ist.g ov /p u b lica tion s/n istp u b s/

800-38a/sp800-38a.pdf).

27.Ellison C. Improvements on Conventional PKI Wisdom. — In: Smith S. (ed). 1st Annual PKI Research Workshop — Proceedings. 2002, p. 165-175

(CM . h ttp://www. c s .dartmouth. edu/~pki02/E llison/).

28.Evertse J.-H. and Van Heyst E. Which New RSA-Signatwres Can Be Com­ puted from Certain Given RSA-Signatwres? / / J. Cryptology. — 1992. — 5(1). - P. 41-52.

29.Feistel H., Notz W.A. and Smith J.L. Some Cryptographic Techniques for machine-to-Machine Data Communications / / Proc. of the IEEE. —1975. — 63(11). - P. 1545-1554.

30.Ferguson N., Kelsey J., Lucks S., Schneier B., Stay M., Wagner D., Whiting D. Improved Cryptanalysis of Rijndael. — In: Schneier B. (ed). Fast Soft­ ware Encryption, 7th International Workshop, FSE 2000. Lecture Notes in Computer Science. Springer-Verlag, 2000, vol. 1978, p. 213-230.

31.Ferguson N., Kelsey J., Schneier B. and Whiting D. A Twofish Retreat: Re­ lated-Key Attacks Against Reduced-Round Twofish. — Twofish Technical Re­ port 6, Counterpane Systems, February 2000 (CM . h ttp: //www. counterpane. com/twofish .html).

Список основных источников информации

413

32.Ferguson N. and Schneier В. A Cryptographic Evaluation of IPsec, 1999 (см. h ttp : //www. counterpane. com /ipsec.html).

33.Ferguson N., Schroeppel R. and Whiting D. A simple algebraic representa­ tion of Rijndael. — In: Vaudenay S. And Youssef A.M. (ed). Selected Areas in Cryptography, 8th Annual International Workshop, SAC 2001. Lecture Notes in Computer Science. Springer-Verlag, 2001, vol. 2259.

34.Ferguson N. Collision attacks on OCB. — Comments to NIST, February 11, 2002 (CM . h ttp : // c s r c .n is t .gov/CryptoToolkit/modes/ и http://c s r c . n is t .gov/CryptoToolkit/modes/comment s/Ferguson.pdf).

35.Fluhrer S., Mantin I. and Shamir A. Weaknesses in the Key Schedule Al­ gorithm of RC4- — In: Vaudenay S. and Youssef A.M. (ed). Selected Areas in Cryptography, 8th Annual International Workshop, SAC 2001. Lecture Notes in Computer Science. Springer-Verlag, 2001, vol. 2259.

36.Freier A.O., Karlton P. and Kocher P.C. The SSL Protocol, Version 3.0. — Internet draft, Transport Layer Security Working Group, November 18,1996 (CM . h ttp : //hom e.netscape. com/eng/ssl3/).

37. Goldberg I. and Wagner D. Randomness and the Netscape Browser / / Dr. Dobb’s Journal. — January 1996. P. 66-70 (CM. www.cs.berkeley. edu/“ daw/papers/ddj -netscape.html).

38.Gutmann P. Secure Deletion of Data from Magnetic and Solid-State Me­ mory. — In: USENIX Security Symposium Proceedings, 1996 (CM. http:

//www.auckland.a c.nz/~pgut00l).

39.Gutmann P. X .509 Style Guide, October 2000 (CM. http: / / www.cs .auckland. ac.nz/~pgut001/pubs/x509guide.txt).

40.Harkins D. and Carrel D. The Internet Key Exchange (IKE). — RFC 2409, November 1998.

41.Intel. Intel 82802 Firmware Hub: Random Number Generator, Programmers Reference Manual, December 1999 (см. на Web-узле Intel http://www. intel.com ).

42.International Telecommunication Union. X.680-X.683: Abstract Syntax No­ tation One (ASN.l). — X.690-X.693: ASN.l encoding rules, 2002 (см. www. itu . int/ITU-T/studygroups/coml7/languages/x680-x693_0702 .pdf).

43.Jonsson J. On the Security of CTR+CBC-MAC. — In: Selected Areas in

Cryptography, 9th Annual International Workshop, SAC 2002, 2002 (см. h ttp: // c s r c .n is t . gov/encrypt ion/modes/proposedmodes/ccm/ccmad. pdf).

44.Jueneman R.R. Analysis of Certain Aspects of Output Feedback Mode. — In: Chaum D., Rivest R.L., and Sherman A.T. (ed). Advances in Cryptology, Proceedings of Crypto 82. Plenum Press, 1982, p. 99-128.