2 điểm bởi GN⁺ 2023-09-19 | 1 bình luận | Chia sẻ qua WhatsApp
  • Trước khi các quy định kiểm soát xuất khẩu mật mã của Mỹ bị bãi bỏ, phiên bản Lotus Notes xuất khẩu có chứa một cấu trúc ký quỹ khóa/backdoor gọi là differential cryptography
  • Cách này mã hóa 24 bit trong phần mã hóa 64 bit bằng khóa công khai của NSA để được cấp phép xuất khẩu; NSA chỉ cần vét cạn 40 bit còn lại là có thể truy cập bản rõ
  • Trong quá trình reverse engineering, định danh khóa công khai của NSA bên trong ứng dụng hiện ra là O=MiniTruth CN=Big Brother, cho thấy cách đặt tên theo phong cách Orwell có chủ ý
  • Dữ liệu khóa công khai được dựng lại từ ghi chú sau đó vài năm nên có khả năng có lỗi; modulus có vẻ là little endian, còn trong biểu diễn big endian thì e = 3, dài 760 bit
  • ID người dùng Director, NSA <dirnsa@nsa.gov> ở dạng khóa PGP là tự tạo và không phải khóa tự ký (self-signed)

Cấu trúc backdoor trong phiên bản Lotus Notes xuất khẩu

  • Trước khi các quy định kiểm soát xuất khẩu mật mã của Mỹ bị bãi bỏ, phiên bản Lotus Notes xuất khẩu có chứa differential cryptography, một chức năng ký quỹ khóa/backdoor
  • Ý tưởng cốt lõi là mã hóa 24 bit trong khóa 64 bit bằng khóa công khai của NSA để được cấp phép xuất khẩu
    • NSA chỉ cần vét cạn 40 bit còn lại là có thể lấy được bản rõ
    • Người dùng thông thường phải đối mặt với không gian khóa 64 bit, nhưng ngay cả vào thời điểm đó vẫn có khả năng NSA có thể bỏ chi phí cao hơn để vét cạn
  • Reverse engineering được thực hiện với nhận định rằng đâu đó bên trong ứng dụng sẽ có khóa công khai NSA tương ứng với khóa riêng của NSA

Định danh khóa và dữ liệu khóa công khai được phát hiện

  • Trong trình gỡ lỗi, tên tổ chức và tên chung của khóa công khai NSA xuất hiện như sau
    • O=MiniTruth CN=Big Brother
  • MiniTruthBig Brother liên hệ đến các thuật ngữ trong tiểu thuyết 1984 của George Orwell
    • Ministry of Truth là cơ quan phụ trách tuyên truyền và đàn áp sự thật trong sách
    • Big Brother xuất hiện là lãnh đạo độc ác của chính quyền đó
  • Dữ liệu khóa công khai được tổng hợp dựa trên ghi chú vài năm sau quá trình reverse engineering, nên có khả năng có lỗi
  • Modulus raw public key là giá trị lấy được từ trình gỡ lỗi, và sau khi thử sai được xác định có vẻ ở định dạng little endian
    • Trong biểu diễn big endian, e = 3
    • Modulus dài 760 bit
  • Khóa công khai cũng được trình bày ở dạng khóa PGP
    • pub 760/13629D8D 1998/10/25 Director, NSA <dirnsa@nsa.gov>
    • ID người dùng này là tự tạo và không phải khóa tự ký
  • Kết quả pgpacket xác nhận đây là gói khóa công khai RSA
    • Version Byte: 3
    • Key Created: 25 Oct 1998 01:12:02
    • Algorithm: 1 (RSA)
    • Key ID: 0xA703EFD313629D8D

