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
December » 2008 » Kryptoblog

Archive for December, 2008

Problem med arc4random i FreeBSD

December 3rd, 2008

Enligt en säkerhetsrapport från FreeBSD-projektet finns det ett problem med slumptalsgeneratorn arc4random.

FreeBSD-logo

Säkerhetsrapporten FreeBSD-SA-08.11.arc4random beskriver problemet så här:


I. Background
arc4random(9) is a generic-purpose random number generator based on the key stream generator of the RC4 cipher. It is expected to be cryptographically strong, and used throughout the FreeBSD kernel for a variety of purposes, some of which rely on its cryptographic strength.

arc4random(9) is periodically reseeded with entropy from the FreeBSD kernel’s Yarrow random number generator, which gathers entropy from a variety of sources including hardware interrupts. During the boot process, additional entropy is provided to the Yarrow random number generator from userland, helping to ensure that adequate entropy is present for cryptographic purposes.

II. Problem Description
When the arc4random(9) random number generator is initialized, there may be inadequate entropy to meet the needs of kernel systems which rely on arc4random(9); and it may take up to 5 minutes before arc4random(9) is reseeded with secure entropy from the Yarrow random number generator.

III. Impact
All security-related kernel subsystems that rely on a quality random number generator are subject to a wide range of possible attacks for the 300 seconds after boot or until 64k of random data is consumed. The list includes:

  • GEOM ELI providers with onetime keys. When a provider is configured in a way so that it gets attached at the same time during boot (e.g. it uses the rc subsystem to initialize) it might be possible for an attacker to recover the encrypted data.
  • GEOM shsec providers. The GEOM shsec subsytem is used to split a shared secret between two providers so that it can be recovered when both of them are present. This is done by writing the random sequence to one of providers while appending the result of the random sequence on the other host to the original data. If the provider was created within the first 300 seconds after booting, it might be possible for an attacker to extract the original data with access to only one of the two providers between which the secret data is split.
  • System processes started early after boot may receive predictable IDs.
  • The 802.11 network stack uses arc4random(9) to generate initial vectors (IV) for WEP encryption when operating in client mode and WEP authentication challenges when operating in hostap mode, which may be insecure.
  • The IPv4, IPv6 and TCP/UDP protocol implementations rely on a quality random number generator to produce unpredictable IP packet identifiers, initial TCP sequence numbers and outgoing port numbers. During the first 300 seconds after booting, it may be easier for an attacker to execute IP session hijacking, OS fingerprinting, idle scanning, or in some cases DNS cache poisoning and blind TCP data injection attacks.
  • The kernel RPC code uses arc4random(9) to retrieve transaction identifiers, which might make RPC clients vulnerable to hijacking

IV. Workaround
No workaround is available for affected systems.

V. Solution
NOTE WELL: Any GEOM shsec providers which were created or written to
during the first 300 seconds after booting should be re-created after
applying this security update.

Perform one of the following:
1) Upgrade your vulnerable system to 6-STABLE, or 7-STABLE, or to the RELENG_7_0, or RELENG_6_3 security branch dated after the correction date.

2) To patch your present system:
The following patches have been verified to apply to FreeBSD 6.3 and 7.0 systems.

a) Download the relevant patch from the location below, and verify the detached PGP signature using your PGP utility.

[FreeBSD 7.x]

  1. fetch http://security.FreeBSD.org/patches/SA-08:11/arc4random.patch
  2. fetch http://security.FreeBSD.org/patches/SA-08:11/arc4random.patch.asc

[FreeBSD 6.x]

  1. fetch http://security.FreeBSD.org/patches/SA-08:11/arc4random6x.patch
  2. fetch http://security.FreeBSD.org/patches/SA-08:11/arc4random6x.patch.asc

b) Apply the patch.

  1. cd /usr/src
  2. patch < /path/to/patch

c) Recompile your kernel as described in
and reboot the system.

Kör du FreeBSD, och speciellt om du använder GEOM och GBDE bör du patcha eller uppgradera ditt system (om du inte redan gjort det).

Integrity, ett EAL6+-certifierat OS

December 3rd, 2008

EE Times rapporterar att Green Hills Software har fått sitt operativsystem Integrity certifierat enligt Common Criteria-nivån EAL 6+.

EAL6+ är den högsta EAL-nivån som hittills uppnåtts av ett operativsystem och är en innebär enligt Green Hills VS bland annat att:


EAL 4 means essentially you’ve documented the system, but no-one has looked at your source code and has not undergone any attempts to break into it,” said Dan O’Dowd, founder and chief executive officer of Green Hills Software. “But when you go to EAL6+, it requires formal mathematical proof that the system is secure.”

In this case, the government hired,”a bunch of Ph.Ds” to write formal proofs and evaluate the code and check code for correctness. “This is the first time anyone has proven that an operating system is secure,” he said.

Att USAs försvar varit inblandat är tydligt. Enligt artikeln var det NSA som beställde certifieringen. Intressant nog är det dessutom (återigen enligt artikeln) organisationen National Information Assurance Partnership (NIAP), som certifierat Integrity, en organisation som drivs av… NSA.

EAL-certifikat för Integrity

EAL6+-certifikatet för Integrity från NIAP.

Drivkraften bakom certifieringen är att säkerkt kunna köra flera applikationer på samma datorplattform. Artikeln förklarar:


Today, various levels of security are achieved using multiple computers on a desk—one for regular Internet access and others for security levels ranging from confidential to top secret. This results in up to four systems on a single desk, causing system cost, IT support costs, power consumption and desk space issues. Similarly, humvees in the field need multiple systems.

Det finns faktiskt utrustning certifierad enligt den högsta EAL-nivån, EAL-7. Närmare bestämt Tenix Data Diode Device, en LED-baserad transmissionsutrustning för att koppla samman nät över kortare avstånd. Så här ser den ut:

Tenix Data Diode Device.

Det som inte klart framgår är hur mycket det kostade att certifiera Integrity enligt EAL-6+, men på Wikipedia finns en del skattningar för kostnader för lägre EAL-nivåer. I artikeln kan man dessutom utläsa att processen tog ungefär fyra år.

Vill du ha ett riktigt, riktigt säkert OS (eller en lysdiodburk) skall du kanske titta närmare på de här produkterna.

NIST-dokument om nyckelgenerering från slumptalsgeneratorer

December 3rd, 2008

NIST har släppt ett dokument, NIST sp800-108, Recommendation for Key Derivation Using Pseudorandom Functions som beskriver bra metoder att generera nyckelmaterial (nycklar) baserade på utdata från pseudoslumptalsgeneratorer (PRNG).

Dokumentet beskriver flera funktioner för att generera nycklar baserad på en nyckel som tidigare förhandlats fram mellan två parter, parter som av olika skäl behöver ytterligare nycklar för sin kommunikation. De två PRNG-funktioner dokumentet rekommenderar är HMAC och CMAC.

HMAC
HMAC.

Dessa funktioner används sedan i olika nyckelgenereringsmoder. En av dessa moder är en countermod-liknande konstruktion. En viktig del av dokumentet är de säkerhetsaspekter som tas upp i dokumentets sista kapitel.

Om du har ett behov av att generera nycklar är detta ett dokument väl värt att läsa.

Låsa upp en iPhone – Vietnam Stylee

December 2nd, 2008

Cnet har en artikel om hur man låser upp en iPhone i Vietnam. Metoden man använder är fysisk och inte alls speciellt sofistikerad.

Telefonen sprättas upp och en tekniker plockar loss moderkortet i telefonen:

En iPhone som sprättas upp.
Teknikern sprättar upp telefonen. (Notera kylningen på arbetsbordet.)

Moderkortet i en iPhone
Det utplockade moderkortet.

Kretsen med kryss monteras loss och placeras i en kretsprogrammerare.

Kretsen bortplockad.
Kretsen bortplockad.

Med hjälp av en hexeditor ändras sedan innehållet i kretsen så att spärren för att prata med olika operatörer stängs av (elimineras/slås ut). Sedan monteras kretsen tillbaka.

Kretsen monteras.
Kretsen monteras på kortet. Tydligen med en varmluftspistol!

Inget avancerat script som ändrar i OS:et eller andra SW-hack, utan rätt in på kortet och modda. Kretsen som lossas sitter i en BGA-kapsel, dvs kontakteringen består av lödbollar på kapselns undersida, vilket normalt sett gör det väldigt svårt att komma åt kontakteringen för hand. (I artikeln hävdar man att man lossa på limmet samt limmar tillbaka kretsen, men det är imho fel.)

Detta förklarar varmluftspistolen, men att de lyckas lossa och dessutom montera tillbaka kretsen utan att skada den är imponerande. Och dessutom i en arbetsmiljö om med en utrustning som skrotbordet i min källare.

I artikeln hävdar man att det är basbandskretsen i telefonen som lossas och programmeras om. Det låter otroligt, och tittar man på den här bilden från en teardown av iPhone ser man att det inte är basbandskretsen:

Moderkortet i iPhone - nu med kretsbeskrivning.

Som synes är det kretsen bredvid basbandskretsen från Infineon som lossas. Den kretsen är ett Pseudo-SRAM från NUMONYX. Egentligen är det ett NOR-FLASH-minne som lagrar firmware för basbandskretsen.