The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Amazon опубликовал открытую криптографическую библиотеку для языка Rust

20.04.2023 09:58

Компания Amazon представила криптографическую библиотеку aws-lc-rs, предназначенную для использования в приложениях на языке Rust и совместимую на уровне API с Rust-библиотекой ring. Код проекта распространяется под лицензиями Apache 2.0 и ISC. Библиотека поддерживает работу на платформах Linux (x86, x86-64, aarch64) и macOS (x86-64).

Реализация криптографических операций в aws-lc-rs базируется на библиотеке AWS-LC (AWS libcrypto), написанной на языке С++ и, в свою очередь, основанной на коде проекта BoringSSL (поддерживаемое компанией Google ответвление от OpenSSL). Дополнительно предложено два низкоуровневых crate-пакета: aws-lc-sys (автоматически сгенерированные низкоуровневые обвязки над AWS-LC) и aws-lc-fips-sys (низкоуровневые обвязки на базе FFI (Foreign Function Interface)), воспроизводящие API AWS-LC.

Библиотека AWS-LC включает формально верифицированные реализации алгоритмов SHA-2, HMAC, AES-GCM, AES-KWP, HKDF, ECDH и ECDSA, отвечающие требованиям к криптографическим системам, которые можно использовать в государственных учреждениях США и Канады. Создание обвязки для языка Rust объясняется потребностью в наличии криптобиблиотек, соответствующих стандартам FIPS, которые можно было бы использовать в проектах на языке Rust. В библиотеке aws-lc-rs компания Amazon решила совместить привычный и распространённый среди Rust-программистов API Ring и верифицированные реализации алгоритмов из библиотеки AWS-LC, соответствующие требованиям FIPS.

