Hướng dẫn này dành cho phiên bản kernel Linux amd64 / x86_64 trở lên và bằng 2.6.9. Bài viết giải thích cách cài đặt pandom: một trình tạo số ngẫu nhiên thực sự do ncomputers.org bảo trì
Vấn đề này đang trở nên phổ biến trong các triển khai Linux, vì nhu cầu về số ngẫu nhiên thực sự liên tục tăng, chủ yếu là cho các mục đích mật mã khác nhau.
Pandom tạo ra entropy khoảng 8 KiB/s là 64 ubit / 64 bit, tương thích với các môi trường vật lý và ảo và giả định rằng không có quy trình nào khác chạy với tư cách là người dùng root ghi vào /dev/random.
Lưu ý: phân tích này có thể được chạy trên một máy tính khác, chẳng hạn như máy tính xách tay hoặc máy tính để bàn. Ví dụ: nếu bạn đang cài đặt pandom trên máy chủ riêng ảo (VPS) có tài nguyên hạn chế, bạn có thể chọn sao chép tệp checkme vào máy tính cá nhân của mình để phân tích tệp đó tại đó.
Bạn cũng có thể sử dụng Entropy Online Tester.
Lưu ý: Bạn cũng có thể viết các dòng được chú thích bên dưới trong /etc/apt/sources.list, thay vì cài đặt gói debian tương ứng cho bản phân phối debian của bạn, nhưng nếu các nguồn này thay đổi trong tương lai, thì bạn sẽ cần phải cập nhật chúng theo cách thủ công.
Lưu ý: nếu bạn đã đã kiểm tra pandom trong triển khai linux của bạn, bạn có thể bỏ qua bước này.
Thông tin bổ sung và cập nhật: http://ncomputers.org/pandom
Giới thiệu
Trình tạo số ngẫu nhiên thực sự tích hợp sẵn trong hạt nhân Linux cung cấp thông lượng thấp trong các trường hợp hiện đại, chẳng hạn như: máy tính cá nhân có ổ đĩa thể rắn (SSD) và máy chủ riêng ảo (VPS).Vấn đề này đang trở nên phổ biến trong các triển khai Linux, vì nhu cầu về số ngẫu nhiên thực sự liên tục tăng, chủ yếu là cho các mục đích mật mã khác nhau.
Pandom tạo ra entropy khoảng 8 KiB/s là 64 ubit / 64 bit, tương thích với các môi trường vật lý và ảo và giả định rằng không có quy trình nào khác chạy với tư cách là người dùng root ghi vào /dev/random.
1 Cài đặt pandom
1.1 Truy cập root
Pandom phải được cài đặt dưới dạng root, chạy lệnh này nếu cần.
Mã:
su -
1.2 Cài đặt các phụ thuộc xây dựng
Để tải xuống và cài đặt pandom, bạn cần: GNU assembler, GNU make, GNU tar và GNU wget (hai phần mềm cuối cùng thường đã được cài đặt). Bạn có thể gỡ cài đặt chúng sau tùy ý.Hệ thống dựa trên Arch
Mã:
pacman -S binutils make
Hệ thống dựa trên Debian
Mã:
apt-get install binutils make
Hệ thống dựa trên Red Hat
Mã:
dnf install binutils make
Mã:
yum install binutils make
Hệ thống dựa trên SUSE
Mã:
zypper install binutils make
1.3 Tải xuống và trích xuất nguồn
Các lệnh này tải xuống và trích xuất nguồn pandom từ ncomputers.org bằng cách sử dụng wget và tar.
Mã:
wget [URL=http://ncomputers.org/pandom.tar.gz?utm_source=diendancongnghe.com]http://ncomputers.org/pandom.tar.gz[/URL]
tar xf pandom.tar.gz
cd pandom/amd64-linux
1.4 Kiểm tra trước khi cài đặt (khuyến nghị)
Kiểm tra khuyến nghị này mất khoảng 8 phút. Nó kiểm tra hỗ trợ hạt nhân và tạo tệp có tên checkme (phân tích ở phần tiếp theo).
Mã:
make check
1.5 Xác định hệ thống init
Trước khi cài đặt pandom, bạn cần biết hệ thống của bạn sử dụng phần mềm init nào. Nếu lệnh sau xuất ra từ running, điều đó có nghĩa là hệ thống của bạn đang sử dụng systemd, nếu không, có khả năng hệ thống của bạn đang sử dụng triển khai init.d (ví dụ: upstart, sysvinit). Có thể có một số ngoại lệ, thông tin chi tiết hơn trong các câu trả lời unix.stackexchange.com này.
Mã:
systemctl is-system-running
Mã:
running
1.6 Cài đặt pandom
Khi bạn biết hệ thống nào được triển khai linux của mình sử dụng, thì bạn có thể cài đặt pandom cho phù hợp.hệ thống init dựa trên init.d (ví dụ: upstart, sysvinit)
Cài đặt pandom bằng cách chạy lệnh này, nếu hệ thống của bạn đang sử dụng triển khai init.d (ví dụ: upstart, sysvinit).
Mã:
make install-init.d
systemd làm hệ thống init
Cài đặt pandom bằng cách chạy lệnh này, nếu hệ thống của bạn đang sử dụng systemd.
Mã:
make install-systemd
2 Phân tích tệp checkme
Trước khi sử dụng pandom cho mục đích mã hóa, bạn nên phân tích tệp checkme được tạo trong quá trình cài đặt ở phần trước của hướng dẫn này. Nhiệm vụ này hữu ích để biết các số có thực sự ngẫu nhiên hay không. Phần này giải thích cách phân tích tệp checkme bằng ncomputers.org/entropyarray: một tập lệnh shell, kiểm tra entropy và tương quan tuần tự của đầu vào của tệp.Lưu ý: phân tích này có thể được chạy trên một máy tính khác, chẳng hạn như máy tính xách tay hoặc máy tính để bàn. Ví dụ: nếu bạn đang cài đặt pandom trên máy chủ riêng ảo (VPS) có tài nguyên hạn chế, bạn có thể chọn sao chép tệp checkme vào máy tính cá nhân của mình để phân tích tệp đó tại đó.
Bạn cũng có thể sử dụng Entropy Online Tester.
2.1 Có quyền truy cập root
Entropyarray phải được cài đặt dưới dạng root, hãy chạy lệnh này nếu cần.
Mã:
su -
2.2 Cài đặt các phụ thuộc xây dựng
Để tải xuống và cài đặt entropyarray, bạn cần: trình biên dịch GNU g++, GNU make, GNU tar và GNU wget (hai phần mềm cuối cùng thường đã được cài đặt). Bạn có thể gỡ cài đặt chúng sau tùy ý.Hệ thống dựa trên Arch
Mã:
pacman -S gcc make
Hệ thống dựa trên Debian
Mã:
apt-get install g++ make
Hệ thống dựa trên Red Hat
Mã:
dnf install gcc-c++ make
Mã:
yum install gcc-c++ make
Hệ thống dựa trên SUSE
Mã:
zypper install gcc-c++ make
2.3 Tải xuống và trích xuất nguồn
Các lệnh này tải xuống và trích xuất nguồn entropyarray từ ncomputers.org bằng cách sử dụng wget và tar.
Mã:
wget [URL=http://ncomputers.org/rearray.tar.gz?utm_source=diendancongnghe.com]http://ncomputers.org/rearray.tar.gz[/URL]
wget [URL=http://ncomputers.org/entropy.tar.gz?utm_source=diendancongnghe.com]http://ncomputers.org/entropy.tar.gz[/URL]
wget [URL=http://ncomputers.org/entropyarray.tar.gz?utm_source=diendancongnghe.com]http://ncomputers.org/entropyarray.tar.gz[/URL]
tar xf entropy.tar.gz
tar xf rearray.tar.gz
tar xf entropyarray.tar.gz
2.4 Cài đặt entropyarray
Lưu ý: lỗi liên quan đến -std=c++11 có nghĩa là phiên bản trình biên dịch GNU g++ không hỗ trợ chuẩn ISO C++ 2011. Bạn có thể thử biên dịch ncomputers.org/entropy và ncomputers.org/rearray trong một hệ thống khác hỗ trợ chuẩn này (ví dụ: GNU g++ trong phiên bản mới hơn của bản phân phối Linux yêu thích của bạn) rồi cài đặt các tệp nhị phân đã biên dịch bằng make install trong hệ thống bạn muốn chạy entropyarray hoặc bỏ qua bước này, mặc dù chúng tôi khuyên bạn nên phân tích tệp checkme trước khi sử dụng pandom cho bất kỳ mục đích mã hóa nào.
Mã:
cd reararray; make install; cd ..
cd entropy; make install; cd ..
cd entropyarray; make install; cd ..
2.5 Phân tích tệp checkme
Lưu ý: 64 ubit / 64 bit triển khai pandom sẽ dẫn đến thử nghiệm này với entropy trên 15.977 và tần số max dưới 70. Nếu kết quả của bạn khác nhau quá nhiều, bạn có thể thử tăng tính không thể đoán trước của triển khai pandom của mình như mô tả trong phần thứ năm của hướng dẫn này. Trong trường hợp bạn bỏ qua bước cuối cùng, bạn có thể sử dụng các công cụ khác như kiểm tra chuỗi số giả ngẫu nhiên.
Mã:
entropyarray checkme
Mã:
entropyarray trong /tmp/tmp.mbCopmzqsg
15.977339
phút:12
med:32
max:56
15.977368
phút :11
med:32
max:58
15.977489
min:11
med:32
max:59
15.977077
min:12
med:32
max:60
15.977439
min:8
med:32
max:59
15.977374
min:13
med:32
max:60
15.977312
min:12
med:32
max:67
2.6 Gỡ cài đặt entropyarray (tùy chọn)
Nếu bạn không định sử dụng entropyarray nữa, thì bạn có thể gỡ cài đặt tùy ý.
Mã:
cd entropyarray; make uninstall; cd ..
cd entropy; make uninstall; cd ..
cd reararray; make uninstall; cd ..
3 Cài đặt bằng kho lưu trữ debian
Nếu bạn muốn giữ pandom được cập nhật trên hệ thống dựa trên debian của mình, bạn có thể chọn cài đặt/cài đặt lại bằng kho lưu trữ debian ncomputers.org.3.1 Truy cập root
Các gói debian bên dưới phải được cài đặt dưới dạng root, hãy chạy lệnh này nếu cần.
Mã:
su -
3.2 Cài đặt keyring
Gói debian này bao gồm khóa công khai của kho lưu trữ debian ncomputers.org.
Mã:
wget [URL=http://ncomputers.org/debian/keyring.deb?utm_source=diendancongnghe.com]http://ncomputers.org/debian/keyring.deb[/URL]
dpkg -i keyring.deb
rm keyring.deb
3.3 Cài đặt danh sách nguồn
Các gói debian này bao gồm danh sách nguồn của kho lưu trữ debian ncomputers.org theo các bản phân phối debian mới nhất (năm 2017).Lưu ý: Bạn cũng có thể viết các dòng được chú thích bên dưới trong /etc/apt/sources.list, thay vì cài đặt gói debian tương ứng cho bản phân phối debian của bạn, nhưng nếu các nguồn này thay đổi trong tương lai, thì bạn sẽ cần phải cập nhật chúng theo cách thủ công.
Wheezy
Mã:
#deb [URL=http://ncomputers.org/debian?utm_source=diendancongnghe.com]http://ncomputers.org/debian[/URL] wheezy chính
wget [URL=http://ncomputers.org/debian/wheezy.deb?utm_source=diendancongnghe.com]http://ncomputers.org/debian/wheezy.deb[/URL]
dpkg -i wheezy.deb
rm wheezy.deb
Jessie
Mã:
#deb [URL=http://ncomputers.org/debian?utm_source=diendancongnghe.com]http://ncomputers.org/debian[/URL] jessie chính
wget [URL=http://ncomputers.org/debian/jessie.deb?utm_source=diendancongnghe.com]http://ncomputers.org/debian/jessie.deb[/URL]
dpkg -i jessie.deb
rm jessie.deb
Stretch
Mã:
#deb [URL=http://ncomputers.org/debian?utm_source=diendancongnghe.com]http://ncomputers.org/debian[/URL] stretch main
wget [URL=http://ncomputers.org/debian/stretch.deb?utm_source=diendancongnghe.com]http://ncomputers.org/debian/stretch.deb[/URL]
dpkg -i stretch.deb
rm stretch.deb
3.4 Cập nhật danh sách nguồn
Sau khi cài đặt vòng khóa và danh sách nguồn.
Mã:
apt-get update
3.5 Kiểm tra pandom
Sau khi kiểm tra, bạn có thể gỡ cài đặt gói bên dưới theo ý muốn.Lưu ý: nếu bạn đã đã kiểm tra pandom trong triển khai linux của bạn, bạn có thể bỏ qua bước này.
Mã:
apt-get install pandom-test
pandom-test
Mã:
đang tạo tệp checkme, vui lòng đợi khoảng 8 phút ...
entropyarray trong /tmp/tmp.5SkiYsYG3h
15.977366
phút:12
trung bình:32
tối đa:57
15.977367
phút:13
trung bình:32
tối đa:57
15.977328
phút:12
trung bình:32
tối đa:61
15.977431
min:12
med:32
max:59
15.977437
min:11
med:32
max:57
15.977298
min:11
med:32
max:59
15.977196
min:10
med:32
max:57
3.6 Cài đặt pandom
Mã:
apt-get install pandom
4 Quản lý pandom
Sau khi pandom được cài đặt, bạn có thể muốn quản lý nó.4.1 Kiểm tra hiệu suất
Pandom cung cấp khoảng 8 kilobyte mỗi giây, nhưng hiệu suất của nó có thể thay đổi tùy thuộc vào môi trường.
Mã:
dd if=/dev/random of=/dev/null bs=8 count=512
Mã:
512+0 bản ghi vào
512+0 bản ghi ra
4096 byte (4,1 kB, 4,0 KiB) đã sao chép, 0,451253 giây, 9,1 kB/giây
4.2 Entropy và kiểm tra tương quan tuần tự
Ngoài ncomputers.org/entropyarray, còn có nhiều bài kiểm tra khác, ví dụ bộ kiểm tra NIST của Ilja Gerhardt.
Mã:
entropyarray /dev/random 1M
4.3 Dịch vụ hệ thống
Pandom chạy như một dịch vụ hệ thống.hệ thống init dựa trên init.d (ví dụ: upstart, sysvinit)
Mã:
/etc/init.d/random status
/etc/init.d/random start
/etc/init.d/random stop
/etc/init.d/random restart
systemd là hệ thống khởi tạo
Mã:
systemctl status random
systemctl start random
systemctl stop random
systemctl restart random
5 Tăng khả năng không thể đoán trước hoặc hiệu suất
Nếu bạn muốn thử tăng khả năng không thể đoán trước hoặc hiệu suất của triển khai pandom, bạn có thể thử thêm hoặc xóa các phép đo thời gian CPU.5.1 Chỉnh sửa tệp nguồn
Trong các tệp nguồn test.s và tRNG.s, hãy thêm hoặc xóa các khối đo lường theo ý muốn.
Mã:
#measurement block
mov $35,%rax
syscall
rdtsc
[...]
#measurement block
mov $35,%rax
syscall
rdtsc
[...]
5.2 Kiểm tra tính không thể đoán trước
Chúng tôi khuyên bạn nên luôn kiểm tra bất kỳ triển khai pandom được cá nhân hóa nào trước khi sử dụng cho mục đích mã hóa.
Mã:
make check
5.3 Cài đặt pandom được cá nhân hóa
Nếu bạn hài lòng với kết quả, thì bạn có thể cài đặt triển khai pandom được cá nhân hóa của mình.
Mã:
make install