2012-10-06 36 views
7

tình hình của tôi: (!)trình duyệt dựa trên mã hóa/giải mã với khóa bí mật từ keystore trình duyệt

  1. nhân viên y tế muốn nhập dữ liệu nhạy cảm của bệnh nhân vào một trình duyệt web để lưu trữ nó vào một số cơ sở dữ liệu và sau đó lấy lại.

  2. Những dữ liệu này không được phép nhìn thấy bởi bất kỳ ai khác ngoại trừ chính nhân viên y tế. Điều này có nghĩa rằng nó phải được mã hóa bằng cách sử dụng một số mã thông báo bí mật trước khi nó được chuyển đến máy chủ. Nó cũng có nghĩa là không phải nhân viên CNTT (có quyền truy cập vào máy chủ/cơ sở dữ liệu) và cũng không ai khác có thể giải mã nó mà không có mã thông báo bí mật. (Nếu mã thông báo bị mất, dữ liệu sẽ không bao giờ được truy cập nữa.)

  3. Không cài đặt phần mềm bổ sung trên máy khách, ngoại trừ một số mã thông báo (ví dụ: khóa riêng). vào tất cả các trình duyệt mà từ đó truy cập dữ liệu sẽ được cấp.

Vì vậy, câu hỏi của tôi là:

Có cách nào để mã hóa/giải mã dữ liệu trên client-side (ví dụ, sử dụng JavaScript) sử dụng một số thẻ trình duyệt bí mật mà có thể được trao đổi giữa các trình duyệt một cách dễ dàng (Tức là, đã xuất/nhập tương tự với chứng chỉ X.509)?

Nếu không, giải pháp thay thế nào có thể thực hiện được? Vì điều kiện 1 và 2 là bắt buộc, chỉ điều kiện 3 có thể được sửa đổi, nếu cần thiết. Tuy nhiên, vẫn còn ít nỗ lực cài đặt nhất có thể cần thiết ở phía máy khách.

CHỈNH SỬA: SSL rõ ràng chỉ là một phần của câu trả lời cho câu hỏi này!

+2

Tôi có ba chữ cái cho bạn: S, S và L. –

+1

Không, vui lòng đọc câu hỏi của tôi về vấn đề bắt nạt. – Thomas

+0

Tôi không có câu trả lời, nhưng có lẽ nhìn vào cách OAuth hoạt động có thể cung cấp cho bạn những ý tưởng sime. –

Trả lời

5

Hãy xem Web-browser encryption of personal health information, phần "Tóm tắt" có vẻ như mô tả cùng một vấn đề của bạn. Tuy nhiên, "mật mã" của họ tạo khóa mã hóa phải được chia sẻ, điều này sẽ không cho phép bạn phân biệt nhân viên trung gian.

Chúng tôi mô tả một hệ thống nhập dữ liệu từ xa cho phép các dữ liệu mà sẽ xác định các bệnh nhân được mã hóa trong trình duyệt web của người nhập dữ liệu. Những dữ liệu này không thể được giải mã trên máy chủ bởi nhân viên tại trung tâm dữ liệu nhưng có thể được giải mã bởi người nhập dữ liệu hoặc đại biểu của họ. Chúng tôi đã phát triển hệ thống này để giải quyết một vấn đề nảy sinh trong bối cảnh nghiên cứu lâm sàng, nhưng nó là áp dụng trong một loạt các tình huống mà thông tin nhạy cảm được lưu trữ và cập nhật trong cơ sở dữ liệu và cần phải đảm bảo rằng nó không thể là được xem bởi bất kỳ ngoại trừ những người được cố ý cấp quyền truy cập.

+0

Cảm ơn bạn đã đề xuất! Về nguyên tắc nó hoạt động. Chúng tôi đã tìm thấy một triển khai tương tự, được lấy cảm hứng từ http://code.google.com/p/memwords, theo cách tiếp cận tương tự. – Thomas

+0

@Thomas Một cách để có được xung quanh requring một chìa khóa duy nhất là một phương pháp tôi phát hiện ra được sử dụng bởi, tôi nghĩ rằng, boxcryptor. Khi một số dữ liệu được tạo ra, một khóa đối xứng được tạo ra ở phía người dùng (trong trường hợp này là trình duyệt), sau đó được mã hóa với người dùng đó là khóa công khai bất đối xứng và được gửi đến máy chủ. Nếu người dùng đó muốn chia sẻ dữ liệu đó, họ cần lấy khóa đối xứng đó và mã hóa nó bằng khóa công khai bất đối xứng của nhân viên bất kỳ và lưu trữ trên máy chủ ngoài mã hóa riêng của họ (và bất kỳ mã nào khác) của khóa đối xứng đó. ... (tiếp theo bên dưới) –

+0

Khi truy cập, người dùng tải khóa được mã hóa bằng khóa công khai của họ, giải mã khóa và sử dụng khóa đối xứng để giải mã dữ liệu chính. Điều này vẫn yêu cầu khóa đối xứng được hiển thị cho tất cả những người có quyền truy cập, nhưng tất cả chúng đều có thể sử dụng các cặp khóa không đối xứng khác nhau. Nếu người dùng bị xóa khỏi quyền truy cập, dữ liệu do đó phải được mã hóa lại bằng khóa mới. –

3

Có triển khai javascript mã hóa AES mã hóa bản rõ trong trình duyệt. Nếu bạn xây dựng một thứ gì đó xung quanh các công cụ đó, phía máy chủ sẽ chỉ lưu trữ văn bản được mã hóa và sẽ không có cụm mật khẩu.

http://www.fourmilab.ch/javascrypt/

Không nên yêu cầu bất kỳ cài đặt thêm trên các mặt hàng, nhưng có lẽ sẽ đòi hỏi một số nỗ lực phát triển để có được những kinh nghiệm người dùng ngay.

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