@@ -1307,44 +1307,52 @@ <h2 id="MIDIConnectionEventInit">
1307
1307
</ section >
1308
1308
< section >
1309
1309
< h2 >
1310
- Security and Privacy Considerations of MIDI
1310
+ Privacy Considerations
1311
1311
</ h2 >
1312
1312
< 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.
1315
1355
</ 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 >
1348
1356
< p >
1349
1357
In brief, the general categories of things you can do with MIDI ports
1350
1358
are:
@@ -1451,14 +1459,6 @@ <h2>
1451
1459
scenarios.
1452
1460
</ li >
1453
1461
</ 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 >
1462
1462
< p >
1463
1463
The additional security concern for receiving short messages is also
1464
1464
small - it’s analogous to listening to keyboard, mouse, mobile/laptop
0 commit comments