/ Forside / Teknologi / Internet / Sikkerhed / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Sikkerhed
#NavnPoint
stl_s 37026
arlet 26827
miritdk 20260
o.v.n. 12167
als 8951
refi 8694
tedd 8272
BjarneD 7338
Klaudi 7257
10  molokyle 6481
Envejskryptering?
Fra : RasmusT


Dato : 01-06-02 08:34

Vi har noget følsomt log data der løbende skal skrives til disk (windows
2000). Disse data skal krypteres. Min første overvejelse var
pgp-disk, men her står disken åben for læsning, så snart passphrase er
indtastet og så er vi lige vidt.

Jeg leder derfor efter et program der kan skrive til det krypterede medie
uden at skulle åbne disken, dvs. der kan løbende skrives til disken, men
først læses når passphrase er indtastet.

Venligst
Rasmus



 
 
Kasper Dupont (01-06-2002)
Kommentar
Fra : Kasper Dupont


Dato : 01-06-02 09:39

RasmusT wrote:
>
> Vi har noget følsomt log data der løbende skal skrives til disk (windows
> 2000). Disse data skal krypteres. Min første overvejelse var
> pgp-disk, men her står disken åben for læsning, så snart passphrase er
> indtastet og så er vi lige vidt.
>
> Jeg leder derfor efter et program der kan skrive til det krypterede medie
> uden at skulle åbne disken, dvs. der kan løbende skrives til disken, men
> først læses når passphrase er indtastet.

Det du har brug for er ikke en kryptering af en hel disk men
derimod en kryptering af enkelte filer. Og du har brug for en
asymetrisk kryptering, diskkrypterings systemer bruger normalt
en symetrisk kryptering.

Hvad du beder om kan godt lade sig gøre, men jeg ved ikke, om
det kan gøres transparent for det program, der genererer data.

Hvilket program genererer disse følsomme data? Og hvordan
skrives de til disken? Skrives der en enkelt fil en gang i
mellem, som så kan kryteres enkeltvis? Eller skrives der en
lang strøm af data til den same fil, der så skal krypteres
løbende?

Jeg ved ikke noget om Windows 2000, så jeg vil bare forklare
hvilke idéer, jeg ville bruge under Linux. Så mu du selv
finde ud af, hvad der kan lade sig gøre under windows.

Man kunne lave en speciel filsystem driver, hvor alle filer
er writeonly og krypteres mens de skrives. Selve krypteringen
kunne evt. foretages i en usermode daemon.

Man kunne bruge en enkelt (named) pipe. Dit program skriver
til pipen, og en anden process læser løbende data, krypterer
dem og skriver dem til en fil på disk.

Man kunne bruge en ramdisk. Dit program skriver løbende filer
til ramdisken, hvorfra en daemon henter filerne, krypterer
dem, skriver dem på harddisken og sletter dem fra ramdisken.
Det er vigtigt, at din ramdisk aldrig swaper noget ud.

Endeligt kan man også indbygge funktionaliteten i det program,
der i første omgang genererer data.

Udover at data skal krypteres, skal man være opmærksom på to
ting:
1) Ukrypterede data må aldrig skrives på harddisken.
2) Ukrypterede data skal forsvinde fra ram hurtigst muligt.

Det første er forholdsvist nemt at håndtere. Det andet kan
være lidt tricky. Men data i ram, der ikke mere er nogen
referencer til er dog ikke særligt nemt at finde, og på et
travlt system vil det for det meste blive overskrevet ret
hurtigt.

--
Kasper Dupont -- der bruger for meget tid på usenet.
For sending spam use mailto:razor-report@daimi.au.dk

RasmusT (01-06-2002)
Kommentar
Fra : RasmusT


Dato : 01-06-02 12:33


"Kasper Dupont" <kasperd@daimi.au.dk> wrote in message
news:3CF88828.9D6EBAFA@daimi.au.dk...
>
> Det du har brug for er ikke en kryptering af en hel disk men
> derimod en kryptering af enkelte filer. Og du har brug for en
> asymetrisk kryptering, diskkrypterings systemer bruger normalt
> en symetrisk kryptering.
>
> Hvad du beder om kan godt lade sig gøre, men jeg ved ikke, om
> det kan gøres transparent for det program, der genererer data.
>
> Hvilket program genererer disse følsomme data? Og hvordan
> skrives de til disken? Skrives der en enkelt fil en gang i
> mellem, som så kan kryteres enkeltvis? Eller skrives der en
> lang strøm af data til den same fil, der så skal krypteres
> løbende?


