Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
apm — Un gestore di password locale per tutti | Kitploit
Strumenti/GitHubGitHub/aaravmaloo/apm
Password CrackingStrumenti di Crittografia/DecrittografiaCrittografiaSicurezza CloudDevSecOpsPrivacyUtilità e FrameworkRilevamento SegretiGestione Identità e Accessi (IAM)Autenticazione
GitHub
2923711 giorni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
aaravmaloo/apm

apm

Un gestore di password locale per tutti

Vedi RepositorySito web
<div align="center">

# APM

**Un gestore di password locale migliore per tutti.**

[![Go](https://img.shields.io/badge/Go-1.22+-00ADD8?style=flat&logo=go&logoColor=white)](https://golang.org)
[![License](https://img.shields.io/github/license/aaravmaloo/apm?style=flat)](LICENSE)
[![Docs](https://img.shields.io/badge/docs-aaravmaloo.github.io/apm-blue?style=flat)](https://aaravmaloo.github.io/apm)

[![CI](https://img.shields.io/github/actions/workflow/status/aaravmaloo/apm/ci.yml?branch=master&label=CI&style=flat)](https://github.com/aaravmaloo/apm/actions/workflows/ci.yml)
[![Latest Release](https://img.shields.io/github/v/release/aaravmaloo/apm?style=flat)](https://github.com/aaravmaloo/apm/releases/latest)
[![Stars](https://img.shields.io/github/stars/aaravmaloo/apm?style=flat)](https://github.com/aaravmaloo/apm/stargazers)
[![Issues](https://img.shields.io/github/issues/aaravmaloo/apm?style=flat)](https://github.com/aaravmaloo/apm/issues)

</div>
APM è un gestore di password CLI veloce e a conoscenza zero scritto in Go e Rust. Memorizza **oltre 25 tipi di segreti strutturati** in un unico vault crittografato — dalle password e codici TOTP alle chiavi SSH, cartelle cliniche, foto e file binari. Da questo repository vengono distribuiti due binari: `pm` per uso personale e `pm-team` per vault organizzativi condivisi.

---

### Perché APM?

- **Veloce e facile da imparare** — nessun comando o flag da memorizzare. APM ti chiede tutto ciò di cui ha bisogno. Sono disponibili anche flag CLI per gli utenti esperti che desiderano la massima velocità.
- **A conoscenza zero** — la tua password principale non viene mai memorizzata. Tre chiavi separate da 32 byte vengono derivate usando Argon2id. Nessuno tranne te può decrittografare il tuo vault.
- **Doppia crittografia** — scegli AES-256-GCM o XChaCha20-Poly1305. Integrità a doppio livello tramite HMAC-SHA256 sopra l'autenticazione AEAD.
- **Portatile** — un file vault, un binario. Porta il tuo vault ovunque.
- **Cloud opzionale** — sincronizza con Google Drive, GitHub o Dropbox. Completamente facoltativo; nessun account richiesto per usare APM.
- **Pronto per l'IA** — server MCP nativo con token con ambito limitato, così Claude, Cursor o qualsiasi agente compatibile con MCP può accedere al tuo vault in modo sicuro.
- **Pronto per i team** — RBAC completo, reparti, flussi di approvazione e vault condivisi in `pm-team`.

---

### Avvio rapido

```sh
go build -o pm .
pm setup       # initialize vault and choose security profile
pm unlock      # start a session
pm add         # add a secret (interactive)
pm get github  # fuzzy search and retrieve
pm lock        # end session
```

**Edizione Team:**
```sh
cd team
go build -o pm-team .
```

### Tipi di segreto

APM supporta **25 tipi di segreto strutturati** con campi validati e logica di visualizzazione specifica per tipo:

| # | Tipo | # | Tipo |
|---|------|---|------|
| 1 | Password | 14 | Docker Registry |
| 2 | TOTP | 15 | CI/CD Secret |
| 3 | Government ID | 16 | Secure Note |
| 4 | Medical Record | 17 | Recovery Codes |
| 5 | Travel Info | 18 | Certificate |
| 6 | Contact | 19 | Banking |
| 7 | Wi-Fi | 20 | Document |
| 8 | API Key | 21 | Software License |
| 9 | Token | 22 | Legal Contract |
| 10 | SSH Key | 23 | Photo |
| 11 | SSH Config | 24 | Audio |
| 12 | Cloud Credentials | 25 | Video |
| 13 | Kubernetes | | |

---

### Funzionalità

**Sicurezza**
- Derivazione della chiave Argon2id a conoscenza zero — la password principale non viene mai memorizzata
- Doppio cifrario AEAD: AES-256-GCM e XChaCha20-Poly1305
- Controllo di integrità a doppio livello HMAC-SHA256
- Quattro profili di sicurezza configurabili: `standard`, `hardened`, `paranoid`, `legacy`
- Watchtower (`pm watchtower`): un punteggio di sicurezza da 0 a 100 con password deboli, riutilizzate, vecchie, compromesse (opt-in, k-anonimo) ed esposte, elementi in scadenza, autenticazione a due fattori e passkey mancanti, chiavi rischiose e controlli di configurazione, oltre a punteggi di affidabilità per singolo elemento e una revisione delle attività
- Le password errate aggiungono un'attesa crescente (mai un blocco permanente), condivisa tra CLI, app ed estensione
- Registro di controllo a prova di manomissione memorizzato all'esterno della cassaforte

**Cassaforte**
- Singolo file di cassaforte cifrato — portabile su qualsiasi dispositivo
- Spazi per la compartimentazione logica (come le cartelle)
- Ricerca fuzzy con browser interattivo e navigazione da tastiera
- Ispettore dei metadati: data di creazione, ultimo accesso, numero di accessi, punteggio di affidabilità

**TOTP**
- Timer di conto alla rovescia in tempo reale in un elenco interattivo
- Ordinamento personalizzato persistente
- Copia diretta: `pm totp github`
- Integrazione con il demone di compilazione automatica per l'iniezione automatica dei codici 2FA

**Sincronizzazione cloud**
- Google Drive (OAuth2 PKCE), GitHub (PAT), Dropbox (OAuth2 PKCE)
- Cifratura end-to-end — i provider non vedono mai il testo in chiaro
- `.apmignore` per filtrare le voci per provider
- Risoluzione dei conflitti: sovrascrivere, mantenere locale o annullare
- Sincronizzazione automatica in background

**Sessioni**
- Blocco/sblocco esplicito con scadenza configurabile e timeout di inattività
- Sessioni effimere delegate per l'automazione e l'accesso degli agenti AI

**Server MCP**
- Server nativo Model Context Protocol
- Token di autorizzazione con ambito: `read`, `secrets`, `write`, `admin`
- Le operazioni di scrittura attendono la tua approvazione nell'app desktop; gli assistenti non possono approvare le proprie modifiche
- Funziona con Claude Desktop, Cursor, Windsurf e qualsiasi client MCP



**Recupero**
| Fattore | Comando |
|--------|---------|
| Email OTP | `pm auth email` |
| Recovery Key | `pm auth recover` |
| Quorum Shares (Shamir) | `pm auth quorum-setup` |
| WebAuthn Passkey | `pm auth passkey register` |
| One-time Recovery Codes | `pm auth codes generate` |

**Importazione / Esportazione**

| Formato | Importazione | Esportazione |
|--------|--------|--------|
| JSON | `pm import json` | `pm export json` |
| CSV | `pm import csv` | `pm export csv` |
| TXT | `pm import txt` | `pm export txt` |

**Motore delle policy**
```yaml
name: corporate-standard
password_policy:
  min_length: 14
  require_uppercase: true
  require_numbers: true
  require_symbols: true
rotation_policy:
  rotate_every_days: 90
  notify_before_days: 14
```
```sh
pm policy load ./policies/
```

**Team Edition (`pm-team`)**
- RBAC con più ruoli
- Reparti con domini di crittografia isolati
- Flussi di approvazione per le voci sensibili
- Vault condivisi per la condivisione delle credenziali tra più utenti

---

### Estensione per browser

L'estensione per browser di APM compila i login, offre codici monouso sui siti a cui appartengono, salva nuovi login e crea e utilizza passkey. Non vede mai la tua master password né la chiave privata di una passkey. Comunica con un piccolo bridge che APM espone sulla tua macchina all'indirizzo `127.0.0.1:41417` (imposta `APM_BRIDGE_PORT` per usare un'altra porta).

**Tre modi per raggiungere il vault**

- Con l'app desktop: il bridge è in esecuzione finché l'app è aperta. Le richieste di pairing e gli sblocchi dal browser compaiono nell'app.
- Solo con la CLI, collegata (consigliato): esegui `pm extension link` una volta. Registra `pm` come host di messaggistica nativa con ciascun browser Chromium (Chrome, Edge, Brave, Arc, Vivaldi, Chromium) e da quel momento il browser avvia `pm` autonomamente ogni volta che l'app è chiusa.
- Solo con la CLI, da un terminale: esegui `pm extension serve` e lascialo aperto. Espone la stessa API dell'app desktop e mostra ogni richiesta di sblocco, blocco e pairing nel momento in cui avviene.

```sh
pm extension link               # once per computer; confirm the code the extension shows
pm extension serve              # unlocks with your CLI session, or asks for the master password
pm extension serve --locked     # starts locked; unlock from the extension
pm extension serve --idle 5m    # locks after 5 minutes without browser activity (default 15m, 0 turns it off)
```

`pm extension serve` stampa una riga quando il vault è sbloccato o bloccato. Premi Ctrl+C per fermarlo; la chiave del vault viene rimossa dalla memoria. Se la porta è occupata, termina e ti avvisa che l'app APM potrebbe già stare servendo l'estensione.

**Accoppiamento di un browser**

1. Nell'estensione, scegli Connect. L'estensione mostra un codice di 6 caratteri, ad esempio `K7M-2QX`.
2. Verifica che APM mostri lo stesso codice: l'app desktop apre una finestra di dialogo, e `pm extension link` o `pm extension serve` chiede nel terminale, ad esempio `Connect Chrome on macOS? Code K7M-2QX [y/N]`.
3. Approva. L'estensione riceve il suo token ed è accoppiata.

Una richiesta scade dopo 2 minuti, e solo una può essere in attesa alla volta. `pm extension serve` rifiuta le richieste da solo quando non è in esecuzione in un terminale. Per accoppiare manualmente, esegui `pm extension token --show` e incolla il token nel campo di accoppiamento manuale dell'estensione.

**Comandi**

| Comando | Cosa fa |
|---------|--------------|
| `pm extension link [--browser chrome,edge] [--no-wait]` | Consente al browser di avviare `pm` per l'estensione quando l'app desktop è chiusa |
| `pm extension unlink` | Impedisce ai browser di avviare `pm`. L'accoppiamento viene mantenuto |
| `pm extension status [--port N]` | Mostra quali browser sono collegati, cosa sta servendo l'estensione in questo momento, lo stato di blocco del vault e il numero di elementi, e l'impronta del token |
| `pm extension serve [--port N] [--locked] [--idle 15m]` | Serve l'estensione da questo terminale fino a Ctrl+C |
| `pm extension token [--show]` | Stampa il token di accoppiamento, mascherato a meno che non venga specificato `--show` |
| `pm extension rotate` | Sostituisce il token di accoppiamento. Ogni browser accoppiato deve accoppiarsi di nuovo. Un bridge in esecuzione rileva il nuovo token alla sua richiesta successiva |
| `pm totp link <entry> <domain>` | Collega un codice monouso a un sito in modo che l'estensione lo offra lì |
| `pm totp unlink <entry> [domain]` | Rimuove i collegamenti ai siti di un codice monouso |

`pm get` mostra le passkey di un login e il codice monouso ad esso collegato, e `pm totp` mostra il sito collegato di ciascun codice.

**Come il bridge rimane privato**

- Ascolta solo su `127.0.0.1` e risponde solo alle richieste indirizzate a `127.0.0.1` o `localhost`, il che blocca il DNS rebinding.
- Rifiuta qualsiasi richiesta il cui `Origin` sia una pagina web. Solo le origini `chrome-extension://`, `moz-extension://` e `safari-web-extension://` ricevono gli header CORS.
- Ogni chiamata tranne l'accoppiamento richiede il token di accoppiamento, memorizzato in `bridge_token` nella directory di configurazione di APM e confrontato in tempo costante.
- Le chiamate di elenco e dettaglio non includono mai valori segreti. L'estensione richiede un campo alla volta quando riveli o compili, e APM registra quell'accesso.
- Le passkey vengono create e firmate all'interno di APM. L'estensione invia l'origine del sito e un hash dei dati del client, e APM verifica che il sito possa usare quella relying party prima di firmare.

**Più siti web per login**

Un login mantiene il suo indirizzo principale in `website` e gli altri in `urls`, mostrati come "Other websites" nell'app desktop. L'estensione offre il login su una pagina che corrisponde a uno qualsiasi di essi. Per impostazione predefinita una corrispondenza è lo stesso dominio registrabile, quindi `accounts.google.com` e `mail.google.com` corrispondono entrambi a `google.com`.

- Dal popup puoi aggiungere il sito su cui ti trovi a un login, aggiungere o rimuovere siti web, e salvare un nuovo login con più di un sito web.
- Se compili un login su un sito per cui non è salvato, l'estensione chiede prima. Scegli "Fill and remember" per compilarlo e aggiungere quel sito al login.
- `pm totp link <entry> <domain>` fa lo stesso per un codice monouso.

**Loghi dei siti web**

L'app desktop e l'estensione mostrano il logo di ciascun login invece della sua iniziale. APM recupera il logo da solo, dal sito stesso, e non si rivolge mai a un servizio favicon di terze parti, che verrebbe a conoscenza di ogni sito nel tuo vault.

- Cosa: l'host del primo sito web del login (un codice monouso usa il suo sito collegato), in minuscolo e senza `www.` o una porta. `localhost`, indirizzi IP, `.local`, `.internal` e nomi senza un punto non vengono mai recuperati.
- Come: APM carica `https://<host>/` (al massimo 512 KiB), sceglie la migliore icona dichiarata dalla pagina (`apple-touch-icon`, poi il PNG più grande, poi SVG) e ripiega su `https://<host>/favicon.ico`. Solo HTTPS, al massimo 3 reindirizzamenti, 6 secondi per sito, immagini fino a 256 KiB, nessun cookie. Gli indirizzi che risolvono a intervalli loopback, privati, link-local o CGNAT vengono rifiutati. Le richieste vanno direttamente al sito, non attraverso un proxy di sistema.
- Quando: solo mentre il vault è sbloccato e l'app desktop o `pm extension serve` è in esecuzione, al massimo 4 siti alla volta. Un sito fallito viene ritentato dopo 3 giorni; un logo viene aggiornato dopo 30 giorni.
- Dove: `icons/` nella tua directory di configurazione di APM (`~/Library/Application Support/apm/icons` su macOS, `~/.config/apm/icons` su Linux, `%AppData%\apm\icons` su Windows). Ogni file è nominato con lo SHA-256 del suo host, e ne vengono conservati al massimo 2000. La cache non è cifrata: ogni file `.json` accanto a un'immagine indica il suo host, quindi chiunque possa leggere la tua directory di configurazione può vedere quali siti hanno dei loghi.
- Cosa apprende il sito: il tuo indirizzo IP e che APM ha richiesto la sua icona (lo user agent è `APM/<version> (+icon)`). Nulla riguardo al tuo account.
- Come disattivarlo: nell'app desktop, Impostazioni, Aspetto, disattiva "Show website icons" (l'impostazione del vault `siteIcons`, che anche `pm extension serve` rispetta), e scegli "Clear icon cache" per eliminare la cache. Imposta `APM_ICONS_OFFLINE=1` per fermare ogni recupero da un processo, ad esempio nei test o in CI. I loghi in cache vengono comunque mostrati finché non li cancelli.

---

### Profili di sicurezza

| Profilo | Memoria Argon2 | Iterazioni | Parallelismo | Caso d'uso |
|---------|--------------|------------|-------------|----------|
| `standard` | 64 MB | 3 | 2 | La maggior parte delle macchine |
| `hardened` | 256 MB | 5 | 4 | Workstation (≥8 GB RAM) |
| `paranoid` | 512 MB | 6 | 4 | Server (≥16 GB RAM) |
| `legacy` | PBKDF2 | 600,000 | 1 | Compatibilità con le versioni precedenti |

APM rileva automaticamente i core della CPU e la RAM per consigliare il profilo ottimale durante `pm setup`.


### Stato dello sviluppo e cronologia
(Questa nota è del proprietario)
Al 30 marzo 2026, sto attualmente lavorando alla GUI di APM. All'inizio è nata come applicazione CLI. La issue #38 spiega tutto in dettaglio. Nel complesso, voglio che APM raggiunga 
una platea ancora più ampia. Terrò la GUI separata in un repo apm-gui oppure creerò una organization e sposterò lì entrambi i repo. 

Ho iniziato APM come un progetto davvero personale. È nato in una sera qualunque, quando volevo creare il mio password manager. Ero stufo di zoho password, dato che lo usavo per i TOTP. Era incredibilmente lento a funzionare, e usavo file di testo in chiaro per i miei token, il che non è sicuro. 

Al momento, NON ho intenzione di abbandonare/ritirare il progetto. Resterà funzionante a lungo. Cerco di migliorarlo ogni giorno e lo uso ogni giorno. A volte il repo può essere inattivo, ed è in quei momenti che testo e sperimento con l'applicazione.

---

### Struttura delle release

| Livello | Stabile? | Vault sicuro? | Scopo |
|------|---------|-------------|---------|
| Canary | ❌ | ❌ | Anteprima più precoce delle funzionalità — può corrompere i vault |
| Alpha | ❌ | ✅ | Funzionalità instabili, integrità del vault preservata |
| Beta | ✅ | ✅ | Funzionalità completamente testate, rilascio graduale e attento |
| Stable | ✅ | ✅ | Release pronte per la produzione |

> Esegui sempre il backup del tuo vault prima di provare le release Canary.
P.S. Per alcune release, alcuni livelli potrebbero non essere pubblicati a seconda di quanto sia veloce e semplice distribuirli senza creare più livelli del necessario.
---

# Utilizzo dell'IA
Sviluppare APM e mantenere l'intera suite non è facile da fare tutto in una volta. Pertanto, utilizziamo il **25%** di codice generato dall'IA (principalmente modifiche all'interfaccia utente e modifiche non critiche e non crittografiche). Tuttavia, in APM abbiamo alcune politiche per l'utilizzo dell'IA; elencate di seguito.
- L'IA viene utilizzata solo per sviluppare piccole funzionalità e funzionalità che non interferiscono con il vault
- Le modifiche apportate dall'IA devono essere trattate con cura e revisionate attentamente
- Le modifiche apportate dall'IA devono essere testate accuratamente
Queste politiche garantiscono che utilizziamo l'IA in modo responsabile e rendono APM migliore per tutti!


### Documentazione

Documentazione completa su **[aaravmaloo.github.io/apm](https://aaravmaloo.github.io/apm)**

- [Installazione](https://aaravmaloo.github.io/apm/getting-started/installation/)
- [Primi passi](https://aaravmaloo.github.io/apm/getting-started/first-steps/)
- [Riferimento CLI](https://aaravmaloo.github.io/apm/reference/cli/)
- [Architettura](https://aaravmaloo.github.io/apm/concepts/architecture/)
- [Crittografia](https://aaravmaloo.github.io/apm/concepts/encryption/)
- [Team Edition](https://aaravmaloo.github.io/apm/guides/team-edition/)
- [Integrazione MCP](https://aaravmaloo.github.io/apm/guides/mcp-integration/)
- [Contribuire](https://aaravmaloo.github.io/apm/contributing/)

---

### Contribuire

I contributi sono benvenuti. Consulta [CONTRIBUTING.md](https://aaravmaloo.github.io/apm/contributing/) per le linee guida.

---

### Licenza

[Licenza GPL-3.0](https://github.com/aaravmaloo/apm/blob/master/LICENSE) © Aarav Maloo
Scarica lo strumento