Trong giao thức này, người dùng được yêu cầu phải được xác thực. Họ có thể làm điều này bằng mật khẩu, tệp chứa khóa RSA riêng tư, thiết bị phần cứng như Ledger Nano S và Ledger Nano X, v.v.
Một số phương tiện xác thực an toàn hơn các phương tiện khác: sử dụng thiết bị phần cứng được thiết kế để lưu trữ khóa riêng tư mà không cho phép trích xuất nó sẽ an toàn hơn so với lưu trữ khóa riêng tư trong một tệp. Thật không may, những cái an toàn nhất cũng khó sử dụng hơn. Người dùng có khóa trên thiết bị cần mang theo thiết bị bên mình, cần nhập mã PIN mỗi khi bắt đầu phiên SSH, v.v. Điều này gây khó khăn cho việc ủng hộ các cách an toàn hơn mật khẩu và tệp cho các trường hợp sử dụng khi tính bảo mật của quyền truy cập không phải là ưu tiên hàng đầu.
Vì vậy, câu hỏi đặt ra là: có thể lưu trữ tài liệu xác thực an toàn hơn trong một tệp (có thể bị một số phần mềm độc hại đánh cắp) mà không làm thay đổi trải nghiệm người dùng không?
Và câu trả lời là: có, sử dụng TPM!
Một số lịch sử
Trong một thời gian khá dài, máy tính đã có thể nhúng trực tiếp chip bảo mật. Con chip này, có tên là Mô-đun nền tảng đáng tin cậy (TPM), cung cấp nhiều tính năng bao gồm khả năng bảo vệ các khóa riêng được sử dụng trong mật mã khóa chung.
Vì nó được nhúng trong máy tính nên không cần cắm thiết bị vào máy tính để sử dụng. Do đó, điều này được coi là kém an toàn hơn so với thiết bị phần cứng có thể được lưu trữ ở một nơi khác với máy tính (điều này cho phép thực thi nguyên tắc rằng trong khi thiết bị không được kết nối với máy tính, không phần mềm độc hại nào có thể sử dụng các bí mật được lưu trữ trong đó).
Vì vậy, TPM không phải là “bảo mật tốt nhất”, nhưng nó vẫn an toàn hơn nhiều so với việc sử dụng các tệp như $HOME/.ssh/id_rsa
để lưu trữ khóa riêng.
TPM có thể được sử dụng với OpenSSH trên Linux như thế nào? Với dự án mang tên tpm2-pkcs11
, làm theo các hướng dẫn có sẵn trên nhiều trang web trong nhiều năm, kể cả trên tài liệu chính thức từ kho mã của nó.
Bây giờ, tin tức là gì? Phần mềm này cuối cùng đã được đóng gói trong Ubuntu và Debian, khiến nó cuối cùng cũng có sẵn cho hầu hết người dùng Linux!
Chính xác hơn đây là một mốc thời gian:
- Vào năm 2014, các thông số kỹ thuật chính cho TPM 2.0 đã được xuất bản. Để tương tác với TPM từ phần mềm, đã có một nỗ lực tiêu chuẩn hóa và hai ngăn xếp phần mềm không tương thích đã được tạo: một ngăn xếp từ Trusted Computing Group (TCG), được gọi là Ngăn xếp phần mềm TPM (TSS), và một từ IBM, còn được gọi là Ngăn xếp phần mềm TPM.
- Năm 2018, dự án
tpm2-pkcs11
đã được tạo để cung cấp giao diện PKCS#11 cho TPM 2.0, sử dụng TSS của TCG. PKCS # 11 là một tiêu chuẩn xác định Giao diện lập trình ứng dụng (API) có tên tiền điện tử để sử dụng mã thông báo lưu trữ khóa mật mã. Vì OpenSSH được hỗ trợ bằng cách sử dụng giao diện PKCS#11 để thực hiện xác thực người dùng, điều này được kích hoạt bằng cách sử dụng TPM để lưu trữ các khóa được sử dụng để xác thực SSH. - Vào tháng Hai 2019,
tpm2-pkcs11
đã được thêm vào Fedora 29. - Vào tháng 2019 năm 8, CentOS XNUMX đã được phát hành với gói này.
- Vào tháng 4 2020,
tpm2-pkcs11
đã được thêm vào Debian sid. Thật không may, nó không chứa chương trìnhtpm2_ptool
cần thiết để dễ dàng tạo khóa. Vấn đề này đã được báo cáo trong Lỗi Debian #968310. - Vào tháng 2021 năm XNUMX, gói của Debian đã được cố định (và người bảo trì đã thừa nhận sự giúp đỡ của tôi!).
- Vào tháng 2021 năm 21.04, Ubuntu XNUMX Hà mã hirsute đã được phát hành với gói cố định.
- Vào tháng 2021 năm 11, Debian XNUMX Bullseye đã được phát hành với gói cố định
Hiện nay tpm2-pkcs11
có sẵn trên Debian, Ubuntu và một số bản phân phối Linux khác được liệt kê trên cứu hộ.
Sử dụng tpm2-pkcs11
Trên Debian 11, đây là các bước để tạo và sử dụng khóa SSH mới được TPM lưu trữ an toàn:
- cài đặt lệnh
tpm2_ptool
và thư việnlibtpm2_pkcs11.so.1
, được cung cấp bởi hai gói:
2. Kiểm tra xem hệ thống có thể sử dụng TPM 2.0 không. Nếu một trong các bước kiểm tra sau không thành công, điều đó có thể có nghĩa là hệ thống không có TPM hoặc có TPM 1.2 hoặc có TPM 2.0 bị tắt trong cài đặt BIOS:
3. Thêm người dùng hiện tại vào nhóm có thể truy cập thiết bị TPM /dev/tpmrm0
. Trên Debian và Ubuntu, người dùng cần thuộc về một nhóm có tên tss
(nhờ cấu hình được cung cấp bởi tpm-udev
gói). Lệnh sau thêm người dùng hiện tại vào nhóm này:
Khởi tạo một cửa hàng người dùng, được bảo vệ bằng mật khẩu và SOPIN và tạo một khóa, ví dụ: khóa Elliptic Curve trên đường cong có tên “NIST P-256” (còn được gọi là “secp256r1”):
4. Từ viết tắt SOPIN có nghĩa Số nhận dạng cá nhân của nhân viên an ninh và là một khái niệm từ thông số kỹ thuật của PKCS#11. Trong các trường hợp sử dụng đơn giản, nó có thể được coi là “mật khẩu khôi phục” cho phép sửa đổi mật khẩu khi mật khẩu bị mất chẳng hạn.
5. Hiển thị khóa công khai của khóa mới này:
6. Định cấu hình khóa công khai mới trong máy chủ, ví dụ bằng cách ghi nó vào $HOME/.ssh/authorized_keys
hoặc trong cài đặt tài khoản của GitHub hoặc ở bất kỳ vị trí nào khác nơi sử dụng khóa công khai SSH.
7. Định cấu hình máy khách SSH để sử dụng tpm2-pkcs11
để kết nối với máy chủ, ví dụ bằng cách viết cái này vào $HOME/.ssh/config
(phía khách hàng):
Kết nối với máy chủ (Lưu ý bước trước có thể bỏ qua:
Công việc tương lai
Phần trước đã trình bày cách tạo khóa mới trong TPM. Mặc dù điều này cho phép sử dụng TPM để bảo vệ xác thực SSH, nhưng có hai tính năng cần thiết để làm cho điều này trở thành một giải pháp thay thế thực sự cho việc sử dụng tệp để lưu trữ khóa riêng:
- Tính năng #1: nhập các khóa SSH hiện có vào TPM thay vì tạo khóa mới (cho phép chuyển đổi suôn sẻ sang bộ lưu trữ TPM, sao lưu khóa, trong trường hợp máy tính bị hỏng hoặc bị mất, v.v.).
- Tính năng #2: sử dụng khóa SSH không có mật khẩu, chẳng hạn như các tệp khóa riêng tư không được bảo vệ (tính năng này an toàn hơn các tệp chính vì không thể trích xuất khóa được bảo vệ khỏi TPM).
Tôi đã triển khai cả hai tính năng trong tpm2-pkcs11
và gửi chúng trong Yêu cầu kéo #681 và #695. Tính năng số 1 cũng đã được trình bày vào tháng XNUMX trong cuộc gọi trực tuyến hàng tuần của cộng đồng tpm.dev và bản ghi có sẵn trên https://developers.tpm.dev/posts/14389750.
Vì vậy, cả hai tính năng đều có khả năng khả dụng trong phiên bản tương lai của tpm2-pkcs11
.
Nhân tiện, dành cho những độc giả tò mò muốn hiểu nội hàm của tpm2-pkcs11
, tôi đã xuất bản một bài viết về họ tại hội nghị SSTIC 2021, có tên Bảo vệ xác thực SSH bằng TPM 2.0 (bài viết bằng tiếng Anh, trình bày bằng tiếng Pháp). Ngoài ra, những độc giả muốn thử mọi thứ mà không cần chạm vào TPM thực có thể quan tâm đến phần “Mô phỏng TPM 2.0” của bài viết này.
(Hình minh họa: Rainer Knäpper, Giấy phép Nghệ thuật Miễn phí)
- Phân phối nội dung và PR được hỗ trợ bởi SEO. Được khuếch đại ngay hôm nay.
- PlatoAiStream. Thông minh dữ liệu Web3. Kiến thức khuếch đại. Truy cập Tại đây.
- Đúc kết tương lai với Adryenn Ashley. Truy cập Tại đây.
- Mua và bán cổ phần trong các công ty PRE-IPO với PREIPO®. Truy cập Tại đây.
- nguồn: https://www.ledger.com/blog/ssh-with-tpm
- : có
- :là
- :không phải
- :Ở đâu
- $ LÊN
- 1
- 11
- 13
- 14
- 15%
- 2014
- 2018
- 2019
- 2020
- 2021
- 30
- 8
- 80
- a
- có khả năng
- Có khả năng
- Giới thiệu
- truy cập
- Tài khoản
- thừa nhận
- thêm vào
- thêm
- Thêm
- biện hộ
- Ngoài ra
- thay thế
- an
- và
- trả lời
- bất kì
- api
- Các Ứng Dụng
- Tháng Tư
- LÀ
- Nghệ thuật
- bài viết
- AS
- At
- Tháng Tám
- chứng thực
- Xác thực
- có sẵn
- ủng hộ
- BE
- trở nên
- được
- cả hai
- Bị phá vỡ
- Bug
- nhưng
- by
- cuộc gọi
- CAN
- không thể
- mang
- trường hợp
- trường hợp
- CGI
- thay đổi
- kiểm tra
- Séc
- Chip
- khách hàng
- mã
- máy tính
- máy tính
- máy tính
- khái niệm
- Hội nghị
- Cấu hình
- Kết nối
- kết nối
- xem xét
- có thể
- tạo
- tạo ra
- Tạo
- mật mã
- mật mã
- tò mò
- Current
- đường cong
- Xác định
- thiết kế
- Dev
- thiết bị
- Thiết bị (Devices)
- ĐÃ LÀM
- khác nhau
- khó khăn
- trực tiếp
- bị vô hiệu hóa
- Giao diện
- Phân phối
- do
- tài liệu hướng dẫn
- làm
- suốt trong
- dễ dàng
- nỗ lực
- Thuộc về bầu dục
- nhúng
- nhúng
- kích hoạt
- cho phép
- thực thi
- Tiếng Anh
- vv
- BAO GIỜ
- Mỗi
- ví dụ
- hiện tại
- kinh nghiệm
- trích xuất
- không
- Đặc tính
- Tính năng
- Tháng Hai
- Tập tin
- Các tập tin
- Cuối cùng
- cố định
- tiếp theo
- Trong
- Miễn phí
- Tiếng Pháp
- từ
- tương lai
- tạo ra
- GitHub
- Nhóm
- phần cứng
- thiết bị phần cứng
- thiêt bị ổ cưng
- Có
- tại đây
- Độ đáng tin của
- Hướng dẫn
- HTML
- http
- HTTPS
- i
- IBM
- Xác định
- if
- thực hiện
- nhập khẩu
- in
- Bao gồm
- không tương thích
- bắt đầu
- thay vì
- hướng dẫn
- tương tác
- quan tâm
- Giao thức
- trong
- vấn đề
- IT
- ITS
- Tháng một
- 2021 Tháng Giêng
- jpg
- Key
- phím
- nổi tiếng
- Ledger
- Ledger Nano
- Ledger Nano S
- Sổ cái Nano X
- ít
- Lượt thích
- Có khả năng
- linux
- Liệt kê
- địa điểm thư viện nào
- thua
- Chủ yếu
- làm cho
- LÀM CHO
- Làm
- phần mềm độc hại
- nhiều
- vật liệu
- max-width
- Có thể..
- nghĩa là
- có nghĩa
- mô-đun
- chi tiết
- Hơn thế nữa
- hầu hết
- nhiều
- my
- Được đặt theo tên
- nano
- cần thiết
- Cần
- cần thiết
- Mới
- tin tức
- Không
- tại
- of
- Nhân viên văn phòng
- on
- ONE
- những
- Trực tuyến
- or
- gọi món
- Nền tảng khác
- Khác
- gói
- đóng gói
- gói
- đau đớn
- Mật khẩu
- Mật khẩu
- thực hiện
- riêng
- Nơi
- nền tảng
- plato
- Thông tin dữ liệu Plato
- PlatoDữ liệu
- cắm
- có thể
- Chính xác
- trình bày
- trình bày
- trước
- nguyên tắc
- ưu tiên
- riêng
- Key Private
- Khóa riêng
- Lập trình
- dự án
- bảo vệ
- bảo vệ
- bảo vệ
- giao thức
- cho
- cung cấp
- cung cấp
- công khai
- chính công
- khóa công khai
- công bố
- câu hỏi
- độc giả
- thực
- ghi âm
- phát hành
- phát hành
- Báo cáo
- cần phải
- rsa
- s
- Phần
- an toàn
- an toàn
- an ninh
- đã xem
- Tháng Chín
- Phiên
- thiết lập
- một số
- bên
- Đơn giản
- So
- Phần mềm
- một số
- đặc điểm kỹ thuật
- thông số kỹ thuật
- Stacks
- Tiêu chuẩn
- Bước
- Các bước
- Vẫn còn
- ăn cắp
- là gắn
- hàng
- lưu trữ
- trình
- như vậy
- Hỗ trợ
- hệ thống
- hơn
- cảm ơn
- việc này
- Sản phẩm
- Hàng tuần
- cung cấp their dịch
- Them
- Đó
- vì thế
- họ
- điều
- điều này
- thời gian
- timeline
- đến
- Tokens
- sờ vào
- quá trình chuyển đổi
- đáng tin cậy
- thử
- hai
- kiểu
- Ubuntu
- hiểu
- không may
- sử dụng
- đã sử dụng
- người sử dang
- Kinh nghiệm người dùng
- Người sử dụng
- sử dụng
- muốn
- là
- Đường..
- cách
- trang web
- hàng tuần
- là
- khi nào
- cái nào
- trong khi
- CHÚNG TÔI LÀ
- với
- không có
- viết
- X
- năm
- Vâng
- zephyrnet