2009-03-12 29 views
8

Chúng tôi đang cố gắng để đưa ra một cơ chế giấy phép cho mọi tính năng ứng dụng Linux của chúng tôi đang chạy, và chúng tôi đang nghĩ đến việc kiểm soát nó một cách tập trung sử dụng một máy chủ giấy phép:Quản lý các tính năng trên cơ sở giấy phép cho một ứng dụng C++

Mục đích của chúng tôi đối với việc cấp phép là:

  1. Tính năng từ chối chưa mua.
  2. Thử nghiệm phiếu mua hàng (các tính năng hết hạn nếu chúng không được mua).
  3. Kích hoạt các tính năng trong một khoảng thời gian và cung cấp các tính năng này chỉ trong một khoảng thời gian.

Có giấy phép máy chủ nào cho phép chúng tôi thực hiện việc này (về cơ bản, chúng tôi sẽ sử dụng ổ cắm để giao tiếp với ứng dụng của chúng tôi) không? Chúng ta có thể làm gì khác (ví dụ, sử dụng một số phần mềm nguồn mở, đọc, vv) để bắt đầu?

+1

Tại sao mọi người lại đánh dấu câu hỏi này? Đó là một câu hỏi hoàn toàn hợp lệ cần một giải pháp lập trình. Đừng đánh dấu nó xuống chỉ vì bạn không đồng ý với việc cấp phép một phần mềm –

+1

Câu hỏi hay. Tôi rất vui khi biết về bất kỳ công cụ DRM nguồn mở nào :) – rkb

Trả lời

0

Đã sử dụng các gói khác nhau sử dụng máy chủ cấp phép như thế này, tôi có thể cho bạn biết đó là cách chắc chắn để phần mềm của bạn bị người dùng ghét.

+0

Xin chào Neil, Bạn có thể đưa ra một số ví dụ về các gói như vậy không? –

1

Đây là cách làm như vậy Dilbert-esque. Chỉ cần nói không.

Mặc dù bị ghét, đây là tính năng tiêu chuẩn trong phần mềm chuyên dụng cao cấp có giá hàng chục nghìn đô la. Hãy nghĩ máy quét 3D và CNC nội dung.

4

Nếu bạn thực sự muốn sử dụng máy chủ cấp phép, hãy đảm bảo rằng ứng dụng của bạn không phải liên hệ với nó để cho phép sử dụng - điều này sẽ dẫn đến kết thúc sự cố khi mọi người mất kết nối Internet hoặc máy chủ của bạn xuống hoặc treo.

Tôi khuyên bạn nên có thứ gì đó mà khóa được tải xuống và lưu trữ cục bộ, do đó giảm thiểu các chuyến đi khứ hồi đến máy chủ mọi lúc. Khóa có thể được mã hóa dựa trên chi tiết máy của người dùng để không thể chia sẻ khóa.

Chúng tôi đã sử dụng khóa phần cứng HASP trước đây và trong khi chúng hoạt động bình thường và cung cấp giải pháp, tôi không nghĩ chúng là những gì bạn muốn khi chúng được lập trình một lần và đó là điều đó. Ví dụ: bạn sẽ không thể cập nhật khóa HASP để đóng một khoảng thời gian dùng thử.

+0

Bạn có thể lập trình một khóa HASP để chết sau thời gian dùng thử 30 ngày. Điều này thường được thực hiện cho phần mềm được cấp phép cho bất kỳ khoảng thời gian nào. Tôi đã làm điều này với một số khóa phần cứng khác nhau bao gồm phạm vi phím HASP. Tuy nhiên, việc sử dụng khóa HASP trong thời gian dùng thử là một cách tốn kém. Hơn nữa, mọi thông tin được lưu trữ trên khóa phần cứng có thể dễ dàng thay đổi trong trường bằng chương trình phần mềm. Nó chỉ là một vấn đề của biên dịch lại các thói quen kiểm soát khóa của bạn và đóng gói lại trong một chương trình cập nhật mới. – jay

2

Có những lúc phần mềm cần bảo vệ - hãy xem những kẻ này here - chúng cung cấp giải pháp phần cứng và phần mềm.

4

Bạn có thực sự cần "điện thoại nhà riêng" không?

Tôi đã nhìn thấy một hệ thống giấy phép tương đối không đau, qua đó người dùng được cung cấp tệp XML mô tả khoảng thời gian giấy phép hợp lệ, địa chỉ IP tùy chọn và danh sách các tính năng "đã mở khóa". Chữ ký điện tử được tạo bằng khóa riêng của nhà cung cấp, được đặt lại vào tệp giấy phép. Khi khởi động, ứng dụng đã đọc giấy phép, xác nhận nó, kiểm tra IP và mở khóa các tính năng tương ứng.

Nhà cung cấp có thể cung cấp giấy phép mới hơn cho khách hàng khi cần.

Mặc dù bạn về mặt lý thuyết có thể đánh lừa giấy phép bằng cách thay đổi thời gian địa phương của máy và sử dụng địa chỉ IP, trong trường hợp này sẽ khiến ứng dụng trở nên cồng kềnh để sử dụng.

0

Một phần mềm cấp phép phổ biến là flexlm. Tuy nhiên tôi sẽ nghĩ hai lần nếu tôi áp đặt những hạn chế này cho người dùng của mình. Nhiều người dùng không thích chúng; đặc biệt là từ môi trường FOSS/Linux.

0

Nếu bạn dự định tự mình viết mã, một cơ chế chung mà tôi đã thấy là gắn giấy phép vào MAC address.

1

FLEXnet (trước đây gọi là FLEXlm) là gói cấp phép thường được sử dụng bởi các gói phần mềm cao cấp hoặc chuyên dụng, ví dụ trong thị trường tự động hóa thiết kế điện tử. Bạn có thể khóa giấy phép cho một máy đơn (bằng hostid, thường là địa chỉ MAC Ethernet) hoặc với phần cứng di động, hoặc có máy chủ được nối mạng chia sẻ một lượng giấy phép đồng thời hạn chế cho khách hàng đang chạy phần mềm của bạn. Giấy phép có thể được cấp trong một thời gian giới hạn hoặc vĩnh viễn và cũng có thể bị giới hạn bởi số phiên bản. Tệp giấy phép mô tả các tính năng được cấp phép.

FLEXnet bao gồm một số API để tích hợp với ứng dụng của bạn, bao gồm một API cho C++. Tôi tưởng tượng nó sử dụng mật mã khóa công khai của một số loại. Nói chung, một ứng dụng chỉ sử dụng "điện thoại nhà" của FLEXnet khi bạn yêu cầu nó thông qua việc sử dụng API của bạn. Nhiều ứng dụng kiểm tra giấy phép một lần, lúc khởi động hoặc đặt trước giấy phép từ hồ bơi trong suốt thời gian chạy của ứng dụng.

Bạn phải trả phí giấy phép hàng năm, tất nhiên, để sử dụng FLEXnet trong các sản phẩm của bạn, bắt đầu từ trên 1 nghìn USD. Lệ phí thay đổi theo doanh thu của công ty bạn và số lượng nền tảng (kết hợp OS/CPU) mà bạn muốn chương trình cấp phép của mình có thể chạy.

Tôi cho rằng không nên sử dụng một cái gì đó như FLEXnet nếu sản phẩm của bạn bán với giá dưới vài nghìn USD cho mỗi chỗ ngồi. Nó là công cụ để sử dụng (nguồn của một tỷ lệ phần trăm tốt các cuộc gọi hỗ trợ cho công ty của chúng tôi), nhưng các khách hàng doanh nghiệp có thể đã quen thuộc với việc sử dụng nó, tùy thuộc vào thị trường.

FLEXnet, giống như mọi sơ đồ DRM mà tôi đã nghe nói, có thể dễ dàng bị bẻ khóa. Ít nhất là tôi cho rằng đó là, kể từ khi phiên bản mở khóa của các sản phẩm của chúng tôi thường xuyên được tìm thấy trên các trang web warez.

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