Zabezpečení backendu v pythonu pro klienty

Zabezpečení backendu v pythonu pro klienty
« kdy: 28. 02. 2016, 22:11:54 »
Ahoj,

hodlám nabízet pro klienty krabičky z RPI, na kterých budou mít pro své sítě backend v pythonu(Django,MariaDB,NginX proxy).
Chci to zabezpečit tak, aby neměl nikdo přístup k souborům backendu a jelikož se python nekompiluje...
Napadlo mě dát na partition truecrypt, kde při startu raspberry se z mého serveru pošle ssh příkaz na odemknutí tý partition a spuštění databáze,djanga a nginxu. Checkovalo by to ID RPI a kdyby se neshodovalo s klientovo RPI, tak by se nerozjelo. Nechci z toho mít opensource projekt, tak to chci nějak takhle zabezpečit.
Co na to říkáte? Není lepší možnost? Já stejně musím kontrolovat, jestli mají platnou licenci, tak by se rovnou ta partition prostě neodemkla. Když se dá SDčko jinam, tak se partition prostě neotevře a když se budou chtít přihlásit přímo na rpi, tak to bez hesla nepůjde. Navíc na RPI asi nespustím navíc ještě nějaký live ne? Navíc by tam byl cron na restart jednou týdně.


Jenda

Re:Zabezpečení backendu v pythonu pro klienty
« Odpověď #1 kdy: 28. 02. 2016, 22:54:30 »
Nejde to. Potřebuješ desku s TPM, která ale nejspíš neexistuje, a stejně jsi v pr…, pokud narazíš na útočníka, který dokáže dělat pokročilé manipulace s hardwarem.

> Napadlo mě dát na partition truecrypt, kde při startu raspberry se z mého serveru pošle ssh příkaz na odemknutí tý partition a spuštění databáze,djanga a nginxu.

Napadlo mě zkopírovat si z tvého RPi SSH klíče a spustit SSH server s těmito klíči, který tvůj příkaz odchytí.

> Navíc na RPI asi nespustím navíc ještě nějaký live ne?

K čemu live? Vytáhnu kartu, dám do svého systému, a jsem rootem.

(easteregg: backdoorni /bin/bash, aby vyownoval každého, kdo se tam pokusí chrootnout)

Re:Zabezpečení backendu v pythonu pro klienty
« Odpověď #2 kdy: 28. 02. 2016, 23:22:02 »
Nooo, řekněme, že šance, že ten útočník bude zručný, bude malá, ale stejně. Takže backend musím napsat v Javě nebo Cčku? To asi nemá cenu vůbec dělat. :D
> Napadlo mě zkopírovat si z tvého RPi SSH klíče a spustit SSH server s těmito klíči, který tvůj příkaz odchytí.
Však to by byl man in the middle attack a na mém serveru by se to kicklo.
Já to myslel tak, že mi dá rpi vědět, že je online a já ze svého serveru na něj pošlu ten příkaz.

Jenda

Re:Zabezpečení backendu v pythonu pro klienty
« Odpověď #3 kdy: 28. 02. 2016, 23:56:09 »
Nooo, řekněme, že šance, že ten útočník bude zručný, bude malá, ale stejně. Takže backend musím napsat v Javě nebo Cčku?
No, pokud je to nějaký světoborný supertajný algoritmus, tak ho motivovaný útočník zreverzuje i ze zkompilovaného kódu.

Však to by byl man in the middle attack a na mém serveru by se to kicklo.
Jak poznáš, že je tam MITM?

Re:Zabezpečení backendu v pythonu pro klienty
« Odpověď #4 kdy: 29. 02. 2016, 00:11:50 »
MITM mi to zahlásí ne? Nebo se to odvíjí pouze od souboru known_hosts?
Není to nic supertajného...Jen to prostě backend, který má zajistit podnikům elektronickou evidenci tržeb, ale zase nechci, aby nám ten backend někdo zkopíroval.


Jenda

Re:Zabezpečení backendu v pythonu pro klienty
« Odpověď #5 kdy: 29. 02. 2016, 00:56:35 »
MITM mi to zahlásí ne?

Ještě jednou: jak přesně to pozná, že došlo k MITM? Podle klíče protistrany. Ale ten já si zkopíroval.

Podniky budou fakt rády, až spojení z tvého serveru z nějakého důvodu nebude fungovat, a nebudou moct prodávat.

Re:Zabezpečení backendu v pythonu pro klienty
« Odpověď #6 kdy: 29. 02. 2016, 00:58:39 »
Ale budou moct prodávat. To spojení bude vyžadováno akorát po restartu, který bude automaticky jednou týdně. Jinak budou pořád fungovat.

Jenda

Re:Zabezpečení backendu v pythonu pro klienty
« Odpověď #7 kdy: 29. 02. 2016, 16:17:05 »
Ano, přesně tak, vypadne elektřina nebo se prostě něco takového stane, a jsou v pr…