keys generated on one architecture for another?

Yan Seiner yan at seiner.com
Thu Aug 17 20:48:32 WST 2006


Matt Johnston wrote:
> On Wed, Aug 16, 2006 at 03:41:49AM -0700, Yan Seiner wrote:
>   
>> I finally got around to figuring out what was going on, and I have an 
>> issue that may be a bug/security issue/lack of understanding on my part...
>>     
>
>   
>> -rw-------  1 yan yan 457 2006-04-06 16:14 dropbear_dss_host_key
>> -rw-------  1 yan yan 427 2006-04-06 16:13 dropbear_rsa_host_key
>> And dropbear fails with:
>> open("/etc/dropbear/dropbear_rsa_host_key", O_RDONLY) = 3
>> read(3, 0x2edf8, 1700)                  = -1 EIO (Input/output error)
>>     
>
>   
>> -rw-------  1 root root 457 2006-04-06 16:14 dropbear_dss_host_key
>> -rw-------  1 root root 427 2006-04-06 16:13 dropbear_rsa_host_key
>> and dropbear fails with:
>> open("/etc/dropbear/dropbear_rsa_host_key", O_RDONLY) = 3
>> read(3, 0x2edf8, 1700)                  = -1 EACCES (Permission denied)
>>     
>
>   
>> So we change the perms to 644 and dropbear finally succeeds....
>> -rw-r--r--  1 root root 457 2006-04-06 16:14 dropbear_dss_host_key
>> -rw-r--r--  1 root root 427 2006-04-06 16:13 dropbear_rsa_host_key
>> open("/etc/dropbear/dropbear_rsa_host_key", O_RDONLY) = 3
>> read(3, "\0\0\0\7ssh-rsa\0\0\0\3\1\0\1\0\0\0\203\0\300\234C\260"..., 
>>
>> Now I am really confused.....
>>     
>
> That really looks like there's something wrong at the
> OS/filesystem level? All the manpages I've looked at (Linux,
> Darwin, Tru64, Solaris) don't mention read() returning with
> EACCESS.  I would've expected that to happen in the open()
> call. Even then root should be able to read it unless
> there's some unusual security setup?
>   

The system is running glibc-2.3.2, and busybox 1.2.1.  No unusual setup 
at all; basically a stock compile using a crosstool from kegel.com.  The 
fs is hand-built by moving libs and executables to the target fs, and 
setting permissions as we go.

There are two possibilites I can think of.  One is a bug in busybox's 
nfs.... The target box (an arm board) is mounting the fs via nfs.  The 
second is a missing library.  I've done some spidering through the lib 
dependencies, and I think I have them all, but it is possible I am 
missing one.
> The EIO return should be handled better by Dropbear, though
> I don't think it's the correct return value from the OS (it
> should indicate a physical error)? I'll fix up the error
> checking in Dropbear's buf_readfile() function.
>   
>   
>> I didn't see anywhere in the strace logs that dropbear relinquished su 
>> priveledges, and it is run as root:
>>     
>
> Yep, the main server process runs as root. 
>
> I guess this is a Linux variant from the ps listing. Which
> filesystem is it running? I suspect that's where the problem
> lies.
>   

I suspect there may be some issues between busybox 1.2.1 and my kernel 
as pertains to console handling....  I don't know if that's what I'm 
seeing here.

I have an older, heavily patched version I used for development earlier 
on.  I'll see if I can reproduce the problem with it.

--Yan



More information about the Dropbear mailing list