freedomofpress / securedrop-ux

Public wiki and repository for the SecureDrop User Experience team
8 stars 0 forks source link

Client workflow equivalent to "Flag for reply" workflow in web UI #46

Closed ninavizz closed 5 years ago

ninavizz commented 5 years ago

Problem

When an instance's App server experiences low key entropy (via a DDoS type surge), new source account key pairs are halted. For a journalist to reply to a source submission, it needs a keypair assigned to it to facilitate encryption. Without that keypair, the journalist cannot reply to that Source—though they can still read all submitted materials.

The journalist therefore needs to select which source submissions need to be "flagged for reply," so the server knows to generate a key pair for those accounts the next time activity is detected by those sources (and to trigger the goofy message in the source UI). Alternately, the Journalist should be able to delete the source.

To make this issue extra awesome, there is no knowledge of any user ever encountering this flow—even after 5yrs of SD being in production. As such, inquiries are being made in a parallel research effort—but regardless, light testing of design solution(s) will be sought.

I wish there were a better way to handle DDoS things, tbh. This is a very sucky experience for sources, especially—as right now it remains unclear how or why they should return to see replies.

Considerations

Acceptance Critieria

ninavizz commented 5 years ago

@eloquence how do you want this prioritized abreast my other tickets for this sprint?

ninavizz commented 5 years ago

Instructional Text & Contextual Help Scratchpad

What you need to do Mark keyless sources; accept or deny? Blah blah blah. Language "flagging" is not right, as this is an action with consequences for Sources—not just marking something for how i will see it.

What happened? When a source uses your SecureDrop to share information through a new codename, a new encryption key is generated and paired to the new account.

If your SecureDrop experiences a large number of new source submissions all at once, it is possible that could be an attack from a bad actor. When SecureDrop detects this activity it will stop issuing encryption keys for new source accounts. Key generation is then resumed when the suspicions activity surge ends.

What this means Whenever sources and journalists communicate through SecureDrop, an encryption key is required on each end for shared files or messages to be read. If your SecureDrop recieves a message or a file from a new source but does not pair a key to that source, it is not possible for any of that information to be read. That is a good thing, as it protects

eloquence commented 5 years ago

Let's focus on the sprint commitments for now; Allie and I can do some more research on the current behavior and dump it here, and then you can potentially do a first UX prototype in the next sprint. Does that work for you?

ninavizz commented 5 years ago

Poyfect, thanks! :)

sssoleileraaa commented 5 years ago

Still looking into the currently implementation, but here's some info from way back: https://github.com/freedomofpress/securedrop/pull/150

ninavizz commented 5 years ago

09 May Meeting Notes: Erik/Nina

ninavizz commented 5 years ago

14 May: 1st Design Review

» Invision Wireframes «

If you'd like to leave comments on Invision about specific UI elements, feel free to do so—just turn on "Commenting" via the marginally discoverable translucent black tab in the lower-right of your screen, that has a barely-visible toggle control on it.

Shown:

Feedback

ninavizz commented 5 years ago

Hey gang! I've added a 2nd rev to the existing wireframes.

Pretty siked about how it's shaping up. Some notes...

  1. After considering Erik's insight that users can just delete files with the Source List control, I realized it felt somewhat paternalistic to force users to either delete or simply do nothing with that second button—whereas an option not discussed in the meeting, felt like it gives users more agency: to simply turn-off the alert flag in the Source List and to keep the message (so, like, an action for their choice to ignore the suspicious submission). Kind of a compromise of sorts. Which could be over-thinking things, but in the prototype it feels really elegant.

  2. The "Ignore" button functions as a toggle, which I also feel can make it work really well for teams (eg: one person disagrees with another person's 'ignore' schtick—why that would happen, we don't know, but I like having the capability when we don't know).

  3. I also added a new button verbiage paradigm, with "Key" and "Ignore." It's always my preference to avoid dumbed-down hand-waving around unfamiliar security concepts... and, really, when the user clicks the left button, they are doing more than simply electing to keep or accept something. Which, when the "Waiting" state screen was added to the flow, became evident.

  4. Combining all of the above, then, this becomes a rare instance when I feel icons on buttons help to guide mental models via conceptual affordances, vs adding to cognitive-burden or just distracting.

  5. I also added a "Yay, accepted!" state to the Source List, to alert journalists to when a Source has accepted the key pair—and they have been cleared to accept a reply. Don't worry Erik, I did not add the word "Yay" to the UI. ;)

As usual, the pink arrows can be your sherpa, but the "Key" and "Ignore" buttons also work.

Thoughts?

» Invision Wireframes «

eloquence commented 5 years ago

Hi @ninavizz, thanks for the revision! Please add this to the agenda for either the UX meeting or the Client Sync, as you see fit (depending on whether you'd like larger cross-team input).

I personally prefer the iteration we discussed yesterday:

I feel the previous "Keep" / "Delete" flow achieved user education in a way that more closely matches the user's realities. It asked for the concrete choice upfront, while also offering the explanation of what exactly is happening. It spoke to the user as a journalist, not as a security expert or administrator.

I would generally lean towards avoiding key iconography and language in the UI, because of this intimidation factor -- it suggests that the user themselves will be dealing with keys, which is not the case.

Conceptually, it is also ever so slightly misleading. This action does not generate the key -- it merely gives the go-ahead for keypair generation upon the source's next login. In this sense, the user is not "keying" a source.

That said, I appreciate the thinking that went into this iteration, and happy to discuss as a group :)

ninavizz commented 5 years ago

Hey @eloquence, thx for pushing back w/ the thoughtful comments. I want to be mindful with my limited hours availability & agreed to priorities, and also want to get this right. Looking forward to richer discussion in tomorrow's UX meeting.

For that, I'll update what you're responding to as the "3rd Rev," and quickly add-in the "2nd Rev" we discussed, yesterday. Will push that update to Invision, at some point later this afternoon.

I'm also going to ask of everyone attending (and you) to pls carefully read all UI text when evaluating the solutions—the button texts, and the supportive text(s). As someone new to all this. Ideally, in advance of the meeting (tho I know everyone is busy and has limited time). /cc @zenmonkeykstop , @redshiftzero , @creviera , @harrislapiroff, @rmol , @kushaldas and anyone else I may be missing.

Will ping the SD Slack channel, once I've pushed those updates. Still in research planning cave. :)

ninavizz commented 5 years ago

15 May design review notes

Next Steps

ninavizz commented 5 years ago

Very rad new pattern for spam filtering/handling, just discovered in GMail (not present a few months ago). Screenshots on my GDrive.

ninavizz commented 5 years ago

29 May iteration

Feedback

ninavizz commented 5 years ago

Iteration from above, based on feedback from @eloquence

Yet to compose "Learn More" content. Thoughts?

This source came in during a surge of traffic on the server. Because of that, the server has isolated this account. The source may continue to make submissions through this account, but you will not be able to send replies. If you would like to contact them, you will need to mark the account with Looks Safe. After that, once the server detects activity from the source using the account you will be able to reply—and the source will appear in the submissions list as a new, unread submission. Learn More
ninavizz commented 5 years ago

Delivered spec for beta

This source came in during a surge of traffic on the server. Because of that, they were not assigned a GPG key. The source may continue to make submissions through this account, but you will not be able to send replies. If you would like to contact this source, you will need to mark the account with Looks Safe. After that, once the source checks in again you will be able to reply. Learn More

ninavizz commented 5 years ago

The peanut gallery got quiet, so I'm taking that as a sign it's kosher to close this?

eloquence commented 5 years ago

Fine to close, but I would shorten that paragraph a bit more if possible.

Recommend changing from:

After that, once the server detects activity from the source using the account you will be able to reply—and the source will appear in the submissions list as a new, unread submission.

To:

After that, once the source checks in again, you will be able to reply.

ninavizz commented 5 years ago

^ Super sweet! Less technical, me likey. Done!

Follow-up question @eloquence: now that we have much more user-friendly language to speak to journalists about this, with, should we update the existing Web UI tidbits and documentation to present this feature as "Suspicious Activity Handling" vs "Flag For Reply" ?

@harlo @huertanix How much bandwidth do y'all give to Flag For Reply, in training sessions? Do y'all believe the language proposed in the screens we just approved is a marked improvement—or could be further improved?

eloquence commented 5 years ago

Follow-up question @eloquence: now that we have much more user-friendly language to speak to journalists about this, with, should we update the existing Web UI tidbits and documentation to present this feature as "Suspicious Activity Handling" vs "Flag For Reply" ?

Yes, but I think that can wait until the change has landed in the client, and we've done a round of validation (since it's in the punch list for the next round of user research).

ninavizz commented 5 years ago

Iteration from above, based on feedback from @eloquence

Yet to compose "Learn More" content. Thoughts?

This source came in during a surge of traffic on the server. Because of that, the server has isolated this account. The source may continue to make submissions through this account, but you will not be able to send replies. If you would like to contact them, you will need to mark the account with Looks Safe. After that, once the server detects activity from the source using the account you will be able to reply—and the source will appear in the submissions list as a new, unread submission. Learn More