You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add Duo Push auto-approval and HOTP hex conversion
Implements three-priority Duo MFA authentication system:
1. OTP (highest priority) - Auto-generates HOTP codes from secret
2. Auto-approval - Uses device credentials to approve pushes via Duo API
3. Manual push (fallback) - Traditional approve-on-phone flow
Database changes:
- Add duo_push_akey, duo_push_pkey, duo_push_host, duo_push_rsa_key_path columns
- Add duo_device column to persist user's selected device
- Migration: 20522d39dc63_add_duo_push_method
Duo Push auto-approval:
- Integrate with Duo device API using RSA-SHA512 signed requests
- Load device credentials from database and RSA key from file
- Poll for pending push notifications and auto-approve
- Hard fail if auto-approval is configured but broken (prevents hanging)
- Auto-correct duo_device when credentials don't match selected device
HOTP hex secret auto-conversion:
- Auto-detect 32-char hex format (from synackDUO's hotp_secret)
- Convert by treating hex string as UTF-8, then base32 encode
- Based on duo-hotp reference implementation
- Accepts both hex (hotp_secret) and base32 (otpauth://) formats
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <[email protected]>
Copy file name to clipboardExpand all lines: docs/src/usage/index.md
+2-6Lines changed: 2 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,12 +17,8 @@ With that in mind, I would highly recommend you become familiar with the [Plugin
17
17
## Authentication
18
18
19
19
The first time you try to do anything which requires authentication, you will be automatically prompted for your credentials.
20
-
This prompt will expect the `Synack Email` and `Synack Password`, which are fairly self explanitory, but it also asks for the `Synack OTP Secret`.
20
+
This prompt will expect the `Synack Email` and `Synack Password`, which are fairly self explanatory.
21
21
22
-
The `Synack OTP Secret` is NOT the 8 digit code you pull out of Authy.
23
-
Instead, it is a string that you must extract from Authy via a method similar to the one found [here](https://gist.github.com/gboudreau/94bb0c11a6209c82418d01a59d958c93).
24
-
25
-
Use the above instructions at your own discression.
26
-
I TAKE NO RESPONSIBILITY IF SOMETHING BAD HAPPENS AS A RESULT.
22
+
For Duo MFA setup options, see the [Duo plugin documentation](./plugins/duo.md).
27
23
28
24
Once you complete these steps, your credentials are stored in a SQLiteDB at `~/.config/synack/synackapi.db`.
> Wait forand approve a single Duo push notification
73
+
>
74
+
> Polls Duo's device API for pending push notifications and automatically approves the first one found. Useful for automated workflows that need to handle Duo MFA.
75
+
>
76
+
>| Argument | Type | Default | Description
77
+
>|---|---|---|---
78
+
>|`timeout`|int|30| Maximum seconds to wait for a push notification
79
+
>
80
+
> Returns `True`if a push was approved, `False`if timeout or error occurred.
0 commit comments