Warning: Missing argument 2 for wpdb::prepare(), called in /home/stromber/public_html/kryptoblog/wp-content/plugins/wp-super-edit/wp-super-edit.core.class.php on line 109 and defined in /home/stromber/public_html/kryptoblog/wp-includes/wp-db.php on line 1222
April » 2008 » Kryptoblog

Archive for April, 2008

Sida för nedladdning av filer

April 13th, 2008

Jag har precis lagt till en sida tänkt att innehålla en del filer jag lägger ut för nedladdning. Inget speciellt märkvärdigt alls än så länge. På sidan finns just nu den generatorbaserade testimplementation av RC4 jag bloggade om för en vecka sedan.

Hacka Google med Google App Engine

April 10th, 2008

För några dagar sedan presenterade Google sin nya tjänst App Engine.

App Engine

Med App Engine erbjuder Google en miljö och utrymme för att köra applikationer hos Google. Google beskriver applikationsmiljön på följande sätt:


The Application Environment
Google App Engine makes it easy to build an application that runs reliably, even under heavy load and with large amounts of data. The environment includes the following features:

  • dynamic web serving, with full support for common web technologies
  • persistent storage with queries, sorting and transactions
  • automatic scaling and load balancing
  • APIs for authenticating users and sending email using Google Accounts
  • a fully featured local development environment that simulates Google App Engine on your computer

Google App Engine applications are implemented using the Python programming language. The runtime environment includes the full Python language and most of the Python standard library.

Although Python is currently the only language supported by Google App Engine, we look forward to supporting more languages in the future.

The Sandbox
Applications run in a secure environment that provides limited access to the underlying operating system. These limitations allow App Engine to distribute web requests for the application across multiple servers, and start and stop servers to meet traffic demands. The sandbox isolates your application in its own secure, reliable environment that is independent of the hardware, operating system and physical location of the web server.

Examples of the limitations of the secure sandbox environment include:

  • An application can only access other computers on the Internet through the provided URL fetch and email services and APIs. Other computers can only connect to the application by making HTTP (or HTTPS) requests on the standard ports.
  • An application cannot write to the file system. An app can read files, but only files uploaded with the application code. The app must use the App Engine datastore for all data that persists between requests.
  • Application code only runs in response to a web request, and must return response data within a few seconds. A request handler cannot spawn a sub-process or execute code after the response has been sent.

Google beskriver även Pythonmiljön närmare:


The Python runtime environment uses Python version 2.5.2.

The environment includes the Python standard library. Of course, calling a library method that violates a sandbox restriction, such as attempting to open a socket or write to a file, will not succeed. For convenience, several modules in the standard library whose core features are not supported by the runtime environment have been disabled, and code that imports them will raise an error.

Application code must be written exclusively in Python. Code with extensions written in C is not supported.

The Python environment provides rich Python APIs for the datastore, Google Accounts, URL fetch and email services. App Engine also provides a simple Python web application framework called webapp to make it easy to start building applications.

For convenience, App Engine also includes the Django web application framework, version 0.96.1. Note that the App Engine datastore is not a relational database, which is required by some Django components. Some components, such as the Django template engine, work as documented, while others require a bit more effort. See the Articles section for tips on using Django with App Engine.

You can upload other third-party libraries with your application, as long as they are implemented in pure Python and do not require any unsupported standard library modules.

Det ser alltså ut som att Google lagt ner mycket arbete på att se till att App Engine-applikationer exekverar i en säker miljö som inte hotar andra applikationer eller Googles egna system. Det har nu inte hindrat folk att försöka. Tvärt om, att döma av maillistor som Dailydave har rätt många börjat stampa på Pythonmiljön för att se om det går att slå hål på sandlådan.

En av de första applikationer som dykt upp i App Engine är ett interaktivt Python-skal. Och den applikationen använts för att undersöka vad som går att göra, bland annat försök att komma åt passwd-filer, och på andra sätt titta och peta i Pythonmiljön och det underliggande systemet. En hel del försök har dock slutat i det här meddelandet:

This Google App Engine application is temporarily over its serving quota. Please try again later.

Jag satt och testade lite själv för att se hur mycket av Pythons standardbibliotek man får med:


