falcon randint # make clean && cp /usr/src/linux/drivers/char/random.o . && cp /usr/src/linux/lib/sha1.o . && make && insmod ./randtest.ko && rmmod randtest rm -f Module.symvers *.o *~ .\#* .*.cmd *.mod.c *.ko rm -rf .tmp_versions make -C /lib/modules/2.6.21.5/build/ SUBDIRS=/root/randint modules make[1]: Entering directory `/usr/src/linux-2.6.21.5' CC [M] /root/randint/randint.o LD [M] /root/randint/randtest.o Building modules, stage 2. MODPOST 1 modules CC /root/randint/randtest.mod.o LD [M] /root/randint/randtest.ko make[1]: Leaving directory `/usr/src/linux-2.6.21.5' falcon randint # make clean && cp /usr/src/linux/drivers/char/random.o . && cp /usr/src/linux/lib/sha1.o . && make && insmod ./randtest.ko && rmmod randtest rm -f Module.symvers *.o *~ .\#* .*.cmd *.mod.c *.ko rm -rf .tmp_versions make -C /lib/modules/2.6.21.5/build/ SUBDIRS=/root/randint modules make[1]: Entering directory `/usr/src/linux-2.6.21.5' CC [M] /root/randint/randint.o LD [M] /root/randint/randtest.o Building modules, stage 2. MODPOST 1 modules CC /root/randint/randtest.mod.o LD [M] /root/randint/randtest.ko make[1]: Leaving directory `/usr/src/linux-2.6.21.5' falcon randint # make clean && cp /usr/src/linux/drivers/char/random.o . && cp /usr/src/linux/lib/sha1.o . && make && insmod ./randtest.ko && rmmod randtest rm -f Module.symvers *.o *~ .\#* .*.cmd *.mod.c *.ko rm -rf .tmp_versions make -C /lib/modules/2.6.21.5/build/ SUBDIRS=/root/randint modules make[1]: Entering directory `/usr/src/linux-2.6.21.5' CC [M] /root/randint/randint.o LD [M] /root/randint/randtest.o Building modules, stage 2. MODPOST 1 modules CC /root/randint/randtest.mod.o LD [M] /root/randint/randtest.ko make[1]: Leaving directory `/usr/src/linux-2.6.21.5' Checking randomization: Fast repeated calls to the function secure_tcp_sequence_number(): 0xb525bcda=0xb525bcdb Checking randomization: Fast repeated calls to the function secure_tcp_sequence_number(): 0xb7004c3d=0xb7004c3e Checking randomization: Fast repeated calls to the function secure_tcp_sequence_number(): 0xbb0f997a=0xbb0f997b Possible Security Problem: Fast repeated calls to the function secure_tcp_sequence_number() is not cryptographically safe: 0xbba4817b=0xbba4817b Possible Security Problem: Fast repeated calls to the function secure_tcp_sequence_number() is not cryptographically safe: 0xbc6e6233=0xbc6e6233 Checking randomization: Fast repeated calls to the function secure_tcp_sequence_number(): 0xbce94dcd=0xbce94dce Checking randomization: Fast repeated calls to the function secure_tcp_sequence_number(): 0xbd10eced=0xbd10ecee Checking randomization: Fast repeated calls to the function secure_tcp_sequence_number(): 0xbe67bc5e=0xbe67bc5f falcon randint # cat Kbuild ; cat Makefile ; cat randint.c obj-m := randtest.o randtest-objs := randint.o # sha1.o random.o default: make -C /lib/modules/$(shell uname -r)/build/ SUBDIRS=$(PWD) modules clean: rm -f Module.symvers *.o *~ .\#* .*.cmd *.mod.c *.ko rm -rf .tmp_versions /*- solar,pappy@gentoo.org Tue Jun 19 00:39:29 */ #include #include #include #include #include static int randint_init(void) { unsigned int seed[2]; seed[0] = secure_tcp_sequence_number(0,(__force __be32)(current->pid + jiffies),0,0); seed[1] = secure_tcp_sequence_number(0,(__force __be32)(current->pid + jiffies),0,0); if (seed[0] == seed[1]) { printk(KERN_ALERT "Possible Security Problem: Fast repeated calls to the function secure_tcp_sequence_number() is not cryptographically safe: 0x%0*x=0x%0*x\n", sizeof(long), seed[0], sizeof(long), seed[1]); return 1; } else { printk(KERN_INFO "Checking randomization: Fast repeated calls to the function secure_tcp_sequence_number(): 0x%0*x=0x%0*x\n", sizeof(long), seed[0], sizeof(long), seed[1]); return 0; } } static void randint_exit(void) { return; } module_init(randint_init); module_exit(randint_exit); MODULE_LICENSE("GPL");