1 bình luận

 
GN⁺ 2023-09-19
Ý kiến trên Hacker News
  • Về chủ đề này, đáng đọc bình luận của Ray Ozzie (người tạo ra Lotus Notes) trong một cuộc thảo luận HN năm 2013
    https://news.ycombinator.com/item?id=5846189
    Trước khi phần mềm được phát hành, Ray Ozzie và Kauffman đã công khai giải thích tại hội nghị RSA về việc họ đang làm. Đó không phải là backdoor bí mật, mà là tuân thủ kiểm soát xuất khẩu mà cả ngành khi đó đều phải đối phó. Bình luận của barrkel ở vài bình luận bên dưới cũng đáng đọc

    • Với những người dưới khoảng 37 tuổi, tôi muốn nhắc rằng trước năm 2000, công nghệ mật mã, đặc biệt là công nghệ mật mã trong các sản phẩm thương mại được phát hành, chịu quy định của chính phủ rất khác so với hiện nay
      https://en.m.wikipedia.org/wiki/Crypto_Wars
      Nói ngắn gọn, chính phủ Mỹ trên thực tế cấm phát hành sản phẩm phân phối quốc tế có mã hóa mạnh. Hầu như mọi sản phẩm thương mại đều thuộc diện này, dù khi đó đã có các triển khai mã nguồn mở của mã hóa mạnh như PGP. Ngày nay bạn có thể đưa mã hóa an toàn đến mức nào tùy muốn vào sản phẩm rồi phân phối mà chẳng ai bận tâm, nhưng khi đó là thời kỳ xác suất bị chính phủ Mỹ tung toàn bộ công cụ pháp lý vào người gần như năm ăn năm thua. Đó thật sự là một giai đoạn cực kỳ điên rồ và mâu thuẫn
    • Có một video của cựu lập trình viên Microsoft phân tích rất hay về NSAkey
      https://www.youtube.com/watch?v=vjkBAl84PJs
    • Đó là một thời kỳ thú vị. Tôi từng nói chuyện ngắn với người đã triển khai crc32 và thuật toán mã hóa của ZIP, không còn nhớ tên ông ấy, và ông ấy nói gần như với vẻ xin lỗi rằng phần mã hóa đó được thiết kế để có thể xuất khẩu theo luật thời đó
      Việc bẻ khóa nó vẫn không hoàn toàn tầm thường, nhưng trong khoảng thời gian thử một mật khẩu trên tài liệu Office hiện đại, bạn có thể thử hàng triệu mật khẩu với các mục trong archive ZIP
    • Dù có bí mật hay không, đó vẫn là một backdoor có thể bị lạm dụng và thực tế đã bị lạm dụng. Thật là thời đại kỳ lạ khi ngày nay các chính phủ đòi các công ty công nghệ cung cấp “backdoor bí mật” mà vẫn không thấy rủi ro khổng lồ
    • Chuyện này hoàn toàn không bí mật. Tôi làm ở Lotus vào giữa thập niên 90, và Lotus Notes có hai phiên bản: một cho Mỹ và một được gắn nhãn “International”
  • (2002)
    Các cuộc thảo luận trước đây có Lotus Notes trong tiêu đề:
    4 năm trước
    https://news.ycombinator.com/item?id=21859581
    8 năm trước
    https://news.ycombinator.com/item?id=9291404
    10 năm trước
    https://news.ycombinator.com/item?id=5846189

  • NOBUS ngày xưa “tốt đẹp”. Một vài sai lầm thú vị hơn của NSA:
    https://en.wikipedia.org/wiki/Clipper_chip
    https://en.wikipedia.org/wiki/Dual_EC_DRBG

    • Cái này và Clipper Chip không phải là NOBUS. NSA không muốn mọi người biết rằng các hệ thống mật mã có chức năng cho phép cơ quan thực thi pháp luật truy cập
      FBI thì không quá bận tâm nếu mọi người biết, vì những tội phạm mà họ nhắm tới thường không làm tốt an ninh tác nghiệp (OPSEC)
  • Thật đáng ngạc nhiên là người của NSA có đủ tự nhận thức để nhận ra đây là hành vi kiểu Big Brother, nhưng lại không nhận ra vì sao điều đó là xấu

    • Có lẽ đó là sự mỉa mai của kỹ sư Lotus đã cài nó vào
    • Bản thân ‘Big Brother’ không gây sốc. Đó là điều đã được biết một thời gian, nên vẫn còn có thể tin một chút rằng biết đâu họ có ý định tốt. Kiểu như bảo vệ chúng ta khỏi kẻ xấu
      Nhưng MiniTruth thì… chà, thật sự đáng kinh ngạc
      Trong bối cảnh tiểu thuyết 1984, Ministry of Truth là cơ quan chuyên trách tuyên truyền, và toàn xã hội chìm trong tuyên truyền đó. Mọi thứ trong xã hội nơi họ sống đều là dối trá. Điều này thổi bay chút hy vọng cuối cùng rằng họ có thể có ý định tốt. Lần gần nhất tôi nhớ đến một ví dụ cho thấy họ khinh miệt một cách yếm thế những người mà họ tuyên bố phục vụ đến mức nào, và họ cẩu thả ra sao, là khi lộ ra rằng tên phòng chat nội bộ của FTX là ‘Wirefraud’
  • Chẳng phải ban đầu backdoor nằm trong mã ví dụ mà NSA cung cấp cho các công ty muốn dùng công nghệ mật mã sao? Tôi nhớ mang máng là họ đưa ra thứ gì đó như seed mẫu, rồi hầu hết các công ty chỉ copy/paste thay vì tự tạo số nguyên tố của mình, khiến NSA bẻ rất dễ
    Ký ức hơi mờ và khó tìm nguồn gốc

  • Tôi tò mò không biết việc tìm khóa riêng bằng brute force từ khóa công khai RSA 760 bit năm 1998 sẽ khó đến mức nào. Có ai biết không?

    • https://en.wikipedia.org/wiki/Integer_factorization_recordshttps://en.wikipedia.org/wiki/RSA_numbers cho một số manh mối. Đặc biệt, trang sau giải thích rằng khóa 768 bit đã được phân tích thừa số “vào ngày 12 tháng 12 năm 2009, trong vòng 2 năm”, và thời gian CPU “xấp xỉ tương đương với gần 2000 năm tính toán trên một máy tính dùng một lõi AMD Opteron 2,2GHz”
      Sau đó, vào năm 2019, một khóa 795 bit đã được phân tích thừa số, và thời gian CPU được cho là “khoảng 900 core-year trên CPU Intel Xeon Gold 6130 2,1GHz”. So với việc phân tích thừa số RSA-768, các tác giả ước tính thuật toán tốt hơn đã tăng tốc phép tính 3–4 lần, còn máy tính nhanh hơn tăng tốc 1,25–1,67 lần
      Vì vậy, nếu giả định các thuật toán cải tiến cũng áp dụng được cho những số nhỏ hơn, thì có vẻ một người biết cách xử lý việc này có thể làm được trong vài tháng với vài chục máy hiện đại. Dù vậy, phân tích thừa số các số lớn có vẻ khó hơn rất nhiều so với chỉ chạy CADO-NFS rồi trỏ nó vào một con số và một cụm máy
      Ví dụ, nếu dùng giá trị đi kèm bài báo phân tích thừa số thứ hai rằng “phép tính 795 bit lẽ ra khó hơn phép tính 768 bit 2,25 lần”, thì có thể xem việc phá khóa nhỏ hơn bằng phần mềm hiện đại cần 900/2,25 = 400 core-year CPU chuẩn Xeon. CPU này giờ cũng đã là mẫu 6 năm tuổi. Với 24 máy chủ 64 lõi có hiệu năng tương đương, sẽ mất hơn 3 tháng một chút. Việc này khá nặng nếu chỉ làm cho vui như sở thích, nhưng một công ty có lợi ích tài chính vừa đủ thì hoàn toàn có thể làm được, với điều kiện có nhân sự hiểu và tái hiện được quy trình này
    • Đã có người thử phân tích thừa số vào năm 2018: http://factordb.com/index.php?query=444376527415060195687748...
    • Luôn phụ thuộc vào tài nguyên bạn có, tức là tài nguyên tính toán và thời gian. Có thể làm được, nhưng không dễ
      https://crypto.stackexchange.com/a/1982
    • Câu hỏi cụ thể đến kỳ lạ nhỉ. Có điều gì đặc biệt khiến bạn bận tâm à?
  • Giờ đã có đám mây nên tất cả những thứ này không còn cần thiết nữa. Do luật về dữ liệu lưu trữ, mọi email đã quá 6 tháng đều là đối tượng có thể bị tùy ý động tới

    • Tôi đã tìm thử, nhưng không thấy kết quả rõ ràng nào về việc luật nào buộc các công ty như Google phải cung cấp quyền truy cập dữ liệu lưu trữ cho cơ quan chính phủ mà không cần lệnh tòa hay NSL
  • Liên quan: https://github.com/goshacmd/nsa_panel