Google Apphosting/1.0
Python 2.5.2 (r252:60911, Mar 12 2008, 14:07:58)
[GCC 4.1.0]

>>> import this
>>> import os
>>> os.path
(module ‘posixpath’ from ‘/base/python_dist/lib/python2.5/posixpath.py’)

(Jag har ändrat syntaxen från responsen i skalet då hakparanteserna fastnade i WordPress…)

OS-modulen finns med, och det går uppenbarligen att titta runt i sandlådans struktur. Men Pythons påskägg “this” har Google inte plockat med…

Vi får se om/när någon lyckas slå hål på App Engine, om Google lyckats rensa ut alla accesser till underliggande systemet eller ej. Google har ju en bra grundförutsättning i och med att Guido van Rossum arbetar på Google.
Guido

Är det någon som borde kunna ha bra koll på hur man bygger om Python är det BDFL.

Pythongeneratorer och RC4

April 7th, 2008

Ett litet erkännande: Jag gillar programspråket Python.

Jag började använda Python så smått för några år sedan, och sedan dess har användningen bara ökat. Jag använder i dag Python bland annat till att bygga program som genererar parametriserade hårdvarubeskrivningar (i Verilog eller VHDL), exempelvis av krypton.

Ofta har jag även ett Pythonskal igång i ett terminalfönster och använder den som en miniräknare, genererar små sekvenser, testhackar m.m. Jag upplever att Python har gjort att mina konstruktioner inte bara är mycket bättre, utan att jag arbetar mer effektivt och är mer produktiv.

Några av de saker jag gillar med Python är dess objektorientering, att det är lätt att komma igång och att det känns som att det finns en organiserad tanke och struktur hur kommandon etc är uppbyggda. Det funkar som jag tror att det gör. Men en av de viktigaste aspekterna är (anser jag) att programmen blir läsbara.

Jag kan läsa program jag skrev för flera veckor sedan och fatta vad det gör och jag kan läsa andras kod. (I det här läget brukar jag peka på Trac och dess kod som exempel på hur snygg Pythonkod kan vara. Trac är för övrigt en annan sak jag gillar.)

Samtidigt anser jag mig fortfarande mycket av en Python-novis. Jag använder få av språkets många funktioner, men det är inget problem utan med de kunskaper jag har i dag kan jag snabbt och enkelt göra det jag vill. Sedan är det bara kul att lära sig nya aspekter av språket som gör mig än mer effektiv.

I morse satte jag mig ned och testade generatorer (generators), dvs funktioner som kan fungera som en tillståndsmaskin, eller varför inte som uppdateringsfunktionen i ett strömkrypto.

När jag ändå är igång och erkänner en massa saker kan jag väl erkänna att jag gillar strömkryptot RC4. Ja, det har sina vårtor, speciellt i vissa tillämpningar. Men jag vet få relativt bra krypton som är så enkla att förstå och där man lätt kommer ihåg algoritmen som RC4 (försök att memorera AES-algoritmen).

En annan fördel med RC4 är att RC4 går att köra för hand med papper och penna om så krävs. Och med en nyckel som skalar till 4096 bitar, om man tar hänsyn till FMS-attacken (och kastar bort säg 4096 bytes från strömmen) är det fortfarande ett rätt säkert krypto.

Därför valde jag i morse att implementera RC4 som en Pythongenerator. Själva generatordelen av koden ser ut så här:


def rc4(key):

# RC4 stream generation. The while loop will yield between # function calls and return the latest key stream value. ipoint = 0 jpoint = 0 while(True): ipoint = (ipoint + 1) % 256 idata = state_array[ipoint] jpoint = (jpoint + idata) % 256 jdata = state_array[jpoint] state_array[ipoint] = jdata state_array[jpoint] = idata kpoint = (idata + jdata) % 256 kdata = state_array[kpoint] yield(kdata)

(Ja, koden går att dra ihop och bla går swap att göra på ett mer kompakt sätt…)

Notera satsen yield. Detta kommando beter sig som en vanlig return-sats, men skillnaden är att tillståndet hos funktionen bevaras, och vid nästa anrop fortsätter exekveringen efter yield-satsen, dvs nästa varv i while()-satsen.

