Supponiamo che i dati in questione siano PAN di una carta. Secondo PCI-DSS, devi archiviarlo con maggiore sicurezza (crittografarlo prima di archiviarlo nel database e memorizzare la chiave segreta altrove con un accesso più limitato).
Ma se dovesse supportare la ricerca basata su PAN?
A. La soluzione diretta sarebbe ricevere un PAN semplice, inviarlo al backend che passa attraverso tutti i PAN nel database, decodificarli, vedere se corrispondono all'ingresso, e quindi restituire il record con i dati necessari in base a ciò che è collegato a PAN (che suona male per le prestazioni).
B. L'hashing sarebbe una soluzione? Quando viene creato un nuovo PAN, crittografato e memorizzato, è possibile calcolare anche un hash per il PAN (non reversibile ma che comunque nasconde il PAN sensibile reale). - dovrebbe avere un sale? - Il sale può essere conservato nello stesso posto dell'hash? o deve essere immagazzinato in un posto più sicuro, come una chiave segreta? - Il sale è condiviso con il ricercatore? dovrebbe il ricercatore fare l'hash e passare l'hash in giro? o dovrebbe solo passare il PAN pianeggiante e lasciare che l'hashing sia rifatto vicino a dove è stato fatto il PAN dell'hash originale (PAN digest)?
C. L'intero concetto di supportare la ricerca con dati crittografati non è valido dall'inizio (e non dovrebbe nemmeno essere supportato perché non c'è una buona soluzione per questo senza compromettere la sicurezza extra)?
D. C'è un altro modo sicuro per fare l'indicizzazione dei dati sensibili?