- I hope to continue my investigation into the fingerprinting legal issues within the next few days. This is currently on hold while I’m waiting for information from a few people.
- With help from Matthieu Castet and Johannes Berg, I’ve been reverse engineering the firmware for the ZD1211 wireless devices. We understand approximately 85% of the instruction set. Assuming we can figure out the remaining details, we’ll be able to write an open source firmware at some point in the near future. My assembler, disassembler and notes can be found in a git tree (gitweb, clone URL).
- I’ve moved touchcal to sourceforge and taken over maintenance. I fixed it up to work better with EloGraphics screens, but do not have any immediate plans to develop it further. Contributors/contributions are welcome.
- Anyone affected by the recent VIA IRQ quirk problems in recent Linux kernels should try Alan Cox’s fix against 2.6.19-rc. If you have no idea what I’m talking about, then ignore this.
- USA is great, thanks for asking! I’m especially looking forward to my first ever thanksgiving :)
- Last week I saw the Boston Bruins battle it out with the Buffalo Sabres. Thanks to a company sponsor we had seats in a members-only premium suite. The atmosphere was great, Boston were 4-1 up but unfortunately the Sabres came back late in the game and won 5-4 in the shootout.
Category Archives: Gentoo
ZD1211 driver news
Despite not mentioning it here for a while, Ulrich Kunitz and myself have been driving forward with our ZD1211 USB-WLAN driver rewrite.
For a start, the driver is included in the recently released Linux 2.6.18 kernel, which has resulted in a drastic increase in the number of users. If you’re looking for a handy way to add wireless connectivity to a computer now and then, these devices are ideal: cheap, small, reliable, in-kernel driver, redistributable firmware.
A more functional driver can be found in the 2.6.19-rc development tree. New features include:
- LED support – the light goes blinky blink during network usage.
- Support for devices based on the AL7230B RF (i.e. ZD1211-based devices which support 802.11a). We don’t support 802.11a connectivity just yet, but you can now use these devices to connect to b/g networks.
- Out-of-the-box support for driverless devices (not even the vendor driver supports this!).
- More accurate signal strength/quality statistics.
- Many more device ID’s added thanks to people testing the driver with their hardware.
Coming for 2.6.20: ERP handling (to play nicer when 802.11b clients are in sight), hardware decryption, and more! Many thanks to ZyDAtheros for their continued support.
Post-it notes and adhesive tape
Monday was a very eventful day at work. I started my co-op placement at a small-but-mature startup company less than 2 months ago, and yesterday morning we are herded into a meeting where it is announced that we have been acquired by 3M. The buyout is especially interesting given that Brontes is still a pre-sales company.
3M is an amazing organisation, notably in terms of their scope. You name it, they make it. Post-it notes, dental products, pharmaceuticals, scotch tape, chemicals, health care products,skincare product like under eye masks, etc. It’s really exciting as we’ll now have a huge amount of global resources to tap into. I’m really happy that I get to experience this while on my placement year.
More details here.
More export control material
Donnie Berkholz pointed out that the Xorg project previously had to overcome some issues with export control vs cryptographic code. I haven’t had a chance to chew on it yet, but there seems to be some good info here:
- Info from Jim Gettys on xdm crypto support
- Legal advice given to the Debian project on the same topic
- README.crypto from Xorg
I’m at the GNOME Summit this weekend, and today I met Jim in person. We talked briefly on the topic which was useful. After going through the above info I’m going to contact the Software Freedom Law Center based on his advice.
Fingerprinting legal issues update
Thanks for the responses to my plea for help up to this point. I’ve also contacted a few people who I’m waiting for responses from.
I’ve been told that most of NFIS2 will become a downloadable open source project soon, which is encouraging. However, this project will NOT include the fingerprint matching algorithm, instead it will only include the analysis tools. This implies that scope of the export control issues is limited only to the actual matching and identification part, and leaves me with exactly the same problem.
I’ve also been informed that NFIS2 distribution is subject to ECCN 3D980. Basically, if your export can be classified under the ECCN, you need a license before you can export it (at least this my is interpretation, which may be wrong). Such licenses aren’t exactly open-source compatible.
Previously I was only looking under category 4 (Computers) but apparently they also put software under category 3 (Electronics). Here’s the text of 3D980:
“Software” specially designed for the “development”, “production”, or “use” of items controlled by 3A980 and 3A981.
3A980 is unrelated, but 3A981 says:
Polygraphs (except biomedical recorders designed for use in medical facilities for monitoring biological and neurophysical responses); fingerprint analyzers, cameras and equipment, n.e.s.; automated fingerprint and identification retrieval systems, n.e.s.; psychological stress analysis equipment; electronic monitoring restraint devices; and specially designed parts and accessories, n.e.s.
Opinions or thoughts on the interpretation of this new info are much appreciated.
NFIS2 works!
Despite the earlier legal concerns about libdpfp (which still stand), I went ahead and requested a NFIS2 CD and integrated it into libdpfp locally.
The good news: it works brilliantly. Minutiae detection and comparison completes instantaneously and the results appear to be accurate and reliable. In other words, if I scan my finger twice it says its the same finger, and if I scan two different fingers it says they are different. I’m now in a position to follow up my larger plans of producing a generic fingerprinting library for a range of hardware, except…
The bad news: I’m not going to distribute any more work on libdpfp until I have found legal advice which tells me it’s OK to do so. I’m now at the position where I have a load of code I can throw at lawyers and say “this is exactly what I want to distribute”, so this is where the hunt begins.
If anyone has suggestions for people I might contact (even non-legal types who might be able to pass me on to someone), or has experience seeking advice in this kind of area, please contact me. I’m aware that such advice will probably cost money, although I don’t have any idea how much. Raising funds to cover costs might be a possibility.
In summary I’m looking for someone who understands (or can figure out how to interpret) US export control laws. I guess I also require a tech type who understands the concepts of software distribution to some degree. Any guidance appreciated!
In-kernel ALSA support in Gentoo
I think some people might have misunderstood Diego’s post about ALSA support in Gentoo.
To clarify, we (as in Gentoo kernel maintainers) do support in-kernel ALSA drivers, but Diego (who maintains the out-of-kernel alsa-driver package) does not. I recommend using the in-kernel drivers, Diego recommends using the out-of-kernel drivers.
If you do have problems with the in-kernel version, please do file bugs, but make sure they get assigned to kernel@gentoo.org rather than Diego.
NFIS2 and U.S. export control laws
On the journey to find some working fingerprint matching code for use in dpfp and future projects, several people have pointed me towards NFIS2.
NFIS2 is a set of utilities for fingerprint analysis and matching. It has been developed by NIST for DHS and the FBI, so presumably it is of a decent quality. Additionally, Andrei Tchijov tells me that it does work.
This sounds great, and to get a copy all you have to do is ask for them to send you a CDROM. The CD includes source code and documentation. The code is mostly public domain, some with BSD-style “preserve this copyright notice” licensing terms.
There is only one possible problem, the NFIS website makes the following point rather clear:
Distribution of this software is subject to U.S. export control laws.
I’m not sure what this means, so I’ve done some research. The following may be incorrect – this is just my interpretation, which I’m seeking clarification on…
The most important point is that export control laws apply to almost everything that exits the United States – regardless of origin and regardless of transportation method (mail, internet, …). I was encouraged to read this, as surely the U.S. don’t place restrictions on source code — otherwise the whole open source thing would not be happening, however:
All exports should be classified with an ECCN number. If they can be classified, certain restrictions apply — mostly that you cannot export to certain countries.
Even if you can’t be classified with an ECCN, there are still restrictions. For example, you cannot export anything to any entities listed here, people listed here, etc. I find this immensely confusing considering that this effectively means a US-based open source software mirror site is violating export control laws if someone on one of those lists happens to download some software. How is open-source even possible in the US with these kinds of restrictions in place?
Anyway, going back to the NFIS2 thing. It seems fairly redundant for them to point out that NFIS2 is covered by export control laws, when software of any type automatically is. So I ventured further and looked into the ECCN classification lists. Unfortunately, some entries do explicitly cover fingerprint systems, although I’m having trouble determining if they are talking about hardware or software (would they apply to a software-only generic fingerprint matching library distribution?). These entries restrict distribution to a number of countries (for purposes of “crime control”, etc).
I’d be extremely grateful if anyone can confirm or deny any of the above. The question I’m looking to answer is: If I get my hands on NFIS2, can I include it in an open-source project and share it with the world?
Here are some sources which I used in the above research:
- Export Control Basics from the Bureau of Industry and Security
- Collection of technical documents detailing the export regulations
- ECCN categories relating to computers (plain text version here). Search for “finger-print” in these documents to see what I’m talking about – is NFIS2 covered by these? Would my own non-NFIS fingerprint matching library be subject to these requirements, bearing in mind that I am now US-based?
- ffpis is a sourceforge project which appears to include a partial copy of old NFIS2 code. There doesn’t seem to be any consideration for the export control issues here. Is this legal distribution?
libdpfp 0.2.1 – basic image enhancement
I have just released version 0.2.1 of libdpfp, a userspace library with example programs to interact with Microsoft and DigitalPersona fingerprint scanners on Linux.
This release contains code from eFinger and FVS to enhance the fingerprint images. The capture_finger_enhanced example program now produces images like the ones in this post, which is rather cool. Again, the enhancement takes a few seconds to complete, hopefully we can improve on this. Also, I think I saw an infinite loop in the thinning code, but have been unable to reproduce this.
Andrei Tchijov has done some work porting libdpfp to Mac OS X (Darwin). I say porting, only a few small changes were needed. It doesn’t work out-of-the-box on Darwin just yet due to a libusb bug, which Andrei is working on. Andrei also mumbled something about porting libdpfp to Windows, which would be rather interesting.
Download link. As usual, questions and bug reports belong on the mailing list, not in comments on my weblog.
Moving soon!
Finally, I hold, within the grasp of my hands, a one-year US visa. It only took several months of paperwork and a 5 hour wait on the pavement outside the US embassy for a 30-second interview to get to this point.
I’m flying out on Tuesday, which is veeery soon. I’ll be living in Lexington, MA (just outside Boston).
It’s my 20th birthday on 25th August (next friday). As I won’t really know many people at that point, I’m hoping to get a few members of Gentoo’s boston conspiracy together for a meal or something, suggestions appreciated. Hopefully the worst of the jet lag will have worn off at that point.
Also hosting a joint leaving-and-nearly-birthday BBQ celebration at my house on Saturday. Hopefully it will have stopped raining by then.