2010-10-19 16 views
18

Hệ thống đăng ký phần mềm chia sẻ Tôi hiện đang phát triển nhúng khóa DSA công khai trong chính tệp thực thi và khóa riêng tư nằm trên máy chủ. (Vì mục đích thảo luận, giả sử rằng máy chủ là 100% an toàn, và có không có cách nào cho bất kỳ ai để có được bàn tay của họ trên khóa riêng.)DSA: hacker có thể làm gì với * chỉ * một khóa công khai?

Bất cứ khi nào chương trình được mua, máy chủ tạo giấy phép cho người dùng bằng cách ký tên của người dùng bằng khóa riêng. Giấy phép đó sau đó được gửi qua email cho người dùng. Khi người dùng nhập tên và giấy phép của họ theo cách thủ công vào ứng dụng phần mềm chia sẻ, nó được xác minh bằng khóa công khai được nhúng trong ứng dụng là giấy phép hợp lệ hoặc không hợp lệ.

Tuy nhiên, nó sẽ là khá tầm thường đối với một người được xác định với đúng "bí quyết" để tháo rời tệp thực thi và truy xuất khóa công khai.

Câu hỏi của tôi ở đây là, họ có thể làm gì với nó? Là một chìa khóa công khai, tự nó, hoàn toàn vô hại? Khóa công khai có đủ thông tin để đảo ngược thiết kế một máy phát điện chính không?

Tâm trí tò mò muốn biết. Cảm ơn trước!

+0

Cảm ơn mọi người! Sự nhất trí chắc chắn là "Đừng lo lắng về khóa công khai. Lo lắng về toàn bộ quá trình xác minh bị phá vỡ." Ghi nhận hợp lệ. :) – kurige

+0

Sử dụng tính năng này để gỡ lỗi https://8gwifi.org/dsafunctions.jsp – anish

Trả lời

23

Khóa công khai sẽ khiến chúng không hữu ích. Tuy nhiên, nếu kiểm tra được dễ dàng tìm thấy họ có thể chỉ đơn giản là phá vỡ nó và vá trong một bài kiểm tra luôn thành công mà không bao giờ làm phiền để xác minh giấy phép chống lại khóa công khai.

+2

+1 (những gì tôi sắp đăng). Nó rất có thể là phần xác minh sẽ bị tước bỏ. – ChristopheD

+2

Đánh bại tôi với nó là tốt. Mật mã hóa giả được thiết kế sao cho các bí mật không cần phải được chia sẻ, miễn là phương pháp xác minh không bị phá hủy hoàn toàn, khóa công khai chỉ là công khai. – Tristan

+0

Hoàn toàn đúng. Tháo rời tệp thực thi và bỏ qua khóa công khai - thay vào đó hãy xóa thử nghiệm để luôn trả về "được cấp phép". –

1

Giả sử phương thức mã hóa chưa được giải mã đang được sử dụng, khóa chung không thể được sử dụng để xác định khóa riêng. Nó có nghĩa là thực sự công khai; được mọi người biết đến.

1

Chỉ cần có khóa công khai là không đủ thông tin để làm bất kỳ điều gì hữu ích.

Điều duy nhất có thể thực hiện là ai đó có thể mã hóa tin nhắn bằng khóa công khai chỉ có thể được giải mã bằng khóa riêng. Nhưng nếu khóa riêng chỉ trên máy chủ, điều này sẽ không làm gì cả.

Bất kỳ cuộc tấn công nào khác sẽ yêu cầu tính toán khóa riêng tư, điều này sẽ không được tăng tốc chút nào bằng cách có khóa công khai.

7

Một khóa công khai của chính nó sẽ cho phép họ giải mã bất kỳ thông tin mã hóa nào được gửi bởi máy chủ. Đó là nó. Đi từ khóa công khai tới khóa riêng là đặc biệt cứng; đó là cách mã hóa khóa công khai hoạt động. (Bằng cách “đặc biệt” tôi ngụ ý rằng nó được thiết kế để chống lại những nỗ lực của chính phủ tài trợ tốt, nếu nó ngăn NSA bẻ gãy bạn, nó sẽ đủ chắc chắn để ngăn chặn Joe Blow.)

Lưu ý rằng nó không 't giúp đỡ với DRM, mà nó âm thanh một chút giống như bạn đang cố gắng để làm. DRM chỉ đơn giản là bị phá vỡ bởi thiết kế; nếu kẻ tấn công có thông tin và chìa khóa để mở khóa nó trong các thiết bị địa phương với anh ta, nó đã được trò chơi trên. Nếu bạn đưa chìa khóa cho kẻ tấn công, nó cũng có thể được công khai vì anh ta chắc chắn sẽ không sẵn lòng giữ bí mật ...

+0

Bỏ phiếu xuống mà không giải thích? Hiển thị kém. –

+0

Xin lỗi về điều đó. Có nghĩa là để trả lời, nhưng đã bị phân tâm. Tôi đang sử dụng DSA để ký, chứ không phải mã hóa. Sự khác biệt là tôi không phải là "ẩn" thông tin; Tôi chỉ bảo đảm (hoặc cố gắng đảm bảo) nguồn gốc (máy chủ của tôi). Thứ hai, tôi không chắc chắn về ý nghĩa của bạn về DRM. Bạn đang nói rằng các chương trình chia sẻ và/hoặc cấp phép là một hệ thống bị hỏng? Nếu vậy, bạn có thể rất có một điểm, nhưng nó không liên quan gì đến câu hỏi ban đầu. Tôi nghĩ rằng những gì bạn có thể nói là, với một khóa công khai nhúng, một giấy phép hợp lệ duy nhất có thể được sử dụng bởi nhiều bên, đó là sự thật. – kurige

+0

@kurige: Cuối cùng, khi bạn làm việc với bảo mật, bạn phải xác định ** chính xác ** những gì bạn đang bảo vệ chống lại vì không phải tất cả các kết hợp đều có thể (giả sử bạn muốn phần mềm có thể sử dụng). Tôi có xu hướng ưu tiên đặt chức năng quan trọng vào máy chủ mà tôi kiểm soát để người dùng không thể làm gì hữu ích mà không vượt qua kiểm tra mà tôi áp đặt - cho các lớp ứng dụng tôi viết, yêu cầu tiếp theo cho kết nối mạng không phải là vấn đề bổ sung - cho đi nguồn khách hàng vì nó không có giá trị trong chính nó. –

1

Mật mã không đối xứng, an toàn để cung cấp khóa công khai cho kẻ tấn công. Tuy nhiên, giá trị này, cùng với chữ ký hoặc văn bản mã hóa được tạo bởi khóa riêng có thể được sử dụng trong Trivial Attack để lấy khóa riêng tương ứng.

+1

Đừng nín thở chờ đợi điều đó xảy ra; brA-forceing DSA là rất nhiều công việc vì không gian chính là khổng lồ và IIRC không có bất kỳ phím tắt được biết đến. Hơn nữa, bạn đang ** giả sử ** có thể nói cho mọi người biết khóa công khai của bạn và chữ ký; đó là * cách mật mã khóa công khai hoạt động *. –

+0

@Donal Fellows và đó là quyết định của một cuộc tấn công tầm thường. Đừng quá nhanh để cho rằng những người xung quanh bạn câm như đá. – rook

+0

Ah, nhưng với kích thước chính là kích thước của nó, "tầm thường" không phải là tầm thường chút nào. –

0

Điểm chính là loại mã hóa này được thiết kế để bảo vệ nội dung của thư và xác minh tính xác thực của người gửi trong trường hợp này rõ ràng được biết đến với tên người dùng và Nhà cung cấp, v.v.Đẹp hơn nhiều sẽ là bảo vệ một phần của mã với loại mã hóa như vậy mà các bit mã quan trọng vẫn bị cắt xén cho đến khi khóa thích hợp được sử dụng.

Sau khi khóa được sử dụng, người dùng có thể giải mã và sao chép phần mềm. Phần mềm được bảo vệ hoàn toàn hoàn toàn không sử dụng được. Mặc dù không liên quan this là một cách đọc thú vị về bảo vệ mọi thứ.

+1

Bạn * có thể * bảo vệ hoàn toàn phần mềm, nhưng chỉ bằng cách không bao giờ cho mọi người một bản sao. Điều này không phải là khá ngớ ngẩn như nó âm thanh; phần mềm-as-a-dịch vụ là một lựa chọn hợp lý cho nhiều tình huống. –

+0

Sau đó, nó không thực sự là phần mềm bạn đang bán .. nó là cơ sở hạ tầng .. ví dụ Google và hầu hết những người khổng lồ trên web. Làm cho nó hoạt động có thể chi phí đầu tư nhiều hơn chỉ là phần mềm. – whatnick

2

Khóa công khai được sử dụng ở khắp mọi nơi - biểu mẫu đăng nhập, bảo mật giao dịch ngân hàng, xác thực phía máy khách v.v. Vì vậy, câu trả lời ngắn gọn là bạn không nên lo lắng, khiến nhiều người khác, thông minh hơn đã xem xét vấn đề này và chấp nhận phân phối khóa công khai đến điểm cuối.

Mọi người có thể nói gì từ khóa công khai của bạn? Họ rõ ràng sẽ biết một tên khóa và chiều dài khóa. Tôi cho rằng khóa là một phần của chứng chỉ, cũng có thể chứa một số chi tiết về URL công ty và trang web của bạn.

Câu hỏi của tôi cho bạn là:

1) Tại sao bạn lo lắng về khóa công khai trong tệp thực thi? Bất kỳ trình cracker nào có kích thước nửa sẽ chỉ thay đổi tệp thực thi của bạn để bỏ qua kiểm tra khóa công khai hoàn toàn. Thực tế là mã hóa mạnh mẽ là vô nghĩa khi bạn đang đưa ra một nhị phân cho khách hàng có thể được sửa đổi.

2) Bạn có nhận thức được sự lộn xộn mà bạn có thể xâm phạm không? Không có gì sai khi sử dụng mã hóa khóa công khai để bảo mật một tệp nhị phân, nhưng bạn có thể gặp phải các vấn đề khi hệ thống phát triển. Những thứ như chìa khóa hết hạn, chìa khóa cuộn-overs và phát hành chính (Tôi tin rằng đây là một công cụ bạn đang phát triển để bán) có thể trở thành một nỗi đau lớn. Và, tuy nhiên, bạn vẫn sẽ bị mắc kẹt với thực tế rằng thách thức lớn hơn của bạn là ngăn chặn bánh quy từ chỉ định tuyến lại các nhị phân để tránh kiểm tra an ninh của bạn hoàn toàn.

+0

Điều tôi đang làm là nghiêm túc cho việc sử dụng cá nhân. Tôi chỉ đang làm việc trên một hệ thống mà tôi có thể tái sử dụng trong các dự án của riêng mình - tôi không cố gắng bán bản thân hệ thống. Tôi quyết định một vài điều khiến công việc của tôi dễ dàng hơn nhiều trong thời gian dài và dễ chịu hơn cho khách hàng của tôi: 1) Không hết hạn 2) Không có điện thoại nhà riêng. Điều thứ hai là quan trọng nhất đối với tôi - và việc nhúng khóa công khai cho phép tôi làm điều đó - tôi chỉ tò mò về những gì mà tôi có thể đã bỏ qua. – kurige

+0

Hội chợ. Chúc may mắn và tận hưởng dự án! –

0

Tôi không đồng ý rằng khóa công khai không hữu ích. Tôi tạo cặp khóa công khai và riêng của mình và giả sử rằng tôi tìm thấy các bit của khóa công khai trong tệp thực thi. Tôi thay đổi khóa công khai thành khóa công khai của tôi. Bây giờ tôi có thể ký bất cứ điều gì với khóa riêng của tôi, chương trình sẽ chấp nhận nó.

Các vấn đề liên quan