För att använda en generator skapar man en referens till funktionen genom att göra en tilldelning. Men eftersom funktionen innehåller en yield-sats och därmed är en generator kommer Python att skapa ett objekt (allt i ett Pythonprogtam är ju objekt) med en next()-metod. Och det är via den vi sedan kör vår generator:

# Create an RC4 generator initialized with a key. my_key = “Kryptoblog” my_rc4 = rc4(my_key) # Generate a short key stream. print “RC4 key stream for key ‘%s’:” % my_key for i in range(16): print ” key stream value %d = %d” % (1, my_rc4.next())

När jag kör detta program får jag följande:


js@sotis:/Users/js/tmp/Div>./rc4_test.py
RC4 key stream for key ‘Kryptoblog’:

key stream value 0 = 184 key stream value 1 = 152 key stream value 2 = 122 key stream value 3 = 134 key stream value 4 = 184 key stream value 5 = 174 key stream value 6 = 24 key stream value 7 = 177 key stream value 8 = 238 key stream value 9 = 192 key stream value 10 = 172 key stream value 11 = 176 key stream value 12 = 86 key stream value 13 = 90 key stream value 14 = 51 key stream value 15 = 205

Det som inte finns med i koden ovan är initieringsdelen av RC4, vilket naturligtvis måste finnas med för att vi skall få ut en korrekt nyckelström. Jag kommer att lägga upp det kompletta programmet på en sida här på bloggen. Återkommer om detta.

Min erfarenhet av att leka en söndagsmorgon med Python-generatorer är att det fungerade precis som jag hoppats, att det var enkelt att använda och fungerade bra för att implementera en funktion som RC4.

(Vill man se en objektorienterad Pythonimplementation av RC4 i finns det en på Wikipedias sida för RC4, vilket jag upptäckte när jag byggt klart mitt hack och skulle äta frukost….)

EN RFID-tillverkares försvarstal

April 4th, 2008

Läste en del artiklar om Python i går kväll. En av dessa var en artikel från 2004 kallad RFID Product Development With Python från nättidningen Py.

Det huvudsakliga innehållet i artikeln – hur man utvecklar RFID-produkter med Python var relativt ointressant, det mest intressanta var hur man enkelt pratar med seriellt anslutna enheter och bygger upp ett API för att prata med en RFID-läsare.

Men det som fick mig att reagera var den dryga sidan långa harangen om RFID, säkerhet och integritet, en harang som inleds med:


There have been many articles published recentlydiscussing the privacy implications of RFID. Most of them are overhyped and inaccurate, to such a degree that one could conclude that some articles are FUD from other identification industries, which see RFID as a threat.

Några av argumenten som förs fram är:


The RFID industry as a whole is extremely fragmented, with many different frequencies, tag types and low-level protocols, which makes large-scale tag reading in a public space near to impossible. Even with a single, widely used tag, each market stores data on the tag in its own format, making multi-supplier analysis of a user through RFID difficult.
...
...
...
There is also the issue of read range. Apart from powered tags, which are commonly used in cars for freeway tolls, RFID tags must get enough powering field from the reader to make them function. Most tags have a range limit of under a meter, because human RF exposure laws limit the power of the transmitters.

So the idea of scanning people as they walk along the street is a little fanciful. There are no doubt scenarios where it would be possible, but there are very definite technical limits as to range.

Slutklämmen tycker jag är speciellt fin:


Big Brother already knows what you are doing. If you don’t want him to know, you can take steps to limit the information that is being recorded about you. You would take the same steps in an RFID information tracking environment.

This technology does not make possible any significant increase in invasion of privacy beyond what already exists.

Så ligger det till, bara så du vet. Jösses…

En titt i FRAs årsredovisning och budgetunderlag

April 3rd, 2008

FRA har publicerat en öppen version av sin årsredovisning för 2007.

FRA:s logga

FRAs generaldirektör Ingvar Åkesson kommenterar årsredovisningen med:


Det ligger i sakens natur att mycket av det som FRA gör är hemligt. Den öppna redovisning för 2007 som publicerats här blir därför rätt knapphändig i jämförelse med den hemliga version som regeringen och Riksrevisionen får. Det gäller särskilt avsnittet om rapportproduktion, det vill säga där vi beskriver hur vi har tillgodosett uppdragsgivarnas behov av underrättelser.

