Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Define initial MIME type and application mapping #168

Closed
eloquence opened this issue Oct 17, 2018 · 9 comments
Closed

Define initial MIME type and application mapping #168

eloquence opened this issue Oct 17, 2018 · 9 comments
Assignees
Milestone

Comments

@eloquence
Copy link
Member

As described in #75, ideally we'll ultimately be able to have a clear mapping of various supported file types against carefully chosen applications, and a comparison with the feature set of the Tails SVS.

Initially, however, we can make do with a preliminary subset of supported MIME types and applications. For the purposes of the audit, our goal is to demonstrate that files can be opened in different external applications using disposable VMs -- the specific choices do not have to be final.

What we need to close this task is a table that includes a reasonable subset of common document/media MIME types, common file extensions for that MIME type (for easy testing/identification), and the recommended handler application which should ideally exist as a Debian 9 stretch package we can specify as a dependency.

In the alpha release, all other MIME types will be unsupported and trigger an error message.

@eloquence eloquence added this to the 0.1.0alpha milestone Oct 17, 2018
@eloquence eloquence self-assigned this Oct 17, 2018
@eloquence eloquence added this to Current Sprint Backlog - 10/17 - 10/31 in SecureDrop Team Board Oct 17, 2018
@eloquence
Copy link
Member Author

Here is my initial set of recommendations:
https://docs.google.com/spreadsheets/d/1l-DGR5UnnvYA5jfeZtplER933ANPWgFLx_uWbnJZKWI/edit#gid=0

There are some caveats for certain handlers, please inspect the notes (black triangles on some cells). For example, if we rely on xdg-open, the default viewer after installing the recommended packages will not make sense for PDF files (will open in LibreOffice) or for Ogg Vorbis files (will open in video player).

@eloquence eloquence moved this from Current Sprint Backlog - 10/17 - 10/31 to Ready for review in SecureDrop Team Board Oct 18, 2018
@conorsch
Copy link
Contributor

Great coverage, @eloquence ! Convenient that we can use libreoffice as a catch-all; I'd assumed we'd have to manage each subapp separately. The caveats you note are on point. The list here is useful both for assigning the relevant handlers, as well as managing PaX flags on the relevant binaries where necessary, now that #156 is resolved.

Also flagging that MP3 support and other formats may require non-free repos to be configured; I'd prefer to skip those for now and rely on the stable repos where possible, unless we have interview feedback that suggests prioritizing.

We should also have a fallback option that bails out of the handler selection and displays a message to the user if an application format is unsupported—fine to punt to another issue to keep this one focused.

@eloquence
Copy link
Member Author

NB, this is all based on testing in the debian9.5 template that shipped with Qubes 4.0. I did not have to configure any non-free repos to get MP3 working in audacious -- it just worked immediately. Debian 9.5 post-dates the MP3 patent expiry date, which may be why, but I didn't confirm that.

@conorsch
Copy link
Contributor

I did not have to configure any non-free repos to get MP3 working in audacious -- it just worked immediately.

That's great news, happy we're downstream from those changes, then. Looks like we have strong coverage of common formats here, but perhaps we'll uncover more based on interview feedback.

Given that we'll want to ship updates to these over time, creating a Debian package for sd-svs-disp (as distinct from the sd-svs VM) sounds like the right approach. We can add to #167 if you agree, @eloquence ; in the meantime, happy to implement via Salt as a stopgap so we can push forward with testing the mapping behavior.

@eloquence
Copy link
Member Author

SGTM, for now, added a checkbox to this effect to #167, tentatively suggesting securedrop-svs-disp-config for consistency w/ other meta-packages.

@emkll
Copy link
Contributor

emkll commented Oct 24, 2018

Looks great @eloquence !

The list looks quite complete to me, and the defaults sensible. Do you know offhand .csv files handled by default? (text/csv might be a candidate for Libre/OpenOffice?) and other plaintext text/* (which are already being handled).
From that list, I believe Open/LibreOffice are the only binaries that will require PaX flags.

@eloquence
Copy link
Member Author

Thanks for flagging; I believe LibreOffice should indeed be a good candidate for CSV and handle it by default, but I'll do some more sanity checking in Qubes and update the spreadsheet for both plain text and CSV.

@eloquence
Copy link
Member Author

Confirmed; we should be fine for CSVs.

Note that LibreOffice will become the default handler for plain text files after it is installed; I would suggest overriding that and forcing use of gedit (also noted in spreadsheet).

@eloquence
Copy link
Member Author

Closing this task based on Mickael's and Conor's review, should be a reasonable starting point for building the SVS template.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Development

No branches or pull requests

3 participants