Защита приложений JavaScript с помощью Web Cryptography 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 expectations. This article is devoted to consideration of the basic concepts of the Web Cryptography 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; describes design and generic interfaces for using cryptographic algorithms; indicates possible limitations of the Web Crypto API; reviews its compatibility and implementations for Node.js cryptomodule, for instance, a WebCrypto prototype for Node.js has been developed. The results of study provide concrete evidence that web applications that use Web Crypto API become more secure as it enforces usage patterns of keys that correlate to known best practices in cryptography. The findings suggest that more emphasis should be placed on providing interoperability 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).