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

Let user specify other destination folders for file copying #1793

Closed
tasket opened this Issue Feb 28, 2016 · 11 comments

Comments

Projects
None yet
6 participants
@tasket

tasket commented Feb 28, 2016

There are many times when a user may want to copy very large files to volumes other than /rw/home, ie on an external HD or even from one external HD to another. Since the 'mount --bind' trick no longer works, that leaves the user writing piped qvm-run commands in dom0 CLI to avoid the waste of copying the data into /rw/home internal volume in an additional step (plus wear and tear).

I suggest adding a single context menu item to nautilus that allows a user to specify in a destination VM where the next file copy will go. It could remain in effect only once for each time the user selects that menu function, or maybe remain in effect for an entire session (until the dest VM is restarted).

@rustybird

This comment has been minimized.

Show comment
Hide comment
@rustybird

rustybird Mar 4, 2016

Since the 'mount --bind' trick no longer works

What do you mean? Bind mounting something to ~/QubesIncoming/ or ~/QubesIncoming/srcvm/ works for me, as does symlinking. Maybe your target filesystem does not support the required operations? (For example, sshfs is problematic.)

Since the 'mount --bind' trick no longer works

What do you mean? Bind mounting something to ~/QubesIncoming/ or ~/QubesIncoming/srcvm/ works for me, as does symlinking. Maybe your target filesystem does not support the required operations? (For example, sshfs is problematic.)

@tasket

This comment has been minimized.

Show comment
Hide comment
@tasket

tasket Mar 11, 2016

Hmmm... bind is working with QubesIncoming again. I stopped using HFS+ as an offline filesystem so that may have been a factor.

I still think letting the user select alt. destination from the GUI is good for UX.

tasket commented Mar 11, 2016

Hmmm... bind is working with QubesIncoming again. I stopped using HFS+ as an offline filesystem so that may have been a factor.

I still think letting the user select alt. destination from the GUI is good for UX.

@bnvk

This comment has been minimized.

Show comment
Hide comment
@bnvk

bnvk Mar 15, 2016

@ttasket just to confirm, are you meaning something like in a file Copy / Move dialogue, the user gets presented with a menu like

Copy to

  • QubesIncoming
  • Specify Other Folder

Whereby selecting Specify Other Folder gives user a dialogue prompt to input a custom path or select from a GUI file browser?

@marmarek is this sort of thing possible given the security model?

bnvk commented Mar 15, 2016

@ttasket just to confirm, are you meaning something like in a file Copy / Move dialogue, the user gets presented with a menu like

Copy to

  • QubesIncoming
  • Specify Other Folder

Whereby selecting Specify Other Folder gives user a dialogue prompt to input a custom path or select from a GUI file browser?

@marmarek is this sort of thing possible given the security model?

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Mar 15, 2016

Member

@marmarek is this sort of thing possible given the security model?

Source VM can't control target directory, otherwise it would be able put file in some place expected to be trusted by the user.
This may be some additional setting/dialog in target VM. As noted somewhere before, it should still force source VM named subdirectory there.
This may be also integrated into new confirmation dialog (#910), but not sure it would be the best idea, because generally we want to get rid of as much confirmations as possible to improve UX (and also confirmations are generally not really secure, because #1166 and additionally many users don't read them at all...).
As for file copy - if target directory is forced to be something clearly coming from different VMs (as it is now), there may be no confirmation at all.

Member

marmarek commented Mar 15, 2016

@marmarek is this sort of thing possible given the security model?

Source VM can't control target directory, otherwise it would be able put file in some place expected to be trusted by the user.
This may be some additional setting/dialog in target VM. As noted somewhere before, it should still force source VM named subdirectory there.
This may be also integrated into new confirmation dialog (#910), but not sure it would be the best idea, because generally we want to get rid of as much confirmations as possible to improve UX (and also confirmations are generally not really secure, because #1166 and additionally many users don't read them at all...).
As for file copy - if target directory is forced to be something clearly coming from different VMs (as it is now), there may be no confirmation at all.

@andrewdavidwong

This comment has been minimized.

Show comment
Hide comment
@andrewdavidwong

andrewdavidwong Mar 15, 2016

Member

Source VM can't control target directory, otherwise it would be able put file in some place expected to be trusted by the user.

But we're not supposed to be copying from less trusted -> more trusted domains in the first place, right?

Member

andrewdavidwong commented Mar 15, 2016

Source VM can't control target directory, otherwise it would be able put file in some place expected to be trusted by the user.

But we're not supposed to be copying from less trusted -> more trusted domains in the first place, right?

@andrewdavidwong

This comment has been minimized.

Show comment
Hide comment
@andrewdavidwong

andrewdavidwong Mar 15, 2016

Member

As for file copy - if target directory is forced to be something clearly coming from different VMs (as it is now), there may be no confirmation at all.

No confirmation by default (default RPC "allow"), or simply no option to have a confirmation at all (no RPC policy)? If it's the latter, I would worry about no longer protecting against accidental leaks from confidential source VMs.

Member

andrewdavidwong commented Mar 15, 2016

As for file copy - if target directory is forced to be something clearly coming from different VMs (as it is now), there may be no confirmation at all.

No confirmation by default (default RPC "allow"), or simply no option to have a confirmation at all (no RPC policy)? If it's the latter, I would worry about no longer protecting against accidental leaks from confidential source VMs.

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Mar 15, 2016

Member

But we're not supposed to be copying from less trusted -> more trusted domains in the first place, right?

Sometimes it isn't that simple. For example what about documents coming via email? Sometimes you want to store them somewhere (outside of email VM), not only open in DispVM directly from email VM.

No confirmation by default (default RPC "allow")

This one. Maybe even not for all the VM (for example transfers out of default "untrusted" VM would still require confirmation, or even be denied by default). This require some more thinking (this is we haven't done that before, even though all the technical infrastructure for it is ready for a long time). Having management stack allows us to setup more advanced defaults (like the one with "untrusted" VM mentioned above).

Member

marmarek commented Mar 15, 2016

But we're not supposed to be copying from less trusted -> more trusted domains in the first place, right?

Sometimes it isn't that simple. For example what about documents coming via email? Sometimes you want to store them somewhere (outside of email VM), not only open in DispVM directly from email VM.

No confirmation by default (default RPC "allow")

This one. Maybe even not for all the VM (for example transfers out of default "untrusted" VM would still require confirmation, or even be denied by default). This require some more thinking (this is we haven't done that before, even though all the technical infrastructure for it is ready for a long time). Having management stack allows us to setup more advanced defaults (like the one with "untrusted" VM mentioned above).

@andrewdavidwong

This comment has been minimized.

Show comment
Hide comment
@andrewdavidwong

andrewdavidwong Mar 15, 2016

Member

Sometimes it isn't that simple. For example what about documents coming via email? Sometimes you want to store them somewhere (outside of email VM), not only open in DispVM directly from email VM.

True. So the question is whether it's worthwhile to deny some control to SourceVMs for the sake of protecting "wrong way" transfers. Since many users rely on "wrong way" transfers in practice and often don't have much of a choice, I agree it's a worthwhile tradeoff.

Member

andrewdavidwong commented Mar 15, 2016

Sometimes it isn't that simple. For example what about documents coming via email? Sometimes you want to store them somewhere (outside of email VM), not only open in DispVM directly from email VM.

True. So the question is whether it's worthwhile to deny some control to SourceVMs for the sake of protecting "wrong way" transfers. Since many users rely on "wrong way" transfers in practice and often don't have much of a choice, I agree it's a worthwhile tradeoff.

@tasket

This comment has been minimized.

Show comment
Hide comment
@tasket

tasket Mar 15, 2016

My thinking is to have a separate menu item in nautilus that can be selected in the destination VM. It could require that the user already has a folder selected, and would probably put up a notification that the destination for Qubes copy has changed.

tasket commented Mar 15, 2016

My thinking is to have a separate menu item in nautilus that can be selected in the destination VM. It could require that the user already has a folder selected, and would probably put up a notification that the destination for Qubes copy has changed.

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Jun 20, 2016

Member

Closing, as this makes it easier for compromised VM to fool the user to compromise some other VM as described in #1793 (comment)

Member

marmarek commented Jun 20, 2016

Closing, as this makes it easier for compromised VM to fool the user to compromise some other VM as described in #1793 (comment)

@boring-stuff

This comment has been minimized.

Show comment
Hide comment
@boring-stuff

boring-stuff Feb 13, 2017

Yes @marmarek the last comments were OT in #910, but I still don't see your critique to this issue to apply for the reasons specified in this #910 comment.
The point I want to make is: if (as I assume) the security impact is minimal to nonexistent and yet the usability is greatly improved, is it worth it to extend the file transfer agent with this feature?

I am aware that binding works, but I don't think we should default to asking users to do that, especially if they don't master the command line.

Yes @marmarek the last comments were OT in #910, but I still don't see your critique to this issue to apply for the reasons specified in this #910 comment.
The point I want to make is: if (as I assume) the security impact is minimal to nonexistent and yet the usability is greatly improved, is it worth it to extend the file transfer agent with this feature?

I am aware that binding works, but I don't think we should default to asking users to do that, especially if they don't master the command line.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment