-
Notifications
You must be signed in to change notification settings - Fork 183
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Self-paced-training tutorial: Chapter 6: Security #3205
base: main
Are you sure you want to change the base?
Changes from all commits
299b83b
3f327e9
61b403a
f4baf4d
4231042
bc5da5b
d451bfa
a6eec8f
54e4a86
60340bb
3826169
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,56 @@ | ||
{ | ||
"cells": [ | ||
{ | ||
"cell_type": "code", | ||
"execution_count": null, | ||
"cell_type": "markdown", | ||
"id": "ceca45d8-437c-44ae-8ed9-7a784983731f", | ||
"metadata": {}, | ||
"outputs": [], | ||
"source": [ | ||
"\n", | ||
"## **Security in NVIDIA FLARE Federated Computing Systems** \n", | ||
"\n", | ||
"Federated Computing System requires robust security mechanisms to ensure that only legitimate and trusted participants contribute, while also protecting communication channels and enforcing authorization policies. Below are the critical security components of an FL system. \n", | ||
"\n", | ||
"This area is concerned with these two trust issues:\n", | ||
"\n", | ||
"* **Authentication**\n", | ||
"\n", | ||
"ensures communicating parties have enough confidence about each other’s identities: everyone is who they claim to be.\n", | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should the first letter be capital? |
||
"\n", | ||
"* **Authorization** \n", | ||
"\n", | ||
"ensures that the user can only do what he/she is authorized to do.\n", | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should the first letter be capital? |
||
"\n", | ||
"Due to the distributed nature of federated computing system, additional authentications and authorization are needed for each participate organizations. \n", | ||
"\n", | ||
"You can find out how NVIDIA FLARE instrumented these via event-based Federated Authentication and authorization\n", | ||
Comment on lines
+23
to
+25
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Suggest to explain how NVFlare has instrumented all these components AFTER explaining all "critical security components/issues/concerns" in an FL system. |
||
"\n", | ||
"* **Privacy Protection**: \n", | ||
"\n", | ||
"another aspect of security is privacy protection. We have introduced different privacy enhancement technologies (PETs) in [Chapter 5](../../chapter-5_Privacy_In_Federated_Learning/05.0_introduction/introduction.ipynb), here ware going to explore what's privacy protection mechanism at the organization level. \n", | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. could we explain what is "privacy protection"? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. hereware -> "in this chapter, we are" |
||
"\n", | ||
"* **Trust-based security** \n", | ||
"\n", | ||
"Trust-based mechanism will adding another layer of protection to the security mechansim\n", | ||
Comment on lines
+31
to
+33
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This looks like a mechanism rather than an issue/concern? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. will "add" |
||
"leveraging confidential computing's VM-based trust execution environment (TEE), NVIDIA FLARE will enable end-to-end confidential federated AI. We will brief touch on it in this chapter. The details will be added in the future. \n", | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. TEE -> Trusted Execution Environment |
||
"\n", | ||
"\n", | ||
"* **Communication Security**\n", | ||
"\n", | ||
"Use of Secure Protocols – TLS for secure transmission. FLARE support both mutual TLS (mTLS) as well normal TLS with signed message \n", | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. -> "as well as" |
||
"\n", | ||
"\n", | ||
"\n", | ||
"\n", | ||
"\n", | ||
"\n", | ||
"\n", | ||
"\n" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"id": "c7a65a24", | ||
"metadata": {}, | ||
"source": [] | ||
} | ||
], | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,102 @@ | ||
{ | ||
"cells": [ | ||
{ | ||
"cell_type": "code", | ||
"execution_count": null, | ||
"cell_type": "markdown", | ||
"id": "c563b1cd-2176-4198-96a7-52b096b0b656", | ||
"metadata": {}, | ||
"outputs": [], | ||
"source": [ | ||
"# NVIDIA FLARE Security Architecture\n", | ||
"\n", | ||
"NVFLARE is an application running in the IT environment of each participating site. The total security of this application is the combination of the security measures implemented in this application and the security measures of the site’s IT infrastructure.\n", | ||
"\n", | ||
"NVFLARE implements security measures in the following areas:\n", | ||
"\n", | ||
"* **Identity Security**: the authentication and authorization of communicating parties\n", | ||
"\n", | ||
"* **Site Policy Management**: the policies for resource management, authorization, and privacy protection defined by each site\n", | ||
"\n", | ||
"* **Communication Security**: the confidentiality of data communication messages\n", | ||
"\n", | ||
"* **Message Serialization**: techniques for ensuring safe serialization/deserialization process between communicating parties\n", | ||
"\n", | ||
"* **Data Privacy Protection**: techniques for preventing local data from being leaked and/or reverse-engineered\n", | ||
"\n", | ||
"* **Auditing**: techniques for keeping audit trails to record events (e.g. commands issued by users, learning/training related events that can be analyzed to understand the final results)\n", | ||
"\n", | ||
"All other security concerns must be handled by the site’s IT security infrastructure. These include, but are not limited to:\n", | ||
"\n", | ||
"Physical security\n", | ||
"\n", | ||
"Firewall policies\n", | ||
"\n", | ||
"Data management policies: storage, retention, cleaning, distribution, access, etc.\n", | ||
Comment on lines
+28
to
+32
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. suggest adding "*" to make them rendered as bullet points |
||
"\n", | ||
"Security Trust Boundary and Balance of Risk and Usability\n", | ||
"\n", | ||
"The security framework does not operate in vacuum; we assume that physical security is already in place for all participating server and client machines. TLS provides the authentication mechanism within the trusted environments.\n", | ||
"\n", | ||
"\n", | ||
"--- \n", | ||
"\n", | ||
"## Terminologies and Roles\n", | ||
"\n", | ||
"### Terminologies\n", | ||
"NVIDIA FLARE uses the following terminologies, let's define them here: \n", | ||
"\n", | ||
"* Project -- A federated learning study with identified participants.\n", | ||
"* Org -- An organization that participates in the study.\n", | ||
"* Site -- The computing system that runs NVFLARE application as part of the study. There are two kinds of sites: Server and Clients. Each site belongs to an organization.\n", | ||
"* FL Server -- An application running on a Server site responsible for client coordination based on federation workflows. \n", | ||
"* FL Client -- An application running on a client site that responds to Server’s task assignments and performs learning actions based on its local data.\n", | ||
"* User -- A human that participates in the FL project.\n", | ||
"\n", | ||
"### Roles\n", | ||
"\n", | ||
"A role defines a type of users that have certain privileges of system operations. Each user is assigned a role in the project. There are four defined roles: Project Admin, Org Admin, Lead Researcher, and Member Researcher.\n", | ||
"\n", | ||
"* Project Admin Role -- The Project Admin is responsible for provisioning the participants and coordinating personnel from all sites for the project. There is only one Project Admin for each project.\n", | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. suggest: "The Project Admin is responsible for provisioning participants and coordinating personnel from all sites involved in the project. Each project has only one Project Admin." |
||
"\n", | ||
"* Org Admin Role -- This role is responsible for the management of the sites of his/her organization.\n", | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. just a personal preference, I like ":" more than "--" |
||
"\n", | ||
"* Lead Researcher Role -- This role can be configured for increased privileges for an organization for a scientist who works with other researchers to ensure the success of the project.\n", | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. suggest "Lead Researcher Role – This role can be configured with a higher level of privileges for a scientist within an organization who collaborates with other researchers to ensure the project's success." |
||
"\n", | ||
"* Member Researcher Role -- This role can be configured for another level of privileges a scientist who works with the Lead Researcher to make sure his/her site is properly prepared for the project.\n", | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. suggest "Member Researcher Role – This role can be configured with a lower level of privileges for a scientist who works with the Lead Researcher to ensure their site is properly prepared for the project." |
||
"\n", | ||
"* FLARE Console -- A console application running on a user’s machine that allows the user to perform NVFLARE system operations with a command line interface.\n", | ||
"\n", | ||
"Now let's dive into identity security, autentication and authorization [here](../06.2_authentication_and_authorization/site_specific_authentication_and_authorization.ipynb)\n", | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. suggest combine 6.0 with 6.1 as introduction. We are covering the following topics in this chapter:
For a clear overview of the whole chapter. |
||
"\n", | ||
"\n", | ||
"\n", | ||
"## Identity Security\n", | ||
"\n", | ||
" see [here](../06.2_identity_security/identity_security.ipynb) for NVFLARE’s authentication model\n", | ||
"\n", | ||
"## Federated Policy\n", | ||
"\n", | ||
" see [here](../06.3_site_security_privacy_policy/site_policy.ipynb) for site-specific security and privacy polcies provided by NVIDIA FLARE\n", | ||
" \n", | ||
"## Customized Security Plugins\n", | ||
"\n", | ||
" see [here](../06.4_customized_site_security/customized_site_security.ipynb) for site-specific customized security integration\n", | ||
"\n", | ||
"## Communication Security\n", | ||
"\n", | ||
" see [here](../06.5_communition_security/communication_security.ipynb) for communication security & configuration\n", | ||
"\n", | ||
"## Message Serialization\n", | ||
" todo \n", | ||
"\n", | ||
"## Auditing\n", | ||
"\n", | ||
"\n", | ||
"\n" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"id": "622581aa", | ||
"metadata": {}, | ||
"source": [] | ||
} | ||
], | ||
|
This file was deleted.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need this sentence?