{"action":"created","issue":{"url":"https://api.github.com/repos/nucypher/nucypher-kms/issues/263","repository_url":"https://api.github.com/repos/nucypher/nucypher-kms","labels_url":"https://api.github.com/repos/nucypher/nucypher-kms/issues/263/labels{/name}","comments_url":"https://api.github.com/repos/nucypher/nucypher-kms/issues/263/comments","events_url":"https://api.github.com/repos/nucypher/nucypher-kms/issues/263/events","html_url":"https://github.com/nucypher/nucypher-kms/issues/263","id":320021942,"number":263,"title":"Does using the word \"KMS\" confer any advantage to this project?","user":{"login":"jMyles","id":311973,"avatar_url":"https://avatars2.githubusercontent.com/u/311973?v=4","gravatar_id":"","url":"https://api.github.com/users/jMyles","html_url":"https://github.com/jMyles","followers_url":"https://api.github.com/users/jMyles/followers","following_url":"https://api.github.com/users/jMyles/following{/other_user}","gists_url":"https://api.github.com/users/jMyles/gists{/gist_id}","starred_url":"https://api.github.com/users/jMyles/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jMyles/subscriptions","organizations_url":"https://api.github.com/users/jMyles/orgs","repos_url":"https://api.github.com/users/jMyles/repos","events_url":"https://api.github.com/users/jMyles/events{/privacy}","received_events_url":"https://api.github.com/users/jMyles/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2018-05-03T18:01:10Z","updated_at":"2018-05-04T02:28:42Z","closed_at":null,"author_association":"OWNER","body":"Since the beginning of this project, we have called it `nucypher-kms`.  But does the \"KMS\" part of the name add anything useful?  Are we in fact building a \"KMS\"?  Is it even possible, given the current use of this word, to determine with clarity exactly what a \"KMS\" is?\r\n\r\n----\r\n\r\nAs this project has progressed, I think it has become clear that what we're building isn't primarily a \"Key Management System.\"\r\n\r\nFirst, let's consider exactly what a \"Key Management System\" is, and whether this phrase is unambiguous enough for us to use as part of the name of this project (hint: I think it isn't).  Let's also consider whether this phrase is sufficiently widespread to give this project any name-recognition advantage by using it.\r\n\r\n### What is a KMS?\r\n\r\nThe [Wikipedia disambiguation page for \"KMS\"](https://en.wikipedia.org/wiki/KMS) lists, under the \"Technology\" heading:\r\n```\r\n    Kernel mode-setting, setting up screen mode and resolution in operating system kernels\r\n        KMS driver, Linux kernel device driver for display controllers\r\n    KMS (hypertext), the Knowledge Management System hypertext system\r\n    Kaspersky Mobile Security\r\n    Key Management Service, a Microsoft technology\r\n    Kerio MailServer\r\n    Kwangmyŏngsŏng (disambiguation), a class of experimental satellites developed by North Korea\r\n```\r\nNone of these have anything to do with cryptographic tooling.  Even the MS \"Key Management Service\" is not about cryptographic keys - it's about Microsoft license keys. \r\n\r\n*In other words, there is literally nothing on the Wikipedia page for the word \"KMS\" that has anything to do with this project.*  I think that says something.  I think this alone is a strong indication that using the word \"KMS\" will create confusion rather than relieving it.\r\n\r\nBut let's keep reading to see if \"KMS\" makes sense when examining its actual uses.  Hopping over to the [Wikipedia page for \"Key Management\"](https://en.wikipedia.org/wiki/Key_management).  Here, we find, under a subheading, \"Key management system\":\r\n\r\n> A key management system (KMS), also known as a cryptographic key management system (CKMS), is an integrated approach for generating, distributing and managing cryptographic keys for devices and applications. They may cover all aspects of security - from the secure generation of keys over the secure exchange of keys up to secure key handling and storage on the client. Thus, a KMS includes the backend functionality for key generation, distribution, and replacement as well as the client functionality for injecting keys, storing and managing keys on devices.\r\n\r\nSo this description is closer obviously.  It does cover some of the basic mechanics that drive this project.  But does it actually describe anything user-facing?\r\n\r\nThis project does indeed feature \"integrated approach for generating, distributing and managing cryptographic keys.\"  But is that its primary purpose?  Is that what makes it different or useful?  Neither Alice, Bob, nor Ursula ever even become \"aware\" that keys exist.  They never need to handle keys to *do* anything with them.  \r\n\r\nThe user here has far more interesting interfaces to work with than \"Keys\" - they get fully built nodes, Policies, DataSources, and MessageKits.  Rather than a crude \"KMS\", what we have here is a feature-rich network for doing types of communication that aren't even possible in the context of a \"KMS\" alone.\r\n\r\nNor does this description describe features like the payment / medallion model, DisappearingAlice, or the capsule / label system.  These are the things that make this project different and interesting, and none of them are captured by this (or any) description of a \"KMS\".\r\n\r\nOK, but maybe WikiPedia just isn't a good source of textual definition for this concept.  Let's instead look at how this phrase is used in the wild.\r\n\r\n### Is this thing similar to AWS KMS?\r\n\r\nGoogling \"Key management system\" brings, as the first result, AWS KMS.  Now, first, note something important here: Amazon uses the phrase \"Key Management Service (KMS),\" not \"Key Management System.\"  So it seems immediately that there's a disparity about what \"KMS\" even means: is it a *system* or a *service*?\r\n\r\nAmazon's description of their Key Management Serivce: \r\n\r\n> AWS Key Management Service (KMS) is a managed service that makes it easy for you to create and control the encryption keys used to encrypt your data, and uses FIPS 140-2 validated hardware security modules to protect the security of your keys.\r\n\r\nIs that what you'd say about this project?  I don't think so.  If I had to write a description of this project in exactly the same tembre as this one, I'd say something like:\r\n\r\n> NuCypher is a decentralized service that makes is possible for you to define recipients for private data and then to build (or encourage others to build) applications that share data with them.  To do this, it uses a distributed swarm of nodes which perform proxy re-encryption, and which never have access to your private data.\r\n\r\n### What about other KMS's?\r\n\r\nBack to Google - the [second result is the Microsoft Technet article on \"Understanding KMS.\"](https://technet.microsoft.com/en-us/library/ff793434.aspx#E1B)  It reads:\r\n\r\n> KMS activates computers on a local network, eliminating the need for individual computers to connect to Microsoft. To do this, KMS uses a client–server topology. \r\n\r\nIn other words, the *second result on Google for \"KMS\"* is about a *completely* unrelated concept.  I'm left with the feeling that using the phrase \"KMS\" *adds* confusion to our project rather than subtracting it.\r\n\r\n### What do we say instead?\r\n\r\nSo, in a nutshell, what I'm trying to say is:\r\n\r\n**If we give the impression that NuCypher is a \"KMS\", it might not be clear what that even means.  In the best-case scenario, we hope that it evokes an image of a drop-in replacement for things like Amazon KMS, but even in this case, we're both over- and underselling it.  This comparison misses the *main things* that make NuCypher different and compelling, and fails to encourage people to imagine the best use cases.**\r\n\r\nFurthermore, \"KMS\" is not a phrase that is of such household-name status and disambiguity as to gain us anything interesting by trying to leverage it.  \r\n\r\n**So, I propose that we call this thing simply \"NuCypher.\"**\r\n\r\nNow, I understand that the word \"NuCypher\" is currently a name given to the organization, and that under its umbrella lie multiple products with different use-cases.  But now might be time to change that, just as we have done with our website.  The website certainly gives the impression that this project is the entire kit and caboodle.  In fact, our website features the word \"KMS\" only once: \r\n\r\n> NuCypher KMS helps dApp developers secure their data on the blockchain with decentralized proxy re-encryption as a service.\r\n\r\nAnd of course, this reads equally well if the word \"KMS\" is simply removed:\r\n\r\n> NuCypher helps dApp developers secure their data on the blockchain with decentralized proxy re-encryption as a service."},"comment":{"url":"https://api.github.com/repos/nucypher/nucypher-kms/issues/comments/386491377","html_url":"https://github.com/nucypher/nucypher-kms/issues/263#issuecomment-386491377","issue_url":"https://api.github.com/repos/nucypher/nucypher-kms/issues/263","id":386491377,"user":{"login":"tuxxy","id":3598318,"avatar_url":"https://avatars1.githubusercontent.com/u/3598318?v=4","gravatar_id":"","url":"https://api.github.com/users/tuxxy","html_url":"https://github.com/tuxxy","followers_url":"https://api.github.com/users/tuxxy/followers","following_url":"https://api.github.com/users/tuxxy/following{/other_user}","gists_url":"https://api.github.com/users/tuxxy/gists{/gist_id}","starred_url":"https://api.github.com/users/tuxxy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tuxxy/subscriptions","organizations_url":"https://api.github.com/users/tuxxy/orgs","repos_url":"https://api.github.com/users/tuxxy/repos","events_url":"https://api.github.com/users/tuxxy/events{/privacy}","received_events_url":"https://api.github.com/users/tuxxy/received_events","type":"User","site_admin":false},"created_at":"2018-05-04T02:28:42Z","updated_at":"2018-05-04T02:28:42Z","author_association":"OWNER","body":"> I mean, no - \"key management system\" is not one of the most popular phrases paired with the abbreviation \"KMS\". In fact, neither Amazon nor Google call their KMS that - they say \"key management service\" (also not a popular phrase paired with this abbreviation).\r\n\r\nIn this point and the ones below it, we are disagreeing on the nature of services that allow access to systems. I am not going to dive deeper in this topic, but it's clear that Amazon provides services; thus the word \"service\" in the name. It's quite clear to me that their service is providing access to a system. I don't think we're going to ever agree on this, so let's move beyond this.\r\n\r\n> OK, well that's good. I think you did a good deed. But is this the mission of our organization? To change the world's mind on what a \"KMS\" is?\r\n\r\nNo, but a major mission (at least in my opinion) is to give and introduce dApp developers to a DKMS so that they can build tools that enable privacy; thus, the idea of a privacy layer. \r\n\r\n> But does that mean that we're primarily in the business of managing keys? Is that the most important thing to communicate?\r\n\r\nWhat else do we manage? Fragments? Those are certainly _key_ fragements. We certainly don't manage data.\r\n\r\n> I need to generate and use symmetric keys for DH in every HTTPS negotiation. Is my browser a KMS?\r\n\r\nClearly not, but you're disregarding a major component of managing keys -- revocation. In a KMS, you can revoke access to a certain key as needed. Similarly, your browser doesn't allow you to arbitrarily store keys generated for other users, either.\r\n\r\n> I don't really understand what you're saying here. All three Characters do things that they don't do in any other KMS and that have nothing whatsoever to do with key management.\r\n\r\nGenerating, storing, re-encrypting, decrypting, revoking, etc aren't functions of management to you?\r\n\r\n> Given that a search for one of the words in our name turns up all kinds of crazy unrelated results, I think that's pretty damn compelling that we picked an incorrect word.\r\n\r\nTry searching for \"decentralized key management system\".\r\n\r\n> ...but why are we trying to push \"KMS\" as a brand in the first place then?\r\n\r\nWe're not, we're pushing NuCypher as the brand. The KMS is just one of many of the future tools NuCypher intends on creating. This application, to me, will forever be called \"The KMS\".\r\n\r\n> If this is what you have always called it, then are you agreeable to changing the name (in the repo, documentation, and website)?\r\n\r\nMaybe, but I think we have more important issues on our hand now (i.e: getting to testnet/mainnet). If any changes occur, they should happen after test or after mainnet.\r\n\r\n> You haven't actually advanced this point at all.\r\n\r\nI disagree.\r\n\r\n> Does it provide access to keys so that users can use them in their own applications? No. Does it help users manage keys that already exist? No. Exactly what kind of \"key management\" is happening here that doesn't happen in any application that uses encryption?\r\n\r\nYour first two questions -- we actually do, yes. Your last question is obvious. Think about all the management functions we perform.\r\n\r\n> There's no actual key management happening.\r\n\r\nI completely disagree, but it seems I will not be able to convince you. If you ask a NuCypher user \"who manages your keys\", they would say \"NuCypher\"."}}
{"actor":{"display_login":"tuxxy"}}