Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Νανα Ευταξίας Geändert vor über 6 Jahren
1
Rust The Language of Choice for Secure Systems
12/5/ :49 AM Rust The Language of Choice for Secure Systems By Alexander Georgescu (ag ) Presentation for “Secure Systems” at Prof. Dr. Kriha © 2007 Microsoft Corporation. Alle Rechte vorbehalten. Microsoft, Windows, Windows Vista und andere Produktnamen sind möglicherweise eingetragene Marken oder Marken in den USA und/oder anderen Ländern/Regionen. Diese Angaben dienen nur zu Informationszwecken und entsprechen dem aktuellen Sachstand der Microsoft Corporation zum Erstellungsdatum dieser Präsentation. Da Microsoft auf die sich ständig ändernden Marktanforderungen reagieren muss, sollten die Angaben nicht als Verpflichtung seitens Microsoft angesehen werden, und Microsoft übernimmt keine Garantie für die Genauigkeit der Angaben nach dem Datum dieser Präsentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
2
Structure Language Overview Safety/Security Demonstrated
12/5/ :49 AM Structure Language Overview Origins and History Basic Concepts Safety Features Memory Management Safety/Security Demonstrated Heartbleed: Rust vs C++ RustBelt - Proving safety/security 1. Idea 2. Components of proof 3. Result © 2007 Microsoft Corporation. Alle Rechte vorbehalten. Microsoft, Windows, Windows Vista und andere Produktnamen sind möglicherweise eingetragene Marken oder Marken in den USA und/oder anderen Ländern/Regionen. Diese Angaben dienen nur zu Informationszwecken und entsprechen dem aktuellen Sachstand der Microsoft Corporation zum Erstellungsdatum dieser Präsentation. Da Microsoft auf die sich ständig ändernden Marktanforderungen reagieren muss, sollten die Angaben nicht als Verpflichtung seitens Microsoft angesehen werden, und Microsoft übernimmt keine Garantie für die Genauigkeit der Angaben nach dem Datum dieser Präsentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
3
Language Overview - 1. Origins and History
12/5/ :49 AM Language Overview - 1. Origins and History History In 2008: Private project by Graydon Hoare (Employee of Mozilla) Sponsoring by since 2009 2011: Compiling of the first Rust-compiler in Rust (Till then: Compiler in OCaml) 2012: First Pre-Alpha Version -> Beta Phase 2015: First stable version (Mai 15th) Refining during development of „Servo“ 2016, 2017, 2018 – „Most loved language“ in Stackoverflow user survey Rust – The Language of Choice for Secure Systems Slide 3/20 © 2007 Microsoft Corporation. Alle Rechte vorbehalten. Microsoft, Windows, Windows Vista und andere Produktnamen sind möglicherweise eingetragene Marken oder Marken in den USA und/oder anderen Ländern/Regionen. Diese Angaben dienen nur zu Informationszwecken und entsprechen dem aktuellen Sachstand der Microsoft Corporation zum Erstellungsdatum dieser Präsentation. Da Microsoft auf die sich ständig ändernden Marktanforderungen reagieren muss, sollten die Angaben nicht als Verpflichtung seitens Microsoft angesehen werden, und Microsoft übernimmt keine Garantie für die Genauigkeit der Angaben nach dem Datum dieser Präsentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
4
Language Overview - 1. Origins and History
12/5/ :49 AM Language Overview - 1. Origins and History Use today Parts of Firefox The experimental layout engine „Servo“ „Quantum“ – improvement of Gecko Redox OS (Unix-like, open-source OS) Magic Pocket (Data storage for Dropbox) Parts of OpenDNS (DNS-Dienstleister) Rust – The Language of Choice for Secure Systems Slide 4/20 © 2007 Microsoft Corporation. Alle Rechte vorbehalten. Microsoft, Windows, Windows Vista und andere Produktnamen sind möglicherweise eingetragene Marken oder Marken in den USA und/oder anderen Ländern/Regionen. Diese Angaben dienen nur zu Informationszwecken und entsprechen dem aktuellen Sachstand der Microsoft Corporation zum Erstellungsdatum dieser Präsentation. Da Microsoft auf die sich ständig ändernden Marktanforderungen reagieren muss, sollten die Angaben nicht als Verpflichtung seitens Microsoft angesehen werden, und Microsoft übernimmt keine Garantie für die Genauigkeit der Angaben nach dem Datum dieser Präsentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
5
Language Overview - 2. Basic concepts
12/5/ :49 AM Language Overview - 2. Basic concepts Concepts Fully compiled Imperative-procedural design (like C) Functional and object-oriented elements can be applied Strong typed variables (but automatical type) No garbage collector Safe multi-threading supported by the language Smart library and build-automation system “cargo“ Macros (shown clearly in code with ‘!‘) „Traits“ concept to add custom compiler (safety) features Rust – The Language of Choice for Secure Systems Slide 5/20 © 2007 Microsoft Corporation. Alle Rechte vorbehalten. Microsoft, Windows, Windows Vista und andere Produktnamen sind möglicherweise eingetragene Marken oder Marken in den USA und/oder anderen Ländern/Regionen. Diese Angaben dienen nur zu Informationszwecken und entsprechen dem aktuellen Sachstand der Microsoft Corporation zum Erstellungsdatum dieser Präsentation. Da Microsoft auf die sich ständig ändernden Marktanforderungen reagieren muss, sollten die Angaben nicht als Verpflichtung seitens Microsoft angesehen werden, und Microsoft übernimmt keine Garantie für die Genauigkeit der Angaben nach dem Datum dieser Präsentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
6
Language Overview - 2. Basic concepts
12/5/ :49 AM Language Overview - 2. Basic concepts Goals Userfriendly (but constricting) Enforcing safety Yet many solutions for one problem Shall become an universal system language Good availablity Compilers for Linux, Windows and Mac Try in browser: play.rust-lang.org Plugins for IDEs and editors (Eclipse, Visual, Atom etc.) Constricting -> Keine Flüchtigkeitsfehler Rust – The Language of Choice for Secure Systems Slide 6/20 © 2007 Microsoft Corporation. Alle Rechte vorbehalten. Microsoft, Windows, Windows Vista und andere Produktnamen sind möglicherweise eingetragene Marken oder Marken in den USA und/oder anderen Ländern/Regionen. Diese Angaben dienen nur zu Informationszwecken und entsprechen dem aktuellen Sachstand der Microsoft Corporation zum Erstellungsdatum dieser Präsentation. Da Microsoft auf die sich ständig ändernden Marktanforderungen reagieren muss, sollten die Angaben nicht als Verpflichtung seitens Microsoft angesehen werden, und Microsoft übernimmt keine Garantie für die Genauigkeit der Angaben nach dem Datum dieser Präsentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
7
Language Overview - 2. Basic concepts
12/5/ :49 AM Language Overview - 2. Basic concepts Syntax basically similar to C Curly brackets ‘{}‘ for codeblocks Variables initialized with „let“. Type is optional. Many integrated datatypes on stack. E.g.: i8, i16, i32, u8, bool, char Object-Like Datatypes on Heap. E.g.: String fn main() { let on_world : bool = true; if on_world {println!("Hello World!");} else {println!("Goodbye, World.");} } -> Hello World! Rust – The Language of Choice for Secure Systems Slide 7/20 © 2007 Microsoft Corporation. Alle Rechte vorbehalten. Microsoft, Windows, Windows Vista und andere Produktnamen sind möglicherweise eingetragene Marken oder Marken in den USA und/oder anderen Ländern/Regionen. Diese Angaben dienen nur zu Informationszwecken und entsprechen dem aktuellen Sachstand der Microsoft Corporation zum Erstellungsdatum dieser Präsentation. Da Microsoft auf die sich ständig ändernden Marktanforderungen reagieren muss, sollten die Angaben nicht als Verpflichtung seitens Microsoft angesehen werden, und Microsoft übernimmt keine Garantie für die Genauigkeit der Angaben nach dem Datum dieser Präsentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
8
Language Overview - 3. Safety Features
12/5/ :49 AM Language Overview - 3. Safety Features let s1 = String::from("Hello"); let s2 = s1; println!("{}, world!", s2); println!("{}, world!", s1); println!("{}, world!", s1); -> Value used here after MOVE Move and invalidation Only shallow copies Only data on Stack is copied Everything else is moved Moved variables are invalidated! Solutions: Use .clone() Or references Rust ermöglicht durch Zuweisung nur “shallow copies”, also Kopie auf Stack. Keine “deep copies”. Strings haben Daten auf dem Heap. Rust – The Language of Choice for Secure Systems Slide 8/20 © 2007 Microsoft Corporation. Alle Rechte vorbehalten. Microsoft, Windows, Windows Vista und andere Produktnamen sind möglicherweise eingetragene Marken oder Marken in den USA und/oder anderen Ländern/Regionen. Diese Angaben dienen nur zu Informationszwecken und entsprechen dem aktuellen Sachstand der Microsoft Corporation zum Erstellungsdatum dieser Präsentation. Da Microsoft auf die sich ständig ändernden Marktanforderungen reagieren muss, sollten die Angaben nicht als Verpflichtung seitens Microsoft angesehen werden, und Microsoft übernimmt keine Garantie für die Genauigkeit der Angaben nach dem Datum dieser Präsentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
9
Language Overview - 3. Safety Features
12/5/ :49 AM Language Overview - 3. Safety Features Also the case in functions parameters let s1 = String::from("Hello"); toWorld( s1 ); println!("{}, world!", s1); println!("{}, world!", s1); -> Value used here after MOVE toWorld muss aber engepasst warden. Kann entweder das Objekt selbst annehmen, ODER eine Referenz let s1 = String::from("Hello"); toWorld( &s1 ); println!("{}, world!", s1); Rust – The Language of Choice for Secure Systems Slide 9/20 © 2007 Microsoft Corporation. Alle Rechte vorbehalten. Microsoft, Windows, Windows Vista und andere Produktnamen sind möglicherweise eingetragene Marken oder Marken in den USA und/oder anderen Ländern/Regionen. Diese Angaben dienen nur zu Informationszwecken und entsprechen dem aktuellen Sachstand der Microsoft Corporation zum Erstellungsdatum dieser Präsentation. Da Microsoft auf die sich ständig ändernden Marktanforderungen reagieren muss, sollten die Angaben nicht als Verpflichtung seitens Microsoft angesehen werden, und Microsoft übernimmt keine Garantie für die Genauigkeit der Angaben nach dem Datum dieser Präsentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
10
Language Overview - 3. Safety Features
12/5/ :49 AM Language Overview - 3. Safety Features fn main() { let reference_to_nothing = dangle(); } fn dangle() -> &String { let s = String::from("Hello"); return &s; } return &s; -> no value to borrow from Values deleted (freed) when out of scope No dangling references Compiler does not allow references to unavailable memory No „null pointer“ or „access violation“ trouble No manual free required Verschiedene Sachen zu sehen: Funktionsdefinition mit Return-Typ (Ref-String) Return der Referz -> Fehler. Object geht außerhalb des Scopes verloren Rust – The Language of Choice for Secure Systems Slide 10/20 © 2007 Microsoft Corporation. Alle Rechte vorbehalten. Microsoft, Windows, Windows Vista und andere Produktnamen sind möglicherweise eingetragene Marken oder Marken in den USA und/oder anderen Ländern/Regionen. Diese Angaben dienen nur zu Informationszwecken und entsprechen dem aktuellen Sachstand der Microsoft Corporation zum Erstellungsdatum dieser Präsentation. Da Microsoft auf die sich ständig ändernden Marktanforderungen reagieren muss, sollten die Angaben nicht als Verpflichtung seitens Microsoft angesehen werden, und Microsoft übernimmt keine Garantie für die Genauigkeit der Angaben nach dem Datum dieser Präsentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
11
Language Overview - 3. Safety Features
12/5/ :49 AM Language Overview - 3. Safety Features let mut s = String::from("Hello"); let rs = &mut s; rs.push(‘W’); s.push(‘o’); s.push(‘o’); -> cannot borrow ‘s‘ as mutable more than once Referencing of mutable An object is only mutable to its single “Owner“ Prevents data races at compiletime More confident programming Wenn man einer Funktion, die Möglichkeit geben will, die Variable zu bearbeiten. Eines der Hauptkonzepte: Das Owner Konzept. Rust – The Language of Choice for Secure Systems Slide 11/20 © 2007 Microsoft Corporation. Alle Rechte vorbehalten. Microsoft, Windows, Windows Vista und andere Produktnamen sind möglicherweise eingetragene Marken oder Marken in den USA und/oder anderen Ländern/Regionen. Diese Angaben dienen nur zu Informationszwecken und entsprechen dem aktuellen Sachstand der Microsoft Corporation zum Erstellungsdatum dieser Präsentation. Da Microsoft auf die sich ständig ändernden Marktanforderungen reagieren muss, sollten die Angaben nicht als Verpflichtung seitens Microsoft angesehen werden, und Microsoft übernimmt keine Garantie für die Genauigkeit der Angaben nach dem Datum dieser Präsentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
12
Language Overview - 3. Safety Features
12/5/ :49 AM Language Overview - 3. Safety Features Exception: “Cell“ “Cell“ allows multiple mutable references Needed for efficient implementations let c1: &Cell = &Cell::new(0); let c2: &Cell = c1; c1.set(2); println!("{:?}", c2.get()); -> 2 No deepstacking = keine Cell in Cell. Threads passing mit traits -> Vererbung (iterable) Nutzt intern “unsafe” code. Wichtig bei Prüfung. Severe, constricting API Not deep-stacking No passing to other Threads Rust – The Language of Choice for Secure Systems Slide 12/20 © 2007 Microsoft Corporation. Alle Rechte vorbehalten. Microsoft, Windows, Windows Vista und andere Produktnamen sind möglicherweise eingetragene Marken oder Marken in den USA und/oder anderen Ländern/Regionen. Diese Angaben dienen nur zu Informationszwecken und entsprechen dem aktuellen Sachstand der Microsoft Corporation zum Erstellungsdatum dieser Präsentation. Da Microsoft auf die sich ständig ändernden Marktanforderungen reagieren muss, sollten die Angaben nicht als Verpflichtung seitens Microsoft angesehen werden, und Microsoft übernimmt keine Garantie für die Genauigkeit der Angaben nach dem Datum dieser Präsentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
13
Language Overview - 4. Memory Management
12/5/ :49 AM Language Overview - 4. Memory Management Stack Variables with fixed size Heap “Boxed” memory (with owner) Protecting memory with “Boxes” Under circumstances one can allocate “unsafe” memory “Boxing” ensures Rust’s safety nevertheless unsafe { let size = 20; let unsafe_ptr = Heap::allocate(size); let safe_box = Box::from_raw(unsafe_ptr, size); } Stark vereinfacht. new_data nach ausserhalb übertragen. Rust – The Language of Choice for Secure Systems Slide 13/20 © 2007 Microsoft Corporation. Alle Rechte vorbehalten. Microsoft, Windows, Windows Vista und andere Produktnamen sind möglicherweise eingetragene Marken oder Marken in den USA und/oder anderen Ländern/Regionen. Diese Angaben dienen nur zu Informationszwecken und entsprechen dem aktuellen Sachstand der Microsoft Corporation zum Erstellungsdatum dieser Präsentation. Da Microsoft auf die sich ständig ändernden Marktanforderungen reagieren muss, sollten die Angaben nicht als Verpflichtung seitens Microsoft angesehen werden, und Microsoft übernimmt keine Garantie für die Genauigkeit der Angaben nach dem Datum dieser Präsentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
14
Language Overview - 4. Memory Management
12/5/ :49 AM Language Overview - 4. Memory Management Summarized: Ownership concept Explicit syntax for: Mutable variables Shallow vs deep-copy Three rules: 1. Each value has a variable that‘s called its „owner“ 2. There can only be one owner for it at a time 3. When the owner goes out of scope, the value will be dropped -> No memory accessible without owning it -> No memory without owner (except for inside unsafe blocks) Technical exceptions enforced by API Rust – The Language of Choice for Secure Systems Slide 14/20 © 2007 Microsoft Corporation. Alle Rechte vorbehalten. Microsoft, Windows, Windows Vista und andere Produktnamen sind möglicherweise eingetragene Marken oder Marken in den USA und/oder anderen Ländern/Regionen. Diese Angaben dienen nur zu Informationszwecken und entsprechen dem aktuellen Sachstand der Microsoft Corporation zum Erstellungsdatum dieser Präsentation. Da Microsoft auf die sich ständig ändernden Marktanforderungen reagieren muss, sollten die Angaben nicht als Verpflichtung seitens Microsoft angesehen werden, und Microsoft übernimmt keine Garantie für die Genauigkeit der Angaben nach dem Datum dieser Präsentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
15
Safety Demonstrated - 1. Heartbleed: Rust vs C++
12/5/ :49 AM Safety Demonstrated - 1. Heartbleed: Rust vs C++ C++ results in many tiny pitfalls with drastic consequences Data of the program is not protected All program parts have the right to access all memory Rust – The Language of Choice for Secure Systems Slide 15/20 © 2007 Microsoft Corporation. Alle Rechte vorbehalten. Microsoft, Windows, Windows Vista und andere Produktnamen sind möglicherweise eingetragene Marken oder Marken in den USA und/oder anderen Ländern/Regionen. Diese Angaben dienen nur zu Informationszwecken und entsprechen dem aktuellen Sachstand der Microsoft Corporation zum Erstellungsdatum dieser Präsentation. Da Microsoft auf die sich ständig ändernden Marktanforderungen reagieren muss, sollten die Angaben nicht als Verpflichtung seitens Microsoft angesehen werden, und Microsoft übernimmt keine Garantie für die Genauigkeit der Angaben nach dem Datum dieser Präsentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
16
RustBelt - 1. Idea RustBelt
12/5/ :49 AM RustBelt - 1. Idea RustBelt Attempt at a machine-assisted way of proving the safety of Rust’s standard libraries (especially ones containing unsafe code) Provides ways to verify safety of other, user-made Rust libraries Style language formalizing Rust’s core features: λRust Applicable for semantic checks Verifiable for logical soundness Rust – The Language of Choice for Secure Systems Slide 16/20 © 2007 Microsoft Corporation. Alle Rechte vorbehalten. Microsoft, Windows, Windows Vista und andere Produktnamen sind möglicherweise eingetragene Marken oder Marken in den USA und/oder anderen Ländern/Regionen. Diese Angaben dienen nur zu Informationszwecken und entsprechen dem aktuellen Sachstand der Microsoft Corporation zum Erstellungsdatum dieser Präsentation. Da Microsoft auf die sich ständig ändernden Marktanforderungen reagieren muss, sollten die Angaben nicht als Verpflichtung seitens Microsoft angesehen werden, und Microsoft übernimmt keine Garantie für die Genauigkeit der Angaben nach dem Datum dieser Präsentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
17
RustBelt - 2. Components of proof
12/5/ :49 AM RustBelt - 2. Components of proof Fundamental theorem of logical relations “Verify that the typing rules of λRust are sound when interpreted semantically, i.e., as lemmas establishing that the semantic interpretations of the premises imply the semantic interpretation of the conclusion.” Adequacy (Computationally) “Verify that, if a closed program issemantically well-typed according to the model, its execution will not exhibit any unsafe/undefined behaviors.” Bedeutet: Das Resultat ergibt sich aus der Prämisse (semantisch interprettiert). Im Grunde: keine logischen Widersprüche Bedeutet: Rust folgt semmantisch genau dem Modell Rust – The Language of Choice for Secure Systems Slide 17/20 © 2007 Microsoft Corporation. Alle Rechte vorbehalten. Microsoft, Windows, Windows Vista und andere Produktnamen sind möglicherweise eingetragene Marken oder Marken in den USA und/oder anderen Ländern/Regionen. Diese Angaben dienen nur zu Informationszwecken und entsprechen dem aktuellen Sachstand der Microsoft Corporation zum Erstellungsdatum dieser Präsentation. Da Microsoft auf die sich ständig ändernden Marktanforderungen reagieren muss, sollten die Angaben nicht als Verpflichtung seitens Microsoft angesehen werden, und Microsoft übernimmt keine Garantie für die Genauigkeit der Angaben nach dem Datum dieser Präsentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
18
RustBelt - 2. Components of proof
12/5/ :49 AM RustBelt - 2. Components of proof Library-Specific verification condition “For any library that employs unsafe code internally, verify that its implementation satisfies the predicate associated with the semantic interpretation of its interface, thus establishing that the unsafe code has indeed been safely “encapsulated” by the library’s API.” Together those ensure that a Rust program using only the verified libraries and no additional unsafe-marked code, is safe to execute. Rust – The Language of Choice for Secure Systems Slide 18/20 © 2007 Microsoft Corporation. Alle Rechte vorbehalten. Microsoft, Windows, Windows Vista und andere Produktnamen sind möglicherweise eingetragene Marken oder Marken in den USA und/oder anderen Ländern/Regionen. Diese Angaben dienen nur zu Informationszwecken und entsprechen dem aktuellen Sachstand der Microsoft Corporation zum Erstellungsdatum dieser Präsentation. Da Microsoft auf die sich ständig ändernden Marktanforderungen reagieren muss, sollten die Angaben nicht als Verpflichtung seitens Microsoft angesehen werden, und Microsoft übernimmt keine Garantie für die Genauigkeit der Angaben nach dem Datum dieser Präsentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
19
12/5/ :49 AM RustBelt - 2. Result Fundamental theorem and adequacy proven successfully and final for the language Safety proven for several major libraries Arc, Rc, Cell, RefCell, Mutex, RwLock, mem::swap, thread::spawn, rayon::join and take_mut Solange die Sprache nicht verändert wird. Basis: Von anderen leuten entwickeltes Logic-System namens “Iris”. Lambda Rust kommt nah an Compiler-Zwischensprache (MIR (Mid-level Intermediate Representation) ) ran Rust – The Language of Choice for Secure Systems Slide 19/20 © 2007 Microsoft Corporation. Alle Rechte vorbehalten. Microsoft, Windows, Windows Vista und andere Produktnamen sind möglicherweise eingetragene Marken oder Marken in den USA und/oder anderen Ländern/Regionen. Diese Angaben dienen nur zu Informationszwecken und entsprechen dem aktuellen Sachstand der Microsoft Corporation zum Erstellungsdatum dieser Präsentation. Da Microsoft auf die sich ständig ändernden Marktanforderungen reagieren muss, sollten die Angaben nicht als Verpflichtung seitens Microsoft angesehen werden, und Microsoft übernimmt keine Garantie für die Genauigkeit der Angaben nach dem Datum dieser Präsentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
20
12/5/ :49 AM Research Questions Could this verification method be applied to libraries in other languages too? Can a theoretical language with proved safety, be converted into a widespread usable language? How well could Rust replace C and C++ as system languages? Rust – The Language of Choice for Secure Systems Slide 20/20 © 2007 Microsoft Corporation. Alle Rechte vorbehalten. Microsoft, Windows, Windows Vista und andere Produktnamen sind möglicherweise eingetragene Marken oder Marken in den USA und/oder anderen Ländern/Regionen. Diese Angaben dienen nur zu Informationszwecken und entsprechen dem aktuellen Sachstand der Microsoft Corporation zum Erstellungsdatum dieser Präsentation. Da Microsoft auf die sich ständig ändernden Marktanforderungen reagieren muss, sollten die Angaben nicht als Verpflichtung seitens Microsoft angesehen werden, und Microsoft übernimmt keine Garantie für die Genauigkeit der Angaben nach dem Datum dieser Präsentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
21
Thank you for listening!
12/5/ :49 AM Thank you for listening! Further questions? Discusion? Sources willcrichton.net/notes/rust-memory-safety/ RustBelt: Securing the Foundations of the Rust - RALF JUNG, JACQUES-HENRI JOURDAN, ROBBERT KREBBERS, DEREK DREYER doc.rust-lang.org/book/ rustbyexample.com/ plus.google.com/+nialldouglas/posts/AXFJRSM8u2t Rust – The Language of Choice for Secure Systems © 2007 Microsoft Corporation. Alle Rechte vorbehalten. Microsoft, Windows, Windows Vista und andere Produktnamen sind möglicherweise eingetragene Marken oder Marken in den USA und/oder anderen Ländern/Regionen. Diese Angaben dienen nur zu Informationszwecken und entsprechen dem aktuellen Sachstand der Microsoft Corporation zum Erstellungsdatum dieser Präsentation. Da Microsoft auf die sich ständig ändernden Marktanforderungen reagieren muss, sollten die Angaben nicht als Verpflichtung seitens Microsoft angesehen werden, und Microsoft übernimmt keine Garantie für die Genauigkeit der Angaben nach dem Datum dieser Präsentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.