1 điểm bởi GN⁺ 2024-03-23 | 1 bình luận | Chia sẻ qua WhatsApp
  • Nhóm nghiên cứu bảo mật công bố Unsaflok, có thể mở nhiều mẫu khóa khách sạn RFID Dormakaba Saflok chỉ trong vài giây, làm lung lay niềm tin vào chính hệ thống kiểm soát ra vào phòng khách sạn
  • Phạm vi ảnh hưởng là 3 triệu cánh cửa tại 13.000 cơ sở lưu trú ở 131 quốc gia trên toàn thế giới; lỗ hổng khai thác đồng thời mã hóa của Dormakaba và điểm yếu RFID MIFARE Classic
  • Kẻ tấn công chỉ cần có 1 thẻ khóa của cùng khách sạn, đọc mã bằng thiết bị RFID 300 USD, rồi lần lượt chạm 2 thẻ tự tạo để thay đổi dữ liệu khóa và mở cửa
  • Nhóm nghiên cứu đã chia sẻ chi tiết với Dormakaba vào tháng 11/2022, nhưng tính đến tháng 3/2024, chỉ 36% số Saflok đã lắp đặt được cập nhật; các hệ thống cũ có thể mất từ vài tháng đến vài năm để khắc phục
  • Khách lưu trú có thể dùng ứng dụng NFC Taginfo để kiểm tra thẻ khóa còn là MIFARE Classic hay không; nếu có khả năng bị ảnh hưởng, nên tránh để đồ giá trị trong phòng và cài xích cửa khi ở bên trong

Kỹ thuật Unsaflok và phạm vi ảnh hưởng

  • Các nhà nghiên cứu bảo mật Ian Carroll, Lennert Wouters cùng nhóm đã công bố kỹ thuật hack thẻ khóa khách sạn có tên Unsaflok
  • Kỹ thuật này cho phép mở gần như tức thì nhiều mẫu khóa thẻ RFID thuộc thương hiệu Saflok do nhà sản xuất khóa Thụy Sĩ Dormakaba bán ra
  • Hệ thống Saflok được lắp đặt trên 3 triệu cánh cửa, tại 13.000 cơ sở lưu trú, ở 131 quốc gia trên toàn thế giới
  • Nghiên cứu bắt đầu vào năm 2022 tại một sự kiện kín ở Las Vegas, trong quá trình thử hack các thiết bị trong phòng khách sạn; nhóm nghiên cứu tập trung vào khóa cửa phòng

Cách tấn công: 1 thẻ khóa và hai lần chạm

  • Trước tiên, kẻ tấn công cần có bất kỳ 1 thẻ khóa nào của khách sạn mục tiêu
    • Các ví dụ được nêu gồm đặt phòng tại khách sạn đó, hoặc lấy thẻ từ hộp chứa thẻ khóa đã qua sử dụng
    • Thẻ khóa đã hết hạn cũng đáp ứng điều kiện nếu là thẻ của cùng khách sạn
  • Sau đó, dùng thiết bị đọc/ghi RFID giá 300 USD để đọc một mã nhất định từ thẻ và ghi 2 thẻ khóa tự tạo
    • Thẻ thứ nhất ghi lại một số dữ liệu nhất định của khóa
    • Thẻ thứ hai mở cửa
  • Theo Wouters, chỉ cần chạm nhanh hai thẻ là cửa sẽ mở, và phương thức này hoạt động với mọi cửa trong khách sạn
  • Để thực hiện cuộc tấn công cuối cùng, chỉ cần thiết bị đọc/ghi RFID Proxmark và 2 thẻ RFID trắng
    • Điện thoại Android hoặc Flipper Zero cũng có thể được dùng để phát liên tiếp các tín hiệu

Cấu trúc kỹ thuật của lỗ hổng

  • Unsaflok kết hợp hai loại lỗ hổng
    • Lỗ hổng cho phép ghi dữ liệu lên thẻ khóa
    • Lỗ hổng giúp xác định cần ghi dữ liệu nào để đánh lừa khóa Saflok mở cửa
  • Thẻ khóa Saflok sử dụng hệ thống RFID MIFARE Classic
    • Hệ thống này có các lỗ hổng đã được biết đến hơn 10 năm, cho phép kẻ tấn công ghi lên thẻ khóa
    • Quy trình brute force trước đây có thể mất tối đa 20 giây
  • Nhóm nghiên cứu đã phá được hàm dẫn xuất khóa, một phần trong hệ thống mã hóa riêng của Dormakaba, để có thể ghi lên thẻ nhanh hơn nhiều
  • Chỉ riêng bước này cho phép sao chép tùy ý thẻ khóa Saflok, nhưng chưa thể tạo thẻ cho phòng khác
  • Bước quan trọng hơn là nhóm đã lấy được rồi dịch ngược thiết bị lập trình khóa mà Dormakaba phân phối cho khách sạn và phần mềm quản lý thẻ khóa ở quầy lễ tân
    • Nhóm nghiên cứu hiểu được cấu trúc dữ liệu lưu trên thẻ
    • Trích xuất mã thuộc tính theo từng khách sạn và mã theo từng phòng
    • Tạo và mã hóa giá trị giống hệ thống Dormakaba, từ đó có thể làm giả thẻ hoạt động như khóa tổng mở mọi phòng trong cơ sở lưu trú

Tình trạng khắc phục và chậm trễ triển khai

  • Carroll và Wouters đã chia sẻ toàn bộ chi tiết kỹ thuật của phương pháp hack với Dormakaba vào tháng 11/2022
  • Dormakaba cho biết từ đầu năm 2023, họ đã thông báo cho các khách sạn dùng Saflok về lỗ hổng bảo mật và đang hỗ trợ sửa hoặc thay thế các khóa dễ bị tấn công
  • Nhiều hệ thống Saflok được bán trong 8 năm gần đây không cần thay phần cứng của từng ổ khóa
    • Khách sạn cần cập nhật hoặc thay thế hệ thống quản lý quầy lễ tân
    • Kỹ thuật viên phải lập trình lại từng ổ khóa ở mỗi cửa, việc này tương đối nhanh
  • Nhóm nghiên cứu được Dormakaba cho biết rằng tính đến tháng 3/2024, chỉ 36% số Saflok đã lắp đặt được cập nhật
  • Vì khóa không kết nối Internet và một số khóa cũ cần nâng cấp phần cứng, việc triển khai khắc phục toàn bộ có thể mất thêm ít nhất vài tháng
    • Một số hệ thống cũ có thể mất vài năm
  • Dormakaba cho biết họ đã phối hợp chặt chẽ với các đối tác để triển khai các biện pháp giảm thiểu tức thời và giải pháp dài hạn, nhưng không công bố chi tiết về “biện pháp giảm thiểu tức thời”