Использование в качестве основы библиотеки AWS-LC также позволило задействовать в aws-lc-rs все специфичные оптимизации, развиваемые компанией Amazon. Например, в AWS-LC доступны варианты алгоритмов ChaCha20-Poly1305 и NIST P-256, отдельно оптимизированные для процессоров ARM, а также внесены значительные оптимизации для систем x86, ускоряющие обработку цифровых подписей ECDSA. При тестировании работы протоколов TLS 1.2 и 1.3 библиотека aws-lc-rs заметно опередила по производительности пакет rustls, продемонстрировав как сокращение времени установки соединения, так и увеличение пропускной способности (в тестах ECDSA более, чем в два раза).



  1. Главная ссылка к новости (https://aws.amazon.com/blogs/o...)
  2. OpenNews: Доступен дистрибутив Amazon Linux 2023
  3. OpenNews: Релиз Sequoia 1.0, реализации OpenPGP на языке Rust
  4. OpenNews: Выпуск rPGP 0.10, реализации OpenPGP на языке Rust
  5. OpenNews: Доступен Bottlerocket 1.8, дистрибутив на базе изолированных контейнеров
  6. OpenNews: Около 21% нового компилируемого кода в Android 13 написано на языке Rust
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/59004-rust
Ключевые слова: rust, amazon, crypto, libcrypto
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (34) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 11:01, 20/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    > При тестировании работы протоколов TLS 1.2 и 1.3 библиотека aws-lc-rs заметно опередила по производительности пакет rustls

    Получается, что С++ быстрее Rust, раз биндинги к С++ либе быстрее кода на самом Rust?

     
     
  • 2.3, Аноним (3), 11:08, 20/04/2023 [^] [^^] [^^^] [ответить]  
  • –15 +/
    Ты думаешь «безопасность» берется из воздуха? Нет для этого надо выполнять дополнительные операции на каждом цикле и на даже на каждом такте.
     
     
  • 3.6, Аноним (1), 11:11, 20/04/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Но как же так? Люди же везде громко говорят про Раст, что там все проверки на безопасность во время компиляции, в рантайме ничего такого
     
     
  • 4.10, Аноним (10), 11:40, 20/04/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Но как же так? Люди же везде громко говорят про Раст, что там все проверки на безопасность во время компиляции, в рантайме ничего такого

    "Тихо, сам с собою ..."

     
     
  • 5.19, Аноним (19), 12:55, 20/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Всё он правильно говорит. А как же ваши "zero cost abstractions"?
     
     
  • 6.45, Аноним (45), 23:03, 20/04/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А никто, кроме вас, луддитов-наСИльников с опеннета, и не утверждает, что в расте ВСЕ ДОСТАТОЧНЫЕ проверки ТОКЛЬКО во время компиляции осуществляются. Мир не черно-белый. Часть делается и в рантайме, а часть и в компайл-тайме благодаря системе типов, владению и т.д. И обе эти части наСИльники обязаны были бы делать в рантайме (в отличие от раста), но делают не всегда, ибо "производительность" (а чаще лень или недостаток профессионализма). Потому и имеем 70% ошибок - это профессионалы не смогли или забыли/забили что-то проверить.
     
  • 6.49, Аноним (49), 00:51, 21/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Всё он правильно говорит. А как же ваши "zero cost abstractions"?

    Ну давай тогда пруфцы на "Люди громко говорят ...", раз не Воен^W балабол?
    Только учти, ссылка на попук^W скандирования опеннетных Военов Супротив Раста тут, как бы, не катит.
    Пруфец на "дополнительные операции на каждом цикле" тоже не забудь.


     
  • 3.22, Аноним (22), 13:15, 20/04/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Oh, там же типа zero-cost проверки в компайл-тайм. Уже нет что ли?
     
     
  • 4.26, Аноним (26), 13:48, 20/04/2023 [^] [^^] [^^^] [ответить]  
  • +7 +/
    > Oh, там же типа zero-cost проверки в компайл-тайм. Уже нет что ли?

    Удивительно ... нет, даже поразительно! Как! Как очередной Опеннетный Эксперт за тройку минут сумел проанализировать и сравнить две разных криптолибы и сделать выводы что сами реализации эквивалентны и вся разница в скорости - из-за "рантайма". Гениальность, не иначе!

    Или все проще и никто из Экспердов никуда не глядел, о куче асма и интринсиков в обоих реализациях даже не подозревает, просто прикинули палец к носу "как оно там все должно быть"?

     
     
  • 5.38, Аноним (3), 15:23, 20/04/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Откуда в чистом растокоде асм код? Ты что тоже еретик?
     
  • 5.46, Аноним (45), 23:06, 20/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Более того, у таких экспертов две разные С++-программы одного назначения написанные разными людьми будут работать со скоростью, одинаковой до наносекунды. "Ибо изык порешал, а не прокладки!"
     
  • 2.8, Бьерн Страуструп (?), 11:23, 20/04/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это они еще оптимизацию -O2 включили как обычно, маркетинг, такой маркетинг.
     
     
  • 3.12, Аноним (12), 11:59, 20/04/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну да, теперь пусть включат -O3 и PGO прогонят. Разрешаю у раста тоже включить.
     
     
  • 4.13, Аноним (12), 12:00, 20/04/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да и GCC пусть собирают, а то смешно будет llvm с llvm сравнивать.
     
  • 2.9, Аноним (9), 11:33, 20/04/2023 [^] [^^] [^^^] [ответить]  
  • +5 +/
    https://github.com/aws/aws-lc
    >  C++ 68.2%  Assembly 17.0%
    > Получается, что С++ быстрее Rust, раз биндинги к С++ либе быстрее кода на самом Rust?

    Получается, что оналитега у опеннетных Военов Супротив Раста - как обычно получается.

     
     
  • 3.48, Аноним (48), 00:47, 21/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > aws-lc-rs is a cryptographic library using AWS-LC for its cryptographic operations

    AWS-LC (https://github.com/aws/aws-lc): C++ 68.2%, Assembly 17.0%, C 9.2%

    > Rustls is a modern TLS library written in Rust. It uses ring for cryptography

    ring (https://github.com/briansmith/ring): Assembly 38.2%, C 32.2%, Rust 25.8%

    Если не считать сами обёртки (aws-lc-rs и rustls), то библиотека совсем без Раста оказалась быстрее библиотеки, на четверть состоящей из кода на Rust. Что в #1 написано не так?

     
     
  • 4.50, Аноним (49), 01:31, 21/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Раста оказалась быстрее библиотеки, на четверть состоящей из кода на Rust.

    Как элегантно ты упустил в своем онализе "а еще на ⅓ из кода на Си и на ⅖ асм".
    > Что в #1 написано не так?

    По этой "логике" у Воена Супротив Раста получается, что C++ так же быстрее сишки и асма, ведь "биндинги к С++ либе быстрее кода на Си/Asm".
    В общем, что так, что эдак - выходит "опеннетный онализ" во всей его красе ...

     
  • 4.53, Аноним (45), 13:14, 21/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Тому оналитегу указали на то, что в его стаканчике с мороженым есть еще немалень... большой текст свёрнут, показать
     
  • 2.44, Аноним (45), 22:53, 20/04/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А когда тебе показывают две разные программы одного назначения, написанные _разными_ командами, обе на С++, обе компильнуты GCC и одна быстрее второй, допустим, в два раза - у тебя в таком случае С++ быстрее С++ ?

    Я может быть принял бы во внимание твой вывод, если бы это одна и та же команда, являясь экспертами одинакового уровня в обоих языках программирования (а как это сравнить?) написала с нуля две одинаковые по фичам реализации одной и той же хни и что-то там замерила.

     

  • 1.2, КО (?), 11:07, 20/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >and deploy them into AWS Regions

    Ну что, где крыса зарыта, к какой части кода?

     
     
  • 2.4, Аноним (3), 11:09, 20/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Где крыса заржавела?
     

  • 1.5, Иваня (?), 11:11, 20/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Снова на расте, хотя, может это и к лучшему. Сейчас много всего для крипты и криптографии на расте, а это взаимосвязано.
     
     
  • 2.74, Анониссимус (?), 02:16, 28/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    В том то и дело, что нет. Казалось бы, уж где бы в первую очередь применять раст, как ни в криптобиблиотеках? Но нет, они на плюсцах написаны...
     

  • 1.7, Аноним (7), 11:13, 20/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    язык для создания обёрток
     
     
  • 2.47, name (??), 23:10, 20/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Хахаха! В точку!
     
  • 2.51, Советский инженер (?), 06:33, 21/04/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Да, С++ он такой.
     

  • 1.43, Аноним (43), 22:39, 20/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Почему не было новости что на языке который нельзя называть переписали строян и теперь он более безопасно используя память пролезать на компутеры с виндой?
    https://www.hivepro.com/nokoyawa-2-0-a-reworked-rust-based-ransomware/
     
  • 1.54, Аноним (54), 13:44, 21/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > При тестировании работы протоколов TLS 1.2 и 1.3 библиотека aws-lc-rs заметно опередила по производительности пакет rustls, продемонстрировав как сокращение времени установки соединения, так и увеличение пропускной способности (в тестах ECDSA более, чем в два раза).

    неверифицированный с кучей багов код на раст безопасно проигрывает верифицированному коду на сишке в два раза. Эпичная замена.

     
     
  • 2.55, Аноним (49), 14:06, 21/04/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/

    > неверифицированный с кучей багов код на раст безопасно проигрывает верифицированному коду на сишке в два раза. Эпичная замена.

    https://github.com/aws/aws-lc/tree/44a1c471faf65cbfd57e62b8a5357ca6330c7c56/cr
    https://github.com/aws/aws-lc/blob/2034e844e5908b14edff66a4bb7ae47d55fc7298/ge
    [CODE]
    vmovdqa xmm14,XMMWORD[r14*8+r13]
    vmovdqa xmm13,XMMWORD[16+r14*8+r13]
    vmovdqa xmm12,XMMWORD[32+r14*8+r13]
    vmovdqu xmm10,XMMWORD[((0-128))+rdi]
    [/CODE]
    https://github.com/aws/aws-lc/blob/44a1c471faf65cbfd57e62b8a5357ca6330c7c56/cr

    Эпичный пук в лужу от очердных Военов Супротив раста


     
     
  • 3.59, Аноним (54), 15:53, 21/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > movdqa    xmm14,XMMWORD[r14*8+r13]
    > AWS-LC contains portable C implementations of algorithms needed for TLS and common applications. For performance critical algorithms, optimized assembly versions are included for x86 and ARM.

    https://github.com/aws/aws-lc

     
     
  • 4.60, Аноним (49), 18:23, 21/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >> проигрывает верифицированному коду на сишке в два раза.
    >> movdqa    xmm14,XMMWORD[r14*8+r13]
    >> AWS-LC contains portable C implementations of algorithms needed for TLS and common applications. For performance critical algorithms, optimized assembly versions are included for x86 and ARM.

    "Папа, где море?"(c)
    "Гляжу в книгу^W код, вижу фигу!"(с)

     
     
  • 5.61, Аноним (54), 19:55, 21/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > вижу фигу

    https://github.com/aws/aws-lc/#algorithm-optimization-support

    оптимизированы на асме некоторые алгоритмы для некоторых процессоров и чо ? полная  реализация на портабельном С.

     
     
  • 6.62, Аноним (49), 23:00, 21/04/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > https://github.com/aws/aws-lc/#algorithm-optimization-support
    > We ran a set of benchmark scenarios on c7g.metal (Graviton3) and c6i.metal (x86-64)
    > We use AWS Graviton processors to test ARMv8 optimizations and Intel CPUs to test x86 and x86-64 optimizations.

    https://github.com/aws/aws-lc/blob/2034e844e5908b14edff66a4bb7ae47d55fc7298/ge
    > aesni-gcm-x86_64.S

    https://github.com/aws/aws-lc/blob/2034e844e5908b14edff66a4bb7ae47d55fc7298/ge
    > aesv8-gcm-armv8.S

    ...
    > оптимизированы на асме некоторые алгоритмы для некоторых процессоров и чо ? полная  реализация на портабельном С.

    "Папа, где море?" (c)
    "... вижу все равно фигу!" (с)

     
     
  • 7.73, Аноним (54), 09:35, 24/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > вижу все равно фигу!

    раст и есть эпичная фига на данный момент, не исключено конечно что поменяется лет через 10 но это не точно

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру