Skip to content

Commit 2a06f62

Browse files
authored
Add extended-monitor spec (#466)
1 parent 12e4b00 commit 2a06f62

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed

extensions/extended-monitor.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
---
2+
title: "`extended-monitor` Extension"
3+
layout: spec
4+
work-in-progress: true
5+
extends:
6+
- monitor
7+
- away-notify
8+
- account-notify
9+
- chghost
10+
- setname
11+
copyrights:
12+
-
13+
name: "Simon Ser"
14+
15+
period: "2021"
16+
---
17+
18+
19+
## Notes for implementing work-in-progress version
20+
21+
This is a work-in-progress specification.
22+
23+
Software implementing this work-in-progress specification MUST NOT use the
24+
unprefixed `extended-monitor` capability name. Instead, implementations SHOULD
25+
use the `draft/extended-monitor` capability name to be interoperable with other
26+
software implementing a compatible work-in-progress version.
27+
28+
The final version of the specification will use an unprefixed capability name.
29+
30+
31+
## Description
32+
33+
With the help of extensions such as [`away-notify`](away-notify.html),
34+
[`account-notify`](account-notify.html), [`chghost`](chghost.html) and
35+
[`setname`](setname.html), clients are able to keep other users' metadata
36+
up-to-date with their local state when they share a channel. However, clients
37+
are not able to do so when they don't share a channel.
38+
39+
The [`monitor`](monitor.html) extension allows clients to track when another
40+
user goes offline or comes online. This specification extends MONITOR to also
41+
include AWAY, ACCOUNT, CHGHOST and SETNAME notifications.
42+
43+
The `extended-monitor` capability advertises that the server supports sending
44+
such extended notifcations for monitored nicks. When enabled by the client:
45+
46+
- If `away-notify` is also enabled, the client will get AWAY notifications for
47+
monitored nicks.
48+
- If `account-notify` is also enabled, the client will get ACCOUNT
49+
notifications for monitored nicks.
50+
- If `chghost` is also enabled, the client will get CHGHOST notifications for
51+
monitored nicks.
52+
- If `setname` is also enabled, the client will get SETNAME notifications for
53+
monitored nicks.
54+
55+
## Privacy considerations
56+
57+
This extension allows users to monitor personal information of other users.
58+
Since the IRC protocol doesn't provide any way to atomically change this
59+
personal information (nick, host, realname all at the same time), it may be
60+
possible for an outside observer to track nick changes:
61+
62+
- Observer monitors nick A and nick B.
63+
- User with nick A changes their nick to nick B, then changes their host and
64+
realname.
65+
- Observer receives `RPL_MONOFFLINE` for nick A, `RPL_MONONLINE` for nick B,
66+
and then receives notifications for host and realname changes.
67+
68+
In this scenario, it's possible for the observer to figure out that nick A and
69+
nick B are owned by the same user by comparing the host and realname.
70+
71+
For this reason, privacy conscious clients are advised to disconnect and
72+
re-connect to the IRC server as a way to atomically update personal
73+
information.

0 commit comments

Comments
 (0)