Fortifying Rust's FFI with Enscapsulated Functions - Leon Schuermann

Поделиться
HTML-код
  • Опубликовано: 23 ноя 2024
  • Memory- and type-safe languages like Rust are increasingly popular for systems development. Nonetheless, practical systems must interact with code written in memory-unsafe languages. Examples for this can be found across the spectrum, with many Rust applications linking against popular libraries such as OpenSSL, to security and safety-critical embedded systems, where subsystems such as cryptographic implementations are subject to industrial and governmental certification requirements. Direct interactions with such libraries, however, expose safe languages to significant risks: any single bug in either the foreign code or the cross-language interactions may arbitrarily violate the memory and/or type safety of the wrapping language. This talk presents Encapsulated Functions, an ongoing research project exploring how to secure cross-language interactions along with their differing guarantees and semantics around memory- and type-safety. At its core, Encapsulated Functions is a framework that combines memory protection mechanisms (such as the RISC-V Physical Memory Protection or Intel's Memory Protection Keys) with a set of portable types to both restrict and encapsulate behavior across the language boundary. Through the portability across different memory protection mechanisms we can utilize this infrastructure in both highly-restrictive embedded systems and applications running on conventional operating systems alike.
    Slides: github.com/rus...
    Follow Leon on:
    linkedin: / lschuermann
    github: github.com/lsc...
    This talk was given at RustNL 2024, in Delft, The Netherlands.
    Playlist of other talks from RustNL 2024: • RustNL 2024
    Want to come to RustWeek 2025 in-person? go to 2025.rustnl.org

Комментарии • 2

  • @CSWatch-ik7nq
    @CSWatch-ik7nq 5 месяцев назад

    What is the related research regarding the last question about calling from C to Rust?

  • @alexpyattaev
    @alexpyattaev 5 месяцев назад

    Is there source code for this somewhere?