Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 12 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
12
Dung lượng
248 KB
Nội dung
TẤN CÔNG MÃ PIN DỰA VÀO BẢNG CHUYỂN ĐỔI THẬP PHÂN (CIMALISATION TABLE ATTACKS FOR PIN CRACKING) Tóm tắt: Bài báo trình bày một cách tấn công bảo mật phần cứng trong các cấu trúc ATM mà các chi nhánh ngân hàng sử dụng để lưu trữ bảo mật và xác thực mã PIN của khách hàng. Bằng cách sử dụng bảng chuyển đổi số thập phân thích nghi (Adaptive Decimalisation table) và phỏng đoán, một lượng thông tin tối đa về mã PIN thật được khám phá dựa trên mỗi lần đoán. Trung bình ta mất khoảng 15 lần phỏng đoán để xác định được 4 ký số của mã PIN bằng kỹ thuật này. Trong 30 phút nghỉ trưa, kẻ tấn công có thể tìm ra được khoảng 7000 mã PIN bằng kỹ thuật này thay vì 24 nếu thực hiện bằng phương pháp vét cạn. Với giới hạn rút được 300 bảng Anh (mỗi ngày) cho mỗi thẻ, số tiền đánh cắp có thể tăng từ 7200 bảng lên tới 2.1 triệu bảng. Một kẻ tấn công tích cực có thể rút từ 30.000 đến 50.000 bảng một ngày. Cách tấn công này là một mối đe dọa nghiêm trọng cho việc bảo mật của các ngân hàng. 1. Giới thiệu Máy rút tiền tự động (Automatic Teller Machine –ATM) được sử dụng bởi hàng triệu khách hàng mỗi ngày. Tuy nhiên, việc lắp đặt các máy ATM rộng khắp, và đôi khi ở các nơi biệt lập đã biến nó thành những công cụ lý tưởng cho những kẻ tội phạm đánh cắp tiền. Mã PIN khách hàng là phương thức bảo mật sơ cấp chống lại sự giả mạo; việc giả mạo các vạch từ trên các thẻ thì dễ hơn so với việc có được mã PIN. Thậm chí, ngay cả khi đã đánh cắp được thẻ mà không biết được mã PIN thì tên trộm cũng chỉ có duy nhất 3 cơ hội đoán mã PIN trong số 10.000 mã PIN có thể có, xác suất thành công là rất thấp và hầu như không đáng kể. Ngay cả khi tên trộm may mắn thành công, thì kẻ này cũng không thể rút ra được số tiền vượt quá 300 bảng mỗi ngày. Tuy nhiên, những lập trình viên ở ngân hàng có thể truy cập vào hệ thống máy tính cộng tác với kho lưu trữ bảo mật các mã PIN, thông thường là một hệ thống bao gồm một máy tính lớn (mainframe) được kết nối với một thiết bị phần cứng bảo mật HSM (Hardware Security Module) có thể chống sự giả mạo và có một giao diện API hạn chế chỉ trả lời YES/NO đối với phỏng đoán của khách hàng. Một cách tấn công thô sơ là mua chuộc một lập trình viên của ngân hàng để viết một chương trình thử tất cả các PIN cho một tài khoản đặc biệt nào đó. Tỉ lệ may mắn trung bình là mất khoảng 5000 giao dịch để tìm ra mỗi mã PIN. Một HSM mỗi giây có thể kiểm tra khoảng 60 lần thử mã PIN, như vậy một lập trình viên bị mua chuộc thực thi chương trình trong suốt 30 phút nghỉ trưa chỉ có thể thử được 25 mã PIN. 1 Tuy nhiên, các HSM cài đặt một vài phương thức sinh mã PIN phổ biến có lổ hổng. Các máy ATM thế hệ đầu tiên là dòng IBM 3624s được chào bán rộng khắp ở nước Mỹ vào khoảng năm 1980, và hầu hết các phương thức sinh mã PIN đều dựa trên giải pháp của họ, theo đó mã PIN được tính toán bằng cách mã hóa số tài khoản được in ở mặt trước của thẻ với một khóa bảo mật DES được gọi là “khóa phát sinh mã PIN”. Mã phát sinh được chuyển đổi sang số dạng thập lục phân và chỉ giữ lại 4 chữ số đầu tiên, để chuyển đổi giá trị này sang mã PIN có thể nhập được từ bàn phím thập phân, một bảng chuyển đổi (decimalisation table) được sử dụng, ánh xạ (nhiều sang một) giữa các số thập lục phân và các số thập phân. Ví dụ, ta có thể sử dụng các bảng chuyển đổi thập phân sau đây (bảng bên trái là bảng điển hình, rất thường được sử dụng). Hình 1: Bảng chuyển đổi thập phân Bảng chuyển đổi không được xem là dữ liệu đầu vào nhạy cảm đối với nhiều HSM, do đó ta có thể cung cấp một bảng chuyển đổi bất kỳ cho một tài khoản và một mã PIN thử. Bằng cách khéo léo thay đổi nội dung của bảng chuyển đổi chúng ta có thể suy diễn được nhiều thông tin của mã PIN chứ không chỉ đơn giản là loại đi một khả năng kết hợp. Ví dụ, nếu bảng chuyển đổi bên phải được sử dụng mà cho kết quả là 0000 thì ta có thể khẳng định rằng trong mã PIN ban đầu không có chứa số 7, và như thế loại được 10% các khả năng kết hợp. Đầu tiên bài báo giới thiệu một phương thức đơn giản có thể suy diễn hầu hết các mã PIN với khoảng 24 lần phỏng đoán, và sau đó trình bày một phương thức sửa đổi (thích nghi) nhằm tối đa hóa lượng thông tin học hỏi được từ mỗi lần phỏng đoán, và mất trung bình khoảng 15 lần đoán để có được mã PIN. Cuối cùng, một phương thức thứ 3 được trình bày minh hoạ việc tấn công vẫn có thể thực hiện được cho dù kẻ tấn công không thể kiểm soát được việc chọn lựa một cách thích hợp mã PIN nào dùng để làm giá trị so sánh. Phần 2 của bài báo trình bày cách tấn công trong ngữ cảnh của môi trường ngân hàng và giải thích tại sao nó có thể không bị phát hiện bởi các tiêu chuẩn bảo mật thông thường. Phần 3 sẽ mô tả phương pháp phát sinh mã PIN và các phương pháp xác thực mã PIN, phần 4 mô tả chi tiết thuật toán mà các tác giả thiết kế. Phần 5 trình bày các kết quả thử nghiệm, thảo luận các tiêu chuẩn phòng ngừa, trong phần 6. Phần 7 sẽ là kết luận 2. Bảo mật ở ngân hàng Các ngân hàng có truyền thống đi đầu trong việc phòng chống gian lận cả từ bên trong lẫn bên ngoài. Họ đã phát triển các phương pháo ngăn ngừa gian lận bên trong như: kế toán kép (để so sánh, đối chiếu, kiểm soát chéo, …), phân chia chức năng, các kỳ nghĩ bắt buộc đối với nhân viên, và họ nhận ra rằng kiểm toán định kỳ là một yêu cần cân có Những phương thức này thành công trong việc giảm thiểu gian lận đến mức chấp nhận được đối với các ngân hàng, cùng với với 1 khung luật pháp thích hợp về trách nhiệm pháp lý, họ có thể bảo vệ khách hàng của mình tránh được những hậu quả của việc giả mạo. 2 Tuy nhiên, sự gia tăng độ phức tạp của các hệ thống máy tính ngân hàng đã không đi cùng với việcphát triển hiệu quả nhận thức về các phương pháp phòng chống sự giả mạo, gian lận. Việc sử dụng các HSM để bảo vệ các mã PIN khách hàng là một hướng phát triển đúng đắn, nhưng thậm chí đến năm 2002, những thiết bị này vẫn chưa được chấp nhận rộng rãi trên toàn cầu và thời gian qua đã chứng tỏ rằng các thiết bị này cũng không phải là không có lổ hỗng để tấn công. Các hoạt động thực tế điển hình của các ngân hàng chỉ là tìm cách giảm thiểu sự gian lận xuống tới mức có thể chấp nhận được, nhưng ý định này đã được diễn dịch một cách nghèo nàn sang các yêu cầu bảo mật. Do đó, họ luôn phải đối phó với một sự rủi ro rất khó chấp nhận trong các hệ thống bảo mật hiện đại, ở đó sức mạnh (robustness) được xem như vấn đề sống còn. Tương tự trong việc thiết kế các giải thuật mật mã. Các nhà thiết kế chỉ thiết kế các giải thuật “vừa đủ mạnh” do phải hy sinh tính vững mạnh để đánh đổi lấy tốc độ và sự thoả hiệp bên ngoài (với khách hàng), do đó họ đang chơi một trò chơi nguy hiểm. Sự phá vỡ mật mã A5 của điện thoại di động GSM là một trong số các ví dụ. Ngay cả khi các giải thuật mật mã “vừa đủ mạnh” tiếp tục được sử dụng thì nguy cơ gian lận từ việc đoán mã PIN theo phương pháp brute force (vét cạn) vẫn được xem là có thể chấp nhận được. Cần phải mất 10 phút để đoán 1 mã PIN với tốc độ giao dịch tối đa của các thiết bị điển hình trong những thập niên 80. Hy vọng các khách hàng sẽ phát hiện ra các khoản tiền bị rút vô chủ và báo với ngân hàng trước khi kẻ tấn công có đủ số mã PIN để gây một lượng nợ đáng kể từ ngân hàng. Ngay cả đối với các máy HSM sau này có tốc độ giao dịch tăng gấp 10 lần thì số tiền bị lấy cắp vẫn được xem là không đáng kể theo quan điểm từ phía ngân hàng. Tuy nhiên hiện nay bảng chuyển đổi thập phân đã được xem như là một danh mục dữ liệu có liên quan đến bảo mật, và các phương pháp tấn công được mô tả trong bài báo này sẽ cho ta thấy cách thức làm thế nào để tận dụng việc không kiếm soát truy xuất đối với bảng chuyển đổi thập phân. Số mã PIN để mở khoá truy nhập cho các tài khoản với giá trị lên đến 2 triệu bảng có thể đánh cắp được chỉ trong vòng 1 giờ nghỉ ăn trưa. Tai hại hơn là các vụ ăn cắp vặt, trong đó các giao dịch được ngụy trang trong các mục kiểm toán của ngân hàng. Kiểm chứng mã PIN không được kiểm toán tập trung, và dù cho có đi nữa, thì cũng rất khó cho một kế toán viên phát hiện ra được 15 giao dịch không hợp lệ trong hàng triệu giao dịch. Các hệ thống phát hiện xâm nhập cũng không làm việc khá hơn. Giả dụ ngân hàng có một hệ thống kiểm toán chặt chẽ theo dõi số lần nhập sai của một tài khoản và phát sinh báo động nếu có 3 lần nhập sai trong một phiên giao dịch, thì kẻ tấn công vẫn có thể dò mã PIN mà không phát sinh báo động bằng cách chèn các giao táo tấn công trước các giao tác xác thực và khởi động lại bộ đếm (để đừng bao giờ đếm tới 3). Dù hệ thống phát hiện xâm nhập có sử dụng chính sách nào đi nữa thì cũng khó giữ bí mật và một lập trình viên lão luyện vẫn có thể lách qua. Lý do chủ yếu để các HSM được đưa vào các ngân hàng là các hệ điều hành máy chủ (mainframe) chỉ có đủ khả năng để bảo vệ tính toàn vẹn dữ liệu, chứ không đủ tin cậy để giữ dữ liệu bí mật trước các lập trình viên. 3 Trong khi chờ đợi lợi ích kinh tế có thể mang lại từ việc bịt các lổ hỗng bảo mật phát triển sang một lĩnh vực chín chắn hơn, các ngân hàng cần thiết phải cập nhật các chiến lược quản lý rủi ro của mình có tính đến sự không ổn định của công nghiệp bảo mật. Họ phải có trách nhiệm đối với khách hàng trong việc ước tính các khoản nợ do bị lừa lọc trong những tình huống cụ thể trong khi các bước phát triển trong bảo mật máy tính sẽ liên tục vẽ lại bức tranh toàn cảnh nơi diễn ra các cuộc tranh chấp giữa các ngân hàng và các khách hàng của họ. 3. Các kỹ thuật phát sinh và kiểm tra mã PIN Có một số kỹ thuật phát sinh và kiểm tra mã PIN, mỗi kỹ thuật độc quyền gắn kết chặt chẻ giữa các ngân hàng và một nhà sản xuất nào đó nơi được các ngân hàng ủy thác phát triển hệ thống sản sinh mã PIN. IBM CCA cho ta 1 ví dụ mẫu điển hình, được minh hoạ trong hình 2. Phương pháp IBM 3624-Offset sẽ được mô tả chi tiết, vì nó điển hình cho cách sử dụng bảng chuyển đổi sang hệ thập phân. Hình 2: Các phương pháp phát sinh mã PIN thông dụng 3.1. Phương pháp phát sinh mã PIN IBM 3624-Offset Phương pháp IBM 3624-Offset được phát triển để hỗ trợ cho các máy ATM thế hệ đầu tiên và do đó được chấp nhận rộng rãi và được sử dụng lại (nhại lại) bởi các phương pháp khác. Phương pháp được thiết kế sao cho các máy ATM offline có thể kiểm tra các mã PIN khách hàng mà không cấn đến khả năng xử lý và lưu trữ để thao tác toàn bộ cơ sở dữ liệu các mẫu tin tài khoản khách hàng. Thay vào đó, một cơ chế được phát triển để có thể tính toán mã PIN từ số tài khoản được mã hóa bằng 1 khoá bí mật. Số tài khoản được in sẵn trên phần mã từ vạch của thẻ, do đó ATM chỉ cẩn lưu trữ 1 khóa bí mật. Một ví dụ về cách tinh mã PIN được trình bày trong hình 4. Số tài khoản được biểu diễn dưới dạng các chữ số ASCII, và được hiểu như là 1 dữ liệu đầu vào dạng hex (hệ thập lục phân) đối với bộ mã hoá DES. Sau khi đã được mã hóa bởi 1 khoá tạo mã PIN bí mật, dữ liệu đầu ra được chuyển đổi sang các số hex (hệ thập lục phân), chỉ giữ lại 4 chữ số đầu tiên (các số khác bỏ đi). Tuy nhiên, các số hex có thể chứa các ký số ‘A’ – ‘F’ có thể gây nhầm lẫn đối với khách hàng và không có sẵn trên bàn 4 phím thập phân, do đó nó sẽ được ánh xạ ngược trở lại các con số thập phân bằng cách sử dụng 1 bảng chuyển đổi sang hệ thâp phân (decimalisation table). (Hình 3) Hình 3: Bảng chuyển đổi thập phân điển hình Hình 4: Phương pháp sinh mã PIN IBM 3624-Offset Mã PIN mẫu 3F7C qua bảng chuyển đổi trở thành 3572. Cuối cùng, để cho phép những chủ sở hữu thẻ ATM có thể thay đổi mã PIN, một độ dời (offset) được thêm vào và được lưu trữ trong cơ sở dữ liệu của máy tính lớn (mainframe) cùng với số tài khoản. Khi máy ATM kiểm tra mã PIN nhập, nó chỉ đơn giản trừ đi độ dời từ số trên thẻ trước khi so sánh với kết quả mã hóa của số đã được chuyển đổi sang số thập phân. 3.2. Hardware Security Module (HSM) APIs HSM được dùng để bảo vệ khóa của mã PIN khỏi những nhân viên có mưu đồ xấu và những kẻ tấn công ở bên trong. HSM là một bộ xử lý đồng hành ngăn chặn sự giả mạo bằng cách chạy phần mềm cung cấp chức năng mật mã hoá và các dịch vụ có liên quan. Các API của nó được thiết kế để bảo vệ các dữ liệu mật cá nhân và tính toàn vẹn dữ liệu, nhưng vẫn cho phép truy xuất tùy theo chính sách người dùng (cho phép người dùng truy cập vào máy chủ và thực hiện các lệnh như: xác nhận mã PIN, nhưng vẫn đảm bảo các chức năng nhạy cảm như tải khóa mới chỉ có thể được thực hiện bởi các nhân viên được tin tưởng) được cấu hình trước. Các API về tài chính tiêu biểu chứa các giao tác dùng để phát sinh ra và kiểm tra mã PIN, diễn dịch các mã PIN phỏng đoán giữa các khóa mã hóa khác nhau khi chúng được truyền giữa các ngân hàng, đồng thời hỗ trợ các chức năng quản lý khóa. CCA (Common, Cryptographic Architecture) của IBM là một API về tài chính được cài đặt bởi một loạt các HSM của IBM, bao gồm 4758 và bộ đồng xử lý mã hóa CMOS dùng cho PCs và các mainframes). Trong hàm xác nhận mã PIN CCA thì đầu vào là bảng chuyển đổi số thập, số tài khoản và khối mã hóa PIN. Hai thành phần đầu được cung cấp một cách tường minh do đó rất 5 dễ bị hacker thao túng, nhưng để có được khối mã hóa PIN đặc trưng cho mã PIN được chọn để thử thì khó hơn nhiều. 3.3. Lấy mã pin đã được mã hóa để thử Lệnh CCA thích hợp được dùng là Clear_PIN_Encrypt, lệnh này sẽ tạo ra một khối mã PIN đã được mã hóa từ mã PIN được chọn. Cũng cần phải chú ý rằng lệnh này cũng có khả năng đem lại những rủi ro khác làm cho chúng ta bị tấn công. Nếu không đệm dữ liệu thêm mã PIN một cách ngẫu nhiên trước khi chúng được đem đi mã hóa thì kẻ tấn công có thể tạo ra một danh sách các mã PIN thử đã mã hóa đã được biết trước, so sánh mỗi mã PIN đã được mã hóa đang đến với danh sách này và dễ dàng xác định được giá trị của nó. Nếu cần thiết phải dùng mã PIN thực mà không đệm ngẫu nhiên, một số hệ thống sẽ bắt buộc là mã PIN thực chỉ được mã hóa bởi một khóa khi chuyển sang ngân hàng khác để kẻ tấn công không thể đoán được. Vì thế, với giả sử rằng kẻ tấn công không có được mã PIN thực thì lựa chọn thứ hai sẽ là nhập vào máy ATM những mã PIN phỏng đoán, và chặn khối mã PIN được mã hóa do ngân hàng trả lại tương ứng với mỗi mã PIN phỏng đoán. Kỹ thuật tấn công theo lược đồ thích nghi chỉ cần 5 mã PIN thử khác nhau – 0000, 0001, 0010, 0100 và 1000. Tuy nhiên kẻ tấn công chỉ có thể nhận được các mã PIN đã được mã hóa dưới dạng một khối như ISO-0 đã có nhúng số tài khoản vào. Điều này bắt buộc anh ta phải nhập 5 mã PIN cho mỗi tài khoản mà hắn định tấn công tại máy ATM, khối lượng công việc phải làm sẽ làm phá sản kế hoạch của hắn. Lựa chọn thứ 3 được xem là mạnh nhất của kẻ tấn công là dùng khả năng của để đổi từ một mã PIN duy nhất đã biết thành các phỏng đoán cần thiết. Mã PIN có trước này có thể có được bằng cách chỉ đơn giản là mở một tài khoản tại ngân hàng. Mặc dù có những phương pháp để lấy được các mã PIN thử đã được mã hóa, vẫn còn tranh cãi là không thể khai thác được cách tấn công dùng bảng chuyển đổi số thập phân, trừ phi nó được thực hiện mà không cần mã PIN thử có trước. Để giải quyết những mối lo ngại này, một thuật toán thứ 3 đã được tạo ra có tốc độ tương đương với những phương pháp khác và không yêu cầu phải biết trước bất kỳ mã PIN thử nào. 4. Tấn công dò tìm mã PIN bằng bảng chuyển đổi số thập phân 4.1. Lược đồ sơ khởi (ban đầu) Bao gồm 2 giai đoạn. Giai đoạn đầu tiên xác định những ký tự nào có xuất hiện trong mã PIN. Giai đoạn thứ hai là thử các mã PIN có thể có được từ các ký tự này (tổ hợp các khả năng). Gọi D orig là bảng chuyển đổi gốc ban đầu. Với mỗi ký tự i được cho, bảng chuyển đổi D i có giá trị 1 ở vị trí x nếu và chỉ nếu D orig có ký tự i ở vị trí đó: 6 1 nếu D orig [x] = i, D i [x] = 0 nếu ngược lại Ví dụ: D orig = 0123 4567 8901 2345 thì D 3 = 0001 0000 0000 0100 Ở giai đoạn 1, với mỗi ký tự i, ta so sánh kết quả của mã PIN gốc ban đầu sau khi đã qua bảng chuyển đổi thập phân D i với mã PIN thăm dò 0000. Dễ dàng thấy rằng, kết quả so sánh sẽ không khớp khi mã PIN ban đầu chứa ký tự i (do đó chắc chắn sẽ có xuất hiện số 1). Vì thế, chỉ cần đoán 10 lần chúng ta sẽ xác định được tất cả các ký tự có trong mã PIN gốc ban đầu. Ở giai đoạn 2, chúng ta sẽ thử tất cả các kết hợp có thể có từ những ký tự có xuất hiện này. Số lượng các kết hợp thực tế sẽ tùy thuộc vào việc có bao nhiêu ký tự xuất hiện trong mã PIN gốc ban đầu. Các ký tự Các khả năng A AAAA (1) AB ABBB (4), AABB (6), AAAB (4) ABC AABC (12), ABBC (12), ABCC (12) ABCD ABCD (24) Bảng trên chỉ ra rằng giai đoạn 2 cần tối đa 36 lần phỏng đoán khi mã PIN ban đầu có chứa 3 ký tự khác nhau. (A, B, C, D: tượng trưng cho 1 ký tự bất kỳ). 4.2. Lược đồ thích nghi (Adaptive Scheme) Tiến trình dò tìm (bẻ khóa) mã PIN có thể được miêu tả bởi một cây nhị phân tìm kiếm. Mỗi nút v biểu diễn cho một lần phỏng đoán, (ví dụ, chọn một bảng chuyển đổi thập phân D v và một mã pin p v ). Ta bắt đầu duyệt cây từ nút gốc, và rẽ nhánh (sang cây con bên trái hoặc cây con bên phải) tùy thuộc vào kết quả phỏng đoán. Gọi p orig là mã PIN gốc (cần dò). Tại mỗi nút, ta sẽ so sánh D v (p orig ) với p v bằng cách kiểm tra điều kiện D v (p orig ) = p v . Nếu kết quả là ‘Yes’ (trùng nhau) thì sẽ rẽ nhánh sang cây con bên phải, ngược lại sẽ rẽ nhánh sang cây con bên trái. Mỗi nút v trong cây được liên kết với danh sách các mã PIN P v , sao cho p ∈ P v nếu và chỉ nếu có thể duyệt đến nút v bằng tiến trình được mô tả ở trên, nếu ta chọn p là mã PIN gốc. Trường hợp đặc biệt, danh sách liên kết với nút gốc là toàn bộ mã PIN có thể có, và danh sách liên kết với nút lá chỉ chứa 1 phần tử duy nhất: một PIN gốc nào đó. Lấy ví dụ trường hợp của lược đồ sơ khởi như đã miêu tả ở phần trên, để cho đơn giản ta giả sử rằng mã PIN gốc chỉ chứa 2 số thập phân, và bảng chuyển đổi thập phân là tầm thường, ánh xạ 00 và 11. Hình vẽ sau minh họa cây nhị phân tìm kiếm: 7 (kí hiệu D xy chỉ ra rằng bảng chuyển đổi thập phân sẽ ánh xạ 0x, và 1y) Hình 5: cây tìm kiếm nhị phân Một hạn chế của lược đồ sơ khởi, đó là số lượng các lần đoán phụ thuộc rất lớn vào mã PIN gốc p orig. Ví dụ phương pháp này cần 9 lần đoán cho trường hợp p orig = 9999 (bởi vì sau khi thử các ký tự từ 08 không xuất hiện, thì chỉ còn có 1 trường hợp kết hợp duy nhất là 9999), nhưng có những trường hợp phải cần tới 46 lần phỏng đoán, sở dĩ như thế là do cây nhị phân là không cân bằng và do đó không tối ưu. Một cách để tạo ra cây tìm kiếm tối ưu (ví dụ, cây đòi hỏi số lần phỏng đoán là nhỏ nhất trong trường hợp xấu nhất) là xem xét tất cả các cây tìm kiếm có thể có, và chọn cây tốt nhất. Tuy nhiên, cách tiếp cận này là không hiệu quả bởi vì độ phức tạp tăng theo hàm mũ, tương ứng với số lượng mã PIN và các bảng chuyển đổi thập phân có thể có. Thay vì cách tiếp cận theo phương pháp vét cạn ở trên, chúng ta có thể sử dụng các heuristics đơn giản. Chúng ta sẽ chọn D v và p v cho mỗi nút v theo cách sau đây. Gọi danh sách liên kết với nút v là P v . Ta xem xét tất cả các cặp (D v , p v ) có thể có và chọn cặp nào mà xác suất D v (p)=p v với p ∈ P v càng gần ½ càng tốt. Điều này đảm bảo rằng cây con trái và cây con phải có kích thước gần bằng nhau, do đó cây sẽ cây bằng. Lược đồ này còn có thể cải thiện hơn nữa bởi nhận xét sau đây. Nhắc lại rằng, PIN gốc p orig là 1 số gồm có 4 chữ số hệ thập lục phân. Tuy nhiên, chúng ta không cần xác định nó một cách chính xác. Điều chúng ta cần là xác định giá trị p = D orig (p orig ). Ví dụ, chúng ta không cần phân biệt 012D và ABC3, bởi vì 2 mã PIN này đều có p = 0123. Dễ dàng chứng minh rằng chúng ta có thể xây dựng cây tìm kiếm dựa trên giá trị của p thay vì của p orig miễn là các bảng D v không phân biệt giữa 0 và A, 1 và B, … Một cách tổng quát, chúng ta cần chọn Dv thỏa mãn tính chất sau: với mỗi cặp ký số hệ thập lục phân x, y thì 8 D orig [x] = D orig [y] kéo theo D v [x] = D v [y]. Tính chất này không khó để thoả mãn, và chúng ta có thể giảm số mã PIN có thể có từ 16 4 = 65 536 xuống còn 10 4 = 10 000. Bảng sau trình bày một ví dụ minh hoạ khi chạy thử thuật toán với mã PIN gốc là p orig = 3491. Hình 6: Kết quả chạy thử nghiệm chương trình 4.3. Lược đồ thích nghi PIN Offset Khi kẻ tấn công không biết bất kỳ mã PIN đã mã hóa nào để thử, và cũng không thể mã hóa các mã PIN giả định của mình, anh ta vẫn có thể thành công bằng cách thao tác trên tham số offset (độ dời) được sử dụng để cung cấp yêu cầu thay đổi mã PIN của khách hàng. Phương pháp này cũng có 2 giai đoạn giống như phương pháp sơ khởi, vì thế công việc đầu tiên là cũng là xác định các số có xuất hiện trong mã PIN. Giả sử rằng một khối PIN đã mã hóa có chứa đựng số PIN thực cho một tài khoản bị chặn lại (phần lớn các khối PIN mã hóa di chuyển đến sẽ thỏa giả định này), và để cho đơn giản ta giả sử rằng chủ tài khoản không thay đổi mã PIN và do đó offset thực có giá trị là 0000. Bằng việc dùng tập các bảng chuyển đổi sang số thập phân (decimalisation tables), kẻ tấn công có thể xác định những số nào có xuất hiện trong mã PIN thực. Ví dụ, với D orig là 0123 4567 8901 2345, giá trị của D 3 sẽ là 0124 4567 8901 2445. Mỗi lần như vậy anh ta đưa vào khối PIN mã hóa đúng và offset đúng. Giống như phương pháp ban đầu, giai đoạn thứ hai xác định các vị trí của các số có xuất hiện trong mã PIN, và lần nữa lại phụ thuộc vào số lượng các số bị lặp lại trong mã PIN gốc. Xét trường hợp phổ biến là tất cả các số trong mã PIN là khác nhau, ví dụ 1583. 9 Chúng ta hãy thử xác định vị trí của số 8 duy nhất bằng cách áp dụng một offset trên mỗi ký số khác nhau và đối sánh. Guess Offset Guess Decimalisation Table Customer Guess Customer Guess + Guess Offset Decimalised Original PIN Verify Result 0001 0123 4567 9901 2345 1583 1584 1593 No 0010 0123 4567 9901 2345 1583 1593 1593 yes 0100 0123 4567 9901 2345 1583 1683 1593 No 1000 0123 4567 9901 2345 1583 2583 1593 No Mỗi offset giả định khác nhau sẽ ánh xạ số PIN đúng của khách hàng sang một số PIN mới mà có thể khớp hoặc không khớp với mã PIN gốc sau khi nó đã được chuyển đổi sang số thập phân bằng bảng chuyển đổi thập phân có thay đổi (modified table). Thủ tục này sẽ được lặp lại cho đến khi vị trí của tất cả các số được nhận biết. Những trường hợp với tất cả các số khác nhau cần nhiều nhất là 6 giao dịch để xác định tất cả các thông tin về vị trí. Ba số khác nhau sẽ cần nhiều nhất 9 lần thử, hai số khác nhau lên đến 13 lần thử, và nếu tất cả các số là giống nhau thì không cần phải thử, vì không có hoán vị nào. Kết hợp các phần khác nhau của phương pháp này ta sẽ có trung bình khoảng 16,5 lần phỏng đoán (thử) để xác định được 1 mã PIN. 5. Các kết quả Các tác giả đã thử nghiệm thuật toán thích nghi (adaptive algorithm) trên tất cả các trường hợp có thể có của mã PIN. Kết quả đạt được minh họa ở hình 8. Trường hợp xấu nhất giảm từ 45 xuống còn 24 lần phỏng đoán, trường hợp trung bình thì giảm từ 24 xuống còn 15 lần đoán. Các tác giả đã thực hiện việc tấn công trên cấu trúc CCA (Common Cryptographic Architecture - kiến trúc mã hóa thông dụng) của IBM (phiên bản 2.41, IBM 4758), và rút trích thành công các mã PIN được tạo ra bằng cách sử dụng phương pháp IBM 3624. Các tác giả cũng đã thử nghiệm các cuộc tấn công dựa trên các API đặc tả của kiến trúc bảo mật VISA (VSM) và thấy rằng chúng cũng rất hiệu quả. VSM là thiết bị kỹ thuật dẫn đầu của toàn bộ chủng loại các thiết bị an ninh phần cứng xử lý trên mã PIN, và các tác giả cũng tin tưởng rằng kỹ thuật tấn công này cũng sẽ hiệu quả đối với các thế hệ sau của nó. 10 [...]... thực mã PIN hỗ trợ khả năng cung cấp các bảng chuyển đổi thập phân thích nghi thì khó sửa hơn Một thủ tục kiểm tra đảm bảo rằng một ánh xạ từ những kết hợp đầu vào sang một số lượng tối đa những kết hợp đầu ra có thể có sẽ bảo vệ chống lại những tấn công theo 2 phương pháp đầu, nhưng không chống được những tấn công tận dụng PIN offset và chỉ sử dụng những thay đổi nhỏ của bảng chuyển đổi thập phân. ..Hình 7: Sự phân phối giữa số lần phỏng đoán và số lượng mã PIN 6 Ngăn chặn Thực hiện kiểm tra tính hợp lệ của bảng chuyển đổi thập phân thì rất dễ Một vài phương pháp xác thực mã PIN sử dụng bảng chuyển đổi thập phân yêu cầu bảng nên cố định là 0123456789012345 để thuật giải chạy đúng, và trong những trường hợp này API... toàn, bảng chuyển đổi thập phân đầu vào cũng phải được bảo vệ bằng mã hóa, để chỉ những bảng chuyển đổi của những chủ sở hữu thật sự mới có thể được sử dụng Giải pháp thay thế ngắn hạn (tạm thời) cho các phương thức trên là sử dụng các phương thức pháp hiện xâm nhập tiên tiến hơn Tuy nhiên, về lâu dài có thể thấy rõ ràng là việc tiếp tục hỗ trợ khả năng sử dụng (cung cấp) bảng chuyển đổi thập phân không... Những kỹ thuật đằng sau các phương pháp tấn công sử dụng bảng chuyển đổi thập phân không chỉ đơn giản là thêm một dây đàn cho kẻ tấn công, mà nó khẳng định rằng việc thiết kế các API bảo mật là một trong những thách thức gây cấn nhất trong cộng đồng bảo mật Thật khó tìm được bất kỳ phương pháp nào vừa bảo đảm tính đúng đắn, lại vừa đủ tin cậy đối với các kiểu tấn công phong phú ở mức API Cần phải có thêm... tra tính hợp lệ của bảng chuyển đổi thập phân thì dễ hiện thực, nhưng việc bảo vệ hoàn toàn mà vẫn giữ lại tính tương thích với các phần mềm hiện có sẵn của máy tính lớn (mainframe) là điều rất khó đạt được Điều này phụ thuộc vào các khả năng phát hiện xâm nhập được giới thiệu bởi mỗi nhà cung cấp cụ thể Chúng ta hy vọng rằng sẽ có được nhận thức đầy đủ về hậu quả của các cuộc tấn công và các phương... đối với xác thực hóa mã PIN Các mã PIN bất đối xứng được phát sinh ngẫu nhiên và được lưu trữ dưới dạng mã hóa trong một cơ sở dữ liệu trực tuyến như đã từng được sử dụng trong một số các ngân hàng là một giải pháp bảo mật tốt hơn rất nhiều 7 Kết luận Các tác giả đang bắt đầu các cuộc thảo luận với các nhà cung cấp HSM về các vấn đề có liên quan đến nguy cơ bị tấn công Việc thay đổi phần mềm để tương... pháp tối ưu phòng chống tấn công trong một tương lai gần đây Mặc dù HSM đã tồn tại 2 thập kỉ, nhưng việc nghiên cứu những hàm APIs vẫn còn trong giai đoạn sơ khai Các công trình trước đây của các tác giả [5, 4] đã không khám phá hết các khiếm khuyết đa dạng trong các hàm API, một số ở mức độ giao thức, số khác ở các đặc điểm có thể tận dụng được (để tấn công) của các giải thuật mật mã hóa bên dưới, và... tin cậy đối với các kiểu tấn công phong phú ở mức API Cần phải có thêm nhiều nghiên cứu về những phương pháp phân tích API, nhưng hiện nay chúng ta có thể phải thừa nhận rằng việc viết các đặc tả đúng cho các API cũng khó như việc viết mã nguồn, và chúng ta đang bước vào cuộc tranh đua giữa tấn công và phòng thủ mà những sản phẩm phần mềm buộc phải cạnh tranh nhau 12 . số thập lục phân và các số thập phân. Ví dụ, ta có thể sử dụng các bảng chuyển đổi thập phân sau đây (bảng bên trái là bảng điển hình, rất thường được sử dụng). Hình 1: Bảng chuyển đổi thập phân. TẤN CÔNG MÃ PIN DỰA VÀO BẢNG CHUYỂN ĐỔI THẬP PHÂN (CIMALISATION TABLE ATTACKS FOR PIN CRACKING) Tóm tắt: Bài báo trình bày một cách tấn công bảo mật phần cứng trong. rằng mã PIN gốc chỉ chứa 2 số thập phân, và bảng chuyển đổi thập phân là tầm thường, ánh xạ 00 và 11. Hình vẽ sau minh họa cây nhị phân tìm kiếm: 7 (kí hiệu D xy chỉ ra rằng bảng chuyển đổi thập