libreoffice lockdown encryption improvements to document
play

LIBREOFFICE LOCKDOWN & ENCRYPTION Improvements to document - PowerPoint PPT Presentation

LIBREOFFICE LOCKDOWN & ENCRYPTION Improvements to document security & permissions Thorsten Behrens, CIB software GmbH FOSDEM 2020, Brussels, February 3, 2020 1 Yours Truly Thorsten Behrens thb@libreoffice.org Since 2015 with


  1. LIBREOFFICE LOCKDOWN & ENCRYPTION Improvements to document security & permissions Thorsten Behrens, CIB software GmbH FOSDEM 2020, Brussels, February 3, 2020 1

  2. Yours Truly Thorsten Behrens – thb@libreoffice.org ● Since 2015 with CIB & built the LibreOffice team there ● One of those LibreOffice forkers/founders, also on The Document Foundation board ● Working with this code since about 2001 (OpenOffice, then LibreOffice) ● Hacker, computer scientist, FLOSS & Open Standards lover 2

  3. CREDITS Vasily Melenchuk Serge Krot Samuel Mehrbrodt 3

  4. ANOTHER „ENTERPRISE“ FEATURE WE MISSED 1. FOR DESKTOP USERS 2. PERMIT ENTERPRISES TO CENTRALLY CONTROL WHAT USERS CAN DO 3. WITH THEIR COMPUTERS & THEIR DOCUMENTS 4

  5. ARCHITECTURE FOR MS RIGHTS MANAGEMENT (RMS) Client or user certificate Code signature UNO API LibreOffice Extension / RMS API RMS Client 2.1 RMS Server Wrapper LibreOffice Offjce user 5

  6. SEQUENCE DIAGRAM FOR A RMS DECRYPTION LibreOffice RMS Client RMS agent GnuPG process GnuPG process Server RMS code Extension gpg gpg Authenticate against client, Ensure integrity of client-side request session key (OS and RMS client application) Request session key Session key with permission meta data Decrypt document Active Directory 6

  7. Wrapper Extension LibreOffice 7

  8. ARCHITECTURE FOR GNUPG (SUGGESTION) User private key Code signature UNO API LibreOffice Extension GnuPG plus WKS / permitted keychain LibreOffice Offjce user 8

  9. IMPLEMENTATION 9

  10. CORE API CHANGE FOR THIS FEATURE interface XPackageEncryption: css::uno::Xinterface { boolean readEncryptionInfo( [in] sequence < css::beans::NamedValue > rOleStreams); boolean generateEncryptionKey( [in] string rPassword); boolean decrypt( [in] css::io::XInputStream rxInputStream, [out] css::io::XOutputStream rxOutputStream); sequence<css::beans::NamedValue> createEncryptionData( [in] string rPassword); boolean setupEncryption( [in] sequence<css::beans::NamedValue> rMediaEncData); sequence<css::beans::NamedValue> encrypt( [in] css::io::XInputStream rxInputStream); boolean checkDataIntegrity(); }; 10

  11. SOME SCREENSHOTS 11

  12. SOME SCREENSHOTS 12

  13. Any questions? :) 16

  14. THANK YOU! 17

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend