Skip to content

Commit 02f0724

Browse files
committed
Polish up docs
1 parent 46ae9e1 commit 02f0724

File tree

3 files changed

+37
-1
lines changed

3 files changed

+37
-1
lines changed

docs/FAQ.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,20 @@ I wanted my password to be used in such a way that without it, the
3838
authenticator was useless - in other words, a true second factor.
3939

4040
So I wrote a CTAP2 implementation that [had that property](security.md).
41+
42+
## You say there are "caveats" for some implementation bits. What are those?
43+
44+
Well, first off, this app doesn't attempt to do a full CBOR parse, so its error
45+
statuses often aren't perfect and it's generally tolerant of invalid input.
46+
47+
Secondly, OpenSSH has a bug that rejects makeCredential responses
48+
that don't have credProtect level two when it requests level two. The
49+
CTAP2.1 standard says it's okay to return level three if two was requested,
50+
but that breaks OpenSSH, so... credProtect is incorrectly implemented in
51+
that it always applies level three internally.
52+
53+
## Why don't you implement U2F/CTAP1?
54+
55+
U2F doesn't support PINs, and requires an attestation certificate.
56+
57+
[the security model](security.md) requires PINs.

docs/requirements.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ hash yourself - good enough for me.
1414
So it's not possible to make this app work in a meaningful way on
1515
Javacard 3.0.1 or earlier.
1616

17-
So let's discuss the full requirements:
17+
So let's discuss the full requirements on the authenticator side:
1818

1919
- Javacard Classic 3.0.4
2020
- Approximately 2kB of total RAM, of which around 300 bytes will be reserved
@@ -27,3 +27,13 @@ So let's discuss the full requirements:
2727

2828
An example of a card I've tested working is the NXP J3H145, but many
2929
others should work fine too.
30+
31+
# Platform-side requirements
32+
33+
On the computer side of things, you'll likely want `libfido2` compiled
34+
with support for PC/SC, which is currently experimental, or `libnfc`.
35+
36+
Without either of those two things options you will Have A Bad Day.
37+
38+
If you have them, you should see the card start showing up in the output
39+
of `fido2-token -L`.

docs/security.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,3 +142,12 @@ a "timeout" on a Javacard 3.0.4 device. Javacard 3.1 introduces an
142142
But the implementation currently always assumes user presence.
143143

144144
This Could Be Better.
145+
146+
### I gave my smartcard to somebody but I didn't "lock" the card
147+
148+
They could probably install an applet that would make the scenario
149+
identical to one where they possessed the card AND the hardware
150+
was faulty.
151+
152+
So, lock your smartcard ("set a transit key"), `gpp --lock <key>` or
153+
however you communicate with it.

0 commit comments

Comments
 (0)