Programmet skrives i C++, og du har ret i at det ikke er en hel disk der
skal krypteres men en fil (som pgp-disk). Jeg er klar over at det vil blive
nødvendigt med noget asymetrisk kryptering, men jeg er kun bekendt med dette
i forbindelse med netværks-kryptering, er ikke klar over hvordan dette
fungere internt.

> Jeg ved ikke noget om Windows 2000, så jeg vil bare forklare
> hvilke idéer, jeg ville bruge under Linux. Så mu du selv
> finde ud af, hvad der kan lade sig gøre under windows.
>
> Man kunne lave en speciel filsystem driver, hvor alle filer
> er writeonly og krypteres mens de skrives. Selve krypteringen
> kunne evt. foretages i en usermode daemon.
>
> Man kunne bruge en enkelt (named) pipe. Dit program skriver
> til pipen, og en anden process læser løbende data, krypterer
> dem og skriver dem til en fil på disk.
>
> Man kunne bruge en ramdisk. Dit program skriver løbende filer
> til ramdisken, hvorfra en daemon henter filerne, krypterer
> dem, skriver dem på harddisken og sletter dem fra ramdisken.
> Det er vigtigt, at din ramdisk aldrig swaper noget ud.
>
> Endeligt kan man også indbygge funktionaliteten i det program,
> der i første omgang genererer data.
>
> Udover at data skal krypteres, skal man være opmærksom på to
> ting:
> 1) Ukrypterede data må aldrig skrives på harddisken.
> 2) Ukrypterede data skal forsvinde fra ram hurtigst muligt.
>
> Det første er forholdsvist nemt at håndtere. Det andet kan
> være lidt tricky. Men data i ram, der ikke mere er nogen
> referencer til er dog ikke særligt nemt at finde, og på et
> travlt system vil det for det meste blive overskrevet ret
> hurtigt.
>

Dine ideer er generelt gode, men desværre er det af forskellig årsager
nødvendigt at gøre brug af windows platformen. Måske nogen er bekendt med
implementering af ovenstående ideer til W2K??

Venligst
RasmusT



Kasper Pedersen (01-06-2002)
Kommentar
Fra : Kasper Pedersen


Dato : 01-06-02 21:11


"RasmusT" <coorasmus@hotmail.com> wrote in message news:adabe9$1eoc$1@news.cybercity.dk...

>
> Programmet skrives i C++, og du har ret i at det ikke er en hel disk der
> skal krypteres men en fil (som pgp-disk). Jeg er klar over at det vil blive
> nødvendigt med noget asymetrisk kryptering, men jeg er kun bekendt med dette
> i forbindelse med netværks-kryptering, er ikke klar over hvordan dette
> fungere internt.

Den tingest har jeg faktisk implementeret en gang før..
Du kan sandsynligvis komme nemt om ved det ved
at lave et par PGP nøgler, gemme den ene, og bruge
kommandolinjeversionen af gpg til at kryptere med.
Ellers kan du jo altid lave det selv:

Du skal bruge 3 komponenter:
Noget asymmetrisk, Diffie-Hellman er simpelt. Tag
bignum biblioteket fra www.openssl.org
Noget hash, SHA-256 f.eks.
Noget symmmetrisk, Rijndael eller (A)RC4 f.eks.

Sådan implementeres en 'digital sparegris':

DH delen foregår således:
du vedtager en generator g (2 eller 3) og et primtal p
(4096 bit eller så), det er sikrest at bruge dem Colin
Plumb lavede til SKIP, de er blevet studeret.
Dernæst finder du på et tilfældigt tal xa på nogle
hundrede bit. Du beregner

ya= (g^xa) mod p

og lægger xa i bankboksen. Det skal ikke bruges
foreløbig. ya hardkoder du i din applikation.

Når applikationen skal gemme en fil:
den finder på et tal xb (igen et par hundrede bit)
og beregner

yb=(g^xb) mod p

Den gemmer yb i filen. Dernæst skal den
symmetriske nøgle laves:

dhsecret=(ya^xb) mod p
symkey=sha256(dhsecret)

Dataene krypteres med symkey og gemmes i filen.

Når du engang vil læse dataene finder du xa frem fra
boksen, læser yb fra filen og beregner

dhsecret=(yb^xa) mod p
symkey=sha256(dhsecret)

og dekrypterer dataene.
(vi kan nøjes med DH her fordi vi ikke har noget
ønske om at signere dataene)

/Kasper



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste