it-swarm-vi.com

Làm thế nào khó để chặn SMS (xác thực hai yếu tố)?

Rất nhiều cơ chế xác thực hai yếu tố sử dụng SMS để cung cấp cụm mật khẩu sử dụng một lần cho người dùng. Vậy nó an toàn đến mức nào? Có khó để chặn SMS = tin nhắn có chứa cụm mật khẩu? Mạng di động có sử dụng bất kỳ loại mã hóa nào trên SMS không?

Tôi tìm thấy một bài viết thú vị liên quan đến xác thực hai yếu tố và những cách nó có thể bị tấn công:

http://www.schneier.com/blog/archives/2012/02/the_failure_of_2.html

121
Paul Podlipensky

GSM bao gồm một số bảo vệ thông qua mật mã. Điện thoại di động và nhà cung cấp (tức là trạm cơ sở là một phần của mạng của nhà cung cấp) xác thực lẫn nhau tương đối bí mật chung, được nhà cung cấp biết và được lưu trong thẻ SIM của người dùng. Một số thuật toán được biết dưới tên mã "A3" và "A8" có liên quan đến xác thực. Sau đó, dữ liệu (như được gửi qua liên kết vô tuyến) được mã hóa bằng thuật toán có tên "A5" và khóa có nguồn gốc từ A3/A8 và bí mật được chia sẻ.

Có một số thuật toán thực tế ẩn dưới tên "A5". Thuật toán nào được sử dụng phụ thuộc vào nhà cung cấp, đến lượt mình, người bị ràng buộc bởi các quy định của địa phương và những gì nó có thể cấp phép từ tập đoàn GSM. Ngoài ra, kẻ tấn công đang hoạt động (với trạm gốc giả) có khả năng buộc điện thoại di động sử dụng một biến thể khác, khác với những gì nó sẽ sử dụng khác và không có nhiều điện thoại cảnh báo người dùng về nó (và thậm chí ít người dùng hơn ai sẽ quan tâm đến nó).

  • A5/0 có nghĩa là "không mã hóa". Dữ liệu được gửi không được mã hóa. Ở một số quốc gia, đây là chế độ được phép duy nhất (tôi nghĩ Ấn Độ là một quốc gia như vậy).
  • A5/1 là thuật toán "mạnh" cũ, được sử dụng ở Châu Âu và Bắc Mỹ.
  • A5/2 là thuật toán "yếu" cũ, thường có nghĩa là "những quốc gia là bạn tốt nhưng dù sao chúng tôi không hoàn toàn tin tưởng" không được đánh vần theo cách đó trong thông số kỹ thuật của GSM, nhưng đó là ý tưởng).
  • A5/3 là thuật toán mới hơn cho GPRS/UMTS.

A5/3 là một mật mã khối còn được gọi là KASUMI . Nó cung cấp bảo mật tốt. Nó có một vài khuyết điểm sẽ khiến nó "bị phá vỡ về mặt học thuật", nhưng không có gì thực sự có thể áp dụng trong thực tế.

A5/2 thực sự yếu, như được mô tả trong báo cáo này . Cuộc tấn công đòi hỏi một phần của giây, tùy thuộc vào tiền mã hóa, mất ít hơn một giờ trên PC và cần một vài gigabyte dung lượng lưu trữ (không nhiều). Có các chi tiết kỹ thuật, chủ yếu là do bản thân giao thức GSM rất phức tạp, nhưng người ta có thể cho rằng lớp A5/2 có thể bị phá vỡ.

A5/1 mạnh hơn, nhưng không mạnh lắm. Nó sử dụng khóa 64 bit, nhưng cấu trúc thuật toán yếu hơn và cho phép tấn công với độ phức tạp khoảng 242,7 hoạt động cơ bản (xem bài viết này mà tôi đã viết 12 năm trước). Đã có một số ấn phẩm xoay quanh sự phức tạp này, chủ yếu bằng cách thực hiện các tính toán trước và chờ trạng thái bên trong thuật toán đạt đến một cấu trúc cụ thể; mặc dù các ấn phẩm như vậy quảng cáo các số liệu phức tạp thấp hơn một chút (khoảng 240), chúng có những nhược điểm khiến chúng khó áp dụng, chẳng hạn như yêu cầu hàng ngàn bit plaintext đã biết. Chỉ với 64 bit plaintext đã biết, độ phức tạp thô là 242,7. Tôi đã không cố gắng thực hiện nó trong một thập kỷ, vì vậy có thể hình dung rằng một PC hiện đại sẽ chạy nó nhanh hơn máy trạm tôi đang sử dụng vào thời điểm đó; như một ước tính sơ bộ, một PC lõi tứ với mã được tối ưu hóa triệt để sẽ có thể bẻ khóa nó trong một giờ.

Kích thước của trạng thái bên trong của A5/1 và cách A5/1 được áp dụng để mã hóa dữ liệu, cũng khiến nó dễ bị đánh đổi trong bộ nhớ thời gian, chẳng hạn như bảng Rainbow . Một lần nữa, xem bài viết Barkan-Biham-Keller. Điều này giả định rằng kẻ tấn công đã chạy một lần một tính toán thực sự lớn và lưu trữ terabyte dữ liệu; Sau đó, giai đoạn trực tuyến của cuộc tấn công có thể khá nhanh. Chi tiết khá nhiều, tùy thuộc vào dung lượng lưu trữ của bạn, dung lượng CPU có sẵn cho giai đoạn trực tuyến và thời gian bạn sẵn sàng chờ đợi kết quả. Giai đoạn tính toán ban đầu là rất lớn nhưng có thể thực hiện được về mặt công nghệ (một nghìn PC phải là đủ); đã có một phân phối mở dự án cho điều đó nhưng tôi không biết họ đã đi bao xa.

SMS chặn vẫn là một trường hợp cụ thể. Nó không phải là một cuộc trò chuyện bằng giọng nói đầy đủ; lượng dữ liệu trao đổi thực tế là nhỏ và kết nối kết thúc sau một thời gian khá ngắn. Điều này có thể hạn chế khả năng áp dụng của các cuộc tấn công được nêu ở trên. Hơn nữa, cuộc tấn công phải nhanh: điểm tấn công là lấy mật khẩu bí mật được gửi dưới dạng SMS, để kẻ tấn công có thể sử dụng nó trước người dùng bình thường. Kẻ tấn công phải nhanh chóng:

  • Máy chủ thường áp dụng thời gian chờ ngắn trên mật khẩu đó, chẳng hạn như vài phút. SMS truyền được cho là một vài giây.
  • Người dùng không kiên nhẫn (người dùng không bao giờ được). Nếu anh ta không nhận được SMS trong vòng năm phút, anh ta có thể sẽ yêu cầu một cái mới và hệ thống xác thực hai yếu tố được suy nghĩ kỹ trên máy chủ sẽ vô hiệu hóa mật khẩu một lần trước đó .

Kẻ tấn công sẽ dễ dàng hơn nếu anh ta đã phá vỡ yếu tố xác thực đầu tiên (đó là lý do tại sao chúng tôi sử dụng xác thực hai yếu tố: vì một yếu tố là không đủ). Trong trường hợp đó, kẻ tấn công có thể bắt đầu yêu cầu xác thực trong khi người dùng mục tiêu hoàn toàn không biết về nó và do đó không thể đưa ra bất kỳ báo động nào nếu anh ta không nhận được SMS, hoặc, đôi khi, nếu anh ta nhận được SMS (kẻ tấn công có thể thực hiện cuộc tấn công vào đêm khuya; người dùng bị tấn công sẽ tìm thấy người không chính đáng SMS chỉ vào buổi sáng, khi anh ta thức dậy, dành vài giờ cho kẻ tấn công để ban hành những trò tinh quái của mình).

Mã hóa GSM chỉ dành cho liên kết vô tuyến. Trong tất cả những điều trên, chúng tôi tập trung vào một kẻ tấn công nghe lén dữ liệu được gửi giữa điện thoại di động và trạm cơ sở. Các thiết bị vô tuyến cần thiết dường như đã có sẵn ngoài giá , và có thể dễ dàng hình dung rằng kịch bản này có thể áp dụng trong thực tế. Tuy nhiên, SMS không chỉ di chuyển từ trạm gốc đến điện thoại di động. Hành trình hoàn chỉnh của nó bắt đầu tại các cơ sở máy chủ, sau đó đi qua Internet và sau đó là mạng của nhà cung cấp, cho đến khi đến được trạm gốc - và chỉ tại thời điểm đó, nó mới được mã hóa với bất kỳ biến thể A5 nào được sử dụng.

Dữ liệu được bảo mật như thế nào trong mạng của nhà cung cấp và giữa nhà cung cấp và máy chủ muốn SMS được gửi, nằm ngoài phạm vi của đặc tả GSM. Dù sao đi nữa, nếu kẻ tấn công nhà cung cấp, bạn thua. Các cơ quan thực thi pháp luật, khi họ muốn nghe lén mọi người, thường làm như vậy bằng cách yêu cầu độc đáo với các nhà cung cấp, những người luôn tuân thủ. Đây là lý do tại sao các băng đảng ma túy, đặc biệt là ở Mexico và Colombia, có xu hướng xây dựng mạng di động của chính chúng .

104
Thomas Pornin

Mạng GSM được mã hóa . Nhưng điều đó không làm cho nó chống đạn tất nhiên. Nó có thể bị xâm phạm. Tuy nhiên, các cuộc tấn công mà Rook (và sau đó chi tiết hơn nhiều về Thomas Pornin) được mô tả là rất cục bộ và đòi hỏi nỗ lực đáng kể để thực hiện. Chúng không phải là không thể, nhưng rất khó. Nó yêu cầu phá vỡ mạng GSM ở gần điện thoại di động cùng lúc SMS được gửi. Cũng có khả năng ai đó ở nhà điều hành mạng chặn SMS. Nếu chúng ta đang nói chuyện về các kịch bản an ninh quốc gia/gián điệp, trong đó một người cụ thể được nhắm mục tiêu và những kẻ tấn công có phương tiện và rất nhiều tiền để chi tiêu, thì điều đó hoàn toàn có thể xảy ra. Mặc dù vậy, khá giống với việc nhận các giá trị hạt giống từ nhà cung cấp mã thông báo phần cứng của bạn .

Ngay cả khi cuộc tấn công SMS này thành công, nó cũng có thể yêu cầu lấy tên người dùng và mật khẩu (giả sử SMS không phải là phương thức xác thực duy nhất, mà là lần thứ 2 thành phần). Có những lựa chọn thay thế khác, trong đó người dùng khởi tạo tin nhắn SMS đến máy chủ và máy chủ có thể kiểm tra xem nó có khớp với thách thức/mã thông báo được yêu cầu không. Tất nhiên điều này cũng có những hạn chế của nó, nhưng nếu được thực hiện đúng có thể cung cấp sự bảo vệ hơn một chút về mặt lý thuyết.

Nếu, như trong hầu hết các trường hợp, ý tưởng là cải thiện bảo mật bằng cách cung cấp xác thực 2 yếu tố, sau đó thêm SMS vào hỗn hợp cải thiện đáng kể so với tên người dùng/mật khẩu tiêu chuẩn. Thực tế là bạn đang sử dụng hai kênh liên lạc riêng biệt (TCP/IP và GSM) làm cho nó an toàn hơn. Theo ước tính cá nhân rất thô sơ, tôi sẽ nói SMS mã thông báo ít nhiều ngang bằng với mã thông báo dựa trên phần cứng, bảo mật khôn ngoan. Tất nhiên thần (hay ma quỷ) là chi tiết.

14
Yoav Aner

Trong khi các cuộc thảo luận về mã hóa là thú vị, tôi nghĩ câu hỏi chính là: các nhà mạng có quan tâm đến bảo mật không? Tôi sợ câu trả lời là "không". Khuyến khích họ chi tiền để bảo vệ hệ thống SMS của họ là gì? Họ thậm chí có quản lý chúng hay không? Có đảm bảo an ninh nào cho họ không? Bạn tin tưởng bao nhiêu vào những người quản lý may chủ ?

Hơn nữa, điều này về điều này: Nếu bạn có 100 triệu khách hàng và bạn gặp khó khăn hơn một chút để đặt lại mật khẩu, các cuộc gọi trợ giúp của bạn sẽ đi qua mái nhà. Đây là lý do tại sao có thể dễ dàng chiếm đoạt tài khoản của ai đó.

Ngoài ra, giống như bạn thấy với khung Chứng chỉ Chứng chỉ, cơ sở hạ tầng SMS sẽ là mục tiêu để tấn công.

Gần đây tôi đã viết một bài đăng trên blog về việc tóm tắt các điểm này bằng các liên kết: http://www.wikidsystems.com/WiKIDBlog/fraudsters-defeat-poor-risk-man Quản lý-not-tw-factor-authentication . Từ quan điểm quản lý rủi ro, SMS auth tốt hơn mật khẩu, nhưng đừng tin vào nó lâu. Các cuộc tấn công hiện tại nhắm vào các tổ chức tài chính, nhưng khi chi phí tấn công giảm, sẽ có hơn.

9
nowen

Một hệ thống bảo mật đa yếu tố là vô giá trị nếu dịch vụ có các lỗ hổng phổ biến như XSS, SQL Injection hoặc bảo vệ lớp vận chuyển không đủ . Những sai sót này có thể dẫn đến một tài khoản hoặc thỏa hiệp thông tin bất kể hệ thống xác thực bạn sử dụng.

Điều đó được nói rằng nếu bạn gần gũi với nạn nhân, bạn có thể thực hiện các cuộc tấn công rất khó chịu. Chẳng hạn, nếu nạn nhân của bạn đang sử dụng nhà cung cấp dịch vụ GSM thì kẻ tấn công có thể phá GSM bằng cầu vồng và chặn tin nhắn SMS. Nếu bạn điều khiển mạng của nạn nhân thì bạn có thể sử dụng một công cụ như SSLStrip hoặc SSLSniff để tấn công cổng đăng nhập HTTP.

"Nhớ tôi" là ác . Một số triển khai SMS xác thực yếu tố đột biến (Giống như của Google) cho phép bạn ban phước cho một thiết bị trong 30 ngày. Đây chỉ là một cookie liên tục hoạt động như một mã thông báo xác thực trong 30 ngày. Nếu bạn đã sở hữu máy nạn nhân của bạn, sau đó bạn có thể lấy cookie này và sử dụng nó để xác thực. Không có cách nào để thực hiện tính năng "Ghi nhớ" một cách an toàn.

Mã thông báo dựa trên phần cứng khó khăn hơn nhiều để thỏa hiệp. Đây thực sự là một bước tiến của SMS, trong đó đây là mã thông báo mà bạn có và rất khó để thỏa hiệp. Điều này đúng với hầu hết các phần, trừ khi tất nhiên bạn sử dụng mã thông báo phần cứng của RSA .

6
rook

Các câu trả lời khác đã giải thích tính bảo mật của GSM và các công nghệ liên quan đến các cuộc tấn công kỹ thuật.

Tuy nhiên, có một số cuộc tấn công khác mà bỏ qua các biện pháp bảo vệ kỹ thuật.

