Физико-математические и технические науки

2022 Выпуск №1

Назад к списку Скачать статью

Защита приложений JavaScript с помощью Web Cryp­to­graphy API

Страницы / Pages
53-60

Аннотация

По мере роста количества веб-приложений возрастает потребность обычных пользователей в более безопасных веб-приложениях, и веб-разработчики пытаются соответствовать этим ожиданиям. Данная статья посвящена рассмотрению основ­ных концепций Web Cryptography API, что определяет криптографические примити­вы, которые должны быть развернуты в браузерах и веб-приложениях JavaScript. Целью статьи является теоретическое обоснование применения Web Crypto API в собствен­ной среде JavaScript для защиты веб-приложений. Раскрыты ключевые понятия в рам­ках Web Crypto API; описаны дизайн и общие интерфейсы для использования крипто­графических алгоритмов; обозначены возможные ограничения Web Crypto API; рас­смотрены совместимость и принцип работы с криптомодулем Node.js, в частности разработан прототип WebCrypto для Node.js. Результаты исследования предоставля­ют конкретные доказательства того, что веб-приложения, использующие Web Crypto API, становятся более безопасными, поскольку они обеспечивают соблюдение шаблонов использования ключей, соответствующих известным передовым методам крипто­графии. Полученные данные свидетельствуют о том, что следует уделять больше внимания установлению взаимодействия между Web Crypto API и существующим криптомодулем Node.js.

Abstract

With an increasing number of web applications, the need of ordinary users to have more secure web applications has increased and web developers are attempting to match those ex­pec­tations. This article is devoted to consideration of the basic concepts of the Web Cryp­to­gra­phy API since it defines cryptographic primitives to be deployed across browsers and JavaScript web applications. The purpose of the article is the theoretical justification for the application of Web Crypto API within native JavaScript environments in order to secure web applications. The article deals with the key definitions within the Web Crypto API; des­cribes design and generic interfaces for using cryptographic algorithms; indicates possible li­mi­tations of the Web Crypto API; reviews its compatibility and implementations for Node.js cryp­tomodule, for instance, a WebCrypto prototype for Node.js has been developed. The re­sults of study provide concrete evidence that web applications that use Web Crypto API beco­me more secure as it enforces usage patterns of keys that correlate to known best practices in cryp­tography. The findings suggest that more emphasis should be placed on providing inte­ro­perability between the Web Cryptography API and the existing Node.js crypto module.

Список литературы

1. Лоре А. Проектирование веб-API / пер. с англ. Д. А. Беликова. М., 2020.

2. Зима В. М., Молдовян А. А., Молдовян Н. А. Безопасность глобальных сете­вых технологий. СПБ., 2003.

3. Мао Венбо. Современная криптография. Теория и практика. М., 2005.

4. Сабанов А. Г., Скиба В. Ю. Некоторые аспекты защиты электронного доку­ментооборота // Проблемы информационной безопасности. Компьютерные системы. 2012. № 2. С. 42—45.

5. Deveria A. Web Cryptography. 2020. URL: https://caniuse. com/cryptography (дата обращения: 13.05.2022).

6. Laurie B., Langley A., Kasper E. RFC 6962 Certificate Transparency. Experimental, IETF, 2013. URL: https://tools. ietf. org/html/rfc6962 (дата обращения: 10.05.2022).

7. Torlak E., Taghdiri M., Dennis G., Near J. P. Applications and extensions of alloy: past, present and future // Mathematical Structures in Computer Science. 2013. Vol. 23. P. 315—333.

8. Near J. P., Jackson D. Derailer: Interactive security analysis for web applications. 2014. URL: https://dspace.mit.edu/handle/1721.1/100435 (дата обращения: 10.05.2022).

9. Cairns K., Halpin H., Steel G. Security Analysis of the W3C Web Cryptography API // Proceedings of Security Standardisation Research (SSR). Gaithersberg, 2017. P. 112—140.

10. Watson M. Web Cryptography API // Tech. Rep. Cambridge: W3C, Jan. 2017. URL: https://www.w3.org/TR/WebCryptoAPI/ (дата обращения: 08.05.2022).

11. Jones M. JSON Web Key (JWK). IETF. May 2015. Proposed Standard. URL: https://www.rfc-editor.org/rfc/rfc7517 (дата обращения: 10.05.2022).

12. Turner S. Asymmetric Key Packages. IETF. August 2010. Proposed Standard. URL: https://www.rfc-editor.org/rfc/rfc5958 (дата обращения: 12.05.2022).

13. Stanford Computer Security Lab. Stanford Javascript Crypto Library (SJCL). 2019. URL: http://bitwiseshiftleft.github.io/sjcl/ (дата обращения: 10.05.2022).

14. Ptacek Th. Javascript Cryptography Considered Harmful. 2011. URL: https:// www.nccgroup.trust/us/about-us/newsroom-and-events/blog/2011/august/java script-cryptography-considered-harmful/ (дата обращения: 11.05.2022).

15. Perrin T. Web Cryptography API. Editor’s draft, W3C, 2014. URL: http:// github.com/trevp/curve25519webcrypto (дата обращения: 08.05.2022).