Hạn chế công bố và cách khách lưu trú kiểm tra

  • Nhóm nghiên cứu cố ý không công bố một số chi tiết của cuộc tấn công
    • Họ chỉ tiết lộ rằng thẻ thứ nhất có thể khiến cửa mở mà không cần đoán định danh duy nhất của phòng mục tiêu
    • Họ giữ kín yếu tố đó để không cung cấp quy trình quá rõ ràng cho những kẻ có ý định đột nhập hoặc trộm cắp
  • Điều này tương phản với vụ hack thẻ khóa khách sạn Onity được công bố tại Black Hat năm 2012
    • Khi đó, thông tin được công bố chi tiết đến mức bất kỳ ai cũng có thể chế tạo thiết bị mở 10 triệu khóa Onity
    • Do Onity không chịu chi phí nâng cấp phần cứng mà chuyển trách nhiệm cho khách hàng, vấn đề vẫn tồn tại ở nhiều khách sạn và sau đó đã bị lợi dụng trong ít nhất một vụ trộm đường dài
  • Nhóm nghiên cứu cố gắng chọn một điểm cân bằng giữa việc hỗ trợ Dormakaba khắc phục và cảnh báo rủi ro cho khách lưu trú
  • Khách lưu trú nhìn chung có thể nhận biết khóa dễ bị ảnh hưởng
    • Hình dạng phổ biến là thiết kế đầu đọc RFID tròn với các đường lượn sóng chạy qua
    • Tuy nhiên, không phải lúc nào cũng có thể nhận diện chỉ dựa trên thiết kế này
  • Nếu cửa phòng có Saflok, có thể kiểm tra thẻ khóa bằng ứng dụng NFC Taginfo của NXP
  • Nếu khóa là sản phẩm Dormakaba và ứng dụng vẫn hiển thị thẻ khóa là MIFARE Classic, khả năng cao khóa vẫn còn dễ bị tấn công
  • Nếu bị ảnh hưởng, khách lưu trú có rất ít việc có thể làm
    • Nên không để đồ giá trị trong phòng
    • Khi ở trong phòng, nên cài xích cửa
    • Chốt chết của phòng cũng do khóa thẻ điều khiển, nên không phải là lớp bảo vệ riêng
  • Dormakaba cho biết họ không biết việc kỹ thuật của nhóm nghiên cứu từng bị sử dụng trong quá khứ, nhưng nhóm nghiên cứu cho rằng điều đó không loại trừ khả năng nó đã được dùng một cách âm thầm
  • Thương hiệu Saflok đã được bán hơn 30 năm, và nhóm nghiên cứu nhận định có khả năng lỗ hổng đã tồn tại trong thời gian dài