Trots knapphändigheten tycker vi ändå att den öppna redovisningen kan ge en uppfattning om FRA:s verksamhet och vilka utmaningar FRA står inför.

Trots detta tycker jag att det finns en hel del intressanta saker i årsredovisningen. En intressant sak är GD:s beskrivning av årets verksamhet som bland annat speglar FRA:s syn på den debatt som varit vad gäller utökade befogenheter för FRA:


Året har dominerats av lagstiftningen om en anpassad försvarsunderrättelseverksamhet och om personuppgiftshanteringen i myndighetens verksamhet. Inom myndigheten har sedan några år bedrivits ett arbete med att anpassa verksamheten och de interna föreskrifterna till den kommande lagstiftningen. Detta arbete accelererade under året och fick högsta prioritet. De lag- och förordningsbestämmelser som trädde i kraft under året har utan problem kunnat tillämpas av FRA.

Den uppmärksamhet som lagförslagen har fått i den offentliga debatten har krävt ett omfattande arbete i kontakterna med massmedia. Syftet har varit att nyansera den negativa bild av FRA som på sina håll manas fram och att komma till rätta med de missuppfattningar som råder.

FRA har även en sektion på sin webbplats med det tjusiga namnet Klartext där FRA bemöter vad de ser som felaktigheter i debatten. Bland annat kommenterar man flera uttalanden av Pär Ström.

En intressant sak jag fastnade för i årsredovisningen är det FRA skriver om sitt kryptoarbete under året:


Forceringsverksamheten har under året varit synnerligen framgångsrik. Vidare har flera helt nya kryptosystem identifierats och bearbetats.

Betydande arbete har under året lagts på inköpet och leveransen av en ny beräkningsdator. Genom den beräkningskraft som den nya beräkningsdatorn har kommer FRA framöver att ha ännu större möjligheter att forcera meddelanden.

Undrar vilka helt nya kryptosystem man identifierat och bearbetat… Gissningsvis är det inte KeeLoq eller MiFare. 😉

I årsredovisningen berättar FRA att anslagstilldelning för 2007 var 512 517 tkr. FRA har även publicerat en öppen version av FRAs budgetunderlag för de kommande tre åren.

Den kanske viktigaste punkten i budgetunderlaget är att FRA ser att man behöver ökade anslag för att möta de som FRA ser snabbt ökande behoven av FRAs tjänster. På kryptosidan skriver FRA att:


Användningen av krypton har ökat markant de senaste åren. Så kallade massmarknadsprodukter, dvs. krypton som kan användas av gemene man och därmed även av terrorister och andra brottslingar, blir allt vanligare och komplexare. FRA kommer att behöva möta denna trend, bland annat genom att satsa på investeringar i beräkningskraft, omfattande forskning och utveckling, men också genom att utöka antalet kryptologer.

FRA fick från och med 2007 ett ökat anslag för att regelbundet med kortare intervall investera i utökad beräkningskraft. Till följd av den urholkning av anslaget som oavlåtligt sker i och med att FRA inte får full kompensation för pris- och löneutvecklingen, kommer denna anslagsökning under perioden 2008-2019 inte att räcka till mer än en ytterligare investering i beräkningskraft.

Detta innebär att beräkningskraften i praktiken endast kan förstärkas vart sjunde eller åttonde år. Detta är helt otillräckligt för att FRA ska kunna följa med i den snabba tekniska utvecklingen på kryptoområdet, kunna motsvara de krav FRA:s verksamheter har samt kunna upprätthålla en god kryptoförmåga såväl nationellt som internationellt.

Speciellt intressant på detta området är att FRA ser ett behov att inrätta och finansiera en ny professur:


Kryptologisk grundforskning för nationella behov behöver stimuleras. En större samordning behövs mellan FRA och tekniska universitet och högskolor. FRA anser det nödvändigt att få finansiera en professur i matematik med inriktning mot kryptologi och datasäkerhet på lämpligt lärosäte och få medel att inrätta doktorandtjänster vid FRA.

Det kan även ge möjlighet för kryptologer på FRA att forska och disputera. Allt detta skulle långsiktigt ge Sverige möjlighet att vidmakthålla sitt internationellt goda renommé på området. Denna forskningssatsning skulle inte bara skapa en bättre grund för kryptologins utveckling i Sverige utan också gynna signalunderrättelseverksamheten och FRA:s informationssäkerhetsarbete.

