Un file .p7m non è un formato di documento: è una busta che contiene il documento vero (quasi sempre un PDF, spesso un XML, a volte un Word o un'immagine) insieme alla firma digitale e al certificato di chi ha firmato. Il sistema operativo non sa aprirla, per questo il file sembra rotto. Basta togliere la busta per ritrovare il documento, e non serve installare il software del proprio certificatore.
Molti servizi online fanno la stessa cosa chiedendo di caricare il file sul loro server. Un documento firmato è spesso un contratto, una procura, un atto, una busta paga: qui il file viene letto dal tuo browser e non esce dal dispositivo. Puoi controllarlo staccando la connessione dopo aver aperto la pagina: lo strumento continua a funzionare.
Oltre a estrarre il documento, la pagina esegue tre controlli crittografici con le funzioni native del browser (WebCrypto): ricalcola l'impronta del documento e la confronta con quella firmata, così scopri se qualcuno lo ha modificato dopo la firma; verifica che la firma corrisponda alla chiave del certificato; se c'è una marca temporale, controlla che si riferisca proprio a quella firma e che sia firmata dall'ente che l'ha emessa. Legge anche i dati che contano per un documento italiano: nome e cognome del firmatario, codice fiscale contenuto nel certificato, certificatore, data di firma dichiarata.
Poi controlla il certificatore: cerca la CA che ha emesso il certificato del firmatario nelle liste di fiducia europee (eIDAS), verifica che la sua chiave abbia davvero firmato quel certificato e legge se il servizio era qualificato alla data di firma, usando la marca temporale quando c'è. Le liste si aggiornano ogni giorno sul nostro server, che ne verifica la firma; il browser scarica solo il piccolo pezzo che gli serve, e del documento non viene inviato nulla.
Un limite resta, e va detto: la pagina non controlla se il certificato del firmatario sia stato revocato o sospeso prima della firma. Se ti serve un'attestazione completa, usa uno dei verificatori indicati da AgID. Per sapere cosa c'è dentro il file, se è integro e chi l'ha firmato, basta questa pagina.