Newsgroup: it.comp.os.linux.sys
Titolo: Livello di sicurezza da 1 a 10?

interfaccia web in php esegue una chiamata json-rpc ad un server rippled
 
la mia idea è: eseguo la chiamata json-rpc parso la risposta che mi 
restituisce 2 stringhe account_id e master_seed
 
a questo punto salvo in un db mysql l'account_id in chiaro e il 
master_seed in base64 dopo averlo criptato con la funzione 
openssl_public_encrypt e relativa chiave pubblica
 
La chiave privata per decrittare il campo master_seed non si trova sul 
server ma custodito in cassaforte da utilizzarsi esclusivamente nel caso 
in cui un utente perda le proprie credenziali o in caso di passaggio a 
miglio vita per consentire agli eredi di accedere.
 
 
Ho tralasciato qualcosa secondo voi?
 
Sottinteso che l'utente è informato del fatto che il sistema salva le 
proprie credenziali.

Le best practices sconsigliano di usare un sistema di crittografia
 reversibile. Tale sistema sarebbe utile solo devi ottenere la
 password originale. Se possibile conviene reimpostarla a
 piacere.
 
Dai un occhio ad esempio qui:
 
https://nakedsecurity.sophos.com/2013/11/20/serious-security-how-t
 
o-store-your-users-passwords-safely/
 
 
----Android NewsGroup Reader----
http://usenet.sinaapp.com/
 

restituisce 2 stringhe account_id e master_seed
 
Il tuo sistema protegge il dato sul database, ma la comunicazione fra PHP
e server?
 
Leonardo
 
-- 
 
Ya se escucha sonar la metralla, ya el clarín toca fuego graneado:
ahora o nunca, muchachos arriba a acabar a estos hijos del diablo.


 
Attraverso una chiamata locate all'API Json-rpc
 
curl -X POST -d '{"metodo": "wallet_propose"}' 
http://127.0.0.1:5005
 
 
...tradotta in php ovviamente
 


 
Innanzitutto non stiamo parlando di una password di login, quella è 
altra cosa e potrebbe essere gestita tramite un OauthLogin V2 + 
Authenticator..
 
Una volta ottenuto l'accesso al "sistema" (Siamo su Apache + PHP per 
capirci) si prepara l'ordine inserendo dati tipo importo, valuta ed 
account di destinazione ed il master_sedd (indicato come secret)
https://wiki.ripple.com/Example_API_Transactions
 
 
ora, va da se che il master_seed deve essere archiviato sul server in 
modo da poter essere richiamato al volo dall'utente e decrittato 
attraverso una propria password operativa, oltre a questa operatività 
che definiremo standard è necessario un ulteriore backup del suddetto 
seme nel caso in cui l'utente per una ragione sua perda la propria 
password operativa o sia impossibilitato ad usarla (tipico caso di morte)
In quel caso i legittimi eredi vorranno poter accedere ai fondi (si 
presume) ma se non ti sei salvato da qualche parte il master_seed la 
vedo moolto dura ripristinare l'accesso al conto.


...tradotta in php ovviamente
 
Um. Ma allora il dato è comunque presente sul server...?


 Um. Ma allora il dato è comunque presente sul server...?
 
criptato con la chiave pubblica SSL e decriptabile con la chiave privata 
salvata altrove. 
 
-- 
Massimiliano Adamo

 server ma custodito in cassaforte 
 
Caso mai non avessi la cassaforte. Se hai la cassaforte ignora questo 
messaggio :) 
Potresti memorizzare la chiave privata in Hashicorp Vault e distribuire a 
cinque persone diverse le cinque chiavi per fare l'unseal del Vault. 
Servono tre chiavi per aprire il sigillo. 
 
Lo svantaggio e' che dovresti gestire una apposita VM. O potresti tenere 
il Vault sempre sigiliato su una qualsiasi VM. 
 
-- 
Massimiliano Adamo


Sì, ma quello che intendevo io è che il dato in chiaro viene da 127.0.0.1.
 
(Se è un esempio, o un tunnel, tutto bene ovviamente).


 Servono tre chiavi per aprire il sigillo. 
 
Oppure usare Shamir Secret Sharing Scheme, senza dover usare Vault.

Il 22/12/17 14:21, Max_Adamo ha scritto:

mysql> SHOW COLUMNS FROM wallets;
+-----------------+---------------+------+-----+---------+----------------+
| Field           | Type          | Null | Key | Default | Extra
+-----------------+---------------+------+-----+---------+----------------+
| id              | int(20)       | NO   | PRI | NULL    auto_increment |
| account_id      | varchar(35)   | NO   | UNI | NULL    |                |
| master_seed     | varchar(35)   | NO   |     | NULL    |                |
| master_seed_pub | varchar(255) | NO   |     | NULL    |                |
+-----------------+---------------+------+-----+---------+----------------+
 
account_id in chiaro
 
master_seed cifrato con: password_hash() di php
 
master_seed_pub da usarsi in caso di emergenza cifrato con:
 
openssl_public_encrypt ( $master_seed, $encrypted, 
openssl_pkey_get_public(file_get_contents(__DIR__ . "/public.pem")));
 
$encrypted = base64_encode($encrypted);

Il 22/12/17 14:30, Max_Adamo ha scritto:

Custodire in cassaforte è alla base del mio lavoro ;-)