Långsiktigt skulle denna forskningssatsning också vara av betydelse svensk tillväxtindustri inom telekom- och IT-säkerhetsområdet.

Totalt är behovet medel för en professur och fem årsarbetskrafter för att utveckla kryptologisk grundforskning.

Som utomstående kryptonörd som ägnar tid åt att bevaka vad som händer på den öppna kryptoforskningen är jag böjd att hålla med FRA. Med undantag för Thomas Johansson och hans grupp på LTH tycker jag att Sverige är extremt dåligt representerad i internationella kryptoprojekt och konferenser.

Det handlar inte bara om att publicera en enstaka artikel utan att delta i ECRYPT, NISTs AHS-arbete, vara med på workshops och konferenser och delta i diskussioner. Svensk industri är, tyvärr som vanligt i den här typen av sammanhang, väsentligen helt osynlig.

Om FRA kunde sponsra offentlig forskning och det därmed skulle innebär en totalt sett ökad satsning på krypto och IT-säkerhet tror jag att det vore det riktigt bra, både för Sverige som nation och Sveriges industri. Frågan jag spontant ställer mig är hur FRA-professorn och dennes doktorander skulle tas emot av resten av forskningsvärlden.

En annan sak som framkommer i budgetunderlaget är att FRA verkar vilja flytta fram sina positioner inom IT-säkerhet. FRA skriver:


Behovet av säkra IT-system blir allt större och inkluderar fler områden. Den verksamhet som FRA bedriver inom området är efterfrågad. FRA:s affärsidé inom informationssäkerhetsområdet bygger på att arbeta förebyggande för att kunna minimera de mer akuta reaktiva insatserna. Det förebyggande arbetet består främst av aktiv IT-kontroll (penetrationstester), specifik rådgivning till kund (säkerhetsanalys av system och nätverk), stöd vid policyarbete samt allmän utbildning (demonstrationer, deltagande i seminarier och mässor).

Informationssäkerhetsbranschen är mycket konkurrensutsatt, vilket kan göra det svårt att behålla personal med tillräcklig spetskompetens. I verksamheten bedrivs omfattande kompetensutveckling. Personalen är en kritisk framgångsfaktor. Marknadskonkurrensen är en riskfaktor att räkna med.

Av det jag vet om FRAs kompetens på IT-säkerhetsområdet är jag klart imponerad. Men samtidigt är jag mer tveksam till att FRA som myndighet med en budget på drygt en halv miljard skall vara speciellt aktiv på en marknad som FRA själv uttrycker det är mycket konkurrensutsatt.

Det finns helt klart situationer där rent kommersiella verksamheter av olika skäl inte är lämplig, men jag är rädd för att FRA här riskerar att snedvrida marknaden och därmed långsiktigt försämra Sverige förmåga inom IT-säkerhet.

Slutligen ser FRA att man har ett relativt akut behov av att förnya och anpassa sina lokaler till dagens verksamhet.

IDG har publicerat en artikel om FRAs kommande budgetunderlag.

Avlyssningsbild från IDG.

En annan artikel hos IDG om FRA tar upp att TeliaSonera flyttar epost-servrar till Finland för att inte riskera att deras Finska kunders epost skall läsas av FRA.

Debattinlägg om integritet och fildelning

April 3rd, 2008

Expressen har publicerat ett vad jag tycker intressant och bra debattinlägg om de hot mot vår integritet som dyker upp i jakten på illegal fildelning. Utgångspunkten för artikeln är det förslag regeringen lägger fram och som ser ut att gå mycket längre än vad EG-domstolen slagit fast behöver införas. Författarna till artikeln skriver bland annat:


Vi är bekymrade över att nätsamhällets löfte till medborgarna om en spännande demokratisering kan omintetgöras av beslutsfattare som värjer sig mot att ta del av tänkandet runt detta.

Vi är också oroade över att reglerarna tycks villiga att offra grundläggande demokratiska fri- och rättigheter för att upprätthålla gamla strukturer.

