@@ -1307,44 +1307,52 @@ <h2 id="MIDIConnectionEventInit">
13071307 </ section >
13081308 < section >
13091309 < h2 >
1310- Security and Privacy Considerations of MIDI
1310+ Privacy Considerations
13111311 </ h2 >
13121312 < p >
1313- There are two primary security and privacy concerns with adding the
1314- Web MIDI API to the web platform:
1313+ Allowing the enumeration of the user's MIDI interfaces is a potential
1314+ target for fingerprinting (that is, uniquely identifying a user by the
1315+ specific MIDI interfaces they have connected). Note that in this
1316+ context, what can be enumerated is the MIDI < i > interfaces</ i > - not,
1317+ for example, an individual sampler or synthesizer plugged into a MIDI
1318+ interface, as these would not be enumerated, unless those devices are
1319+ connected to the host computer with USB (USB-MIDI devices typically
1320+ have their own MIDI interface, and would be enumerated). The
1321+ interfaces that could be fingerprinted are equivalent to MIDI "ports",
1322+ and for each device the API will expose the name of the device,
1323+ manufacturer, and opaque identifier of the MIDI interface (but not any
1324+ attached devices).
1325+ </ p >
1326+ < p >
1327+ Few systems will have significant numbers of MIDI devices attached;
1328+ those systems that do will typically use hardware MIDI interfaces, not
1329+ fanning out a dozen USB-MIDI connections through USB hubs. In this
1330+ case, of course, enumerating the MIDI “devices” will only see the
1331+ hardware MIDI interface(s), not the synthesizers, samplers,
1332+ etc. plugged into it on the other side. Given the few number of
1333+ devices plugged in, the amount of information exposed here is fairly
1334+ symmetric with the fingerprinting concern exposed by other APIs such
1335+ as the Gamepad API. The vast majority of systems have relatively few
1336+ MIDI interfaces attached.
1337+ </ p >
1338+ < p >
1339+ In short: the additional fingerprinting exposure of enumerating MIDI
1340+ devices is directly analogous to the Gamepad API’s additional
1341+ fingerprinting exposure through gamepad enumeration; typical users
1342+ will only have at most a few devices connected, their configuration
1343+ may change, and the information exposed is about the interface itself
1344+ (i.e., no user-configured data).
1345+ </ p >
1346+ </ section >
1347+ < section >
1348+ < h2 >
1349+ Security Considerations
1350+ </ h2 >
1351+ < p >
1352+ Separate from the fingerprinting concerns of identifying the available
1353+ ports are concerns around sending and receiving MIDI messages. Those
1354+ issues are explored in more depth below.
13151355 </ p >
1316- < ol >
1317- < li > Allowing the enumeration of the user's MIDI interfaces is a
1318- potential target for fingerprinting (that is, uniquely identifying a
1319- user by the specific MIDI interfaces they have connected). Note that
1320- in this context, what can be enumerated is the MIDI < i > interfaces</ i >
1321- - not, for example, an individual sampler or synthesizer plugged into
1322- a MIDI interface, as these would not be enumerated, unless those
1323- devices are connected to the host computer with USB (USB-MIDI devices
1324- typically have their own MIDI interface, and would be enumerated).
1325- The interfaces that could be fingerprinted are equivalent to MIDI
1326- "ports", and for each device the API will expose the name of the
1327- device, manufacturer, and opaque identifier of the MIDI interface
1328- (but not any attached devices).
1329- < p >
1330- Few systems will have significant numbers of MIDI devices
1331- attached; those systems that do will typically use hardware MIDI
1332- interfaces, not fanning out a dozen USB-MIDI connections through
1333- USB hubs. In this case, of course, enumerating the MIDI “devices”
1334- will only see the hardware MIDI interface(s), not the
1335- synthesizers, samplers, etc. plugged into it on the other side.
1336- Given the few number of devices plugged in, the amount of
1337- information exposed here is fairly symmetric with the
1338- fingerprinting concern exposed by other APIs such as the Gamepad
1339- API. The vast majority of systems have relatively few MIDI
1340- interfaces attached.
1341- </ p >
1342- </ li >
1343- < li > Separate from the fingerprinting concerns of identifying the
1344- available ports are concerns around sending and receiving MIDI
1345- messages. Those issues are explored in more depth below.
1346- </ li >
1347- </ ol >
13481356 < p >
13491357 In brief, the general categories of things you can do with MIDI ports
13501358 are:
@@ -1451,14 +1459,6 @@ <h2>
14511459 scenarios.
14521460 </ li >
14531461 </ ol >
1454- < p >
1455- In short: the additional fingerprinting exposure of enumerating MIDI
1456- devices is directly analogous to the Gamepad API’s additional
1457- fingerprinting exposure through gamepad enumeration; typical users
1458- will only have at most a few devices connected, their configuration
1459- may change, and the information exposed is about the interface itself
1460- (i.e., no user-configured data).
1461- </ p >
14621462 < p >
14631463 The additional security concern for receiving short messages is also
14641464 small - it’s analogous to listening to keyboard, mouse, mobile/laptop
0 commit comments