Sida 1 av 1

betatesta krypteringsprogram

Postat: 20 sep 2007, 15:59
av per9000
Halloj,

jag har aldrig lärt mig GnuPGP så jag skrev ett eget krypteringsprogram istället :) Finns det några gurus ute som kan kolla om koden verkar sund? Eller kanske bara någon som vill beta testa och komma med feedback.

Det är ett litet terminalprogram på 273 rader - koden är nog ganska bra kommenterad hoppas jag. Kan tankas hem från http://www.txet.org (om man har en hobby kan man ha en domän för det  ;D )

Att kryptera Ubuntus ido-fil tar lite mer än 2 minuter - att dekryptera likaså.

Kod: Markera allt

>time txet -e -f ubuntu-7.04-desktop-i386.iso -q 
Password: 
Confirm:

real    2m8.927s
user    0m42.147s
sys     0m5.768s

>time txet -d -f ubuntu-7.04-desktop-i386.iso.txet
ubuntu-7.04-desktop-i386.iso.txet Password: 
ubuntu-7.04-desktop-i386.iso.txet: 731797504 of 731797504 decrypted (100.00 %)

real    2m11.807s
user    0m41.711s
sys     0m6.380s
/Per

SV: betatesta krypteringsprogram

Postat: 20 sep 2007, 16:21
av Daniel Nylander
Trevligt program du har gjort. Ser fram emot ett grafiskt gränssnitt :-)

Här är en jämförelse med GnuPG.

Kod: Markera allt


$ time gpg -e -r 3D51348C ubuntu-7.04-nordic-remix-desktop-i386.iso 

real    1m53.452s
user    1m30.074s
sys     0m4.468s

$ time gpg -o utdata.iso -d ubuntu-7.04-nordic-remix-desktop-i386.iso.gpg

Du behöver en lösenfras för att låsa upp den hemliga
nyckeln för användaren: "Daniel Nylander <info@danielnXXXXXXXX.se>"
2048-bitars ELG-E-nyckel, id 481ECF2E, skapad 2005-09-26 (primära nyckelns id 3D51348C)

gpg: krypterad med 2048-bitars ELG-E-nyckel, id 481ECF2E, skapad 2005-09-26
      "Daniel Nylander <info@daniXXXXXXX.se>"

real    1m21.170s
user    0m50.683s
sys     0m5.616s

Förtydligande: Vi använder olika krypteringsalgoritmer så man kan inte jämföra rakt av. Min burk är en dual-core AMD 4400+ (1.8GHz) och har SATA-diskar.

SV: betatesta krypteringsprogram

Postat: 20 sep 2007, 18:03
av Konservburk
Att kryptera ubuntu-iso:n tar 10 sekunder
med openssl (aes-256-cbc) på min dator:

Kod: Markera allt

bash$ time openssl aes-256-cbc -e <ubuntu-7.04-desktop-i386.iso >/dev/null
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:

real    0m10.569s
user    0m9.957s
sys     0m0.360s
Att kryptera samma fil med samma lösenord
tar runt 25 sekunder med txet:

Kod: Markera allt

bash$ time txet -q -e -f ubuntu-7.04-desktop-i386.iso -o /dev/null
Password: 
Confirm:

real    0m25.643s
user    0m23.401s
sys     0m0.504s
Sedan undrar jag om man kan kryptera
från stdin till stdout med txet?

Med openssl gör jag såhär:

Kod: Markera allt

echo hejsan | openssl aes-256-cbc -e
Motsvarande med txet gör ingenting:

Kod: Markera allt

echo hejsan | txet -q -e
Jag provade även att ange /dev/stdin
som infil och /dev/stdout som utfil,
men då blev det en massa fel istället:

Kod: Markera allt

bash$ echo hejsan | txet -e -f /dev/stdin -o /dev/stdout
/dev/stdin 
Traceback (most recent call last):
  File "/usr/local/bin/txet", line 272, in ?
    txet(options.infile, options.outfile, options.verbose, options.encrypt)
  File "/usr/local/bin/txet", line 202, in txet
    cryptor = get_cryptor(True)
  File "/usr/local/bin/txet", line 163, in get_cryptor
    (key, iv) = get_key_and_iv(confirm=confirm)
  File "/usr/local/bin/txet", line 127, in get_key_and_iv
    a = StringIO.StringIO(getpass.getpass())
  File "/usr/lib/python2.4/getpass.py", line 29, in unix_getpass
    old = termios.tcgetattr(fd)     # a copy to save
termios.error: (22, 'Invalid argument')

SV: betatesta krypteringsprogram

Postat: 21 sep 2007, 08:51
av per9000
Daniel Nylander skrev: Trevligt program du har gjort. Ser fram emot ett grafiskt gränssnitt :-)

Här är en jämförelse med GnuPG.
[...]
Jag håller på att komma in i pyGTK lite smått och ett enkelt gui till detta program borde inte vara så jobbigt - jag tror dock att min kod måste refaktoreras lite först för det.

Jag inser att jag aldrig borde ha någon chans mot gpg men ser nu att den verkar sjukt enkel att använda från kommandoraden - man blir du inte paranoid av att ha ditt lösenord liggande på hårddisken? Snor någon datorn är det kört antar jag (eller när FRA's nya maskar kommer in i din hårddisk i jakt på lösenord).

DrKonservburk skrev: Att kryptera ubuntu-iso:n tar 10 sekunder
med openssl (aes-256-cbc) på min dator:

[...]
Ok, openssl låter även det som en bra kandidat att kolla mer på.

DrKonservburk skrev: [...]

Sedan undrar jag om man kan kryptera
från stdin till stdout med txet?
[...]
Du träffar verkligen mitt mål där. Jag vill kunna köra något i stil med

Kod: Markera allt

tar -blabla ~ | gzip -blabla | txet -e -stdin -stdout > /tmp/my_home.tar.gz.txet
shred ~ # warning! - farlig rad
Den andra raden är frivillig :)

Det som hindrar mig just nu är nog bara att jag borde läsa på hur jag promptar efter lösenord utan att det som strömmar in via stdin tolkas som användarens input - men det borde vara en smal sak. Jag har även känslan att python inte är världens bästa språk att använda när det gäller strömmar i stort - jag tänkte först internt köra tar och gzip (något python har inbyggt stöd för), men jag fick inte riktigt till det.

Tack för era kommentarer!

/Per

SV: betatesta krypteringsprogram

Postat: 21 sep 2007, 11:20
av Daniel Nylander
Jag inser att jag aldrig borde ha någon chans mot gpg men ser nu att den verkar sjukt enkel att använda från kommandoraden - man blir du inte paranoid av att ha ditt lösenord liggande på hårddisken? Snor någon datorn är det kört antar jag (eller när FRA's nya maskar kommer in i din hårddisk i jakt på lösenord).
Jag sparar aldrig lösenord på hårddisken. Det som inte syntes på kommandoutskriften var att jag matade in lösenordet manuellt. Jag tror inte FRA släpper ut några maskar. Att dessutom leta på hårddisken efter lösenord är bara tidsslöseri, bättre med en keylogger :-)