1 bình luận

 
GN⁺ 2024-03-23
Các ý kiến trên Hacker News
  • Tôi làm việc tại một công ty sản xuất hệ thống kiểm soát ra vào và truyền thông. Đầu đọc mà chúng tôi phát triển hỗ trợ nhiều chuẩn ID khác nhau, từ EM-Marin không mã hóa, Mifare Classic đã bị phá từ lâu, cho tới Desfire EVx hiện đại
    Theo thống kê, hơn 95% khách hàng vẫn tiếp tục dùng các định danh yếu nhất vì chi phí thấp và dễ vận hành
    Dù nhà sản xuất tiếp tục hỗ trợ, vẫn phải trả chi phí bảo trì nên phần lớn thiết bị đã lắp đặt không được quản lý đúng cách; không phải thiết bị nào cũng có thể cập nhật từ xa qua mạng, hoặc thậm chí có kết nối mạng ngay từ đầu
    Ngay cả khi thẻ được mã hóa, hầu hết đầu đọc thẻ kết nối với bộ điều khiển bằng giao thức Wiegand, giao thức này không cung cấp mã hóa dữ liệu nên ID định danh được truyền dạng văn bản thuần qua hai sợi dây

    • Đến một thời điểm nào đó, tôi nghĩ nhà sản xuất cũng phải chịu trách nhiệm vì đã chọn tiếp tục hỗ trợ các chuẩn vốn đã được biết là dễ bị tấn công
      Có bao nhiêu trình duyệt còn hỗ trợ bộ mã hóa TLS_NULL_WITH_NULL_NULL?
    • Tôi làm trong lĩnh vực tương tự, và khá nhiều khách hàng vẫn dùng các thẻ Wiegand tần số thấp đời cũ, dễ bị tấn công phát lại đến mức Flipper Zero có thể tự động hóa
    • Có một điều về công nghệ thẻ khóa khách sạn mà tôi đã thắc mắc từ lâu. Mỗi khi ở khách sạn dùng thẻ khóa không tiếp xúc, trong một nhóm thường dùng 3–5 phòng trong 2–3 đêm, gần như luôn có ít nhất một người phải xin cấp lại thẻ khóa
      Vì sao lại như vậy? Thẻ thông minh ở nơi làm việc hay thẻ ngân hàng không tiếp xúc thì vẫn hoạt động tốt suốt nhiều năm
    • Điều này cũng giống như việc hầu như mọi ổ khóa vật lý đều có thể bị mở khá dễ dàng. Dù vậy, chẳng ai mua khóa cửa văn phòng dựa trên tiêu chí khả năng chống cạy khóa
      Vì kẻ trộm dù sao cũng sẽ phá cửa để vào
    • Đúng là với thẻ đã mã hóa, nếu đoạn giữa đầu đọc và bộ điều khiển là Wiegand thì định danh vẫn đi qua ở dạng văn bản thuần. Có vẻ quay lại dùng chìa khóa và ổ khóa còn tốt hơn
  • Tòa nhà tôi thuê nhà dùng khóa cửa Scantron(https://scantron.dk/), mở khóa bằng chìa RFID. Năm ngoái, do mã hóa yếu của MiFare Classic, người ta phát hiện cách tạo khóa tổng từ bất kỳ chìa nào
    Phải cần rất nhiều email và cuộc gọi với phóng viên thì chủ nhà mới hiểu vấn đề, và tôi nghĩ Scantron cũng đã nói giảm nhẹ vấn đề với chủ nhà
    Cuối cùng họ nhượng bộ, nâng cấp toàn bộ khóa cửa lên phương thức mã hóa tốt hơn và cấp lại chìa
    Tòa nhà của chúng tôi có 197 căn, mỗi căn có ít nhất 2 chìa, nên để nhà tôi không bị trộm thì tôi phải tin tưởng tất cả người thuê cùng những người quen của họ. Nếu thực sự bị trộm, khả năng cao là không có dấu vết đột nhập, nên bảo hiểm có thể không chi trả

    • Tôi đã sống thuê nhà cả đời, và việc đầu tiên tôi luôn làm là thay toàn bộ ổ khóa. Tôi có vài ổ khóa xi-lanh bảo mật cao với kích cỡ khác nhau; không xi-lanh nào là tuyệt đối không thể cạy, nhưng tôi khá hài lòng với ổ của mình
    • Bạn có thể chia sẻ các email đó không? Tôi cũng sống trong một khu căn hộ như vậy và biết khóa ở đó gần như đồ chơi, nhưng không nghĩ là có thể thuyết phục được công ty quản lý
    • Căn hộ tôi từng thuê trước đây cũng tương tự. Đáng tiếc là họ không chịu sửa, nên tôi tháo pin khóa cửa và chỉ dùng chìa vật lý
      Lần cuối tôi kiểm tra, thẻ ra vào đã sao chép của tôi vẫn còn hoạt động ở đó
  • Tôi đã thực hiện nghiên cứu này cùng một số người khác, nên nếu có câu hỏi thì tôi có thể trả lời. Nội dung đã công khai cũng có tại https://unsaflok.com

    • Khi nào các bạn dự định công bố chi tiết kỹ thuật của cuộc tấn công? Xét đến vòng đời thay thế dài của khóa cửa, chắc sẽ có nhiều khóa không được thay trong hơn 10 năm
    • Saflok đã phản ứng thế nào? Tôi tò mò họ có hợp tác không, hay đe dọa và cố ngăn việc công bố thông tin
    • Tôi tò mò đây là nghiên cứu bắt đầu với mục tiêu tìm lỗ hổng, hay là tình cờ phát hiện ra
      Nếu muốn tìm lỗ hổng thì bắt đầu từ đâu? Trong dạng công việc này, điểm khởi đầu tương đương với “mở IDE và viết print("hello world")” là gì?
    • Đoạn này làm tôi chú ý: “Thông tin này chỉ áp dụng cho hệ thống dormakaba Saflok; nhiều nhà sản xuất khóa khác dùng thẻ khóa MIFARE Classic không bị ảnh hưởng bởi lỗ hổng Unsaflok”
      Vậy có vẻ rất có thể vấn đề nằm ở cách Saflok triển khai MIFARE Classic. Tôi sẽ phải đọc thêm về giao thức này
    • Nếu ở một khách sạn có loại khóa như vậy, làm sao biết mình có bị ảnh hưởng không? Nếu khách sạn chưa vá, liệu tôi có thể tự vá riêng cửa phòng mình mà không gây vấn đề cho khách sạn không?
  • “Nếu kẻ tấn công đọc được bất kỳ một thẻ khóa nào trong tòa nhà, họ có thể tấn công mọi cửa trong tòa nhà đó” là một lỗ hổng khá nghiêm trọng. Về cơ bản, chỉ cần là khách lưu trú của khách sạn là đủ

    • Nhiều khách sạn cũng không yêu cầu trả lại thẻ khóa khi checkout, nên thẻ cứ bị vứt vào thùng rác. Người có ý đồ xấu chỉ cần nhặt một thẻ từ thùng rác, thậm chí không cần là khách của khách sạn
  • Các nhà nghiên cứu đã chia sẻ toàn bộ chi tiết kỹ thuật của phương pháp hack với Dormakaba vào tháng 11/2022, và Dormakaba nói rằng tính đến tháng này chỉ 36% số Saflok đã lắp đặt được cập nhật. Vậy có phải Dormakaba đã không coi việc này là ưu tiên tối thượng để dồn toàn lực xử lý?
    Hay là hai phần ba các nơi lắp đặt đã được cung cấp bản sửa miễn phí kịp thời nhưng vì lý do nào đó lại trì hoãn?
    Trong câu chữ PR “tất cả khách hàng và đối tác của chúng tôi đều coi bảo mật là vấn đề rất nghiêm túc, và chúng tôi tin rằng mọi biện pháp hợp lý sẽ được thực hiện để xử lý vấn đề này một cách có trách nhiệm”, từ “hợp lý” nghe đáng ngờ
    Theo Wikipedia, dormakaba Holding AG là một tập đoàn bảo mật toàn cầu có trụ sở tại Rümlang, Thụy Sĩ, và tuyển dụng hơn 15.000 người tại hơn 50 quốc gia
    Nếu họ có ý chí giải quyết trước khi điều gì đó có khả năng rất tệ xảy ra với khách lưu trú khách sạn, thì có vẻ họ có đủ nguồn lực
    Công ty được niêm yết trên SIX Swiss Exchange
    https://www.google.com/finance/quote/DOKA:SWX?comparison=INDEXSP%3A.INX&window=5Y
    https://www.google.com/finance/quote/DOKA:SWX?comparison=INDEXSP%3A.INX&window=1Y

    • Khóa cửa khách sạn và khóa két trong khách sạn vốn thường đã đáng ngờ về bảo mật
  • https://archive.is/a7ntC

  • Nói hơi dội gáo nước lạnh, nhưng phần lớn cửa đã khóa có thể được mở “trong vài giây” bằng nhiều cách. Nói chung, trạng thái khóa giống một tín hiệu cấm vào hơn là một biện pháp cưỡng chế thực chất

    • Hồi trung học, có thể mở bất kỳ cánh cửa khóa nào bằng cách luồn thẻ học sinh vào khe giữa cửa và khung cửa để gạt chốt. 40 năm trôi qua, có lẽ lỗ hổng này vẫn còn
    • Đặc biệt trong khách sạn, cửa khóa không được thiết kế để chặn mọi người mãi mãi. Từ việc nhân viên dọn phòng cần vào cho đến tình huống cấp cứu y tế, có hàng chục lý do khiến thiết kế như vậy trở nên khủng khiếp
      Mục tiêu là làm cho việc truy cập trái phép đủ phiền phức hoặc ồn ào để ai đó nhận ra và báo cho quản lý
    • Dù vậy, một số cách trong đó gây ồn, cần thiết bị hoặc kỹ năng đặc biệt, và để lại dấu vết rõ ràng rằng đã có xâm nhập
    • Phần lớn cửa đã khóa có thể bị vượt qua bằng những cách khác còn nhanh hơn mở khóa. Ví dụ như ném đá vào cửa sổ
  • Có vẻ tôi đã hiểu sai cách thẻ khóa khách sạn hoạt động. Tôi luôn nghĩ trong thẻ có một UUID ngẫu nhiên, và khi check-in thì một thẻ bất kỳ được liên kết với phòng của tôi rồi đưa cho tôi
    Tôi tưởng khi cố mở cửa, ID của thẻ sẽ được so với cơ sở dữ liệu phòng để quyết định có mở hay không
    Không phải vậy sao? Cách đó có vẻ đơn giản hơn so với mã hóa hay thực sự ghi thứ gì đó lên thẻ

    • Máy phát hành thẻ ở quầy lễ tân ghi một thông điệp lên thẻ. Nội dung kiểu như “khóa phòng 301 này, thẻ này có thể mở mày từ thời điểm X, và tất cả thẻ trước thời điểm X giờ đều vô hiệu”
      Phần lớn khóa điện tử đời cũ chạy bằng pin 9V và không được nối dây tới máy chủ trung tâm
    • Vì khóa không có kết nối mạng nên không có cách nào kiểm tra. Quyền truy cập phải được quản lý bằng hết hạn khóa và thay thế khóa
      Cũng có các hệ thống kết nối mạng, nhưng chi phí lắp đặt có thể đắt hơn nhiều
    • Tình huống mạng bị đứt hoặc cơ sở dữ liệu hỏng khiến cửa không hoạt động trông không đơn giản hơn, cũng không tốt hơn
    • UUID có thể bị sao chép bằng thẻ bị chỉnh sửa. Vì không cần Key A/B để đọc nội dung, tấn công sao chép thậm chí có thể dễ hơn
    • Không rõ có thể phản hồi thử thách khóa công khai mà không có điện hay không
  • Có vẻ chỉ còn là vấn đề thời gian trước khi ai đó tạo script Flipper Zero để thực hiện việc này

    • Điều quan trọng hơn là các lỗ hổng RFID bây giờ mới bắt đầu được công chúng chú ý. RFID thuộc nhóm giao thức liên lạc kém an toàn nhất có thể dùng cho khóa, và tối thiểu NFC nên là tiêu chuẩn
      Người có ý định và kiến thức để bẻ khóa đầu đọc RFID có thể chế tạo những công cụ phần cứng như vậy. Flipper Zero có cung cấp loại công cụ đó không? Có
      Trách nhiệm hành xử có đạo đức có thuộc về người dùng không? Có thể tranh luận, nhưng cá nhân tôi thì cho rằng rõ ràng là có
      Nếu ai đó mang theo một bộ dụng cụ mở khóa và học cách dùng thì cũng có thể được chấp nhận chứ? Chúng ta chấp nhận sự thật rằng có những người có thể mở khóa, và 80% các bang ở Mỹ cho phép sở hữu cũng như sử dụng hợp pháp dụng cụ mở khóa
  • Khi đi du lịch tôi mang theo chặn cửa. Phần lớn khóa cửa khách sạn tôi thấy đều được thiết kế để có thể mở từ bên ngoài
    Chặn cửa cố định cánh cửa như một cái nêm, giúp cửa chịu lực ở trạng thái đóng. Dùng nó khiến tôi ngủ ngon hơn vào ban đêm

    • Theo bản năng tôi cũng muốn làm vậy, nhưng tùy khu vực pháp lý nơi bạn đi du lịch, nếu nhân viên cố mở cửa rồi quyết định cưỡng chế vào vì bạn đang tắm hoặc đang ngủ sau khi uống Ambien, bạn có thể phải chịu trách nhiệm về thiệt hại đó