bài viết Wikipedia tiếng Đức về số xác thực giao dịch (thường được gửi bằng SMS) liệt kê một số cuộc tấn công:

  • ăn cắp hoặc lén lút truy cập điện thoại di động của nạn nhân
  • cài đặt phần mềm độc hại trên điện thoại di động, đặc biệt nếu đó là điện thoại thông minh
  • tấn công nội bộ tại nhà cung cấp dịch vụ di động
  • sử dụng kỹ thuật xã hội để phá vỡ hệ thống, ví dụ: [.__.]
    • có được quyền truy cập vào tin nhắn
    • lấy thẻ SIM mới từ nhà cung cấp dịch vụ
    • chuyển số điện thoại sang tài khoản khác

Chẳng hạn, năm 2015 đã có một loạt vụ chuyển tiền gian lận ở Đức, nơi những kẻ lừa đảo lấy được thẻ SIM mới dưới tên của khách hàng. Các cuộc tấn công tương tự đã xảy ra trước đây, do đó các nhà cung cấp điện thoại di động đã cải thiện xác thực khách hàng đặt mua thẻ SIM mới. Để phá vỡ điều này, khi gọi cho nhà cung cấp điện thoại, những kẻ lừa đảo đã mạo danh nhân viên từ một cửa hàng điện thoại di động và tuyên bố sẽ kích hoạt SIM thay cho khách hàng (Nguồn [tiếng Đức]: Ngân hàng trực tuyến: Neue Angriffe auf die mTAN ).

Rõ ràng, tất cả các biện pháp bảo vệ kỹ thuật đều vô dụng nếu kẻ tấn công xoay sở để phá vỡ chúng.

6
sleske

Gần đây, nhiều ứng dụng trên điện thoại di động yêu cầu quyền truy cập vào tin nhắn SMS và người dùng cho phép vì họ quan tâm đến ứng dụng. Điều này làm cho cuộc tấn công ít khó khăn hơn việc chặn SMS trên mạng di động.

3
AdnanG

Tôi biết điều này không trực tiếp trả lời câu hỏi của bạn, nhưng tôi hy vọng nó giải quyết một số lo ngại:

Nếu việc triển khai được thực hiện đúng cách, tôi sẽ không quan tâm lắm đến SMS chặn. Điều này là do một lần SMS trình xác thực cung cấp cơ hội tuyệt vời cho thực tế cảnh báo thời gian cho các cuộc tấn công tiềm năng. Nếu trình xác thực bị chặn , rất có khả năng bạn sẽ nhận ra ngay lập tức và có thể nhanh chóng phản ứng.

Nếu SMS bị chặn trong phiên xác thực bạn đã cố thực hiện, một trong hai điều sẽ xảy ra:

  • Nếu bạn xác thực thành công trước, nỗ lực của kẻ tấn công sẽ thất bại. Điều này là do hệ thống nên từ chối các nỗ lực tái sử dụng xác thực. Trong tình huống này, cuộc tấn công bị cản trở hoàn toàn.

  • Nếu kẻ tấn công quản lý để xác thực trước, nỗ lực xác thực của bạn sẽ không thành công do sử dụng lại trình xác thực. Hệ thống cũng nên thông báo cho bạn rằng đây là lý do cho sự thất bại. Tại thời điểm này, bạn nên thực hiện mọi hành động cần thiết để bảo mật lại tài khoản của mình. Có thể làm như vậy một cách nhanh chóng sẽ hạn chế tác động tiềm tàng của cuộc tấn công.

Nếu kẻ tấn công cố gắng bắt đầu xác thực trong khi bạn không, bạn sẽ được cảnh báo bởi thực tế là bạn sẽ nhận được SMS mà bạn không yêu cầu. Có một số phương tiện thực tế mà ai đó có thể lén lút chặn một SMS được gửi đến điện thoại của bạn mà không bạn cũng nhận được nó hoặc sớm nhận thấy có gì đó không ổn.

Dù sao thì đây cũng là tất cả được kết xuất, nếu bạn phải chịu một cuộc tấn công Man-in-the-Browser .

Ngoài ra, vì hầu hết SMS triển khai xác thực sử dụng trình xác thực SMS dưới dạng giây yếu tố, tôi thực sự quan tâm nhiều hơn đến việc yếu tố xác thực đầu tiên bị xâm phạm. Nếu không được thực hiện thông qua kỹ thuật xã hội trần trụi, có lẽ thông qua một số trình duyệt hoặc khai thác hệ điều hành dẫn đến keylogger trên hệ thống của bạn. Sau đó, chúng tôi không có nhiều bước từ tình huống Man-in-the-Browser dẫn đến thỏa hiệp hoàn toàn bất kể phương thức xác thực của bạn.

2
Iszi

Mọi người (thậm chí Schneier?) Dường như đang thiếu một phần cốt yếu:

Nếu điện thoại của bạn bị mất/bị đánh cắp, bạn đã nướng , vì SIM của bạn đã ở trong đó!

Điều đáng ngạc nhiên với tôi là dường như không ai nhận thấy điều này theo như tôi có thể nói, nhưng SMS bị thực tế là nó không yêu cầu bạn thậm chí có thể truy cập dữ liệu trên điện thoại của bạn.

Ngay cả khi viễn thông đã được mã hóa và ngay cả khi điện thoại của bạn bị khóa và mã hóa, nếu bạn có SMS hoặc xác thực dựa trên cuộc gọi được bật và Điện thoại của bạn bị đánh cắp, bạn hoàn toàn nướng cho đến khi bạn tìm cách để nhà cung cấp hủy kích hoạt SIM của bạn (và báo cáo cho cơ quan thực thi pháp luật, v.v.) Kẻ tấn công thực sự cần ít hơn 1 phút để tháo thẻ SIM của bạn và đặt nó vào một điện thoại khác để nhận tin nhắn văn bản, do đó, khi bạn quản lý để báo cáo vấn đề, anh ấy gần như chắc chắn đã có cơ hội thử điều này hàng chục lần và sau đó tắt Điện thoại hoặc chỉ cần đặt lại để anh ta không thể bị theo dõi.

chỉ may mắn của bạn ở đây khi sử dụng SMS 2FA là nếu kẻ tấn công không biết tên người dùng hoặc SIM của bạn được khóa an toàn sử dụng trong điện thoại khác:

  1. Nếu điện thoại của bạn bật khi bị mất hoặc bị đánh cắp, rất có thể nó được viết ở đâu đó trên màn hình đăng nhập của bạn hoặc sẽ bật lên dưới dạng thông báo vào một lúc nào đó.

  2. Nếu bạn vừa bị lừa và bạn đã tắt điện thoại, ID hoặc thẻ tín dụng của bạn có thể đã đi cùng với điện thoại của bạn, trong trường hợp đó tên người dùng hoặc email của bạn có thể không khó đoán hoặc tìm thấy trên Google. Nếu điện thoại của bạn được bật, thì (1) cũng là một rủi ro.

  3. Nếu kẻ tấn công biết bạn bằng cách nào đó, thì bạn gần như chắc chắn là bánh mì nướng.
    [.__.] Giống như, giả sử, bạn để điện thoại trên bàn trong khi bạn ra ngoài ăn trưa và ai đó đến để đổi SIM, nhận SMS và đổi lại. Chỉ mất vài phút nếu không có ai xem.

Vì vậy, trong khi bạn có thể lo lắng về việc ai đó đang cố gắng chặn liên lạc của bạn bằng thiết bị giống Stingray hoặc bằng cách xâm nhập vào các cơ sở của nhà cung cấp điện thoại của bạn, thì thực tế là một người đàn ông trung gian không phải là rủi ro thực tế đối với hầu hết mọi người. Rủi ro thực sự nằm ở điểm cuối - tức là, bạn. Mất điện thoại và xác minh dựa trên SMS và cuộc gọi điện thoại sẽ hoàn toàn chống lại bạn cho dù mật khẩu hoặc mã hóa của bạn mạnh đến mức nào.

1
user541686