Dessa verkar på ett förbluffande lättvindigt vis acceptera generell registrering, övervakning och avlyssning av hela folkets kommunikation. Integritetsintresset är inte ens företrätt på utfrågningen.

Så här får det inte gå till. Riksdagen måste hålla en kompletterande utfrågning om nätsamhällets löften där även status quo får ifrågasättas och debatteras. Reglerarna kan inte enbart anpassa sig till dem som kan hotas av ny teknik.

Ett problem författarna tar upp är att i den utfrågning som upphovsrätt på Internet som arrangeras i dag ser ut att vara snedvriden.


När vi ser talarlistan för riksdagens “Offentliga utfrågning om Upphovsrätt på Internet” tydliggörs denna bristande förståelse för de förändrade samhällsroller som tekniken skapar. Evenemanget sänds direkt av SVT i morgon 3 april. Kulturutskottet låter hela sex organisationer tillkännage “branschernas synpunkter” för riksdagens ledamöter. Det handlar om organisationer med starka ekonomiska intressen av hårdare tag.

Två personer får framföra “konsumenternas synpunkter”. En är generalsekreterare för en statligt finansierad organisation. Den andre föreslog tillsammans med utredaren Cecilia Renfors att fildelande människor skall kunna förlora rätten att använda Internet och skrev i Expressen en artikel med titeln “Så rensar vi upp bland fildelarna”. Från Internetoperatörer och nätforskning får sammanlagt tre röster uttala sig.

Det har föreslagits att olika visionära tänkare skulle få höras men kulturutskottets kansli säger sig bara vilja bjuda in folk som “förespråkar de legala alternativen” och som “representerar någon”.

Författarna till artikeln är bland annat Jonas Bosson – Förening för en fri informationsinfrastruktur, Elza Dunkels – Umeå universitet, Eva Frölich – vd Frobbit AB, Patrik Fältström – Internetexpert i regeringens IT-råd, Oscar Swartz – Internetentreprenör, Staffan Truvé – vd på SICS och The Interactive Institute samt Dennis Töllborg – professor vid Handelshögskolan i Göteborg.

Näthuliganer orsakar epilepsi

April 1st, 2008

(Det här är en något annorlunda IT-säkerhetsnyhet, men jag blev riktigt ilsk när jag läste om händelsen.)

Näthuliganer, på engelska kallade griefers har attackerat ett webbforum för folk som lider av epilepsi. Genom att fylla Epilepsy Foundations sidor med animationer avsedda att trigga epileptiska anfall och länkar till sidor med animationer, ljud m.m. har dom fått folk att råka illa ut. En av dessa var RyAnne Fultz:


RyAnne Fultz, a 33-year-old woman who suffers from pattern-sensitive epilepsy, says she clicked on a forum post with a legitimate-sounding title on Sunday. Her browser window resized to fill her screen, which was then taken over by a pattern of squares rapidly flashing in different colors.

Fultz says she “locked up.”

“I don’t fall over and convulse, but it hurts,” says Fultz, an IT worker in Coeur d’Alene, Idaho. “I was on the phone when it happened, and I couldn’t move and couldn’t speak.”

After about 10 seconds, Fultz’s 11-year-old son came over and drew her gaze away from the computer, then killed the browser process, she says.

RyAnne var inte den enda som drabbades:


“Everyone who logged on, it affected to some extent, whether by causing headaches or seizures,” says Browen Mead, a 24-year-old epilepsy patient in Maine who says she suffered a daylong migraine after examining several of the offending posts. She’d lingered too long on the pages trying to determine who was responsible.

Det är inte alla epileptiker som lider av fotosensitiv epilepsi. Men för de som har detta kan TV-program eller reklamskyltar vara ett problem. Detta visades bland annat i Simpsonsavsnittet Thirty Minutes Over Tokyo där familjen råkar få på TV-programmet Battling Seizure Robots.

Simpsons ser på Battling Seizure Robots

Simpsons-sketchen var en parodi på en verklig händelse där ett avsnitt av Pokemon med kraftigt blinkande animationer oavsiktligt triggade epilepsi hos ett antal tittare.

Men att göra detta avsiktligt och att rikta in sig på folk som lider av epilepsi genom att attackera ett forum som används för att få råd, stöd och hjälp att hantera sin epilepsi? Fy f-n.