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

First attempt to write some privacy considerations #501

Merged
merged 3 commits into from Mar 8, 2020

Conversation

mirjak
Copy link
Contributor

@mirjak mirjak commented Feb 17, 2020

This ended up in more text that I thought. I'm not certain if we need all of it. Further I'm unsure about the concrete wording in many cases, so any comments are more than welcome!

This ended up in more text that I thought. I'm not certain if we need all of it. Further I'm unsure about the concrete wording in many cases, so any comments are more than welcome!
@mirjak
Copy link
Contributor Author

mirjak commented Feb 17, 2020

This is supposed to address issue #177

Copy link
Contributor

@philsbln philsbln left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it is a good start, but I miss two aspects:

  • Information leakage through DNS, which can also make addresses on different paths linkable
  • Information leakage within an application though shared caches, e.g., within a browser.

@mirjak
Copy link
Contributor Author

mirjak commented Feb 19, 2020

I do mentioned name resolution, however, leakage though DNS might rather be a DNS problem and not necessarily an issue that needs to be considered in taps.

Sharing cache state is a good point. I vaguely remember that we already address that somewhere else (could also be in the implementation draft as this is rather an implementation issue). But maybe we can add a pointer...?

@britram
Copy link
Contributor

britram commented Feb 23, 2020

Leakage though DNS may need to be addressed by TAPS, as with the current sockets API, the application has complete control about when DNS resolution is done (and, at least as long as things like DoH/DoT are predominantly implemented by nonsystem resolver libraries, how). TAPS as envisioned gives the system more control over resolution.

@britram
Copy link
Contributor

britram commented Feb 23, 2020

(IIRC the architecture does explicitly address and mention the shared cache issue; adding a line to refer to that in privacy considerations might be nice but isn't IMO necessary.)

Copy link
Contributor

@mwelzl mwelzl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree this is a good starting point; note that I took the liberty to directly fix some nits (such as capitalizing TAPS) and typos; these never change the intended meaning.


The desribed API is used to exchange information between an application and the transport system. While
it is not necessarily expected that both systems are implemented by the same authority, it is expected
that the transport system implementation is either provided as library that is selected by the application
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as /a/ library

from a trusted party, or that it is part of the operating system that the application also relies on for
other tasks.

In any case the TAPS API is an internal interface that is used to change information locally between two systems.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/In any case/In either case/ ?

  • and add comma?

potentially share any information provided by the application with the network or another communication peer.
Most of the information provided over the TAPS API are useful to configure and select protocols and paths
and are not necessarily privacy sensitive. Still, there is some information that could be privacy sensitve as
it might reveal usage characteristics and habits of the user of an application.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/as it/because this/

and are not necessarily privacy sensitive. Still, there is some information that could be privacy sensitve as
it might reveal usage characteristics and habits of the user of an application.

It should first be noted that of course any communication over a network reveals usage characteristics, as all
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/It should first be noted/
-Could be deleted top read easier?


It should first be noted that of course any communication over a network reveals usage characteristics, as all
packets as well as their timing and size are part of the network-visible wire image {{?RFC8546}}. However, of
course the selection of a protocol and its configuration impacts which information is visible, potentially in
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/of course/

  • could be deleted?

It should first be noted that of course any communication over a network reveals usage characteristics, as all
packets as well as their timing and size are part of the network-visible wire image {{?RFC8546}}. However, of
course the selection of a protocol and its configuration impacts which information is visible, potentially in
clear text, to which other enties. In most cases information that is provided for protocol and path selection
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/to which other entities/

  • seem to read wrong.. is this: and the other entities that can access this, or something else?

packets as well as their timing and size are part of the network-visible wire image {{?RFC8546}}. However, of
course the selection of a protocol and its configuration impacts which information is visible, potentially in
clear text, to which other enties. In most cases information that is provided for protocol and path selection
should not directly translate in information that is visible on the path. But there might be specific configuration
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/in information/to information/?
/that is visible on the path/... /that can be observed by netwoprkl devices on the path/?

benefit from innovations and new protocols in the transport system but at the same time may reduce transparency of the
underlying communication actions to the application itself. The TAPS API is designed such that protocol and path selection
can be limited to a small and controlled set if required by the application for functional or security purposes. Further
TAPS implementations should provide an interface to pull information about which protocol and path is currently in use as
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/Further,/
"pull" ... probably a better word is needed... is this "provide"

underlying communication actions to the application itself. The TAPS API is designed such that protocol and path selection
can be limited to a small and controlled set if required by the application for functional or security purposes. Further
TAPS implementations should provide an interface to pull information about which protocol and path is currently in use as
well as provide logging about communication events of each connection.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

insert /the/ before /communications/

@mirjak
Copy link
Contributor Author

mirjak commented Mar 4, 2020

Gorry, I addressed all your nits/comments.

@britram britram merged commit 42f214e into master Mar 8, 2020
@britram britram deleted the mirjak-api-privacy branch September 11, 2020 16:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants