|
|
About
'Blogs
Read
Syndicate
Resumes
Academia
Powered by
|
April 20, 2007Xening OutSo I'm working on this computer sanitization project, and I had a weird idea. Xen is a very nifty hypervisor that allows the running of fully virtualized guest OSes if your CPU supports VT extensions. The CPU of your virtual machine will be quite fast. Unfortunately, you still have to use qemu (or some virtualization layer) to present a fake video card (and a lot of other fake hardware) to the guest OS, and then translate the fake video card to a real video card. You can't talk to the real video card directly, because the first guest OS (dom0, generally linux) loads a driver and places a pointer to its driver in the interrupt descriptor table. So the second guest OS is locked out. An interrupt can only be handled by one function. Theoretically, you can give direct access to the video card to a guest OS if the main OS stops using video or replaces its driver with a stub that doesn't cause interrupts. The trouble is DMA. The guest OS thinks it knows its address in memory that starts at 0x00, but of course it's wrong. If it tells the video card, or whatever hardware, an address for DMAing memory, the hardware will be terribly confused and will end up reading/writing data in the dom0's memory ("snow crash", anyone? :)). Enter IOMMU, something that AMD cooked up and the Intel has played along with in the form of VT-d. It provides a real memory management unit for hardware. Now DMAs will be translated via the MMU, and mapped into the correct virtual machine's address space. Sweet. Except it isn't here yet (IOMMU is, but it's incomplete). And it won't be for a while. I actually used to know 'when', but that notebook was burned when I left my old job. Sigh. But, I am thinking of a workaround... We boot the hypervisor and move it in memory to be someplace very high (say, at the 1 gig mark) and have it boot the dom0 in the same way, just after itself. It changes the interrupt descriptor table to reflect this change, so they point to the new locations high in memory of the dom0 drivers. The dom0 would then either 'lose' the video interrupt (or simply never register it). The hypervisor can then boot a domU at 0x00. This guest OS would be able to succesfully do DMA with some hardware directly. It could create an entry in the IDT for its own video card driver. Why go to all this trouble though? Because video is important. More than any other component of a computer it uses a lot of bandwidth. Emulating the amount of IO that goes to a video card is teh suck. You get Guest Interrupt -> qemu/virtualization function and translation -> host OS syscall -> hypervisor -> real video card IO. Multiply this by about a million every time you move your mouse, and you see why it's slow. Giving the domU direct access to video is a good thing. But here's the nice part: security. You virtualize a lot of the domU's hardware using something like qemu. For example, create a fake USB bus for the VM, a fake ethernet, a fake disk. Then you go nuts securing it. If the user puts in a usb thumb drive, you can have the linux dom0 mount it, say, virus scan it and record an md5sum of all the files, log what's there, then unmount it, then finally connect the device to the virtual usb bus. For disk, perhaps you use dm-crypt to provide an encrypted partition. Then you provide some logging capabilities from the guest domU to the dom0, so the domU's logs get stored "off the (virtual) machine" for audit. Linux could provide a nice firewall and IDS for the traffic going through the virtual ethernet. The list goes on and on, you probably get the idea. This would only work for a single guest OS, obviously. Other domUs could be run, but they'd be locked out of talking to any (dma) hardware directly due to the issue mentioned at the beginning of this stub. Hrmph. If anybody is interested in working on such a project with me, get in touch :). krwightm shebang foobar at gmail then a dot then com.
Posted by reid at 07:19 PM
| Comments (0)
April 17, 2007Killer Dolphins, Weird ShipsThere's an amusing write-up about a program that happens two doors down from me (literally, my building looks out on the pens): security dolphins. They're nifty trained critters that do everything from mine detection to finding enemy divers and probably some super-secret spy novel stuff that we aren't allowed to talk about. I asked one of the workers there if we had translators for the dolphins ala SeaQuest, to which he replied on condition of anonymity, "No comment." Also parked in front of my building is R/P FLIP, a bizarre research vessel that floods its hull with water so that it almost sinks. It then provides lots of interesting information on waves, both the wind type and the seismically-induced type, as those waves travel through water. So yeah, my building is pretty much the center of everything...
Posted by reid at 04:23 PM
| Comments (0)
April 12, 2007Firefox 2.0.0.3 and Non-Repudiation CertificatesNot a lot has been said about the 2.0.0.3 release of Firefox, and the most interesting/bad change that I've found isn't even documented in the release notes. From Firefox 2.0.0.0 on, Firefox stopped allowing users to sign client requests with non-repudiation certificates. At least, 2.0.0.{0,1,2} would not automatically use these certificates, and if you chose to automatically select a client cert, those versions would ignore any cert with the non-repudiation flag set. 2.0.0.3 revers to the pre-2.0 behavior of automatically choosing non-repudiation certs for signature requests. This has been an interesting issue in the DoD, and hasn't even been well-understood by those users. I thought it would be worthwhile to write about it. DoD has a PKI system set up that is quite well-documented. There are a number of certificate authorities that issue user certificates. The user certificates are loaded onto DoD issued smartcards (which run a proprietary applet called CAC). Every user gets three certificates: one encryption cert, and two signing certs. One signing is supposed to be used for signing documents and emails and the like, and other is supposed to be used for authentication. The former would usually be referred to as "non-repudiation", that is it is a strong and nonrevocable association between the user and thing signed. The reason to discern between signing and authentication is that authentication data for most protocols is often partially (sometimes wholly) generated by a remote system, and the signature verifies identity. Obviously if you sign something that was generated by someone else, the signature should not be strongly tied to your identity (especially if the server sent you something like ASCII like "dear boss, I hate your guts, love, reid"). DoD has been doing the Wrong Thing for a long time, though. Namely, they issue both signing certificates as "non-repudiation" -- there is no way to distinguish them. Technically, neither should be used for authentication. Using them for authentication is ambiguous -- it allows third parties to get a user to sign data that the third party generated, with a certificate labelled as being one that strongly identifies the signature with a user-generated data. The most common signing operation by far for DoD folks is visiting websites. The troubling part here is that any SSL-enabled website can request a client signature. It's not really an attack (yet), but the server issuing the request contributes to the data that gets signed. In other words, if a hapless DoD user visits https://reallybackhackersite.com, and sends his/her signature, reallybackhackersite might be able to do evil things with the signature. More troubling is the fact that most PKCS#11 implementations cache a user's PIN (users find it annoying to type in their PIN often). Even without this badness, it would be fairly easy for a user to fall victim to a bad site. Not a whole lot bad can be done with this right now. The future causes worry, though. Servers that still accept collisionable hashing algorithms for the signature (like md5 and sha1) are certainly at risk. Others may be as well...I'm still not 100% sure how the client signature gets generated (time time time). Certainly DoD should err on the side of paranoia -- there are lot of people interested in breaking defense systems. It puzzles me why Firefox chose to yield to DoD's wishes on this, but as a recent conversational buddy recently said, "You have to go with the market."
Posted by reid at 07:40 PM
| Comments (0)
April 10, 2007Google DarfurGoogle Earth has done something incredibly amazing (technically simple, but quite an eye-opener for the world). We hear reports often of what is happening in Darfur. Google now has created an official KML file detailing all the villages, deaths, testimonies, pictures, and videos to make you want to go there and do something.
Posted by reid at 10:03 PM
| Comments (0)
Red Rocks ClimbingMy dad came into town last week to check out his old hometown (he grew up in San Diego). We went out to an already-scheduled destination: Red Rocks. We met with Tom, Stephen's brother (Tom was, interestingly, my first climbing partner in the 'gunks five years ago). We only got to do two of the classic routes in the two days that we were there, Cat in the Hat (5.6), and Black Magic (5.8). The former was six pitches, the latter 3 (and v. nice). As is becoming the norm, I put the photos up on the Gallery site, here. It is super nice to get to climb with a parent, something that few people probably get to do.
Posted by reid at 06:59 PM
| Comments (0)
April 04, 2007Bank of America, EvilBank of America has never had a very good reputation with me. Banks that become too big and impersonal just stink. Depressing news came from them yesterday, too: they are cancelling their support of The Linux Fund. My Linux Fund credit card has been the only card I've ever used. When the card was owned by MBNA, it would donate 1% of all of my purchases to the Linux Fund, which then used the money to support open source projects. BoA I guess decided that altruism was not profitable, and decided to can the program. Full letter text below. Dear KEVIN WIGHTMAN: It's all so depressing. I wonder if/when the Linux Fund will find another credit card company willing to take them on. They really have done a lot of good for a lot of projects. Plus I like having Tux on my credit card...it puts me in a unique class of Geek.
Posted by reid at 10:01 AM
| Comments (0)
|
Paris
USA
Berlin
Prague
Dresden
Archives
February 2008
December 2007 October 2007 September 2007 August 2007 July 2007 June 2007 May 2007 April 2007 March 2007 February 2007 January 2007 December 2006 November 2006 October 2006 September 2006 August 2006 July 2006 June 2006 May 2006 April 2006 March 2006 February 2006 January 2006 December 2005 November 2005 October 2005 September 2005 August 2005 July 2005 June 2005 May 2005 April 2005 March 2005 February 2005 January 2005 December 2004 November 2004 October 2004 September 2004 August 2004 July 2004 June 2004 May 2004 April 2004 March 2004 February 2004 January 2004 December 2003 November 2003 October 2003 September 2003 August 2003 July 2003 June 2003 May 2003 April 2003 March 2003 February 2003 January 2003 December 2002 November 2002 October 2002 September 2002 August 2002 July 2002 June 2002 May 2002
Search
About
|