Video: Importare Prodotti dalla Cina in Sicurezza Secondo gli Standard Europei 2024
Ecco una domanda ovvia quando si tratta di proxy di terze parti: se questi strumenti agiscono per vostro conto, in che modo Amazon Web Services (AWS) sa che la persona per conto della quale agiscono è infatti tu? In altre parole, in che modo AWS può autenticare la tua identità per garantire che i comandi che riceve provengano da te?
In effetti, la stessa domanda è valida anche se interagisci direttamente con l'API di AWS. In che modo AWS può convalidare la tua identità per garantire che esegua solo i comandi per te?
Un modo, ovviamente, è includere il nome utente e la password del tuo account nelle chiamate API. Sebbene alcuni cloud provider adottino questo approccio, Amazon no.
Piuttosto che basarsi su un nome utente e una password, si basa su altri due identificatori per autenticare le sue chiamate al servizio API: la chiave di accesso e la chiave di accesso segreta. Utilizza queste chiavi nelle chiamate di servizio per implementare la sicurezza in un modo molto più sicuro rispetto all'utilizzo del solo nome utente e password.
Quindi come funziona? Quando registri un account con AWS, hai la possibilità di creare una chiave di accesso e di ricevere una chiave di accesso segreta. Ognuno è una lunga serie di caratteri casuali e la chiave di accesso segreta è la più lunga dei due. Quando si scarica la chiave di accesso segreta, è necessario archiviarla in un luogo molto sicuro perché è la chiave (scusa - pessima puntata) a implementare chiamate di servizio sicure.
Dopo averlo fatto, sia tu che Amazon avete una copia della chiave d'accesso e della chiave d'accesso segreta. Conservare una copia della chiave di accesso segreta è cruciale perché è usato per crittografare le informazioni inviate avanti e indietro tra te e AWS e, se non hai la chiave di accesso segreta, non puoi eseguire chiamate di servizio su AWS.
Il modo in cui i due tasti vengono usati è concettualmente semplice, sebbene alquanto complicato nei dettagli.
In sostanza, per ogni chiamata di servizio che si desidera eseguire, l'utente (o uno strumento che opera a suo nome) procede come segue:
-
Crea il payload della chiamata di servizio.
Questi sono i dati che devi inviare ad AWS. Può essere un oggetto che si desidera memorizzare in S3 o l'identificatore di immagine di un'immagine che si desidera avviare. (Collegate anche altre informazioni sul carico utile, ma poiché variano in base alle specifiche della chiamata di servizio, non sono elencate qui. Un dato è l'ora corrente.)
-
Cripta il carico utile utilizzando la chiave di accesso segreta.
In questo modo si garantisce che nessuno possa esaminare il carico utile e scoprire cosa c'è dentro.
-
Firmare digitalmente il carico utile crittografato aggiungendo la chiave di accesso segreto al carico utile crittografato e eseguendo una procedura di firma digitale utilizzando la chiave di accesso segreta.
Le chiavi di accesso segreto sono più lunghe e più casuali delle tipiche password utente; la lunga chiave di accesso segreta rende la crittografia eseguita con essa più sicura di quanto sarebbe se fosse eseguita con una tipica password utente.
-
Invia il carico utile crittografato totale, insieme alla chiave di accesso, ad AWS tramite una chiamata di servizio.
Amazon utilizza la chiave di accesso per cercare la chiave di accesso segreta, che utilizza per decrittografare il carico utile. Se il carico utile decrittografato rappresenta un testo leggibile che può essere eseguito, AWS esegue la chiamata di servizio. Altrimenti, conclude che qualcosa non va nella chiamata al servizio (forse è stata chiamata da un attore malevolo) e non esegue la chiamata di servizio.
Oltre alla crittografia appena descritta, AWS utilizza altri due metodi per garantire la legittimità della chiamata di servizio:
-
Il primo è basato sulle informazioni sulla data incluse nel payload della chiamata di servizio, che viene utilizzato per determinare se il tempo associato alla creazione della chiamata di servizio è appropriato; se la data nella chiamata di servizio è molto diversa da quella che dovrebbe essere (molto prima o dopo l'ora corrente, in altre parole), AWS conclude che non è una chiamata di servizio legittima e la scarta.
-
La seconda misura di sicurezza aggiuntiva prevede un checksum da calcolare per il carico utile. (Un checksum è un numero che rappresenta il contenuto di un messaggio.) AWS calcola un checksum per il carico utile; se il suo checksum non è d'accordo con il tuo, non consente la chiamata di servizio e non lo esegue.
Questo approccio al checksum garantisce che nessuno manometta il contenuto di un messaggio e impedisca a un attore malevolo di intercettare una chiamata di servizio legittima e modificarla per eseguire un'azione inaccettabile. Se qualcuno altera il messaggio, quando AWS calcola un checksum, quel checksum non corrisponde più a quello incluso nel messaggio e AWS rifiuta di eseguire la chiamata di servizio.
Se, come la maggior parte degli utenti AWS, utilizzi un metodo proxy per interagire con AWS - la console di gestione AWS, una libreria linguistica o uno strumento di terze parti - devi fornire la chiave di accesso e la chiave di accesso segreta al proxy. Quando il proxy esegue chiamate di servizio AWS per conto dell'utente, include la chiave di accesso nella chiamata e utilizza la chiave di accesso segreto per eseguire la crittografia del payload.
A causa del ruolo fondamentale che queste chiavi soddisfano in AWS, devi condividerle solo con le entità di cui ti fidi. Se vuoi provare un nuovo strumento di terze parti e non sai molto dell'azienda, imposta un account di prova AWS per la prova anziché utilizzare le credenziali dell'account AWS di produzione.
In questo modo, se decidi di non proseguire con lo strumento, puoi rilasciarlo, terminare l'account AWS di prova e andare avanti, senza preoccuparsi delle potenziali vulnerabilità di sicurezza nei tuoi account di produzione principali. Naturalmente, è sempre possibile creare nuove chiavi di accesso e chiavi di accesso segrete, ma utilizzando le chiavi di produzione per i test e quindi la modifica delle chiavi crea molto lavoro, poiché è necessario aggiornare ogni posizione che fa riferimento alle chiavi esistenti.
Se sei come molti altri utenti AWS, utilizzerai una serie di strumenti e librerie e tornare a loro per aggiornare le tue chiavi è un problema. Stai meglio usando gli account non produttivi per testare nuovi strumenti.